diff --git a/fluxer_admin/openapi-admin.json b/fluxer_admin/openapi-admin.json index 593089d62..2294cacba 100644 --- a/fluxer_admin/openapi-admin.json +++ b/fluxer_admin/openapi-admin.json @@ -10524,6 +10524,7 @@ }, "gateway_rollout": {"$ref": "#/components/schemas/GatewayRolloutConfigResponse"}, "voice_noise_suppression": {"$ref": "#/components/schemas/VoiceNoiseSuppressionConfigResponse"}, + "screen_share_delivery": {"$ref": "#/components/schemas/ScreenShareDeliveryConfigResponse"}, "experiment_delivery": {"$ref": "#/components/schemas/ExperimentDeliveryConfigResponse"}, "registration": { "type": "object", @@ -10951,6 +10952,7 @@ "sso", "gateway_rollout", "voice_noise_suppression", + "screen_share_delivery", "experiment_delivery", "registration", "self_hosted", @@ -11085,6 +11087,10 @@ "nullable": true, "allOf": [{"$ref": "#/components/schemas/VoiceNoiseSuppressionConfigUpdateRequest"}] }, + "screen_share_delivery": { + "nullable": true, + "allOf": [{"$ref": "#/components/schemas/ScreenShareDeliveryConfigUpdateRequest"}] + }, "experiment_delivery": { "nullable": true, "allOf": [{"$ref": "#/components/schemas/ExperimentDeliveryConfigUpdateRequest"}] @@ -15178,6 +15184,24 @@ "poll_jitter_percent": {"type": "integer", "minimum": 0, "maximum": 50} } }, + "ScreenShareDeliveryConfigUpdateRequest": { + "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": { @@ -15243,6 +15267,36 @@ "required": ["poll_interval_seconds", "poll_jitter_percent"], "additionalProperties": false }, + "ScreenShareDeliveryConfigResponse": { + "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": "screen-share-delivery-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 a736ee019..f0d6a4140 100644 --- a/fluxer_admin/src/api/types/instance_config.rs +++ b/fluxer_admin/src/api/types/instance_config.rs @@ -23,6 +23,8 @@ pub struct InstanceConfigResponse { #[serde(default)] pub voice_noise_suppression: VoiceNoiseSuppressionConfigResponse, #[serde(default)] + pub screen_share_delivery: ScreenShareDeliveryConfigResponse, + #[serde(default)] pub experiment_delivery: ExperimentDeliveryConfigResponse, } @@ -446,7 +448,8 @@ impl VoiceE2eeScope { } } -pub const VOICE_NS_MAX_TARGETED_USERS: usize = 1_000; +pub const EXPERIMENT_MAX_TARGETED_USERS: usize = 1_000; +pub const SCREEN_SHARE_DELIVERY_DEFAULT_SALT: &str = "screen-share-delivery-v1"; pub const VOICE_NS_MAX_GUILD_OVERRIDES: usize = 200; impl NoiseSuppressionBackend { @@ -537,6 +540,44 @@ pub struct VoiceNoiseSuppressionConfigUpdateRequest { pub suppression_strength: Option, } +#[derive(Clone, Debug, Deserialize, Serialize)] +#[serde(default)] +pub struct ScreenShareDeliveryConfigResponse { + 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 ScreenShareDeliveryConfigResponse { + fn default() -> Self { + Self { + enabled: false, + config_version: 0, + rollout_basis_points: 0, + rollout_salt: SCREEN_SHARE_DELIVERY_DEFAULT_SALT.to_owned(), + included_user_ids: Vec::new(), + excluded_user_ids: Vec::new(), + } + } +} + +#[derive(Clone, Debug, Default, Serialize)] +pub struct ScreenShareDeliveryConfigUpdateRequest { + #[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 { @@ -653,6 +694,8 @@ pub struct InstanceConfigUpdateRequest { #[serde(skip_serializing_if = "Option::is_none")] pub voice_noise_suppression: Option, #[serde(skip_serializing_if = "Option::is_none")] + pub screen_share_delivery: Option, + #[serde(skip_serializing_if = "Option::is_none")] pub experiment_delivery: Option, } @@ -990,18 +1033,30 @@ mod tests { .expect("admin schema"); let noise = serde_json::from_value::(json!({})) .expect("default noise config"); + let screen_share = serde_json::from_value::(json!({})) + .expect("default screen share config"); let delivery = serde_json::from_value::(json!({})) .expect("default delivery config"); let noise = serde_json::to_value(noise).expect("serializable noise config"); + let screen_share = + serde_json::to_value(screen_share).expect("serializable screen share config"); let delivery = serde_json::to_value(delivery).expect("serializable delivery config"); let generated_noise: generated_types::VoiceNoiseSuppressionConfigResponse = serde_json::from_value(noise.clone()).expect("generated noise config contract"); + let generated_screen_share: generated_types::ScreenShareDeliveryConfigResponse = + serde_json::from_value(screen_share.clone()) + .expect("generated screen share config contract"); let generated_delivery: generated_types::ExperimentDeliveryConfigResponse = serde_json::from_value(delivery.clone()).expect("generated delivery config contract"); assert_eq!( serde_json::to_value(generated_noise).expect("serializable generated noise config"), noise ); + assert_eq!( + serde_json::to_value(generated_screen_share) + .expect("serializable generated screen share config"), + screen_share + ); assert_eq!( serde_json::to_value(generated_delivery) .expect("serializable generated delivery config"), @@ -1009,6 +1064,7 @@ mod tests { ); for (name, value) in [ ("VoiceNoiseSuppressionConfigResponse", noise), + ("ScreenShareDeliveryConfigResponse", screen_share), ("ExperimentDeliveryConfigResponse", delivery), ] { for (field, value) in value.as_object().expect("config object") { @@ -1020,6 +1076,29 @@ mod tests { } } + #[test] + fn screen_share_delivery_update_preserves_empty_lists_and_omitted_fields() { + let update = ScreenShareDeliveryConfigUpdateRequest { + 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(ScreenShareDeliveryConfigUpdateRequest::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 d1241d512..87b8e4f69 100644 --- a/fluxer_admin/src/routes/system_actions.rs +++ b/fluxer_admin/src/routes/system_actions.rs @@ -7,20 +7,20 @@ use crate::{ AppBrandingConfigUpdateRequest, AppLegalConfigUpdateRequest, AppPublicConfigUpdateRequest, AppRegistrationConfigUpdateRequest, AppSetupConfigUpdateRequest, CreateRegistrationUrlRequest, - DeferredPhoneGateUpdateRequest, ExperimentDeliveryConfigUpdateRequest, - GatewayRolloutConfigUpdateRequest, GatewayRolloutMode, - InstanceAttachmentDecayUpdateRequest, InstanceBlueskyIntegrationUpdateRequest, - InstanceBlueskyKeyIntegrationUpdateRequest, InstanceCaptchaIntegrationUpdateRequest, - InstanceConfigUpdateRequest, InstanceEmailIntegrationUpdateRequest, - InstanceEmailSmtpIntegrationUpdateRequest, InstanceEmailSmtpTestRequest, - InstanceGifIntegrationUpdateRequest, InstanceIntegrationsUpdateRequest, - InstanceMediaUpdateRequest, InstancePolicyUpdateRequest, - InstanceRegistrationConfigUpdateRequest, InstanceServicesUpdateRequest, - InstanceYoutubeIntegrationUpdateRequest, LimitConfigUpdateRequest, LimitRule, - LimitRuleFilters, NoiseSuppressionBackend, PremiumMode, RegistrationMode, - SsoConfigUpdateRequest, VOICE_NS_MAX_GUILD_OVERRIDES, VOICE_NS_MAX_TARGETED_USERS, - VoiceE2eeScope, VoiceNoiseSuppressionConfigUpdateRequest, - VoiceNoiseSuppressionGuildOverride, + DeferredPhoneGateUpdateRequest, EXPERIMENT_MAX_TARGETED_USERS, + ExperimentDeliveryConfigUpdateRequest, GatewayRolloutConfigUpdateRequest, + GatewayRolloutMode, InstanceAttachmentDecayUpdateRequest, + InstanceBlueskyIntegrationUpdateRequest, InstanceBlueskyKeyIntegrationUpdateRequest, + InstanceCaptchaIntegrationUpdateRequest, InstanceConfigUpdateRequest, + InstanceEmailIntegrationUpdateRequest, InstanceEmailSmtpIntegrationUpdateRequest, + InstanceEmailSmtpTestRequest, InstanceGifIntegrationUpdateRequest, + InstanceIntegrationsUpdateRequest, InstanceMediaUpdateRequest, + InstancePolicyUpdateRequest, InstanceRegistrationConfigUpdateRequest, + InstanceServicesUpdateRequest, InstanceYoutubeIntegrationUpdateRequest, + LimitConfigUpdateRequest, LimitRule, LimitRuleFilters, NoiseSuppressionBackend, + PremiumMode, RegistrationMode, ScreenShareDeliveryConfigUpdateRequest, + SsoConfigUpdateRequest, VOICE_NS_MAX_GUILD_OVERRIDES, VoiceE2eeScope, + VoiceNoiseSuppressionConfigUpdateRequest, VoiceNoiseSuppressionGuildOverride, }, }, config::AdminConfig, @@ -207,6 +207,10 @@ pub async fn instance_config_post( Ok(update) => instance_config_result(client.update_instance_config(&update).await), Err(message) => FlashData::error(message), }, + "update_screen_share_delivery" => match build_screen_share_delivery_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), @@ -514,9 +518,9 @@ fn parse_experiment_user_ids(value: &str, label: &str) -> Result, St if ids.iter().any(|existing| existing == candidate) { continue; } - if ids.len() == VOICE_NS_MAX_TARGETED_USERS { + if ids.len() == EXPERIMENT_MAX_TARGETED_USERS { return Err(format!( - "{label} must contain at most {VOICE_NS_MAX_TARGETED_USERS} unique IDs" + "{label} must contain at most {EXPERIMENT_MAX_TARGETED_USERS} unique IDs" )); } ids.push(candidate.to_owned()); @@ -629,6 +633,38 @@ fn build_voice_noise_suppression_update( }) } +fn build_screen_share_delivery_update( + form: &MultiValueForm, +) -> Result { + Ok(InstanceConfigUpdateRequest { + screen_share_delivery: Some(ScreenShareDeliveryConfigUpdateRequest { + enabled: Some(form.bool_value("screen_share_delivery_enabled")), + rollout_basis_points: parse_form_number( + form, + "screen_share_delivery_rollout_basis_points", + "Rollout basis points", + 0, + EXPERIMENT_ROLLOUT_BASIS_POINTS_MAX, + )?, + rollout_salt: parse_experiment_rollout_salt( + form, + "screen_share_delivery_rollout_salt", + )?, + included_user_ids: Some(parse_experiment_user_ids( + form.first("screen_share_delivery_included_user_ids") + .unwrap_or_default(), + "Included user IDs", + )?), + excluded_user_ids: Some(parse_experiment_user_ids( + form.first("screen_share_delivery_excluded_user_ids") + .unwrap_or_default(), + "Excluded user IDs", + )?), + }), + ..Default::default() + }) +} + fn build_experiment_delivery_update( form: &MultiValueForm, ) -> Result { @@ -1348,13 +1384,13 @@ mod tests { #[test] fn parse_experiment_user_ids_rejects_exceeding_the_cap() { - let value = (0..VOICE_NS_MAX_TARGETED_USERS) + let value = (0..EXPERIMENT_MAX_TARGETED_USERS) .map(|index| index.to_string()) .collect::>() .join("\n"); let ids = parse_experiment_user_ids(&format!("{value}\n999"), "Included user IDs") .expect("valid IDs at cap"); - assert_eq!(ids.len(), VOICE_NS_MAX_TARGETED_USERS); + assert_eq!(ids.len(), EXPERIMENT_MAX_TARGETED_USERS); assert_eq!(ids.last(), Some(&"999".to_owned())); assert_eq!( parse_experiment_user_ids(&format!("{value}\n1000"), "Included user IDs") @@ -1550,6 +1586,83 @@ mod tests { } } + #[test] + fn build_screen_share_delivery_update_reads_the_rollout_fields() { + let form = MultiValueForm::parse( + b"screen_share_delivery_enabled=true&screen_share_delivery_rollout_basis_points=%20250%20&screen_share_delivery_rollout_salt=%20screen-share-delivery-v2%20&screen_share_delivery_included_user_ids=1500000000000000001%0A1500000000000000002&screen_share_delivery_excluded_user_ids=1500000000000000003%2C%201500000000000000004", + ); + let update = build_screen_share_delivery_update(&form) + .expect("valid form") + .screen_share_delivery + .expect("screen share delivery update"); + assert_eq!(update.enabled, Some(true)); + assert_eq!(update.rollout_basis_points, Some(250)); + assert_eq!( + update.rollout_salt, + Some("screen-share-delivery-v2".to_owned()) + ); + assert_eq!( + update.included_user_ids, + Some(vec![ + "1500000000000000001".to_owned(), + "1500000000000000002".to_owned() + ]) + ); + assert_eq!( + update.excluded_user_ids, + Some(vec![ + "1500000000000000003".to_owned(), + "1500000000000000004".to_owned() + ]) + ); + } + + #[test] + fn build_screen_share_delivery_update_leaves_the_feature_inert_when_nothing_is_submitted() { + let form = MultiValueForm::parse(b"_csrf=token"); + let request = build_screen_share_delivery_update(&form).expect("valid form"); + assert_eq!( + serde_json::to_value(request).expect("serializable update"), + serde_json::json!({"screen_share_delivery": { + "enabled": false, + "included_user_ids": [], + "excluded_user_ids": [], + }}) + ); + } + + #[test] + fn build_screen_share_delivery_update_rejects_invalid_rollout_fields() { + for (form, message) in [ + ( + "screen_share_delivery_rollout_basis_points=10001", + "Rollout basis points must be a whole number between 0 and 10000", + ), + ( + "screen_share_delivery_rollout_basis_points=abc", + "Rollout basis points must be a whole number between 0 and 10000", + ), + ( + "screen_share_delivery_rollout_salt=%20%20", + "Rollout salt must be between 1 and 64 characters", + ), + ( + "screen_share_delivery_included_user_ids=123%2Cinvalid", + "Included user IDs entry 2 must contain 1 to 20 decimal digits", + ), + ( + "screen_share_delivery_excluded_user_ids=123%2Cinvalid", + "Excluded user IDs entry 2 must contain 1 to 20 decimal digits", + ), + ] { + let form = MultiValueForm::parse(form.as_bytes()); + assert_eq!( + build_screen_share_delivery_update(&form).expect_err("invalid rollout field"), + message + ); + } + } + #[test] fn build_experiment_delivery_update_leaves_both_fields_unchanged_when_absent() { let form = MultiValueForm::parse(b"_csrf=token"); diff --git a/fluxer_admin/src/templates/pages/instance_config.rs b/fluxer_admin/src/templates/pages/instance_config.rs index e3c3c507e..d2e56dfd5 100644 --- a/fluxer_admin/src/templates/pages/instance_config.rs +++ b/fluxer_admin/src/templates/pages/instance_config.rs @@ -2,11 +2,12 @@ use crate::{ api::types::{ - AppPublicConfigResponse, ExperimentDeliveryConfigResponse, GatewayRolloutConfigResponse, - InstanceConfigResponse, InstanceIntegrationsResponse, InstanceMediaResponse, - InstancePolicyResponse, InstanceRegistrationResponse, LimitConfigResponse, - NoiseSuppressionBackend, PendingRegistrationResponse, RegistrationUrlResponse, - SsoConfigResponse, VOICE_NS_MAX_GUILD_OVERRIDES, VOICE_NS_MAX_TARGETED_USERS, + AppPublicConfigResponse, EXPERIMENT_MAX_TARGETED_USERS, ExperimentDeliveryConfigResponse, + GatewayRolloutConfigResponse, InstanceConfigResponse, InstanceIntegrationsResponse, + InstanceMediaResponse, InstancePolicyResponse, InstanceRegistrationResponse, + LimitConfigResponse, NoiseSuppressionBackend, PendingRegistrationResponse, + RegistrationUrlResponse, SCREEN_SHARE_DELIVERY_DEFAULT_SALT, + ScreenShareDeliveryConfigResponse, SsoConfigResponse, VOICE_NS_MAX_GUILD_OVERRIDES, VoiceNoiseSuppressionConfigResponse, }, config::AdminConfig, @@ -148,6 +149,7 @@ pub fn instance_config_page( html! { (gateway_rollout_section(base, csrf_token, &instance_config.gateway_rollout)) (voice_noise_suppression_section(base, csrf_token, &instance_config.voice_noise_suppression)) + (screen_share_delivery_section(base, csrf_token, &instance_config.screen_share_delivery)) (experiment_delivery_section(base, csrf_token, &instance_config.experiment_delivery)) @if let Some(limit_config) = limit_config { (limit_config_section(base, limit_config)) @@ -1105,7 +1107,7 @@ fn voice_noise_suppression_section( )) (entry_count_hint( voice_noise_suppression.included_user_ids.len(), - VOICE_NS_MAX_TARGETED_USERS, + EXPERIMENT_MAX_TARGETED_USERS, )) p class="text-xs text-neutral-500" { "One snowflake per line, or comma separated. These users are targeted \ @@ -1125,7 +1127,7 @@ fn voice_noise_suppression_section( )) (entry_count_hint( voice_noise_suppression.excluded_user_ids.len(), - VOICE_NS_MAX_TARGETED_USERS, + EXPERIMENT_MAX_TARGETED_USERS, )) p class="text-xs text-neutral-500" { "Same format. Exclusion wins over both the always-on list and the \ @@ -1176,6 +1178,117 @@ fn voice_noise_suppression_section( ) } +fn screen_share_delivery_section( + base: &str, + csrf_token: &str, + screen_share_delivery: &ScreenShareDeliveryConfigResponse, +) -> Markup { + let status = if screen_share_delivery.enabled { + ("Live", BadgeVariant::Success) + } else { + ("Inert", BadgeVariant::Default) + }; + let included_user_ids = screen_share_delivery.included_user_ids.join("\n"); + let excluded_user_ids = screen_share_delivery.excluded_user_ids.join("\n"); + section_card_with_description( + "Screen Share Delivery", + "Pick how many clients publish screen shares through the reworked delivery path. While \ + the master switch below is off nothing on this form reaches any client: every user \ + keeps the screen share pipeline they have today, whatever the rest of these fields say. \ + A client that is already sharing keeps the path it started on until the share ends.", + html! { + form method="post" action={(base) "/instance-config?action=update_screen_share_delivery"} { + (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 " (screen_share_delivery.config_version) + } + } + (checkbox( + "screen_share_delivery_enabled", + "true", + "Serve screen share delivery assignments to clients", + screen_share_delivery.enabled, + true, + )) + p class="text-xs text-neutral-500" { + "Off is the safe state. With this unchecked every client is told the \ + feature is inert and keeps its current behavior, so the rollout and \ + targeting fields below have no effect at all." + } + + h3 class="text-sm font-semibold text-neutral-900" { "Rollout" } + (number_field( + "screen_share_delivery_rollout_basis_points", + "Rollout (basis points)", + &screen_share_delivery.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( + "screen_share_delivery_rollout_salt", + "Rollout Salt", + &screen_share_delivery.rollout_salt, + SCREEN_SHARE_DELIVERY_DEFAULT_SALT, + )) + 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( + "screen_share_delivery_included_user_ids", + "Always-on User IDs", + "1500000000000000001\n1500000000000000002", + &included_user_ids, + 4, + false, + )) + (entry_count_hint( + screen_share_delivery.included_user_ids.len(), + EXPERIMENT_MAX_TARGETED_USERS, + )) + 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( + "screen_share_delivery_excluded_user_ids", + "Never-on User IDs", + "1500000000000000003\n1500000000000000004", + &excluded_user_ids, + 4, + false, + )) + (entry_count_hint( + screen_share_delivery.excluded_user_ids.len(), + EXPERIMENT_MAX_TARGETED_USERS, + )) + 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 Screen Share Delivery Configuration")) + })) + } + } + }, + ) +} + fn experiment_delivery_section( base: &str, csrf_token: &str, @@ -1184,7 +1297,7 @@ fn experiment_delivery_section( section_card_with_description( "Experiment Delivery", "How often every client revalidates its experiment assignments. This is instance-wide \ - and covers every experiment, not just the one above. Raising the interval sheds \ + and covers every experiment, not just the ones above. Raising the interval sheds \ request volume and makes a change take longer to reach a client. Raising the jitter \ spreads a fleet that has synchronised on one tick back out across the interval.", html! { @@ -1819,10 +1932,29 @@ mod tests { assert!(!markup.contains("at the cap")); } + #[test] + fn screen_share_delivery_section_shows_list_counts_and_the_master_switch() { + let screen_share_delivery = ScreenShareDeliveryConfigResponse { + included_user_ids: vec!["1500000000000000001".to_owned()], + excluded_user_ids: vec![ + "1500000000000000002".to_owned(), + "1500000000000000003".to_owned(), + ], + ..ScreenShareDeliveryConfigResponse::default() + }; + let markup = + screen_share_delivery_section("/admin", "csrf", &screen_share_delivery).into_string(); + assert!(markup.contains("action=update_screen_share_delivery")); + assert!(markup.contains("screen_share_delivery_enabled")); + assert!(markup.contains("1 of 1000 stored")); + assert!(markup.contains("2 of 1000 stored")); + assert!(!markup.contains("at the cap")); + } + #[test] fn voice_noise_suppression_section_flags_a_list_at_its_cap() { let voice_noise_suppression = VoiceNoiseSuppressionConfigResponse { - included_user_ids: (0..VOICE_NS_MAX_TARGETED_USERS) + included_user_ids: (0..EXPERIMENT_MAX_TARGETED_USERS) .map(|index| index.to_string()) .collect(), ..VoiceNoiseSuppressionConfigResponse::default() diff --git a/fluxer_admin/tests/api_deserialization.rs b/fluxer_admin/tests/api_deserialization.rs index 6c9076e27..f80361fbf 100644 --- a/fluxer_admin/tests/api_deserialization.rs +++ b/fluxer_admin/tests/api_deserialization.rs @@ -409,6 +409,15 @@ fn deserialize_instance_config_response_with_unknown_keys() { "future_object_knob": {"nested": true}, "future_list_knob": ["a", "b"] }, + "screen_share_delivery": { + "enabled": true, + "config_version": 2, + "rollout_basis_points": 2500, + "rollout_salt": "screen-share-delivery-v1", + "included_user_ids": ["1500000000000000001"], + "future_delivery_knob": 9, + "excluded_user_ids": [] + }, "experiment_delivery": {"poll_interval_seconds": 300, "poll_jitter_percent": 15}, "registration": { "mode": "open", @@ -538,6 +547,14 @@ fn deserialize_instance_config_response_with_unknown_keys() { assert_eq!(resp.voice_noise_suppression.rollout_basis_points, 10000); assert_eq!(*resp.voice_noise_suppression.rollout_salt, "voice-ns-v1"); assert_eq!(resp.voice_noise_suppression.enabled_backends.len(), 3); + assert!(resp.screen_share_delivery.enabled); + assert_eq!(resp.screen_share_delivery.config_version, 2); + assert_eq!(resp.screen_share_delivery.rollout_basis_points, 2500); + assert_eq!( + *resp.screen_share_delivery.rollout_salt, + "screen-share-delivery-v1" + ); + assert_eq!(resp.screen_share_delivery.included_user_ids.len(), 1); assert_eq!(resp.experiment_delivery.poll_interval_seconds, 300); assert!(resp.policy.single_community_guild_id.is_none()); assert_eq!(resp.policy.services.gif_enabled, Some(true)); @@ -548,6 +565,7 @@ fn deserialize_instance_config_response_with_unknown_keys() { .replace("\"future_rollout_knob\": 3,", "") .replace("\"future_presentation_knob\": \"verbose\",", "") .replace("\"future_knob\": 7,", "") + .replace("\"future_delivery_knob\": 9,", "") .replace("\"future_object_knob\": {\"nested\": true},", "") .replace("\"future_list_knob\": [\"a\", \"b\"],", "") .replace( diff --git a/fluxer_admin/tests/htmx_acceptance.rs b/fluxer_admin/tests/htmx_acceptance.rs index 0df501840..5596c2eb0 100644 --- a/fluxer_admin/tests/htmx_acceptance.rs +++ b/fluxer_admin/tests/htmx_acceptance.rs @@ -465,6 +465,7 @@ async fn mutating_admin_pages_render_usable_csrf_tokens() { "/instance-config?action=update_gateway_rollout", "/instance-config?action=update_sso", "/instance-config?action=update_voice_noise_suppression", + "/instance-config?action=update_screen_share_delivery", "/instance-config?action=update_experiment_delivery", ][..], ), @@ -1196,6 +1197,14 @@ fn instance_config() -> Value { "guild_overrides": [], "suppression_strength": 80 }, + "screen_share_delivery": { + "enabled": false, + "config_version": 0, + "rollout_basis_points": 0, + "rollout_salt": "screen-share-delivery-v1", + "included_user_ids": [], + "excluded_user_ids": [] + }, "experiment_delivery": { "poll_interval_seconds": 300, "poll_jitter_percent": 15 diff --git a/fluxer_api/src/api/admin/controllers/InstanceConfigAdminController.ts b/fluxer_api/src/api/admin/controllers/InstanceConfigAdminController.ts index 09337c6a7..ce9411ff0 100644 --- a/fluxer_api/src/api/admin/controllers/InstanceConfigAdminController.ts +++ b/fluxer_api/src/api/admin/controllers/InstanceConfigAdminController.ts @@ -31,6 +31,7 @@ import { RegistrationUrlIdParam, } from '@fluxer/schema/src/domains/admin/AdminSchemas'; import {GatewayRolloutConfigSchema} from '@fluxer/schema/src/domains/admin/GatewayRolloutSchemas'; +import {ScreenShareDeliveryConfigSchema} from '@fluxer/schema/src/domains/admin/ScreenShareDeliverySchemas'; import {VoiceNoiseSuppressionConfigSchema} from '@fluxer/schema/src/domains/admin/VoiceNoiseSuppressionSchemas'; import {UserIdParam} from '@fluxer/schema/src/domains/common/CommonParamSchemas'; import {ExperimentDeliveryConfigSchema} from '@fluxer/schema/src/domains/experiment/ExperimentSchemas'; @@ -59,6 +60,7 @@ async function buildInstanceConfigResponse(): Promise { ssoConfig, gatewayRollout, voiceNoiseSuppression, + screenShareDelivery, experimentDelivery, registrationConfig, registrationUrls, @@ -67,6 +69,7 @@ async function buildInstanceConfigResponse(): Promise { instanceConfigRepository.getSsoConfig(), instanceConfigRepository.getGatewayRolloutConfig(), instanceConfigRepository.getVoiceNoiseSuppressionConfig(), + instanceConfigRepository.getScreenShareDeliveryConfig(), instanceConfigRepository.getExperimentDeliveryConfig(), instanceConfigRepository.getRegistrationConfig(), instanceConfigRepository.getRegistrationUrlsForAdmin(), @@ -98,6 +101,7 @@ async function buildInstanceConfigResponse(): Promise { }, gateway_rollout: gatewayRollout, voice_noise_suppression: voiceNoiseSuppression, + screen_share_delivery: screenShareDelivery, experiment_delivery: experimentDelivery, registration: { ...registrationConfig, @@ -261,6 +265,18 @@ export function InstanceConfigAdminController(app: HonoApp) { await instanceConfigRepository.setVoiceNoiseSuppressionConfig(validated); } } + if (data.screen_share_delivery) { + const patch = omitUndefinedFields(data.screen_share_delivery); + if (Object.keys(patch).length > 0) { + const currentScreenShareDelivery = await instanceConfigRepository.getScreenShareDeliveryConfig(); + const validated = ScreenShareDeliveryConfigSchema.parse({ + ...currentScreenShareDelivery, + ...patch, + config_version: currentScreenShareDelivery.config_version + 1, + }); + await instanceConfigRepository.setScreenShareDeliveryConfig(validated); + } + } if (data.experiment_delivery) { const currentExperimentDelivery = await instanceConfigRepository.getExperimentDeliveryConfig(); const validated = ExperimentDeliveryConfigSchema.parse({ diff --git a/fluxer_api/src/api/experiment/ExperimentController.ts b/fluxer_api/src/api/experiment/ExperimentController.ts index 77570311e..3f7e28c24 100644 --- a/fluxer_api/src/api/experiment/ExperimentController.ts +++ b/fluxer_api/src/api/experiment/ExperimentController.ts @@ -8,6 +8,7 @@ import {RateLimitConfigs} from '@app/api/RateLimitConfig'; import type {HonoApp} from '@app/api/types/HonoEnv'; import {entityTagMatches} from '@app/api/utils/EntityTag'; import {Headers as HttpHeaders} from '@fluxer/constants/src/Headers'; +import {resolveScreenShareDeliveryAssignment} from '@fluxer/schema/src/domains/admin/ScreenShareDeliverySchemas'; import {resolveVoiceNoiseSuppressionAssignment} from '@fluxer/schema/src/domains/admin/VoiceNoiseSuppressionSchemas'; import {ExperimentAssignmentsResponse} from '@fluxer/schema/src/domains/experiment/ExperimentSchemas'; @@ -28,9 +29,10 @@ export function ExperimentController(app: HonoApp) { }), async (ctx) => { const instanceConfigRepository = ctx.get('instanceConfigRepository'); - const [delivery, voiceConfig] = await Promise.all([ + const [delivery, voiceConfig, screenShareConfig] = await Promise.all([ instanceConfigRepository.getExperimentDeliveryConfig(), instanceConfigRepository.getVoiceNoiseSuppressionConfig(), + instanceConfigRepository.getScreenShareDeliveryConfig(), ]); const userId = ctx.get('user').id.toString(); const body: ExperimentAssignmentsResponse = { @@ -38,6 +40,7 @@ export function ExperimentController(app: HonoApp) { poll_jitter_percent: delivery.poll_jitter_percent, assignments: { voice_noise_suppression: resolveVoiceNoiseSuppressionAssignment(voiceConfig, userId), + screen_share_delivery: resolveScreenShareDeliveryAssignment(screenShareConfig, 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 3b20faad7..3bc712dd4 100644 --- a/fluxer_api/src/api/experiment/tests/ExperimentController.test.ts +++ b/fluxer_api/src/api/experiment/tests/ExperimentController.test.ts @@ -6,6 +6,10 @@ import {type ApiTestHarness, createApiTestHarness} from '@app/api/test/ApiTestHa import {HTTP_STATUS} from '@app/api/test/TestConstants'; import {createBuilder, createBuilderWithoutAuth} from '@app/api/test/TestRequestBuilder'; import {AdminACLs} from '@fluxer/constants/src/AdminACLs'; +import { + DEFAULT_SCREEN_SHARE_DELIVERY_CONFIG, + INERT_SCREEN_SHARE_DELIVERY_ASSIGNMENT, +} from '@fluxer/schema/src/domains/admin/ScreenShareDeliverySchemas'; import { DEFAULT_VOICE_NOISE_SUPPRESSION_CONFIG, INERT_VOICE_NOISE_SUPPRESSION_ASSIGNMENT, @@ -15,6 +19,7 @@ import { DEFAULT_EXPERIMENT_POLL_JITTER_PERCENT, type ExperimentAssignmentsResponse, type ExperimentDeliveryConfigResponse, + readScreenShareDeliveryAssignment, readVoiceNoiseSuppressionAssignment, } from '@fluxer/schema/src/domains/experiment/ExperimentSchemas'; import {afterAll, beforeAll, beforeEach, describe, expect, it} from 'vitest'; @@ -51,6 +56,7 @@ describe('GET /experiments', () => { poll_jitter_percent: DEFAULT_EXPERIMENT_POLL_JITTER_PERCENT, assignments: { voice_noise_suppression: INERT_VOICE_NOISE_SUPPRESSION_ASSIGNMENT, + screen_share_delivery: INERT_SCREEN_SHARE_DELIVERY_ASSIGNMENT, }, }); }); @@ -82,6 +88,52 @@ describe('GET /experiments', () => { expect(readVoiceNoiseSuppressionAssignment(body).enabled).toBe(false); }); + it('populates the screen share assignment 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, 'screen_share_delivery')).toBe(true); + expect(readScreenShareDeliveryAssignment(body).enabled).toBe(false); + }); + + it('resolves the screen share caller through the allowlist', async () => { + const targeted = await createTestAccount(harness); + const untargeted = await createTestAccount(harness); + await getInstanceConfigRepository().setScreenShareDeliveryConfig({ + ...DEFAULT_SCREEN_SHARE_DELIVERY_CONFIG, + enabled: true, + config_version: 4, + rollout_basis_points: 0, + included_user_ids: [targeted.userId], + }); + + const targetedBody = await createBuilder(harness, targeted.token) + .get(ENDPOINT) + .execute(); + expect(targetedBody.assignments.screen_share_delivery).toEqual({enabled: true}); + + const untargetedBody = await createBuilder(harness, untargeted.token) + .get(ENDPOINT) + .execute(); + expect(untargetedBody.assignments.screen_share_delivery).toEqual({enabled: false}); + }); + + it('keeps the screen share exclusion ahead of a full rollout', async () => { + const excluded = await createTestAccount(harness); + await getInstanceConfigRepository().setScreenShareDeliveryConfig({ + ...DEFAULT_SCREEN_SHARE_DELIVERY_CONFIG, + enabled: true, + rollout_basis_points: 10000, + included_user_ids: [excluded.userId], + excluded_user_ids: [excluded.userId], + }); + + const body = await createBuilder(harness, excluded.token).get(ENDPOINT).execute(); + + expect(body.assignments.screen_share_delivery).toEqual({enabled: false}); + }); + it('serves the delivery cadence from the delivery config and not from the voice config', async () => { const account = await createTestAccount(harness); await getInstanceConfigRepository().setExperimentDeliveryConfig({ @@ -196,6 +248,30 @@ describe('GET /experiments', () => { }); }); + it('serves a fresh body once the screen share config changes', async () => { + const account = await createTestAccount(harness); + + const first = await createBuilder(harness, account.token) + .get(ENDPOINT) + .executeWithResponse(); + const staleEtag = first.response.headers.get('etag') as string; + + await getInstanceConfigRepository().setScreenShareDeliveryConfig({ + ...DEFAULT_SCREEN_SHARE_DELIVERY_CONFIG, + enabled: true, + config_version: 1, + rollout_basis_points: 10000, + }); + + const refreshed = await createBuilder(harness, account.token) + .get(ENDPOINT) + .header('If-None-Match', staleEtag) + .executeWithResponse(); + expect(refreshed.response.status).toBe(HTTP_STATUS.OK); + expect(refreshed.response.headers.get('etag')).not.toBe(staleEtag); + expect(refreshed.json?.assignments.screen_share_delivery).toEqual({enabled: true}); + }); + it('serves a fresh body once the delivery config changes', async () => { const account = await createTestAccount(harness); @@ -252,6 +328,44 @@ describe('GET /experiments', () => { }); }); + it('bumps the screen share config version on every admin update without the client sending one', async () => { + const admin = await setUserACLs(harness, await createTestAccount(harness), [ + AdminACLs.AUTHENTICATE, + AdminACLs.INSTANCE_CONFIG_VIEW, + AdminACLs.INSTANCE_CONFIG_UPDATE, + ]); + + const afterFirst = await createBuilder<{screen_share_delivery: {config_version: number; enabled: boolean}}>( + harness, + admin.token, + ) + .patch('/admin/instance/config') + .body({screen_share_delivery: {enabled: true, rollout_basis_points: 10000}}) + .execute(); + expect(afterFirst.screen_share_delivery).toMatchObject({config_version: 1, enabled: true}); + + const afterSecond = await createBuilder<{screen_share_delivery: {config_version: number; enabled: boolean}}>( + harness, + admin.token, + ) + .patch('/admin/instance/config') + .body({screen_share_delivery: {rollout_salt: 'screen-share-delivery-v2'}}) + .execute(); + expect(afterSecond.screen_share_delivery).toMatchObject({config_version: 2, enabled: true}); + + const afterEmpty = await createBuilder<{screen_share_delivery: {config_version: number; enabled: boolean}}>( + harness, + admin.token, + ) + .patch('/admin/instance/config') + .body({screen_share_delivery: {}}) + .execute(); + expect(afterEmpty.screen_share_delivery).toMatchObject({config_version: 2, enabled: true}); + + const body = await createBuilder(harness, admin.token).get(ENDPOINT).execute(); + expect(body.assignments.screen_share_delivery).toEqual({enabled: true}); + }); + it('leaves the config version alone for an admin update that sets no field', async () => { const admin = await setUserACLs(harness, await createTestAccount(harness), [ AdminACLs.AUTHENTICATE, diff --git a/fluxer_api/src/api/instance/InstanceConfigRepository.test.ts b/fluxer_api/src/api/instance/InstanceConfigRepository.test.ts index 5496482c4..2260a5ec1 100644 --- a/fluxer_api/src/api/instance/InstanceConfigRepository.test.ts +++ b/fluxer_api/src/api/instance/InstanceConfigRepository.test.ts @@ -9,6 +9,10 @@ import { } from '@app/api/instance/InstanceConfigRepository'; import {InMemoryCassandraQueryExecutor} from '@app/api/test/InMemoryCassandraQueryExecutor'; import {MockKVProvider} from '@app/api/test/mocks/MockKVProvider'; +import { + DEFAULT_SCREEN_SHARE_DELIVERY_CONFIG, + type ScreenShareDeliveryConfig, +} from '@fluxer/schema/src/domains/admin/ScreenShareDeliverySchemas'; import { DEFAULT_VOICE_NOISE_SUPPRESSION_CONFIG, type VoiceNoiseSuppressionConfig, @@ -20,6 +24,7 @@ import { import {afterEach, describe, expect, it, vi} from 'vitest'; const VOICE_NOISE_SUPPRESSION_CONFIG_KEY = 'voice_noise_suppression_config'; +const SCREEN_SHARE_DELIVERY_CONFIG_KEY = 'screen_share_delivery_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'; @@ -330,6 +335,70 @@ describe('InstanceConfigRepository', () => { }); }); + it('returns the default screen share delivery config when the key is absent', async () => { + const executor = new CountingInMemoryCassandraQueryExecutor(); + setCassandraQueryExecutorForTesting(executor); + const kvProvider = new MockKVProvider(); + const repository = createRepository(kvProvider); + + await expect(repository.getScreenShareDeliveryConfig()).resolves.toEqual(DEFAULT_SCREEN_SHARE_DELIVERY_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 non-boolean enabled flag', stored: '{"enabled":"yes"}'}, + ])('falls back to the default screen share delivery config for $name', async ({stored}) => { + const executor = new CountingInMemoryCassandraQueryExecutor(); + setCassandraQueryExecutorForTesting(executor); + const kvProvider = new MockKVProvider(); + const repository = createRepository(kvProvider); + + await repository.setConfig(SCREEN_SHARE_DELIVERY_CONFIG_KEY, stored); + + await expect(repository.getScreenShareDeliveryConfig()).resolves.toEqual(DEFAULT_SCREEN_SHARE_DELIVERY_CONFIG); + }); + + it('round-trips a stored screen share delivery config', async () => { + const executor = new CountingInMemoryCassandraQueryExecutor(); + setCassandraQueryExecutorForTesting(executor); + const kvProvider = new MockKVProvider(); + const repository = createRepository(kvProvider); + + const config: ScreenShareDeliveryConfig = { + ...DEFAULT_SCREEN_SHARE_DELIVERY_CONFIG, + enabled: true, + config_version: 5, + rollout_basis_points: 2500, + rollout_salt: 'screen-share-delivery-v2', + included_user_ids: ['1400000000000000001'], + excluded_user_ids: ['1400000000000000002'], + }; + await repository.setScreenShareDeliveryConfig(config); + + await expect(repository.getScreenShareDeliveryConfig()).resolves.toEqual(config); + }); + + it('fills newly added screen share delivery fields from the schema defaults', async () => { + const executor = new CountingInMemoryCassandraQueryExecutor(); + setCassandraQueryExecutorForTesting(executor); + const kvProvider = new MockKVProvider(); + const repository = createRepository(kvProvider); + + await repository.setConfig( + SCREEN_SHARE_DELIVERY_CONFIG_KEY, + JSON.stringify({enabled: true, config_version: 2, rollout_basis_points: 1000}), + ); + + await expect(repository.getScreenShareDeliveryConfig()).resolves.toEqual({ + ...DEFAULT_SCREEN_SHARE_DELIVERY_CONFIG, + enabled: true, + config_version: 2, + rollout_basis_points: 1000, + }); + }); + it('returns the default experiment delivery config when the key is absent', async () => { const executor = new CountingInMemoryCassandraQueryExecutor(); setCassandraQueryExecutorForTesting(executor); @@ -402,6 +471,26 @@ describe('InstanceConfigRepository', () => { }); }); + it('publishes a refresh so another repository observes the screen share delivery config', async () => { + const executor = new CountingInMemoryCassandraQueryExecutor(); + setCassandraQueryExecutorForTesting(executor); + const kvProvider = new MockKVProvider(); + const reader = createRepository(kvProvider); + const writer = createRepository(kvProvider); + + await expect(reader.getScreenShareDeliveryConfig()).resolves.toEqual(DEFAULT_SCREEN_SHARE_DELIVERY_CONFIG); + + await writer.setScreenShareDeliveryConfig({ + ...DEFAULT_SCREEN_SHARE_DELIVERY_CONFIG, + enabled: true, + config_version: 1, + }); + + await vi.waitFor(async () => { + expect(await reader.getScreenShareDeliveryConfig()).toMatchObject({enabled: true, config_version: 1}); + }); + }); + it('uses the registration URL id as the admin-visible registration code', 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 bc335b5b6..448cea819 100644 --- a/fluxer_api/src/api/instance/InstanceConfigRepository.ts +++ b/fluxer_api/src/api/instance/InstanceConfigRepository.ts @@ -28,6 +28,10 @@ import { type GatewayRolloutConfig, GatewayRolloutConfigSchema, } from '@fluxer/schema/src/domains/admin/GatewayRolloutSchemas'; +import { + type ScreenShareDeliveryConfig, + ScreenShareDeliveryConfigSchema, +} from '@fluxer/schema/src/domains/admin/ScreenShareDeliverySchemas'; import { type VoiceNoiseSuppressionConfig, VoiceNoiseSuppressionConfigSchema, @@ -54,6 +58,7 @@ import {z} from 'zod'; const GATEWAY_ROLLOUT_CONFIG_KEY = 'gateway_rollout_config'; const VOICE_NOISE_SUPPRESSION_CONFIG_KEY = 'voice_noise_suppression_config'; +const SCREEN_SHARE_DELIVERY_CONFIG_KEY = 'screen_share_delivery_config'; const EXPERIMENT_DELIVERY_CONFIG_KEY = 'experiment_delivery_config'; const REGISTRATION_CONFIG_KEY = 'registration_config'; const REGISTRATION_URLS_KEY = 'registration_urls'; @@ -339,6 +344,7 @@ type StoredConfigSection = | 'app public' | 'gateway rollout' | 'voice noise suppression' + | 'screen share delivery' | 'experiment delivery' | 'instance policy' | 'integrations' @@ -477,6 +483,10 @@ function parseStoredVoiceNoiseSuppressionConfig(raw: string | null): VoiceNoiseS return parseStoredConfigOrDefault(VoiceNoiseSuppressionConfigSchema, raw, 'voice noise suppression'); } +function parseStoredScreenShareDeliveryConfig(raw: string | null): ScreenShareDeliveryConfig { + return parseStoredConfigOrDefault(ScreenShareDeliveryConfigSchema, raw, 'screen share delivery'); +} + function parseStoredExperimentDeliveryConfig(raw: string | null): ExperimentDeliveryConfig { return parseStoredConfigOrDefault(ExperimentDeliveryConfigSchema, raw, 'experiment delivery'); } @@ -1004,6 +1014,7 @@ export class InstanceConfigRepository { parseStoredGatewayRolloutConfig(snapshot.get(GATEWAY_ROLLOUT_CONFIG_KEY) ?? null), ); parseStoredVoiceNoiseSuppressionConfig(snapshot.get(VOICE_NOISE_SUPPRESSION_CONFIG_KEY) ?? null); + parseStoredScreenShareDeliveryConfig(snapshot.get(SCREEN_SHARE_DELIVERY_CONFIG_KEY) ?? null); parseStoredExperimentDeliveryConfig(snapshot.get(EXPERIMENT_DELIVERY_CONFIG_KEY) ?? null); const policy = parseStoredInstancePolicyConfig(snapshot.get(INSTANCE_POLICY_CONFIG_KEY) ?? null); checkStoredConfig('registration', () => @@ -1085,6 +1096,16 @@ export class InstanceConfigRepository { await this.setConfig(VOICE_NOISE_SUPPRESSION_CONFIG_KEY, JSON.stringify(validated)); } + async getScreenShareDeliveryConfig(): Promise { + const raw = await this.getConfig(SCREEN_SHARE_DELIVERY_CONFIG_KEY); + return parseStoredScreenShareDeliveryConfig(raw); + } + + async setScreenShareDeliveryConfig(config: ScreenShareDeliveryConfig): Promise { + const validated = validateStoredConfig(ScreenShareDeliveryConfigSchema, config, 'screen share delivery'); + await this.setConfig(SCREEN_SHARE_DELIVERY_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 16cdae9f8..782ee1dd2 100644 --- a/fluxer_api/src/api/openapi/openapi.json +++ b/fluxer_api/src/api/openapi/openapi.json @@ -27182,7 +27182,8 @@ "assignments": { "type": "object", "properties": { - "voice_noise_suppression": {"$ref": "#/components/schemas/VoiceNoiseSuppressionAssignmentResponse"} + "voice_noise_suppression": {"$ref": "#/components/schemas/VoiceNoiseSuppressionAssignmentResponse"}, + "screen_share_delivery": {"$ref": "#/components/schemas/ScreenShareDeliveryAssignmentResponse"} }, "additionalProperties": false } @@ -30686,6 +30687,12 @@ "additionalProperties": false }, "DonationCurrency": {"type": "string", "enum": ["usd", "eur", "brl", "inr", "pln", "try", "sek", "dkk", "nok"]}, + "ScreenShareDeliveryAssignmentResponse": { + "type": "object", + "properties": {"enabled": {"type": "boolean"}}, + "required": ["enabled"], + "additionalProperties": false + }, "VoiceNoiseSuppressionAssignmentResponse": { "type": "object", "properties": { diff --git a/fluxer_app/pkgs/livekit-client/VENDORING.md b/fluxer_app/pkgs/livekit-client/VENDORING.md index 2c2ac31a2..93ba75db6 100644 --- a/fluxer_app/pkgs/livekit-client/VENDORING.md +++ b/fluxer_app/pkgs/livekit-client/VENDORING.md @@ -14,84 +14,6 @@ Every file went through the same mechanical steps, so a fresh upstream tree can 6. The tree is made to pass `tsgo --noEmit` under `fluxer_app/tsconfig.json`. That means `override` modifiers, explicit `return undefined`, typed `let` declarations, no async promise executors, literal enum members and no unused `@ts-expect-error` directives. 7. `@livekit/throws-transformer/throws` imports point at `src/utils/throws.ts`, which copies its type definitions, so the dev-only package is not a dependency. -## Fluxer modifications - -1. **AV1 end-to-end encryption** (`src/e2ee/worker/av1Utils.ts`, `FrameCryptor.ts`, `src/room/track/utils.ts`) - - OBU-level AV1 encryption and decryption with an E2EE metadata OBU. `video/AV1X` maps to `av1`. - -2. **Cryptor context for reused senders** (`src/e2ee/E2eeManager.ts`, `src/e2ee/worker/FrameCryptor.ts`) - - Upstream 2.22 tracks the id of a reused receiver in `E2EE_TRACK_ID` and sends `updateCodec` with `previousTrackId`. Fluxer applies the same to senders, passes the codec and track id from `LocalSenderCreated`, and resets codec detection whenever a cryptor moves to another track id or codec. This replaces the old `updateTrackContext` message and `get/setE2EETransformState`. - -3. **E2EE frame guards** (`src/e2ee/worker/FrameCryptor.ts`, `naluUtils.ts`) - - Trailer, IV, tag and clear-prefix bounds are checked before any view is built, and malformed frames are dropped without ending the transform. NALU clear bytes are clamped to the frame length. H.265 slices keep 3 clear bytes where upstream keeps 2. The SIF trailer check is bounds safe. - -4. **No plaintext before the encryption state is known** (`src/e2ee/worker/FrameCryptor.ts`) - - The encoder drops frames while the participant's encryption state is unknown. Upstream passes them through. Upstream 2.22 already drops them on decode. - -5. **Screen share scalability mode** (`src/room/participant/LocalParticipant.ts`) - - A caller-supplied `scalabilityMode` is kept for screen shares. Upstream forces `L1T3` and `contentHint = 'motion'`. `L3T3_KEY` is only defaulted for cameras, and SVC layers are only sent to the server when an encoding has a scalability mode. - -6. **Encrypted backup codec publishing** (`src/room/participant/LocalParticipant.ts`, `src/e2ee/E2eeManager.ts`) - - Backup codecs are advertised and published while E2EE is on. The simulcast sender emits `LocalSenderCreated` with its codec and track id so it gets its own transform. A failed backup codec publish stops the cloned track and is logged instead of thrown. - -7. **Publisher codec preferences** (`src/room/RTCEngine.ts`) - - `setCodecPreferences()` is applied to publisher transceivers so the browser's SDP follows the selected primary or backup codec. H.264 profiles rank Baseline `42001f` first, then Constrained Baseline `42e01f`, then everything else. Main, High and Constrained High rank last on purpose. - - livekit-server registers H.264 High `640032` on the publisher peer connection but filters it off the subscriber peer connection, and its `CodecParametersFuzzySearch` falls back to a mime-only match. A High publication therefore reaches subscribers under their `42e01f` payload type and decodes to nothing on a Constrained-Baseline-only decoder such as Firefox's OpenH264 GMP. `42001f` is the one profile Chromium's accelerated encoder factory advertises that such a decoder can still handle, because Chromium's VAAPI encoder and OpenH264 both write a Constrained Baseline SPS for `H264PROFILE_BASELINE`. - - The trade is that livekit-server does not register `42001f` either, so Windows and macOS negotiate `42e01f`, which Chromium's accelerated encoder factory does not advertise there (`kPlatformH264CbpEncoding` is off by default on Windows, and `IsH264ConstrainedBaselineProfileAvailableForAcceleratedEncoder` returns false on Apple). Those publishers fall back to software H.264, which is what an unpatched browser does anyway. Linux, ChromeOS and Android keep hardware encoding. - -8. **Media publishing defaults** (`src/room/defaults.ts`, `src/room/utils.ts`, `src/room/track/options.ts`) - - Codec fallback follows actual sender capabilities in the order H.264, VP9, VP8, AV1, HEVC through `supportsVideoCodec()` and `selectPreferredVideoCodec()`. HEVC is never reported on Firefox. Advanced codecs get an H.264 backup simulcast, dynacast is on, DTX is off, degradation preference is `maintain-resolution`, and screen shares default to the `original` preset at 20 Mbps and 60 fps. `musicHighQualityStereo` is 510 kbps. AV1 and HEVC come last because both are opt-in in Fluxer, so a fallback inside `publishTrack` must not land on a codec the user did not enable. - -9. **High-fidelity Opus SDP munging** (`src/room/PCTransport.ts`, `src/room/participant/LocalParticipant.ts`) - - Local offers and remote answers force Opus RED and FEC, 10 ms packet time, no DTX and a 510 kbps maximum average bitrate. `stereo=1` and `sprop-stereo=1` are only added for publications whose `TrackBitrateInfo.stereo` is set and for the subscriber mids the server advertised as stereo. Audio bitrates are registered on every browser, not only Firefox. The initial offer sent with the join request is not munged, as upstream does not munge it either. - -10. **Remote audio volume held at zero** (`src/room/track/RemoteAudioTrack.ts`) - - `attach()`, `connectWebAudio()` and `getVolume()` test `elementVolume !== undefined`, so a track held at `0` stays silent after re-attach. Remote gains above `1.0` rely on the Web Audio `gainNode` branch, so `webAudioMix` must stay on. - -11. **Processor teardown before source stop** (`src/room/track/LocalTrack.ts`) - - `stop()` detaches and destroys the processor before `super.stop()` ends the source track. - -12. **Transactional source and processor swaps** (`src/room/track/LocalTrack.ts`, `LocalVideoTrack.ts`, `LocalAudioTrack.ts`) - - `setMediaStreamTrack()` takes `SetMediaStreamTrackOptions` (`force`, `deferEndedListener`, `preservePreviousTrack`, `isUnmuting`) and restores the previous source, constraints, `enabled` state, listeners, processor and sender when a swap fails. `stageTrackReplacement()` and `commitStagedTrackReplacement()` give a two-phase swap. `runWithTrackChangeLock()` and `stopProcessorIfCurrent()` are public for the app. Secondary simulcast senders get the processed track, and processor install and teardown roll back every sender. Upstream's `onSenderTrackSwapped()` hook runs after a successful `replaceTrack`, `stageTrackReplacement`, `setProcessor`, `stopProcessor` and `stopProcessorIfCurrent`. - -13. **Track bitrate entries are replaced** (`src/room/PCTransport.ts`) - - `setTrackCodecBitrate()` replaces the entry for the same cid or transceiver instead of appending, because `trackBitrates` is never cleared. Start bitrates for every video codec are upstream since 2.22 through `applyVideoStartBitrate()`. - -14. **Subscriber video decoder exclusions** (`src/options.ts`, `src/room/RTCEngine.ts`, `src/room/PCTransportManager.ts`, `src/room/PCTransport.ts`) - - `RoomOptions.subscriberVideoCodecExclusions` removes codecs from receive transceivers with `setCodecPreferences()` before every offer and answer, including the initial offer sent with the join request. Firefox and Safari are skipped. - -15. **ICE diagnostics** (`src/room/PCTransportManager.ts`) - - ICE candidate errors are logged once per transport, code, URL and address until the next ICE restart. The transport connect timeout names each transport's connection, ICE and signalling state. - -16. **Screen share capture options** (`src/room/track/options.ts`, `src/room/track/utils.ts`) - - `ScreenShareCaptureOptions` has `windowAudio`, `monitorTypeSurfaces` and `restrictOwnAudio`. `restrictOwnAudio` and `suppressLocalAudioPlayback` are passed as audio constraints. - -17. **Stats and monitors** (`src/room/stats.ts`, `src/room/track/Track.ts`, `LocalVideoTrack.ts`, `RemoteVideoTrack.ts`, `RemoteTrack.ts`, `LocalAudioTrack.ts`) - - Sender stats have `encoderImplementation` and `powerEfficientEncoder`, receiver stats have `powerEfficientDecoder`. `runMonitor()` skips a stats poll while the previous one is still running. Adaptive stream tracks that are not visible skip receiver stats. `setPublishingLayersForSender` writes `maxFramerate` where upstream writes a misspelt `maxFrameRate`, and `videoLayersFromEncodings` handles an SVC codec without a scalability mode. - -18. **Smaller fixes** (`src/api/SignalClient.ts`, `src/api/utils.ts`, `src/room/Room.ts`, `src/room/timers.ts`, `src/room/utils.ts`, `src/e2ee/worker/e2ee.worker.ts`) - - The abort path passes its reason to `SignalClient.close()` as the reason instead of `updateState`. `handleOnClose` is public so `simulateScenario` needs no suppression. Queue bypass checks no longer log every request. Abort reasons that are numbers, booleans, bigints or symbols become strings. `Room` connect rejections are always `Error` instances. `CriticalTimers` binds the native timers when the module loads. `Future` rejects when its executor throws. The e2ee worker listens with `addEventListener`, and the outgoing data stream sink no longer logs aborts to `console`. - ## Removed upstream code `connectionHelper`, `createLocalScreenTracks`, `getStereoAudioStreamTrack`, `isLocalPub`, the frame metadata worker, `room/token-source/test-tokens.ts`, `utils/subscribeToEvents.ts`, and the `DataTrackPacket`, data track packet extension and `LocalTrackRecorder` exports. `createV0RtcUrl`, `truncateBytes`, `videoQualityForRid` and `STOP_REFETCH_DELAY_MS` are no longer exported. @@ -101,6 +23,6 @@ Every file went through the same mechanical steps, so a fresh upstream tree can 1. Read the upstream changelog for the target version. 2. Run the source transforms on the old tag and on the new tag. Keep the old result as the merge base and the new result as the other side. 3. Strip blank lines from the base, this tree and the new tree, run `git merge-file --diff3 --diff-algorithm=histogram` per file, and put blank lines back from the new tree. Blank-line drift between the trees otherwise turns into conflicts. -4. Resolve conflicts with the modification list above. Where upstream rewrote a function that carries a Fluxer change, start from the upstream function and reapply the change. -5. Diff the result against the transformed new tag after compiling both to JavaScript without types. Every hunk should belong to a modification listed here. +4. Resolve conflicts by starting from the upstream function and reapplying whatever this tree changed. +5. Diff the result against the transformed new tag after compiling both to JavaScript without types. Review every hunk. 6. Run `tsgo --noEmit` under the app tsconfig, `biome check`, `knip` and `pnpm --filter livekit-client test`, then update the version in `package.json` and this file. diff --git a/fluxer_app/pkgs/livekit-client/src/options.ts b/fluxer_app/pkgs/livekit-client/src/options.ts index 75f11d3e7..6b1ab8236 100644 --- a/fluxer_app/pkgs/livekit-client/src/options.ts +++ b/fluxer_app/pkgs/livekit-client/src/options.ts @@ -52,6 +52,8 @@ export interface InternalRoomOptions { singlePeerConnection: boolean; subscriberVideoCodecExclusions?: Array; + screenShareDelivery?: boolean; + h264HardwareProfiles?: ReadonlySet; dataStream?: RoomDataStreamOptions; } export interface RoomDataStreamOptions { diff --git a/fluxer_app/pkgs/livekit-client/src/room/PCTransport.test.ts b/fluxer_app/pkgs/livekit-client/src/room/PCTransport.test.ts index 1670adf31..bcd60a9ee 100644 --- a/fluxer_app/pkgs/livekit-client/src/room/PCTransport.test.ts +++ b/fluxer_app/pkgs/livekit-client/src/room/PCTransport.test.ts @@ -55,44 +55,110 @@ function opusConfig(media: MediaDescription): string { } describe('applyVideoStartBitrate', () => { - it('adds a start bitrate to a non-SVC codec section', () => { - const media = videoMedia('camera-track', [ - {payload: 96, config: 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f'}, - ]); - expect(applyVideoStartBitrate(media, 'camera-track', 'H264', 1000)).toBe(96); - expect(media.fmtp[0]?.config).toBe( - 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f;x-google-start-bitrate=900', + function multiPayloadScreenMedia(): MediaDescription { + return videoMedia( + 'screen-track', + [ + {payload: 116, config: 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f'}, + {payload: 102, config: 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f'}, + {payload: 108, config: 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f'}, + ], + [ + {payload: 116, codec: 'H264'}, + {payload: 117, codec: 'rtx'}, + {payload: 102, codec: 'H264'}, + {payload: 108, codec: 'H264'}, + ], ); + } + + it('adds a start bitrate to a non-SVC codec section', () => { + for (const screenShareDelivery of [false, true]) { + const media = videoMedia('camera-track', [ + {payload: 96, config: 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f'}, + ]); + expect(applyVideoStartBitrate(media, 'camera-track', 'H264', 1000, false, screenShareDelivery)).toBe(96); + expect(media.fmtp[0]?.config).toBe( + 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f;x-google-start-bitrate=900', + ); + } }); - it('caps camera start bitrates but not screen share start bitrates', () => { + it('caps camera start bitrates but not screen share start bitrates while screen share delivery is off', () => { const camera = videoMedia('camera-track', [{payload: 96, config: 'profile-level-id=42e01f'}]); applyVideoStartBitrate(camera, 'camera-track', 'H264', 3000); expect(camera.fmtp[0]?.config).toBe('profile-level-id=42e01f;x-google-start-bitrate=1000'); const screen = videoMedia('screen-track', [{payload: 96, config: 'profile-level-id=42e01f'}]); - applyVideoStartBitrate(screen, 'screen-track', 'H264', 3000, true); - expect(screen.fmtp[0]?.config).toBe('profile-level-id=42e01f;x-google-start-bitrate=2700'); + applyVideoStartBitrate(screen, 'screen-track', 'H264', 6000, true); + expect(screen.fmtp[0]?.config).toBe('profile-level-id=42e01f;x-google-start-bitrate=5400'); + }); + + it('caps camera and screen share start bitrates at their own ceilings', () => { + const camera = videoMedia('camera-track', [{payload: 96, config: 'profile-level-id=42e01f'}]); + applyVideoStartBitrate(camera, 'camera-track', 'H264', 3000, false, true); + expect(camera.fmtp[0]?.config).toBe('profile-level-id=42e01f;x-google-start-bitrate=1000'); + + const screen = videoMedia('screen-track', [{payload: 96, config: 'profile-level-id=42e01f'}]); + applyVideoStartBitrate(screen, 'screen-track', 'H264', 6000, true, true); + expect(screen.fmtp[0]?.config).toBe('profile-level-id=42e01f;x-google-start-bitrate=1500'); + }); + + it('leaves a small screen share start bitrate on the floor while screen share delivery is off', () => { + const screen = videoMedia('screen-track', [{payload: 96, config: 'profile-level-id=42e01f'}]); + applyVideoStartBitrate(screen, 'screen-track', 'H264', 300, true); + expect(screen.fmtp[0]?.config).toBe('profile-level-id=42e01f;x-google-start-bitrate=270'); + }); + + it('keeps a screen share start bitrate above the frame dropper cliff', () => { + const screen = videoMedia('screen-track', [{payload: 96, config: 'profile-level-id=42e01f'}]); + applyVideoStartBitrate(screen, 'screen-track', 'H264', 300, true, true); + expect(screen.fmtp[0]?.config).toBe('profile-level-id=42e01f;x-google-start-bitrate=600'); + }); + + it('stamps only the lead payload type while screen share delivery is off', () => { + const media = multiPayloadScreenMedia(); + expect(applyVideoStartBitrate(media, 'screen-track', 'H264', 6000, true)).toBe(116); + expect(media.fmtp.find((fmtp) => fmtp.payload === 116)?.config).toBe( + 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f;x-google-start-bitrate=5400', + ); + expect(media.fmtp.find((fmtp) => fmtp.payload === 102)?.config).toBe( + 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f', + ); + expect(media.fmtp.find((fmtp) => fmtp.payload === 108)?.config).toBe( + 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f', + ); + }); + + it('stamps every payload type the codec is offered under, not only the lead one', () => { + const media = multiPayloadScreenMedia(); + expect(applyVideoStartBitrate(media, 'screen-track', 'H264', 6000, true, true)).toBe(116); + for (const fmtp of media.fmtp) { + expect(fmtp.config).toContain('x-google-start-bitrate=1500'); + } + expect(media.fmtp.some((fmtp) => fmtp.payload === 117)).toBe(false); }); it('only touches the fmtp line for the matching payload', () => { - const media = videoMedia( - 'screen-track', - [ - {payload: 96, config: 'profile-level-id=42e01f'}, - {payload: 98, config: 'profile-id=0'}, - ], - [ - {payload: 96, codec: 'H264'}, - {payload: 98, codec: 'VP9'}, - ], - ); - applyVideoStartBitrate(media, 'screen-track', 'VP9', 1500, true); - expect(media.fmtp[0]?.config).toBe('profile-level-id=42e01f'); - expect(media.fmtp[1]?.config).toBe('profile-id=0;x-google-start-bitrate=1350'); + for (const screenShareDelivery of [false, true]) { + const media = videoMedia( + 'screen-track', + [ + {payload: 96, config: 'profile-level-id=42e01f'}, + {payload: 98, config: 'profile-id=0'}, + ], + [ + {payload: 96, codec: 'H264'}, + {payload: 98, codec: 'VP9'}, + ], + ); + applyVideoStartBitrate(media, 'screen-track', 'VP9', 1500, true, screenShareDelivery); + expect(media.fmtp[0]?.config).toBe('profile-level-id=42e01f'); + expect(media.fmtp[1]?.config).toBe('profile-id=0;x-google-start-bitrate=1350'); + } }); - it('never appends a second start bitrate', () => { + it('never appends a second start bitrate while screen share delivery is off', () => { const media = videoMedia('camera-track', [ {payload: 96, config: 'profile-level-id=42e01f;x-google-start-bitrate=900'}, ]); @@ -100,11 +166,21 @@ describe('applyVideoStartBitrate', () => { expect(media.fmtp[0]?.config).toBe('profile-level-id=42e01f;x-google-start-bitrate=900'); }); + it('replaces a start bitrate an earlier offer wrote instead of keeping it', () => { + const media = videoMedia('camera-track', [ + {payload: 96, config: 'profile-level-id=42e01f;x-google-start-bitrate=900'}, + ]); + applyVideoStartBitrate(media, 'camera-track', 'H264', 2000, false, true); + expect(media.fmtp[0]?.config).toBe('profile-level-id=42e01f;x-google-start-bitrate=1000'); + }); + it('leaves other tracks and missing codecs alone', () => { - const media = videoMedia('camera-track', [{payload: 96, config: 'profile-level-id=42e01f'}]); - expect(applyVideoStartBitrate(media, 'other-track', 'H264', 2000)).toBeUndefined(); - expect(applyVideoStartBitrate(media, 'camera-track', 'AV1', 2000)).toBe(0); - expect(media.fmtp[0]?.config).toBe('profile-level-id=42e01f'); + for (const screenShareDelivery of [false, true]) { + const media = videoMedia('camera-track', [{payload: 96, config: 'profile-level-id=42e01f'}]); + expect(applyVideoStartBitrate(media, 'other-track', 'H264', 2000, false, screenShareDelivery)).toBeUndefined(); + expect(applyVideoStartBitrate(media, 'camera-track', 'AV1', 2000, false, screenShareDelivery)).toBe(0); + expect(media.fmtp[0]?.config).toBe('profile-level-id=42e01f'); + } }); }); diff --git a/fluxer_app/pkgs/livekit-client/src/room/PCTransport.ts b/fluxer_app/pkgs/livekit-client/src/room/PCTransport.ts index c8f78487c..36d5b4894 100644 --- a/fluxer_app/pkgs/livekit-client/src/room/PCTransport.ts +++ b/fluxer_app/pkgs/livekit-client/src/room/PCTransport.ts @@ -25,6 +25,12 @@ const startBitrateMultiplier = 0.9; const maxStartBitrateKbps = 1000; +const maxScreenShareStartBitrateKbps = 1500; + +const minScreenShareStartBitrateKbps = 600; + +const startBitrateParameter = 'x-google-start-bitrate'; + const debounceInterval = 20; const opusMaxAverageBitrateBps = 510000; @@ -43,32 +49,49 @@ export function applyVideoStartBitrate( codec: string, maxbr: number, isScreenShare = false, + screenShareDelivery = false, ): number | undefined { if (!media.msid?.includes(cid)) { return undefined; } - const codecPayload = media.rtp.find((rtp) => rtp.codec.toUpperCase() === codec.toUpperCase())?.payload ?? 0; - if (codecPayload === 0) { + const codecPayloads = media.rtp + .filter((rtp) => rtp.codec.toUpperCase() === codec.toUpperCase()) + .map((rtp) => rtp.payload); + if (codecPayloads.length === 0 || codecPayloads[0] === 0) { return 0; } const calculatedStartBitrate = Math.round(maxbr * startBitrateMultiplier); - const startBitrate = isScreenShare ? calculatedStartBitrate : Math.min(calculatedStartBitrate, maxStartBitrateKbps); - - const fmtp = media.fmtp.find((entry) => entry.payload === codecPayload); - if (fmtp) { - if (!fmtp.config.includes('x-google-start-bitrate')) { - fmtp.config += `;x-google-start-bitrate=${startBitrate}`; - } - } else { - media.fmtp.push({ - payload: codecPayload, - config: `x-google-start-bitrate=${startBitrate}`, - }); + let startBitrate = Math.min(calculatedStartBitrate, maxStartBitrateKbps); + if (isScreenShare) { + startBitrate = screenShareDelivery + ? Math.max(minScreenShareStartBitrateKbps, Math.min(calculatedStartBitrate, maxScreenShareStartBitrateKbps)) + : calculatedStartBitrate; } - return codecPayload; + if (!screenShareDelivery) { + const codecPayload = codecPayloads[0]; + const fmtp = media.fmtp.find((entry) => entry.payload === codecPayload); + if (fmtp) { + if (!fmtp.config.includes(startBitrateParameter)) { + fmtp.config += `;${startBitrateParameter}=${startBitrate}`; + } + } else { + media.fmtp.push({ + payload: codecPayload, + config: `${startBitrateParameter}=${startBitrate}`, + }); + } + return codecPayload; + } + + for (const payload of codecPayloads) { + const fmtp = ensureFmtp(media, payload); + fmtp.config = setFmtpParameter(fmtp.config, startBitrateParameter, String(startBitrate)); + } + + return codecPayloads[0]; } export const PCEvents = { @@ -120,6 +143,8 @@ export default class PCTransport extends (EventEmitter as new () => TypedEmitter excludedVideoDecoderMimeTypes: Set = new Set(); + private screenShareDelivery: boolean; + onOffer?: (offer: RTCSessionDescriptionInit, offerId: number) => void; onIceCandidate?: (candidate: RTCIceCandidate) => void; @@ -136,9 +161,10 @@ export default class PCTransport extends (EventEmitter as new () => TypedEmitter onTrack?: (ev: RTCTrackEvent) => void; - constructor(config?: RTCConfiguration, loggerOptions: LoggerOptions = {}) { + constructor(config?: RTCConfiguration, loggerOptions: LoggerOptions = {}, screenShareDelivery: boolean = false) { super(); this.loggerOptions = loggerOptions; + this.screenShareDelivery = screenShareDelivery; this.log = getLogger(loggerOptions.loggerName ?? LoggerNames.PCTransport, () => this.logContext); this.iceLog = getLogger(LoggerNames.ICE, () => this.logContext); this.config = config; @@ -386,6 +412,7 @@ export default class PCTransport extends (EventEmitter as new () => TypedEmitter trackbr.codec, trackbr.maxbr, trackbr.isScreenShare, + this.screenShareDelivery, ); if (codecPayload === undefined) { return false; @@ -444,7 +471,10 @@ export default class PCTransport extends (EventEmitter as new () => TypedEmitter for (const transceiver of this.getTransceivers()) { if (transceiver.receiver.track?.kind !== 'video') continue; if ((transceiver as {stopped?: boolean}).stopped) continue; - if (transceiver.direction !== 'recvonly' && transceiver.direction !== 'sendrecv') continue; + const receives = this.screenShareDelivery + ? transceiver.direction === 'recvonly' + : transceiver.direction === 'recvonly' || transceiver.direction === 'sendrecv'; + if (!receives) continue; if (typeof transceiver.setCodecPreferences !== 'function') continue; try { transceiver.setCodecPreferences(allowed); diff --git a/fluxer_app/pkgs/livekit-client/src/room/PCTransportManager.ts b/fluxer_app/pkgs/livekit-client/src/room/PCTransportManager.ts index c79a7b3c7..ed447d98e 100644 --- a/fluxer_app/pkgs/livekit-client/src/room/PCTransportManager.ts +++ b/fluxer_app/pkgs/livekit-client/src/room/PCTransportManager.ts @@ -98,6 +98,7 @@ export class PCTransportManager { loggerOptions: LoggerOptions, rtcConfig?: RTCConfiguration, subscriberVideoCodecExclusions?: Array, + screenShareDelivery: boolean = false, ) { this.loggerOptions = loggerOptions; this.log = getLogger(loggerOptions.loggerName ?? LoggerNames.PCManager, () => this.logContext); @@ -105,15 +106,10 @@ export class PCTransportManager { this.isPublisherConnectionRequired = mode !== 'subscriber-primary'; this.isSubscriberConnectionRequired = mode === 'subscriber-primary'; - this.publisher = new PCTransport(rtcConfig, loggerOptions); + this.publisher = new PCTransport(rtcConfig, loggerOptions, screenShareDelivery); this._mode = mode; if (mode !== 'publisher-only') { - this.subscriber = new PCTransport(rtcConfig, loggerOptions); - if (subscriberVideoCodecExclusions?.length) { - for (const codec of subscriberVideoCodecExclusions) { - this.subscriber.excludedVideoDecoderMimeTypes.add(`video/${codec}`); - } - } + this.subscriber = new PCTransport(rtcConfig, loggerOptions, screenShareDelivery); this.subscriber.onConnectionStateChange = this.updateState; this.subscriber.onIceConnectionStateChange = this.updateState; this.subscriber.onSignalingStatechange = this.updateState; @@ -131,6 +127,13 @@ export class PCTransportManager { }; } + const receivingTransport = screenShareDelivery ? (this.subscriber ?? this.publisher) : this.subscriber; + if (receivingTransport) { + for (const codec of subscriberVideoCodecExclusions ?? []) { + receivingTransport.excludedVideoDecoderMimeTypes.add(`video/${codec}`); + } + } + this.publisher.onConnectionStateChange = this.updateState; this.publisher.onIceConnectionStateChange = this.updateState; this.publisher.onSignalingStatechange = this.updateState; diff --git a/fluxer_app/pkgs/livekit-client/src/room/RTCEngine.test.ts b/fluxer_app/pkgs/livekit-client/src/room/RTCEngine.test.ts index 5b08c8151..c34cbc593 100644 --- a/fluxer_app/pkgs/livekit-client/src/room/RTCEngine.test.ts +++ b/fluxer_app/pkgs/livekit-client/src/room/RTCEngine.test.ts @@ -3,6 +3,7 @@ // SPDX-License-Identifier: Apache-2.0 import {describe, expect, it} from 'vitest'; import type {InternalRoomOptions} from '../options.ts'; +import {EngineEvent} from './events.ts'; import RTCEngine, {selectPublisherCodecPreferences} from './RTCEngine.ts'; function codec( @@ -19,20 +20,51 @@ function codec( } describe('selectPublisherCodecPreferences', () => { - it('offers the profiles a hardware encoder accepts before Constrained Baseline, which is always software on Windows', () => { - const constrainedBaseline = codec( - 'video/H264', - 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f', - ); - const baseline = codec('video/H264', 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f'); - const highProfile = codec('video/H264', 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=64001f'); + const constrainedBaselineLine = 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f'; + const baselineLine = 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f'; + const mainLine = 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f'; + const highLine = 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=64001f'; + + it('keeps Main and Baseline ahead of Constrained Baseline while screen share delivery is off', () => { + const constrainedBaseline = codec('video/H264', constrainedBaselineLine); + const baseline = codec('video/H264', baselineLine); + const highProfile = codec('video/H264', highLine); const rtx = codec('video/rtx'); const preferences = selectPublisherCodecPreferences('h264', [constrainedBaseline, rtx, baseline, highProfile]); expect(preferences).toEqual([highProfile, baseline, constrainedBaseline, rtx]); }); - it('offers High first out of the capabilities Chromium reports, so the only hardware profile this server registers wins', () => { - const capabilities = [ + it('offers High first, then the one profile this server always registers, then the ones it registers nowhere', () => { + const constrainedBaseline = codec('video/H264', constrainedBaselineLine); + const baseline = codec('video/H264', baselineLine); + const highProfile = codec('video/H264', highLine); + const rtx = codec('video/rtx'); + const preferences = selectPublisherCodecPreferences( + 'h264', + [constrainedBaseline, rtx, baseline, highProfile], + true, + ); + expect(preferences).toEqual([highProfile, constrainedBaseline, baseline, rtx]); + }); + + it('leads with Main and then Baseline while screen share delivery is off', () => { + const constrainedBaseline = codec('video/H264', constrainedBaselineLine); + const mainProfile = codec('video/H264', mainLine); + const baseline = codec('video/H264', baselineLine); + const preferences = selectPublisherCodecPreferences('h264', [mainProfile, baseline, constrainedBaseline]); + expect(preferences).toEqual([mainProfile, baseline, constrainedBaseline]); + }); + + it('never leads with Main or Baseline, which this server registers nowhere and deletes from the answer', () => { + const constrainedBaseline = codec('video/H264', constrainedBaselineLine); + const mainProfile = codec('video/H264', mainLine); + const baseline = codec('video/H264', baselineLine); + const preferences = selectPublisherCodecPreferences('h264', [mainProfile, baseline, constrainedBaseline], true); + expect(preferences).toEqual([constrainedBaseline, mainProfile, baseline]); + }); + + function chromiumCapabilities() { + return [ codec('video/H264', 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f'), codec('video/H264', 'level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f'), codec('video/H264', 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f'), @@ -41,7 +73,10 @@ describe('selectPublisherCodecPreferences', () => { codec('video/H264', 'level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=4d001f'), codec('video/H264', 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640034'), ]; - const preferences = selectPublisherCodecPreferences('h264', capabilities); + } + + it('sorts the capabilities Chromium reports by the old table while screen share delivery is off', () => { + const preferences = selectPublisherCodecPreferences('h264', chromiumCapabilities()); expect(preferences.map((entry) => entry.sdpFmtpLine)).toEqual([ 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640034', 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f', @@ -53,16 +88,23 @@ describe('selectPublisherCodecPreferences', () => { ]); }); - it('ranks High, Constrained High, Main and Baseline above Constrained Baseline, whatever level each one carries', () => { - const constrainedBaseline = codec( - 'video/H264', + it('offers High first out of the capabilities Chromium reports, so the only hardware profile this server registers wins', () => { + const preferences = selectPublisherCodecPreferences('h264', chromiumCapabilities(), true); + expect(preferences.map((entry) => entry.sdpFmtpLine)).toEqual([ + 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640034', 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f', - ); - const mainProfile = codec('video/H264', 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f'); - const highProfileLevel31 = codec( - 'video/H264', - 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=64001f', - ); + 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=4d001f', + 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42001f', + 'level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f', + 'level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=4d001f', + 'level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42001f', + ]); + }); + + function levelSpread() { + const constrainedBaseline = codec('video/H264', constrainedBaselineLine); + const mainProfile = codec('video/H264', mainLine); + const highProfileLevel31 = codec('video/H264', highLine); const highProfileLevel51 = codec( 'video/H264', 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640033', @@ -71,6 +113,11 @@ describe('selectPublisherCodecPreferences', () => { 'video/H264', 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640c1f', ); + return {constrainedBaseline, mainProfile, highProfileLevel31, highProfileLevel51, constrainedHigh}; + } + + it('ranks High, Constrained High, Main and Baseline above Constrained Baseline while screen share delivery is off', () => { + const {constrainedBaseline, mainProfile, highProfileLevel31, highProfileLevel51, constrainedHigh} = levelSpread(); const preferences = selectPublisherCodecPreferences('h264', [ mainProfile, highProfileLevel31, @@ -87,15 +134,28 @@ describe('selectPublisherCodecPreferences', () => { ]); }); - it('ranks packetization-mode=1 above packetization-mode=0, which no hardware encoder takes', () => { + it('ranks High and Constrained High above Constrained Baseline, whatever level each one reports', () => { + const {constrainedBaseline, mainProfile, highProfileLevel31, highProfileLevel51, constrainedHigh} = levelSpread(); + const preferences = selectPublisherCodecPreferences( + 'h264', + [mainProfile, highProfileLevel31, highProfileLevel51, constrainedHigh, constrainedBaseline], + true, + ); + expect(preferences).toEqual([ + highProfileLevel31, + highProfileLevel51, + constrainedHigh, + constrainedBaseline, + mainProfile, + ]); + }); + + it('ranks packetization-mode=1 above packetization-mode=0 in both arms, which no hardware encoder takes', () => { const constrainedBaselineMode0 = codec( 'video/H264', 'level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=42e01f', ); - const constrainedBaselineMode1 = codec( - 'video/H264', - 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f', - ); + const constrainedBaselineMode1 = codec('video/H264', constrainedBaselineLine); const highProfileMode0 = codec( 'video/H264', 'level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=640033', @@ -104,18 +164,10 @@ describe('selectPublisherCodecPreferences', () => { 'video/H264', 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640033', ); - const preferences = selectPublisherCodecPreferences('h264', [ - highProfileMode0, - constrainedBaselineMode0, - constrainedBaselineMode1, - highProfileMode1, - ]); - expect(preferences).toEqual([ - highProfileMode1, - constrainedBaselineMode1, - highProfileMode0, - constrainedBaselineMode0, - ]); + const capabilities = [highProfileMode0, constrainedBaselineMode0, constrainedBaselineMode1, highProfileMode1]; + const expected = [highProfileMode1, constrainedBaselineMode1, highProfileMode0, constrainedBaselineMode0]; + expect(selectPublisherCodecPreferences('h264', capabilities)).toEqual(expected); + expect(selectPublisherCodecPreferences('h264', capabilities, true)).toEqual(expected); }); it('puts the chosen codec first and keeps every other codec in browser capability order', () => { @@ -123,12 +175,13 @@ describe('selectPublisherCodecPreferences', () => { const vp8 = codec('video/VP8'); const rtx = codec('video/rtx'); expect(selectPublisherCodecPreferences('vp9', [vp8, rtx, vp9])).toEqual([vp9, vp8, rtx]); + expect(selectPublisherCodecPreferences('vp9', [vp8, rtx, vp9], true)).toEqual([vp9, vp8, rtx]); }); it('keeps the other codecs so a later publication on the same connection can negotiate them', () => { const vp9 = codec('video/VP9'); const av1 = codec('video/AV1'); - const h264 = codec('video/H264', 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f'); + const h264 = codec('video/H264', constrainedBaselineLine); const preferences = selectPublisherCodecPreferences('vp9', [av1, h264, vp9]); expect(preferences.map((entry) => entry.mimeType)).toEqual(['video/VP9', 'video/AV1', 'video/H264']); }); @@ -136,17 +189,65 @@ describe('selectPublisherCodecPreferences', () => { it('ranks the H.264 profiles it leaves behind the chosen codec', () => { const vp8 = codec('video/VP8'); const highProfile = codec('video/H264', 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=640033'); - const constrainedBaseline = codec( - 'video/H264', - 'level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f', - ); - const preferences = selectPublisherCodecPreferences('vp8', [vp8, highProfile, constrainedBaseline]); - expect(preferences).toEqual([vp8, highProfile, constrainedBaseline]); + const constrainedBaseline = codec('video/H264', constrainedBaselineLine); + const capabilities = [vp8, highProfile, constrainedBaseline]; + expect(selectPublisherCodecPreferences('vp8', capabilities)).toEqual([vp8, highProfile, constrainedBaseline]); + expect(selectPublisherCodecPreferences('vp8', capabilities, true, new Set(['42e0']))).toEqual([ + vp8, + constrainedBaseline, + highProfile, + ]); }); it('returns nothing when the sender cannot encode the chosen codec', () => { expect(selectPublisherCodecPreferences('av1', [codec('video/VP8'), codec('video/rtx')])).toEqual([]); }); + + it('ignores the profiles this host measured while screen share delivery is off', () => { + const constrainedBaseline = codec('video/H264', constrainedBaselineLine); + const highProfile = codec('video/H264', highLine); + const capabilities = [highProfile, constrainedBaseline]; + expect(selectPublisherCodecPreferences('h264', capabilities, false, new Set(['42e0']))).toEqual([ + highProfile, + constrainedBaseline, + ]); + }); + + it('only lets a profile this host encodes in hardware outrank Constrained Baseline', () => { + const constrainedBaseline = codec('video/H264', constrainedBaselineLine); + const highProfile = codec('video/H264', highLine); + const capabilities = [highProfile, constrainedBaseline]; + expect(selectPublisherCodecPreferences('h264', capabilities, true, new Set(['42e0']))).toEqual([ + constrainedBaseline, + highProfile, + ]); + expect(selectPublisherCodecPreferences('h264', capabilities, true, new Set(['6400', '42e0']))).toEqual([ + highProfile, + constrainedBaseline, + ]); + }); + + it('falls back to the static order when nothing was measured or nothing is hardware', () => { + const constrainedBaseline = codec('video/H264', constrainedBaselineLine); + const highProfile = codec('video/H264', highLine); + const capabilities = [constrainedBaseline, highProfile]; + expect(selectPublisherCodecPreferences('h264', capabilities, true)).toEqual([highProfile, constrainedBaseline]); + expect(selectPublisherCodecPreferences('h264', capabilities, true, new Set())).toEqual([ + highProfile, + constrainedBaseline, + ]); + }); + + it('keeps packetization-mode=1 ahead of a hardware packetization-mode=0 profile', () => { + const constrainedBaselineMode1 = codec('video/H264', constrainedBaselineLine); + const highProfileMode0 = codec( + 'video/H264', + 'level-asymmetry-allowed=1;packetization-mode=0;profile-level-id=64001f', + ); + expect( + selectPublisherCodecPreferences('h264', [highProfileMode0, constrainedBaselineMode1], true, new Set(['6400'])), + ).toEqual([constrainedBaselineMode1, highProfileMode0]); + }); }); describe('publisher data channels before negotiation', () => { @@ -187,3 +288,66 @@ describe('publisher data channels before negotiation', () => { expect(created).toEqual([]); }); }); + +describe('negotiation aborts', () => { + function negotiableEngine() { + const engine = new RTCEngine({} as InternalRoomOptions); + const controllers: Array = []; + const internals = engine as unknown as { + _isClosed: boolean; + pcManager: unknown; + dataChannels: {hasPublisherChannels: boolean}; + pendingNegotiationAborts: Set<() => void>; + }; + internals._isClosed = false; + internals.dataChannels = {hasPublisherChannels: true}; + internals.pcManager = { + requirePublisher: () => {}, + publisher: { + off: () => {}, + once: () => {}, + getTransceivers: () => [{} as RTCRtpTransceiver], + }, + negotiate: (abortController: AbortController) => + new Promise((_resolve, reject) => { + controllers.push(abortController); + abortController.signal.addEventListener('abort', () => reject(new Error('negotiation aborted')), { + once: true, + }); + }), + }; + return {engine, controllers, pendingAborts: internals.pendingNegotiationAborts}; + } + + it('keeps one listener pair however many negotiations are in flight, and aborts every one', async () => { + const {engine, controllers, pendingAborts} = negotiableEngine(); + const closingListeners = engine.listenerCount(EngineEvent.Closing); + const restartingListeners = engine.listenerCount(EngineEvent.Restarting); + + const pending = Array.from({length: 20}, () => engine.negotiate()); + expect(engine.listenerCount(EngineEvent.Closing)).toBe(closingListeners); + expect(engine.listenerCount(EngineEvent.Restarting)).toBe(restartingListeners); + expect(pendingAborts.size).toBe(20); + + engine.emit(EngineEvent.Closing); + await expect(Promise.all(pending)).resolves.toHaveLength(20); + expect(controllers.every((controller) => controller.signal.aborted)).toBe(true); + expect(pendingAborts.size).toBe(0); + }); + + it('re-arms after a restart so a later negotiation is not aborted on arrival', async () => { + const {engine, controllers, pendingAborts} = negotiableEngine(); + const firstBatch = [engine.negotiate(), engine.negotiate()]; + engine.emit(EngineEvent.Restarting); + await expect(Promise.all(firstBatch)).resolves.toHaveLength(2); + + const afterRestart = engine.negotiate(); + expect(controllers).toHaveLength(3); + expect(controllers[2].signal.aborted).toBe(false); + expect(pendingAborts.size).toBe(1); + + engine.emit(EngineEvent.Restarting); + await expect(afterRestart).resolves.toBeUndefined(); + expect(pendingAborts.size).toBe(0); + }); +}); diff --git a/fluxer_app/pkgs/livekit-client/src/room/RTCEngine.ts b/fluxer_app/pkgs/livekit-client/src/room/RTCEngine.ts index 31eb3be99..fed4fd93f 100644 --- a/fluxer_app/pkgs/livekit-client/src/room/RTCEngine.ts +++ b/fluxer_app/pkgs/livekit-client/src/room/RTCEngine.ts @@ -129,9 +129,18 @@ const h264ProfileRanks = new Map([ ['4200', 3], ['42e0', 4], ]); +const h264DeliveryProfileRanks = new Map([ + ['6400', 0], + ['640c', 1], + ['42e0', 2], + ['4d00', 3], + ['4200', 4], +]); const h264UnrankedProfileScore = 5; const h264MissingProfileScore = 6; +const h264NonHardwareProfilePenalty = 8; const h264PacketizationMode0Score = 10; +const h264DeliveryPacketizationMode0Score = 20; type RtpCodecCapability = RTCRtpCapabilities['codecs'][number] & {sdpFmtpLine?: string}; enum PCState { @@ -250,6 +259,8 @@ export default class RTCEngine extends (EventEmitter as new () => TypedEventEmit private transportConnectingSince?: number; + private pendingNegotiationAborts = new Set<() => void>(); + constructor(private options: InternalRoomOptions) { super(); this.log = getLogger(options.loggerName ?? LoggerNames.Engine, () => this.logContext); @@ -286,6 +297,14 @@ export default class RTCEngine extends (EventEmitter as new () => TypedEventEmit this.client.onRequestResponse = (response) => this.emit(EngineEvent.SignalRequestResponse, response); this.client.onParticipantUpdate = (updates) => this.emit(EngineEvent.ParticipantUpdate, updates); this.client.onJoined = (joinResponse) => this.emit(EngineEvent.Joined, joinResponse); + + const abortPendingNegotiations = () => { + for (const abort of Array.from(this.pendingNegotiationAborts)) { + abort(); + } + }; + this.on(EngineEvent.Closing, abortPendingNegotiations); + this.on(EngineEvent.Restarting, abortPendingNegotiations); } get logContext() { @@ -504,6 +523,7 @@ export default class RTCEngine extends (EventEmitter as new () => TypedEventEmit this.loggerOptions, rtcConfig, this.options.subscriberVideoCodecExclusions, + this.options.screenShareDelivery ?? false, ); } else { this.participantSid = joinResponse.participant?.sid; @@ -517,6 +537,7 @@ export default class RTCEngine extends (EventEmitter as new () => TypedEventEmit this.loggerOptions, rtcConfig, this.options.subscriberVideoCodecExclusions, + this.options.screenShareDelivery ?? false, ); } @@ -1041,7 +1062,12 @@ export default class RTCEngine extends (EventEmitter as new () => TypedEventEmit if (typeof RTCRtpSender === 'undefined' || typeof RTCRtpSender.getCapabilities !== 'function') return; const capabilities = RTCRtpSender.getCapabilities('video'); if (!capabilities) return; - const preferences = selectPublisherCodecPreferences(codec, capabilities.codecs); + const preferences = selectPublisherCodecPreferences( + codec, + capabilities.codecs, + this.options.screenShareDelivery ?? false, + this.options.h264HardwareProfiles, + ); if (preferences.length === 0) { this.log.warn('sender cannot encode the requested codec, leaving the browser order in place', { ...this.logContext, @@ -1583,8 +1609,7 @@ export default class RTCEngine extends (EventEmitter as new () => TypedEventEmit if (this.isClosed) { reject(new NegotiationError('cannot negotiate on closed engine')); } - this.on(EngineEvent.Closing, handleClosed); - this.on(EngineEvent.Restarting, handleClosed); + this.pendingNegotiationAborts.add(handleClosed); this.pcManager.publisher.off(PCEvents.RTPVideoPayloadTypes, this.onRtpMapAvailable); this.pcManager.publisher.once(PCEvents.RTPVideoPayloadTypes, this.onRtpMapAvailable); @@ -1606,8 +1631,7 @@ export default class RTCEngine extends (EventEmitter as new () => TypedEventEmit reject(new Error(String(e))); } } finally { - this.off(EngineEvent.Closing, handleClosed); - this.off(EngineEvent.Restarting, handleClosed); + this.pendingNegotiationAborts.delete(handleClosed); } }); } @@ -1817,17 +1841,36 @@ function getFmtpParameter(sdpFmtpLine: string | undefined, key: string): string return null; } -function getH264PublisherCodecScore(codec: RtpCodecCapability): number { +function getH264PublisherCodecScore( + codec: RtpCodecCapability, + screenShareDelivery: boolean, + hardwareProfiles: ReadonlySet | undefined, +): number { const profileLevelId = getFmtpParameter(codec.sdpFmtpLine, 'profile-level-id'); const packetizationMode = getFmtpParameter(codec.sdpFmtpLine, 'packetization-mode'); - const packetizationScore = packetizationMode === '1' ? 0 : h264PacketizationMode0Score; + const mode0Score = screenShareDelivery ? h264DeliveryPacketizationMode0Score : h264PacketizationMode0Score; + const packetizationScore = packetizationMode === '1' ? 0 : mode0Score; if (!profileLevelId) return packetizationScore + h264MissingProfileScore; - return packetizationScore + (h264ProfileRanks.get(profileLevelId.slice(0, 4)) ?? h264UnrankedProfileScore); + const profile = profileLevelId.slice(0, 4); + if (!screenShareDelivery) { + return packetizationScore + (h264ProfileRanks.get(profile) ?? h264UnrankedProfileScore); + } + const isSoftwareOnly = hardwareProfiles !== undefined && hardwareProfiles.size > 0 && !hardwareProfiles.has(profile); + const hardwareScore = isSoftwareOnly ? h264NonHardwareProfilePenalty : 0; + return packetizationScore + hardwareScore + (h264DeliveryProfileRanks.get(profile) ?? h264UnrankedProfileScore); } -function preferHardwareH264Codecs(codecs: ReadonlyArray): Array { +function preferHardwareH264Codecs( + codecs: ReadonlyArray, + screenShareDelivery: boolean, + hardwareProfiles: ReadonlySet | undefined, +): Array { return codecs - .map((codec, index) => ({codec, index, score: getH264PublisherCodecScore(codec)})) + .map((codec, index) => ({ + codec, + index, + score: getH264PublisherCodecScore(codec, screenShareDelivery, hardwareProfiles), + })) .sort((a, b) => a.score - b.score || a.index - b.index) .map((entry) => entry.codec); } @@ -1835,14 +1878,17 @@ function preferHardwareH264Codecs(codecs: ReadonlyArray): Ar export function selectPublisherCodecPreferences( codec: VideoCodec, codecs: ReadonlyArray, + screenShareDelivery: boolean = false, + h264HardwareProfiles?: ReadonlySet, ): Array { const mimeTypes = new Set(videoCodecMimeTypes[codec]); const selected = codecs.filter((entry) => mimeTypes.has(entry.mimeType.toLowerCase())); if (selected.length === 0) return []; - const preferred = codec === 'h264' ? preferHardwareH264Codecs(selected) : selected; + const preferred = + codec === 'h264' ? preferHardwareH264Codecs(selected, screenShareDelivery, h264HardwareProfiles) : selected; const isH264 = (entry: RtpCodecCapability): boolean => entry.mimeType.toLowerCase() === 'video/h264'; const remaining = codecs.filter((entry) => !mimeTypes.has(entry.mimeType.toLowerCase())); - const rankedH264 = preferHardwareH264Codecs(remaining.filter(isH264)); + const rankedH264 = preferHardwareH264Codecs(remaining.filter(isH264), screenShareDelivery, h264HardwareProfiles); let nextH264 = 0; const rest = remaining.map((entry) => (isH264(entry) ? rankedH264[nextH264++] : entry)); return [...preferred, ...rest]; diff --git a/fluxer_app/pkgs/livekit-client/src/room/Room.ts b/fluxer_app/pkgs/livekit-client/src/room/Room.ts index 81c619ab4..4cdd35068 100644 --- a/fluxer_app/pkgs/livekit-client/src/room/Room.ts +++ b/fluxer_app/pkgs/livekit-client/src/room/Room.ts @@ -63,6 +63,7 @@ import { publishDefaults, roomConnectOptionDefaults, roomOptionDefaults, + screenShareDeliveryPublishDefaults, videoDefaults, } from './defaults.ts'; import {ConnectionError, ConnectionErrorReason, UnexpectedConnectionState, UnsupportedServer} from './errors.ts'; @@ -227,7 +228,7 @@ class Room extends (EventEmitter as new () => TypedEmitter) ...options?.videoCaptureDefaults, }; this.options.publishDefaults = { - ...publishDefaults, + ...(this.options.screenShareDelivery ? screenShareDeliveryPublishDefaults : publishDefaults), ...options?.publishDefaults, }; diff --git a/fluxer_app/pkgs/livekit-client/src/room/defaults.ts b/fluxer_app/pkgs/livekit-client/src/room/defaults.ts index 71a8ce553..2d7a93b72 100644 --- a/fluxer_app/pkgs/livekit-client/src/room/defaults.ts +++ b/fluxer_app/pkgs/livekit-client/src/room/defaults.ts @@ -8,7 +8,7 @@ import {AudioPresets, BackupCodecPolicy, ScreenSharePresets, VideoPresets} from export const defaultVideoCodec = 'h264'; -export const publishDefaults: TrackPublishDefaults = { +export const screenShareDeliveryPublishDefaults: TrackPublishDefaults = { audioPreset: AudioPresets.music, dtx: false, red: true, @@ -18,10 +18,14 @@ export const publishDefaults: TrackPublishDefaults = { videoCodec: defaultVideoCodec, backupCodec: {codec: 'h264'}, backupCodecPolicy: BackupCodecPolicy.SIMULCAST, - degradationPreference: 'maintain-resolution', preConnectBuffer: false, } as const; +export const publishDefaults: TrackPublishDefaults = { + ...screenShareDeliveryPublishDefaults, + degradationPreference: 'maintain-resolution', +}; + export const audioDefaults: AudioCaptureOptions = { deviceId: {ideal: 'default'}, autoGainControl: true, diff --git a/fluxer_app/pkgs/livekit-client/src/room/participant/LocalParticipant.ts b/fluxer_app/pkgs/livekit-client/src/room/participant/LocalParticipant.ts index 69430df2e..40585acb0 100644 --- a/fluxer_app/pkgs/livekit-client/src/room/participant/LocalParticipant.ts +++ b/fluxer_app/pkgs/livekit-client/src/room/participant/LocalParticipant.ts @@ -123,6 +123,11 @@ import { } from './publishUtils.ts'; import type RemoteParticipant from './RemoteParticipant.ts'; +function hasSingleRidlessEncoding(track: LocalVideoTrack): boolean { + const encodings = track.sender?.getParameters().encodings; + return encodings?.length === 1 && !encodings[0].rid; +} + export default class LocalParticipant extends Participant { override audioTrackPublications: Map; @@ -809,6 +814,7 @@ export default class LocalParticipant extends Participant { ...this.roomOptions.publishDefaults, ...options, }; + track.screenShareDelivery = this.roomOptions.screenShareDelivery ?? false; const isStereoInput = ('channelCount' in track.mediaStreamTrack.getSettings() && track.mediaStreamTrack.getSettings().channelCount === 2) || @@ -1781,7 +1787,14 @@ export default class LocalParticipant extends Participant { if (!pub.videoTrack) { return; } - const newCodecs = await pub.videoTrack.setPublishingCodecs(update.subscribedCodecs); + let subscribedCodecs = update.subscribedCodecs; + if (this.roomOptions.screenShareDelivery && hasSingleRidlessEncoding(pub.videoTrack)) { + subscribedCodecs = subscribedCodecs.filter((codec) => codec.qualities.some((quality) => quality.enabled)); + if (subscribedCodecs.length === 0) { + return; + } + } + const newCodecs = await pub.videoTrack.setPublishingCodecs(subscribedCodecs); for await (const codec of newCodecs) { if (isBackupCodec(codec)) { this.log.debug(`publish ${codec} for ${pub.videoTrack.sid}`, getLogContextFromTrack(pub)); diff --git a/fluxer_app/pkgs/livekit-client/src/room/track/LocalTrack.ts b/fluxer_app/pkgs/livekit-client/src/room/track/LocalTrack.ts index 47b68f539..65d036e69 100644 --- a/fluxer_app/pkgs/livekit-client/src/room/track/LocalTrack.ts +++ b/fluxer_app/pkgs/livekit-client/src/room/track/LocalTrack.ts @@ -41,6 +41,8 @@ export default abstract class LocalTrack { + if (this.screenShareDelivery && this.source === Track.Source.ScreenShare) { + this.log.debug('screen share capture went idle, keeping upstream published', this.logContext); + return; + } await this.pauseUpstream(); }, 5000); diff --git a/fluxer_app/src/features/devtools/utils/DesktopTroubleshootingUtils.ts b/fluxer_app/src/features/devtools/utils/DesktopTroubleshootingUtils.ts index 3a5af10a3..f2ff8542d 100644 --- a/fluxer_app/src/features/devtools/utils/DesktopTroubleshootingUtils.ts +++ b/fluxer_app/src/features/devtools/utils/DesktopTroubleshootingUtils.ts @@ -7,22 +7,34 @@ import type {DesktopTroubleshootingSettings} from '@app/types/electron.d'; const logger = new Logger('DesktopTroubleshootingUtils'); let cachedSettings: DesktopTroubleshootingSettings | null = null; +let pendingPromise: Promise | null = null; + +function fetchSettings(): Promise { + const electronApi = getElectronAPI(); + if (!electronApi?.getDesktopTroubleshootingSettings) return Promise.resolve(null); + return electronApi + .getDesktopTroubleshootingSettings() + .then((settings) => { + cachedSettings = settings; + return settings; + }) + .catch((error) => { + logger.error('Failed to read desktop troubleshooting settings', error); + return null; + }); +} export function getCachedDesktopTroubleshootingSettings(): DesktopTroubleshootingSettings | null { return cachedSettings; } -export async function getDesktopTroubleshootingSettings(): Promise { - const electronApi = getElectronAPI(); - if (!electronApi?.getDesktopTroubleshootingSettings) return null; - try { - const settings = await electronApi.getDesktopTroubleshootingSettings(); - cachedSettings = settings; - return settings; - } catch (error) { - logger.error('Failed to read desktop troubleshooting settings', error); - return null; - } +export function getDesktopTroubleshootingSettings(): Promise { + if (cachedSettings) return Promise.resolve(cachedSettings); + if (pendingPromise) return pendingPromise; + pendingPromise = fetchSettings().finally(() => { + pendingPromise = null; + }); + return pendingPromise; } export async function setDesktopDisableHardwareAcceleration( diff --git a/fluxer_app/src/features/experiment/state/ExperimentAssignments.test.ts b/fluxer_app/src/features/experiment/state/ExperimentAssignments.test.ts index ce7f975bf..9007bc400 100644 --- a/fluxer_app/src/features/experiment/state/ExperimentAssignments.test.ts +++ b/fluxer_app/src/features/experiment/state/ExperimentAssignments.test.ts @@ -6,6 +6,7 @@ import type {VoiceNoiseSuppressionAssignmentResponse} from '@fluxer/schema/src/d import { type ExperimentAssignmentsResponse, INERT_EXPERIMENT_ASSIGNMENTS_RESPONSE, + readScreenShareDeliveryAssignment, readVoiceNoiseSuppressionAssignment, } from '@fluxer/schema/src/domains/experiment/ExperimentSchemas'; import {afterEach, beforeEach, describe, expect, it, vi} from 'vitest'; @@ -122,6 +123,8 @@ describe('ExperimentAssignments cold start', () => { await settle(); expect(ExperimentAssignments.response).toBe(INERT_EXPERIMENT_ASSIGNMENTS_RESPONSE); expect(ExperimentAssignments.response.assignments.voice_noise_suppression).toBeUndefined(); + expect(ExperimentAssignments.response.assignments.screen_share_delivery).toBeUndefined(); + expect(readScreenShareDeliveryAssignment(ExperimentAssignments.response).enabled).toBe(false); }); it('keeps the inert envelope while unauthenticated and retries later', async () => { @@ -167,6 +170,32 @@ describe('ExperimentAssignments response handling', () => { expect(ExperimentAssignments.response).toEqual(CANARY_ENVELOPE); }); + it('adopts a screen share delivery assignment beside the voice one', async () => { + await adopt({ + ...CANARY_ENVELOPE, + assignments: {...CANARY_ENVELOPE.assignments, screen_share_delivery: {enabled: true}}, + }); + expect(readScreenShareDeliveryAssignment(ExperimentAssignments.response).enabled).toBe(true); + expect(readVoiceNoiseSuppressionAssignment(ExperimentAssignments.response)).toEqual(CANARY_ASSIGNMENT); + }); + + it('reads screen share delivery as disabled when the envelope omits it', async () => { + await adopt(CANARY_ENVELOPE); + expect(readScreenShareDeliveryAssignment(ExperimentAssignments.response).enabled).toBe(false); + }); + + it('discards an envelope with a malformed screen share delivery assignment', async () => { + await adopt(CANARY_ENVELOPE); + vi.mocked(http.get).mockResolvedValue( + reply(200, { + ...CANARY_ENVELOPE, + assignments: {...CANARY_ENVELOPE.assignments, screen_share_delivery: {enabled: 'yes'}}, + }), + ); + await vi.advanceTimersByTimeAsync(400_000); + expect(ExperimentAssignments.response).toEqual(CANARY_ENVELOPE); + }); + it('accepts an envelope that carries no voice noise suppression assignment', async () => { await adopt({poll_interval_seconds: 600, poll_jitter_percent: 0, assignments: {}}); expect(ExperimentAssignments.response.assignments.voice_noise_suppression).toBeUndefined(); diff --git a/fluxer_app/src/features/i18n/locales/ar/messages.po b/fluxer_app/src/features/i18n/locales/ar/messages.po index c4337ddc8..e5ebbc912 100644 --- a/fluxer_app/src/features/i18n/locales/ar/messages.po +++ b/fluxer_app/src/features/i18n/locales/ar/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, zero {توسيع (# سطر)} one {توسيع (سطر و msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, zero {توسيع (# صف)} one {توسيع (صف واحد)} two {توسيع (صفان)} few {توسيع (# صفوف)} many {توسيع (# صفًا)} other {توسيع (# صف)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, zero {توسيع # جهاز آخر} one {توسيع جهاز آخر} two {توسيع جهازين آخرين} few {توسيع # أجهزة أخرى} many {توسيع # جهازًا آخر} other {توسيع # جهاز آخر}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, zero {# في المكالمة} one {في المكالم msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, zero {الانضمام إلى مكالمة الفيديو (# مشارك)} one {الانضمام إلى مكالمة الفيديو (مشارك واحد)} two {الانضمام إلى مكالمة الفيديو (مشاركان)} few {الانضمام إلى مكالمة الفيديو (# مشاركين)} many {الانضمام إلى مكالمة الفيديو (# مشاركًا)} other {الانضمام إلى مكالمة الفيديو (# مشارك)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, zero {متابعة مشاهدة # بث وإضافة هذا البث} one {متابعة مشاهدة بث واحد وإضافة هذا البث} two {متابعة مشاهدة بثين وإضافة هذا البث} few {متابعة مشاهدة # بثوث وإضافة هذا البث} many {متابعة مشاهدة # بثًا وإضافة هذا البث} other {متابعة مشاهدة # بث وإضافة هذا البث}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} إطار/ث" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} إطارًا في الثانية" @@ -3590,8 +3590,8 @@ msgstr "السماح لأي شخص يمكنه عرض ملفك الشخصي با #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "السماح بـ AV1 لمشاركة الشاشة" @@ -3649,8 +3649,8 @@ msgstr "السماح لكل المجتمعات" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "السماح بـ H.265 (HEVC) لمشاركة الشاشة" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "تعزيز الصوت" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "تنبيهات جهاز الصوت" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "إرسال الصوت:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "إعدادات الصوت" @@ -4987,9 +4987,9 @@ msgstr "اقتراح الإكمال التلقائي: {label}، {selectedOptionP #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "تلقائي" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "تلقائي ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "التحكم التلقائي في الكسب" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "التمرير التلقائي" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (يتطلب التفعيل)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "معدل البت" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "الإعدادات الإقليمية للمتصفح: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "تضخيم ميكروفون المتصفح للمعالجة المخصصة" @@ -6483,15 +6483,15 @@ msgstr "فشل التحقق من الكابتشا. حاول مرة أخرى." msgid "Capture" msgstr "التقاط" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "التقاط صوت التطبيق" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "التقاط صوت سطح المكتب" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "التقاط صوت الجهاز" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "تستخدم أجهزة الالتقاط الإعداد المسبق للألعاب." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "التقاط صوت النظام بالكامل" @@ -7637,11 +7637,6 @@ msgstr "اختر لغتك" msgid "Choose your profile accent color" 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "ترميز" @@ -8766,7 +8761,7 @@ msgstr "التركيز على مربع الرسالة" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "تكوين" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "مستوى صوت الاتصال" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "عناصر تحكم مستوى صوت الاتصال" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "فلترة المحتوى" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "نوع المحتوى" @@ -10594,7 +10589,7 @@ msgstr "حاليًا: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "مخصص" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "معالجة صوتية مخصصة" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "لافتة منفصلة" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "التفاصيل" @@ -11880,7 +11875,7 @@ msgid "Device" 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "تنبيهات الجهاز" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "صوت الجهاز ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "صوت الجهاز فقط" @@ -11904,12 +11899,12 @@ msgstr "تفاصيل الجهاز" msgid "Device revoked" msgstr "تم إلغاء ربط الجهاز" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "مستوى صوت الجهاز" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "الأجهزة" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "اضبط الأرقام على ذوقك" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "تعطيل إشعارات الدفع على الجوال" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "تعطيل النوافذ المنبثقة (صورة داخل صورة) لمشاركات الشاشة" @@ -12629,7 +12624,7 @@ msgstr "عدم اقتراح {deviceName} مرة أخرى" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "تم" @@ -13756,8 +13751,8 @@ msgstr "مفعّل" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "مسار المُرمِّز" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "تفضيل المُرمِّز لعمليات مشاركة الشاشة الجديدة." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "المُرمّز، SVC، وإعدادات البت المسبقة" @@ -15616,7 +15611,7 @@ msgstr "إطار" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "معدل الإطارات" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "أغلق {productName} تمامًا ثم أعد تشغيله حتى يطبّق macOS هذا الإذن." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "التحكم في الكسب" @@ -15946,7 +15941,7 @@ msgstr "زر Y / المثلث في يد التحكم" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "ألعاب" @@ -16451,7 +16446,7 @@ msgstr "تم منح {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "يمنح جميع الأذونات ويتجاوز قيود القنوات. إذن حساس للغاية." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "تحديد دقيق" @@ -16629,13 +16624,8 @@ msgstr "تم تحديث المجموعة" msgid "Grouping" 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (يتطلب التفعيل)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "قد يتسبب تسريع الجهاز في حدوث أخطاء في العرض مع النوافذ الشفافة. جرّب --disable-gpu إذا رأيت وميضًا أو تشويشًا." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "مرمز الأجهزة" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "ساعد في ترجمة {PRODUCT_NAME} إلى لغتك على <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "إخفاء القنوات المكتومة افتراضيًا؟" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "إخفاء الصورة المصغرة لمعاينة البث الخاص بي" @@ -17014,7 +17004,7 @@ msgstr "إخفاء كلمة المرور" msgid "Hide picture-in-picture popout?" msgstr "إخفاء نافذة \"صورة داخل صورة\" المنبثقة؟" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "إخفاء صورة المعاينة المصغرة" @@ -17417,11 +17407,11 @@ msgstr "تجاهل" msgid "Ignore friend request" msgstr "تجاهل طلب الصداقة" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "تجاهل الأجهزة المادية" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "تجاهل وسائط الإدخال" @@ -17452,7 +17442,7 @@ msgstr "هل تريد تجاهل طلب الصداقة من {displayName}؟" msgid "Ignore this channel's slowmode cooldown." msgstr "تجاهل فترة انتظار الوضع البطيء في هذه القناة." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "تجاهل الأجهزة الافتراضية" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "ترتيب الطبقات" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "استخدام الطبقات مع AV1 وVP9 عند توفرهما." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "أقصى حماية للمساحات الملائمة للعائلة" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "قد يسبب مشكلات توافق لدى المشاهدين. نعمل على تحسين ذلك." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "تضخيم الميكروفون" @@ -21318,7 +21308,7 @@ msgstr "الأكثر صلة" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "ميكروفون جديد" @@ -22830,11 +22820,11 @@ msgstr "لم يتم العثور على مستخدم باسم المستخدم msgid "No users are currently banned from this community." msgstr "لا يوجد مستخدمون محظورون حاليًا في هذا المجتمع." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "لا يوجد مستخدمون متاحون" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "لم يتم العثور على مستخدمين" @@ -23313,7 +23303,7 @@ msgstr "ينطبق على الشاشات العريضة فقط." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "يتم قبول بطاقات الائتمان فقط. لا يمكن استخدام بطاقات الخصم والبطاقات مسبقة الدفع في التحقق من المحتوى للبالغين." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "مكبرات الصوت الافتراضية فقط" @@ -23361,7 +23351,7 @@ msgstr "لا تشغّل هنا إلا التعليمات البرمجية الت msgid "Only show message previews for DMs with unread messages" msgstr "إظهار معاينات الرسائل فقط للرسائل المباشرة التي تحتوي على رسائل غير مقروءة" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "مكبرات الصوت فقط" @@ -23901,21 +23891,6 @@ msgstr "افتح تطبيق الرسائل على هاتفك وابدأ رسال msgid "Open your settings" msgstr "فتح إعداداتك" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "ترميز OpenH264 البرمجي على نظام Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "برنامج ترميز الفيديو OpenH264" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "برنامج ترميز الفيديو OpenH264 مقدم من Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "إيقاف الدعوات مؤقتًا؟ لن يتمكن المستخدمون الجدد من الانضمام عبر روابط الدعوة حتى تعيد تمكينها. لن يتأثر الأعضاء الحاليون." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "إيقاف معاينة مشاركة الشاشة مؤقتًا في الخلفية" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "مستوى الصوت لكل جهاز" @@ -24776,7 +24751,7 @@ msgid "Picture" 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "صورة داخل صورة" @@ -24906,7 +24881,7 @@ msgid "Pins popout" 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PiP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "تفضيل الإشارة بـ @" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "تفضيل مرمز الأجهزة" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "تفضيل عدم الإشارة بـ @" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "تفضيل المرمز البرمجي" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "التفضيلات..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "برنامج الترميز المفضل لمشاركة الشاشة" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "معاينة الصوت" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "سلوك المعاينة والنافذة المنفصلة والصورة المصغرة للبث" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "مربع حوار" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "السؤال عند توصيل أجهزة صوت جديدة" @@ -27659,7 +27634,7 @@ msgstr "يعتمد تغيير الحجم والتكبير ومحاذاة الن #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "الدقة" @@ -28352,7 +28327,7 @@ msgstr "مطلوب إذن تسجيل الشاشة" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "مشاركة الشاشة" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "تعذّر بدء صوت مشاركة الشاشة" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "برنامج ترميز مشاركة الشاشة" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "عناصر التحكم في مُرمِّز مشاركة الشاشة" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "انتهت مشاركة الشاشة" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "تستخدم مشاركة الشاشة الترميز البرمجي ({codec}). قد تنخفض الجودة ويزداد استخدام وحدة المعالجة المركزية. قد لا تدعم وحدة معالجة الرسومات لديك الترميز عبر العتاد لبرنامج الترميز هذا." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "معاينة مشاركة الشاشة" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "سلوك معاينة مشاركة الشاشة" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "ترميز مشاركة الشاشة" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "مشاركة الشاشات والنوافذ." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "مشاركة صوت البث" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "مشاركة معلومات شخصية" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "نص حاد بدقة 720 بكسل، حتى 30 إطارًا في الثانية" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "نص حاد بدقة تصل إلى 4K، وما يصل إلى 15 إطارًا في الثانية" @@ -30327,7 +30302,7 @@ msgstr "إظهار Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "إظهار تنبيهات الأجهزة الجديدة" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "عرض كلمة المرور" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "إظهار عناصر تحكم مستوى صوت المشاركين لكل جهاز في قوائم الصوت" @@ -30662,7 +30637,7 @@ msgstr "مكالمات صامتة" msgid "Silent calls from everyone" msgstr "مكالمات صامتة من الجميع" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "صامت عندما لا يحتوي جهاز الالتقاط على مدخل صوتي خاص به" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "وضع المجتمع الواحد" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "طبقة واحدة" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "وجوه مبتسمة" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "سلس بدقة 30 إطارًا في الثانية وبدقة تصل إلى 720 بكسل" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "معدل 60 إطارًا في الثانية بسلاسة بدقة تصل إلى 1440 بكسل" @@ -31028,7 +31003,7 @@ msgid "Social" 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "مرمز برمجي" @@ -31258,7 +31233,7 @@ msgstr "الأصوات" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "المصدر" @@ -32047,13 +32022,13 @@ msgstr "تم إخفاء البث" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "معاينة البث" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "جودة البث" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "البث" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "وضع البث" @@ -32280,12 +32255,12 @@ msgid "Suspend" 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "وضع SVC" @@ -32559,7 +32534,7 @@ msgstr "إعلانات النظام من فريق {productName}. لا يمكنك #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "الجهاز الافتراضي للنظام" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "رابط القالب" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "طبقات زمنية" @@ -32837,7 +32812,7 @@ msgstr "تكساس" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "نص" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "توقف مصدر مشاركة الشاشة عن إرسال الفيديو، لذلك أُوقفت مشاركة شاشتك." @@ -35774,7 +35749,7 @@ msgstr "مجموعة بلا اسم" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "جهاز إدخال بلا اسم" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "يُستخدم في المجتمعات التي ليس لديها صوت خاص بها." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "مُستخدم في الوضع المخصص. الإعدادات المسبقة للألعاب ومشاركة الشاشة تحدد تلميحها الخاص." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "ترميز الفيديو" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "برنامج ترميز الفيديو لمشاركة الشاشة" @@ -37912,7 +37887,7 @@ msgid "Volume mute" 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "أشرطة مستوى الصوت" @@ -38466,6 +38441,11 @@ msgstr "ما الذي تريد تضمينه" msgid "What to search for." msgstr "ما تريد البحث عنه." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "ما تشاركه لا يتم تحديثه" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "تحتاج جودة الشاشة المحفوظة لديك بدقة {savedResolution} بمعدل إطارات {savedFrameRate} إطارًا في الثانية إلى {premiumProductName}، لذا تستخدم المشاركات دقة {resolution} بمعدل إطارات {frameRate} إطارًا في الثانية." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "تعذّر نشر مشاركة شاشتك باستخدام برنامج ترميز فيديو متوافق، لذا تم إيقافها. حاول المشاركة مرة أخرى." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "تم تعيين عنوان URL المخصص إلى {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." 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 a0914843e..256e1e7f7 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 @@ -3144,6 +3144,9 @@ { "msgid": "What to search for." }, + { + "msgid": "What you're sharing isn't updating" + }, { "msgid": "Who can join" }, diff --git a/fluxer_app/src/features/i18n/locales/bg/messages.po b/fluxer_app/src/features/i18n/locales/bg/messages.po index a3b9f9eba..5e91fcefd 100644 --- a/fluxer_app/src/features/i18n/locales/bg/messages.po +++ b/fluxer_app/src/features/i18n/locales/bg/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Разгъване (# ред)} other {Разгъв msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Разгъване (# ред)} other {Разгъване (# реда)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Разгъване на # друго устройство} other {Разгъване на # други устройства}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {В разговор} other {# в разговор}} msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Присъединяване към видеоразговор (# участник)} other {Присъединяване към видеоразговор (# участници)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {Продължи да гледаш # поток и добави този} other {Продължи да гледаш # потока и добави този}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} FPS" @@ -3590,8 +3590,8 @@ msgstr "Позволява на всеки, който може да вижда #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Разрешаване на AV1 за споделяне на екрана" @@ -3649,8 +3649,8 @@ msgstr "Разрешаване за всички общности" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Разрешаване на H.265 (HEVC) за споделяне на екран" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Усилване на звука" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Предупреждения за аудиоустройства" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Изпращане на аудио:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Настройки на звука" @@ -4987,9 +4987,9 @@ msgstr "Предложение за автоматично довършване: #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Автоматично" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Автоматично ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Автоматичен контрол на усилването" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Автоматично превъртане" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (изисква активиране)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Битрейт" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Час според настройките на браузъра: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Усилване на микрофона в браузъра за персонализирана обработка" @@ -6483,15 +6483,15 @@ msgstr "Проверката с CAPTCHA не бе успешна. Опитай msgid "Capture" msgstr "Запис" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Запис на звука от приложението" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Запис на звука от работния плот" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Запис на звука от устройството" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Устройствата за заснемане използват предварителната настройка „Игри“." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Запис на целия системен звук" @@ -7637,11 +7637,6 @@ msgstr "Избери език" msgid "Choose your profile accent color" 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Кодек" @@ -8766,7 +8761,7 @@ msgstr "Фокус на текстовото поле" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Конфигуриране" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Сила на звука на връзката" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Управление на силата на звука по връзки" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Филтриране на съдържание" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Подсказка за съдържанието" @@ -10594,7 +10589,7 @@ msgstr "В момента: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "По избор" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Персонализирана обработка на глас" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Разкачен банер" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Детайл" @@ -11880,7 +11875,7 @@ msgid "Device" 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Предупреждения за устройства" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Аудио на устройството ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Само аудио от устройството" @@ -11904,12 +11899,12 @@ msgstr "Подробности за устройството" msgid "Device revoked" msgstr "Достъпът на устройството е отнет" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Сила на звука на устройството" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Устройства" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Задай свои стойности" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Изключване на мобилните push известия" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Изключване на изскачащия прозорец „картина в картината“ за споделяне на екран" @@ -12629,7 +12624,7 @@ msgstr "Не предлагай {deviceName} отново" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Готово" @@ -13756,8 +13751,8 @@ msgstr "Включено" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Път на енкодера" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Предпочитан енкодер за нови споделяния на екрана." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Кодер, SVC и битрейт предварителни настройки" @@ -15616,7 +15611,7 @@ msgstr "Рамка" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Кадрова честота" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Затвори напълно и рестартирай {productName}, за да приложи macOS това разрешение." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Контрол на усилването" @@ -15946,7 +15941,7 @@ msgstr "Геймпад Y / Триъгълник" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Игри" @@ -16451,7 +16446,7 @@ msgstr "Предоставени {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Предоставя всички разрешения и заобикаля ограниченията на канала. Изключително чувствително разрешение." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Подробен избор" @@ -16629,13 +16624,8 @@ msgstr "Групата е актуализирана" msgid "Grouping" 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (изисква активиране)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "Хардуерното ускорение може да причини проблеми с изобразяването при прозрачни прозорци. Опитай --disable-gpu, ако виждаш трептене или размазване." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Хардуерен енкодер" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Помогни да преведем {PRODUCT_NAME} на твоя език на <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Да се скриват ли заглушените канали по подразбиране?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Скрий миниатюрата за предварителен преглед на моя поток" @@ -17014,7 +17004,7 @@ msgstr "Скрий паролата" msgid "Hide picture-in-picture popout?" msgstr "Да се скрие ли изскачащият прозорец „картина в картината“?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Скрий миниатюрата за предварителен преглед" @@ -17417,11 +17407,11 @@ msgstr "Игнориране" msgid "Ignore friend request" msgstr "Игнориране на покана за приятелство" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Игнориране на хардуерни устройства" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Игнориране на входни медии" @@ -17452,7 +17442,7 @@ msgstr "Да игнорираш ли поканата за приятелств msgid "Ignore this channel's slowmode cooldown." msgstr "Игнориране на бавния режим в този канал." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Игнориране на виртуални" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Наслояване" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Наслояване за AV1 и VP9, когато са налични." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Максимална защита за пространства, подходящи за семейството" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Може да причини проблеми със съвместимостта при зрителите. Работим по подобряването на това." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Усилване на микрофона" @@ -21318,7 +21308,7 @@ msgstr "Най-подходящи" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Нов микрофон" @@ -22830,11 +22820,11 @@ msgstr "Няма потребител с това потребителско и msgid "No users are currently banned from this community." msgstr "В момента няма забранени потребители в тази общност." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Няма налични потребители" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Няма намерени потребители" @@ -23313,7 +23303,7 @@ msgstr "Прилага се само на широки екрани." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Приемат се само кредитни карти. Дебитните и предплатените карти не могат да се използват за проверката за съдържание за възрастни." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Само високоговорители по подразбиране" @@ -23361,7 +23351,7 @@ msgstr "Изпълнявай код тук само ако разбираш то msgid "Only show message previews for DMs with unread messages" msgstr "Показване на визуализации само за DM с непрочетени съобщения" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Само високоговорители" @@ -23901,21 +23891,6 @@ msgstr "Отвори приложението за съобщения на те msgid "Open your settings" msgstr "Отваряне на настройките" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "Софтуерен кодек OpenH264 за Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "Видеокодек OpenH264" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "Видеокодек OpenH264, предоставен от Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Да спра ли поканите? Новите потребители няма да могат да се присъединяват чрез линкове за покани, докато не ги активираш отново. Това няма да засегне съществуващите членове." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Пауза на прегледа на споделения от мен екран във фонов режим" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Сила на звука за всяко устройство" @@ -24776,7 +24751,7 @@ msgid "Picture" 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Картина в картината" @@ -24906,7 +24881,7 @@ msgid "Pins popout" 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "Картина в картината" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Предпочитам @споменаване" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Предпочитане на хардуер" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Предпочитам без @споменаване" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Предпочитане на софтуер" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Предпочитания..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Предпочитан кодек за споделяне на екран" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Преглед на звука" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Преглед, изскачащ прозорец и поведение на миниатюрите на стрийма" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Подкана" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Показване на подкана при нови аудиоустройства" @@ -27659,7 +27634,7 @@ msgstr "Преоразмеряването, максимизирането и п #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Разделителна способност" @@ -28352,7 +28327,7 @@ msgstr "Изисква се разрешение за запис на екран #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Споделяне на екран" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "Аудиото за споделяне на екрана не можа да стартира" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Кодек за споделяне на екран" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Контроли за кодиране на споделяне на екрана" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Споделянето на екрана приключи" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "Споделянето на екрана използва софтуерно кодиране ({codec}). Качеството може да е намалено, а използването на процесора да се увеличи. Графичният ти процесор може да не поддържа хардуерно кодиране за този кодек." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Визуализация на споделен екран" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Поведение при предварителен преглед на споделянето на екрана" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Кодек за споделяне на екран" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Споделяй екрани и прозорци." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Споделяне на звука от стрийма" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Споделяне на лична информация" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Ясен текст на 720p, до 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Ясен текст до 4K, до 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "Показване на Неко" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Показване на известия за нови устройства" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Покажи паролата" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Показване на плъзгачи за силата на звука на участниците за всяко устройство в гласовите менюта" @@ -30662,7 +30637,7 @@ msgstr "Безшумни повиквания" msgid "Silent calls from everyone" msgstr "Безшумни повиквания от всички" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Тихо, когато устройството за заснемане няма собствен аудио вход" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Режим на една общност" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Един слой" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Емотикони" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Гладко 30 FPS при до 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Плавно 60 FPS при резолюция до 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Софтуерен енкодер" @@ -31258,7 +31233,7 @@ msgstr "Звуци" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Източник" @@ -32047,13 +32022,13 @@ msgstr "Потокът е скрит" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Преглед на потока" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Качество на потока" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Предава на живо" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Режим на стрийминг" @@ -32280,12 +32255,12 @@ msgid "Suspend" 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "Режим SVC" @@ -32559,7 +32534,7 @@ msgstr "Системни съобщения от екипа на {productName}. #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Системно по подразбиране" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "URL на шаблон" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Времеви слоеве" @@ -32837,7 +32812,7 @@ msgstr "Тексас" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Текст" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "Източникът на споделяне на екрана спря да изпраща видео, поради което споделянето на екрана беше прекратено." @@ -35774,7 +35749,7 @@ msgstr "Група без име" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Неименуван вход" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Използва се в общности, които нямат собствен звук." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Използва се в режим „Персонализирано“. Предварителните настройки „Игри“ и „Споделяне на екран“ задават свой собствен намек." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Видеокодек" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Видеокодек за споделяне на екрана" @@ -37912,7 +37887,7 @@ msgid "Volume mute" 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Плъзгачи за сила на звука" @@ -38466,6 +38441,11 @@ msgstr "Какво да включиш" msgid "What to search for." msgstr "Какво да търсиш." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "Това, което споделяте, не се актуализира" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Вашата запазена настройка {savedResolution} при {savedFrameRate} FPS изисква {premiumProductName}, така че споделянията използват {resolution} при {frameRate} FPS." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Споделянето на екрана ти не можа да бъде публикувано със съвместим видео кодек, затова беше спряно. Опитай да споделиш отново." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Персонализираният ти URL адрес е зададен на {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Видеоенкодерът ти спря да кодира кадри, затова споделянето на екрана беше спряно. Опитай да споделиш отново." diff --git a/fluxer_app/src/features/i18n/locales/cs/messages.po b/fluxer_app/src/features/i18n/locales/cs/messages.po index a390caf4b..3e55fc2b0 100644 --- a/fluxer_app/src/features/i18n/locales/cs/messages.po +++ b/fluxer_app/src/features/i18n/locales/cs/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Rozbalit (# řádek)} few {Rozbalit (# řádky)} ma msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Rozbalit (# řádek)} few {Rozbalit (# řádky)} many {Rozbalit (# řádku)} other {Rozbalit (# řádků)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Rozbalit # další zařízení} few {Rozbalit # další zařízení} many {Rozbalit # dalšího zařízení} other {Rozbalit # dalších zařízení}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {V hovoru} other {# v hovoru}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Připojit se k videohovoru (# účastník)} few {Připojit se k videohovoru (# účastníci)} many {Připojit se k videohovoru (# účastníka)} other {Připojit se k videohovoru (# účastníků)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {Dál sledovat # stream a přidat tento} few {Dál sledovat # streamy a přidat tento} many {Dál sledovat # streamu a přidat tento} other {Dál sledovat # streamů a přidat tento}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} snímků/s" @@ -3590,8 +3590,8 @@ msgstr "Povolit všem, kdo si mohou zobrazit váš celý profil, zobrazit také #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Povolit AV1 pro sdílení obrazovky" @@ -3649,8 +3649,8 @@ msgstr "Povolit pro všechny komunity" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Povolit H.265 (HEVC) pro sdílení obrazovky" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Zvýšení hlasitosti zvuku" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Zvukové zařízení" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Upozornění na zvuková zařízení" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Odesílání zvuku:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Nastavení zvuku" @@ -4987,9 +4987,9 @@ msgstr "Návrh automatického doplňování: {label}, {selectedOptionPosition} z #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Automaticky" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Automaticky ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Automatické řízení zesílení" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Automatické posouvání" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (vyžaduje výslovné zapnutí)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Biometrické ověřování" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Přenosová rychlost" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Čas podle nastavení prohlížeče: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Zesílení mikrofonu v prohlížeči pro vlastní zpracování" @@ -6483,15 +6483,15 @@ msgstr "Ověření CAPTCHA se nezdařilo. Zkuste to znovu." msgid "Capture" msgstr "Zachytávání" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Zachytávat zvuk aplikace" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Zachytávat zvuk z počítače" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Zachytávat zvuk zařízení" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Zařízení pro snímání používají předvolbu Hraní her." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Zachytávat zvuk celého systému" @@ -7637,11 +7637,6 @@ msgstr "Vyberte jazyk" msgid "Choose your profile accent color" msgstr "Vyberte barvu zvýraznění profilu" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Kód:" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Kodek" @@ -8766,7 +8761,7 @@ msgstr "Fokus v poli pro psaní zpráv" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Nastavit" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Hlasitost připojení" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Ovládací prvky hlasitosti připojení" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Filtrování obsahu" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Typ obsahu pro kódování" @@ -10594,7 +10589,7 @@ msgstr "Aktuálně: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Vlastní" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Vlastní pozadí videa" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Vlastní zpracování zvuku" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Odpojený banner" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Detail" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Zařízení" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Upozornění na zařízení" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Zvuk zařízení ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Zvuk zařízení" @@ -11904,12 +11899,12 @@ msgstr "Podrobnosti o zařízení" msgid "Device revoked" msgstr "Zařízení odhlášeno" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Výběr zařízení" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Hlasitost zařízení" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Zařízení" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Nastavte si vlastní hodnoty" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Vypnout push oznámení na mobilu" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Vypnout samostatná okna obrazu v obraze pro sdílení obrazovky" @@ -12629,7 +12624,7 @@ msgstr "Už nenavrhovat zařízení {deviceName}" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Hotovo" @@ -13756,8 +13751,8 @@ msgstr "Zapnuto" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Způsob kódování" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Preferovaný enkodér pro nová sdílení obrazovky." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Kodér, SVC a předvolby přenosové rychlosti" @@ -15616,7 +15611,7 @@ msgstr "Rámeček" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Snímková frekvence" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Úplně ukončete a restartujte {productName}, aby systém macOS použil toto oprávnění." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Řízení zesílení" @@ -15946,7 +15941,7 @@ msgstr "Gamepad Y / Trojúhelník" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Hraní" @@ -16451,7 +16446,7 @@ msgstr "Udělena oprávnění {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Uděluje všechna oprávnění a obchází omezení kanálů. Jde o vysoce citlivé oprávnění." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Podrobný výběr" @@ -16629,13 +16624,8 @@ msgstr "Skupina aktualizována" msgid "Grouping" msgstr "Seskupování" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (vyžaduje výslovné zapnutí)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "Hardwarová akcelerace může způsobovat chyby vykreslování s průhlednými okny. Pokud vidíte blikání nebo rozmazání, zkuste --disable-gpu." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Hardwarový enkodér" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Pomozte přeložit {PRODUCT_NAME} do vašeho jazyka na <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Skrýt ztlumené kanály ve výchozím nastavení?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Skrýt náhled mého streamu" @@ -17014,7 +17004,7 @@ msgstr "Skrýt heslo" msgid "Hide picture-in-picture popout?" msgstr "Skrýt obraz v obraze?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Skrýt miniaturu náhledu" @@ -17417,11 +17407,11 @@ msgstr "Ignorovat" msgid "Ignore friend request" msgstr "Ignorovat žádost o přátelství" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Ignorovat hardwarová zařízení" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Ignorovat vstupní média" @@ -17452,7 +17442,7 @@ msgstr "Ignorovat žádost o přátelství od uživatele {displayName}?" msgid "Ignore this channel's slowmode cooldown." msgstr "Ignorovat čekací dobu pomalého režimu v tomto kanálu." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Ignorovat virtuální" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Vrstvení" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Vrstvení pro AV1 a VP9, pokud jsou k dispozici." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Maximální ochrana pro prostory vhodné pro rodiny" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Může způsobit problémy s kompatibilitou u diváků. Pracujeme na jejím vylepšení." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "Přístup k mikrofonu byl odepřen. Povolte jej v nastavení systému a zkuste to znovu." #. 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Zesílení mikrofonu" @@ -21318,7 +21308,7 @@ msgstr "Nejrelevantnější" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "Nové Mexiko" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Nový mikrofon" @@ -22830,11 +22820,11 @@ msgstr "Uživatel s tímto uživatelským jménem nebyl nalezen." msgid "No users are currently banned from this community." msgstr "V této komunitě momentálně nejsou žádní zabanovaní uživatelé." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Žádní uživatelé k dispozici" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Žádní uživatelé nenalezeni" @@ -23313,7 +23303,7 @@ msgstr "Platí pouze na dostatečně širokých obrazovkách." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Přijímány jsou pouze kreditní karty. Debetní a předplacené karty nelze použít k ověření věku pro obsah pro dospělé." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Pouze výchozí reproduktory" @@ -23361,7 +23351,7 @@ msgstr "Spouštějte zde kód, pouze pokud přesně rozumíte tomu, co dělá." msgid "Only show message previews for DMs with unread messages" msgstr "Zobrazovat náhledy zpráv pouze u soukromých konverzací s nepřečtenými zprávami" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Pouze reproduktory" @@ -23901,21 +23891,6 @@ msgstr "Otevřete v telefonu aplikaci pro zprávy a začněte psát novou SMS." msgid "Open your settings" msgstr "Otevřít nastavení" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "Softwarový kodek OpenH264 pro Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "Videokodek OpenH264" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "Videokodek OpenH264 poskytovaný společností Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Pozastavit pozvánky? Noví uživatelé se nebudou moct připojit přes odkazy na pozvánky, dokud je znovu nepovolíte. Stávající členové nebudou ovlivněni." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Pozastavit náhled sdílené obrazovky na pozadí" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Profily pro jednotlivé 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Hlasitost pro jednotlivá zařízení" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Obrázek" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Obraz v obraze" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Samostatné okno připnutých zpráv" #. 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "Obraz v obraze" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Preferovat odpovědi s @zmínkou" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Preferovat hardware" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Preferovat odpovědi bez @zmínky" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Preferovat software" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Předvolby..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Preferovaný kodek pro sdílení obrazovky" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Přehrát zvuk" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Chování náhledů, samostatných oken a miniatur streamů" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Výzva" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Nabídnout přepnutí při připojení nového zvukového zařízení" @@ -27659,7 +27634,7 @@ msgstr "Změna velikosti, maximalizace a přichytávání oken závisí na kompo #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Rozlišení" @@ -28352,7 +28327,7 @@ msgstr "Je potřeba povolit nahrávání obrazovky" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Sdílení obrazovky" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "Zvuk sdílení obrazovky se nespustil" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Kodek sdílení obrazovky" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Ovládací prvky enkodéru pro sdílení obrazovky" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Sdílení obrazovky ukončeno" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "Sdílení obrazovky používá softwarové kódování ({codec}). Kvalita může být snížena a využití CPU zvýšeno. Vaše GPU nemusí podporovat hardwarové kódování pro tento kodek." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Náhled sdílení obrazovky" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Chování náhledu sdílení obrazovky" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Sdílení obrazovky" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Kodek sdílení obrazovky" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Sdílet obrazovky a okna." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Sdílet zvuk streamu" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Sdílení osobních údajů" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Ostrý text v rozlišení 720p, až 30 snímků za sekundu" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Ostrý text až do 4K, až 15 snímků za sekundu" @@ -30327,7 +30302,7 @@ msgstr "Zobrazit Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Zobrazovat upozornění na nová zařízení" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Zobrazit heslo" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Zobrazit posuvníky hlasitosti účastníků pro každé zařízení v nabídkách hlasu" @@ -30662,7 +30637,7 @@ msgstr "Tiché hovory" msgid "Silent calls from everyone" msgstr "Tiché hovory od všech" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Tiché, když zachytávací zařízení nemá vlastní zvukový vstup" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Režim jedné komunity" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Jedna vrstva" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Emotikony" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Plynulé 30 FPS při rozlišení až 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Plynulé 60 FPS až do rozlišení 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" msgstr "Sociální sítě" #. 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Softwarový enkodér" @@ -31258,7 +31233,7 @@ msgstr "Zvuky" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Zdroj" @@ -32047,13 +32022,13 @@ msgstr "Stream skryt" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Náhled streamu" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Kvalita streamu" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Streamování" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Režim streamování" @@ -32280,12 +32255,12 @@ msgid "Suspend" msgstr "Pozastavit" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "Režim SVC" @@ -32559,7 +32534,7 @@ msgstr "Systémová oznámení od zaměstnanců {productName}. Zde nelze odpoví #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Výchozí systémové" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "Adresa URL šablony" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Časové vrstvy" @@ -32837,7 +32812,7 @@ msgstr "Texas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Text" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "Zdroj sdílení obrazovky přestal odesílat video, takže bylo ukončeno sdílení obrazovky." @@ -35774,7 +35749,7 @@ msgstr "Nepojmenovaná skupina" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Nepojmenovaný vstup" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Používá se v komunitách, které nemají vlastní zvuk." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Používá se v režimu Vlastní. Předvolby Hraní her a Sdílení obrazovky nastavují vlastní nápovědu." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" msgstr "Videohovor není k dispozici" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Kodek videa" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Video kodek pro sdílení obrazovky" @@ -37912,7 +37887,7 @@ msgid "Volume mute" msgstr "Ztlumit zvuk" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Posuvníky hlasitosti" @@ -38466,6 +38441,11 @@ msgstr "Co zahrnout" msgid "What to search for." msgstr "Co hledat." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "Sdílený obsah se neaktualizuje" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Vaše uložené rozlišení {savedResolution} s frekvencí {savedFrameRate} snímků za sekundu vyžaduje {premiumProductName}, takže sdílení používá rozlišení {resolution} s frekvencí {frameRate} snímků za sekundu." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Sdílení obrazovky se nepodařilo publikovat s kompatibilním video kodekem, proto bylo zastaveno. Zkuste sdílet znovu." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Váš vlastní odkaz na pozvánku byl nastaven na {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Enkodér videa přestal kódovat snímky, takže sdílení obrazovky bylo ukončeno. Zkuste sdílet znovu." diff --git a/fluxer_app/src/features/i18n/locales/da/messages.po b/fluxer_app/src/features/i18n/locales/da/messages.po index 390b5da0e..60da85124 100644 --- a/fluxer_app/src/features/i18n/locales/da/messages.po +++ b/fluxer_app/src/features/i18n/locales/da/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Vis (# linje)} other {Vis (# linjer)}}" msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Vis (# række)} other {Vis (# rækker)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Vis # anden enhed} other {Vis # andre enheder}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {I opkald} other {# i opkald}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Deltag i videoopkald (# deltager)} other {Deltag i videoopkald (# deltagere)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {Fortsæt med at se # stream, og tilføj denne} other {Fortsæt med at se # streams, og tilføj denne}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} billeder/sek." @@ -3590,8 +3590,8 @@ msgstr "Tillad alle, der kan se din fulde profil, at se din lokale tid på profi #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Tillad AV1 til skærmdeling" @@ -3649,8 +3649,8 @@ msgstr "Tillad for alle fællesskaber" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Tillad H.265 (HEVC) til skærmdeling" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Lydforstærkning" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Lydenhed" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Notifikationer om lydenheder" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Lydafsendelse:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Lydindstillinger" @@ -4987,9 +4987,9 @@ msgstr "Forslag til autoudfyldelse: {label}, {selectedOptionPosition} af {result #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Automatisk" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Automatisk ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Automatisk forstærkningskontrol" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Automatisk rulning" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (kræver tilvalg)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Biometri" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Bitrate" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Tidsformat fra browseren: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Browserens mikrofonforstærkning ved tilpasset lydbehandling" @@ -6483,15 +6483,15 @@ msgstr "Captcha-verificering mislykkedes. Prøv igen." msgid "Capture" msgstr "Optag" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Optag app-lyd" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Optag computerens lyd" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Optag enhedslyd" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Optagelsesenheder bruger Gaming-forudindstillingen." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Optag al systemlyd" @@ -7637,11 +7637,6 @@ msgstr "Vælg dit sprog" msgid "Choose your profile accent color" msgstr "Vælg din profils accentfarve" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Kode:" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Codec" @@ -8766,7 +8761,7 @@ msgstr "Fokus på skrivefelt" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Konfigurer" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Forbindelseslydstyrke" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Lydstyrkekontroller for forbindelsen" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Indholdsfiltrering" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Indholdstype" @@ -10594,7 +10589,7 @@ msgstr "Aktuelt: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Brugerdefineret" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Brugerdefinerede videobaggrunde" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Brugerdefineret lydbehandling" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Frakoblet banner" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Detalje" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Enhed" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Notifikationer om enheder" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Enhedslyd ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Kun lyden fra enheden" @@ -11904,12 +11899,12 @@ msgstr "Enhedsdetaljer" msgid "Device revoked" msgstr "Enhed logget ud" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Valg af enhed" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Enhedens lydstyrke" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Enheder" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Indstil dine egne værdier" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Deaktiver push-notifikationer på mobilen" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Deaktiver separate billede-i-billede-vinduer til skærmdeling" @@ -12629,7 +12624,7 @@ msgstr "Foreslå ikke {deviceName} igen" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Færdig" @@ -13756,8 +13751,8 @@ msgstr "Aktiveret" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Encodersti" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Encoderpræference for nye skærmdelinger." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Encoder, SVC og bitrate-forudindstillinger" @@ -15616,7 +15611,7 @@ msgstr "Ramme" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Billedhastighed" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Luk {productName} helt ned, og genstart den, så macOS kan anvende denne tilladelse." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Forstærkningskontrol" @@ -15946,7 +15941,7 @@ msgstr "Controller Y / Trekant" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Gaming" @@ -16451,7 +16446,7 @@ msgstr "Tildelte {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Giver alle tilladelser og omgår kanalbegrænsninger. Giver omfattende adgang." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Detaljeret valg" @@ -16629,13 +16624,8 @@ msgstr "Gruppe opdateret" msgid "Grouping" msgstr "Gruppering" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (kræver tilvalg)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "Hardwareacceleration kan forårsage gengivelsesfejl med gennemsigtige vinduer. Prøv --disable-gpu, hvis du oplever flimmer eller udtværing." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Hardware-encoder" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Hjælp med at oversætte {PRODUCT_NAME} til dit sprog på <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Skjul som standard kanaler, der er sat på lydløs?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Skjul miniaturebilledet af min stream" @@ -17014,7 +17004,7 @@ msgstr "Skjul adgangskode" msgid "Hide picture-in-picture popout?" msgstr "Skjul billede-i-billede-vinduet?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Skjul miniaturebilledet til forhåndsvisning" @@ -17417,11 +17407,11 @@ msgstr "Ignorer" msgid "Ignore friend request" msgstr "Ignorer venneanmodning" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Ignorer hardwareenheder" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Ignorer inputmedie" @@ -17452,7 +17442,7 @@ msgstr "Ignorer venneanmodningen fra {displayName}?" msgid "Ignore this channel's slowmode cooldown." msgstr "Ignorer ventetiden i langsom tilstand i denne kanal." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Ignorer virtuelle enheder" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Lagdeling" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Lagdeling for AV1 og VP9, når det er tilgængeligt." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Maksimal beskyttelse af familievenlige fællesskaber" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Kan forårsage kompatibilitetsproblemer for seere. Vi arbejder på at forbedre dette." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "Mikrofonadgang blev nægtet. Aktivér den i dine systemindstillinger, og prøv igen." #. 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Mikrofonforstærkning" @@ -21318,7 +21308,7 @@ msgstr "Mest relevant" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "New Mexico" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Ny mikrofon" @@ -22830,11 +22820,11 @@ msgstr "Ingen bruger fundet med det brugernavn." msgid "No users are currently banned from this community." msgstr "Der er ingen brugere, der er udelukket fra dette fællesskab i øjeblikket." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Ingen brugere tilgængelige" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Ingen brugere fundet" @@ -23313,7 +23303,7 @@ msgstr "Gælder kun på brede skærme." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Kun kreditkort accepteres. Debetkort og forudbetalte kort kan ikke bruges til adgangsbekræftelse for indhold for voksne." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Kun standardhøjttalere" @@ -23361,7 +23351,7 @@ msgstr "Kør kun kode her, hvis du forstår præcis, hvad den gør." msgid "Only show message previews for DMs with unread messages" msgstr "Vis kun beskedforhåndsvisninger for DM'er med ulæste beskeder" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Kun højttalere" @@ -23901,21 +23891,6 @@ msgstr "Åbn din telefons beskedapp, og start en ny sms." msgid "Open your settings" msgstr "Åbn dine indstillinger" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "OpenH264-softwarekodek på Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "OpenH264-videokodek" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "OpenH264-videokodek leveret af Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Sæt invitationer på pause? Nye brugere kan ikke blive medlem via invitationslinks, før du aktiverer dem igen. Eksisterende medlemmer påvirkes ikke." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Sæt forhåndsvisning af skærmdeling på pause i baggrunden" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Profiler pr. fællesskab" #. 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Lydstyrke pr. enhed" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Billede" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Billede i billede" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Panel med fastgjorte beskeder" #. 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "Billede i billede" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Foretræk @omtale" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Foretræk hardware" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Foretræk ingen @omtaler" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Foretræk software" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Indstillinger..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Foretrukken kodek til skærmdeling" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Afspil lyd" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Indstillinger for forhåndsvisning, separate vinduer og streamminiaturer" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Prompt" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Vis prompt for nye lydenheder" @@ -27659,7 +27634,7 @@ msgstr "Ændring af størrelse, maksimering og fastgørelse af vinduer afhænger #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Opløsning" @@ -28352,7 +28327,7 @@ msgstr "Skærmoptagelsestilladelse påkrævet" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Skærmdeling" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "Skærmdelingens lyd kunne ikke startes" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Kodek til skærmdeling" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Indstillinger for videokodning ved skærmdeling" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Skærmdeling afsluttet" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "Skærmdeling bruger softwarekodning ({codec}). Kvaliteten kan blive reduceret, og CPU-forbruget kan stige. Din GPU understøtter muligvis ikke hardwarekodning med denne kodek." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Forhåndsvisning af skærmdeling" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Indstillinger for forhåndsvisning af skærmdeling" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Skærmdeling" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Kodek til skærmdeling" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Del skærme og vinduer." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Del lyd fra stream" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Deler personlige oplysninger" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Skarp tekst i 720p, op til 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Skarp tekst op til 4K, op til 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "Vis Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Vis notifikationer om nye enheder" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Vis adgangskode" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Vis lydstyrkeskydere for deltagernes enkelte enheder i talemenuer" @@ -30662,7 +30637,7 @@ msgstr "Lydløse opkald" msgid "Silent calls from everyone" msgstr "Lydløse opkald fra alle" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Stille, når enheden ikke har egen lydinput" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Tilstand for ét fællesskab" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Enkelt lag" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Tekstsmileyer" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Glat 30 FPS ved op til 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Glat 60 FPS ved op til 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" msgstr "Socialt" #. 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Software-encoder" @@ -31258,7 +31233,7 @@ msgstr "Lyde" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Kilde" @@ -32047,13 +32022,13 @@ msgstr "Stream skjult" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Streamforhåndsvisning" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Streamkvalitet" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Streamer" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Streamingtilstand" @@ -32280,12 +32255,12 @@ msgid "Suspend" msgstr "Deaktiver midlertidigt" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "SVC-tilstand" @@ -32559,7 +32534,7 @@ msgstr "Systemmeddelelser fra {productName}-medarbejdere. Du kan ikke svare her. #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Systemstandard" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "Skabelon-URL" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Tidsmæssige lag" @@ -32837,7 +32812,7 @@ msgstr "Texas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Tekst" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "Skærmdelingskilden er stoppet med at sende video, så din skærmdeling blev stoppet." @@ -35774,7 +35749,7 @@ msgstr "Navnløs gruppe" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Unavngivet input" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Bruges i fællesskaber, der ikke har deres egen lyd." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Brugt i Brugerdefineret tilstand. Forudindstillingerne for Spil og Skærmdeling angiver deres eget hint." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" msgstr "Videoopkald er ikke tilgængeligt" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Videokodek" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Videokodek til skærmdeling" @@ -37912,7 +37887,7 @@ msgid "Volume mute" msgstr "Slå lyden fra" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Lydstyrkeskydere" @@ -38466,6 +38441,11 @@ msgstr "Hvad skal medtages" msgid "What to search for." msgstr "Hvad du skal søge efter." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "Det, du deler, opdateres ikke" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Din gemte {savedResolution} med {savedFrameRate} FPS kræver {premiumProductName}, så delinger bruger {resolution} med {frameRate} FPS." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Din skærmdeling kunne ikke sendes med et kompatibelt videokodek, så den blev stoppet. Prøv at dele igen." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Dit brugerdefinerede invitationslink er nu {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Din video-encoder stoppede med at kode billeder, så din skærmdeling blev stoppet. Prøv at dele igen." diff --git a/fluxer_app/src/features/i18n/locales/de/messages.po b/fluxer_app/src/features/i18n/locales/de/messages.po index f568acced..6daae56aa 100644 --- a/fluxer_app/src/features/i18n/locales/de/messages.po +++ b/fluxer_app/src/features/i18n/locales/de/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Ausklappen (# Zeile)} other {Ausklappen (# Zeilen)} msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Ausklappen (# Zeile)} other {Ausklappen (# Zeilen)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {# weiteres Gerät einblenden} other {# weitere Geräte einblenden}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {Im Anruf} other {# im Anruf}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Videoanruf beitreten (# Teilnehmer)} other {Videoanruf beitreten (# Teilnehmer)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {# Stream weiter ansehen und diesen hinzufügen} other {# Streams weiter ansehen und diesen hinzufügen}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} FPS" @@ -3590,8 +3590,8 @@ msgstr "Allen, die dein vollständiges Profil sehen können, erlauben, deine Ort #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "AV1 für Bildschirmfreigabe zulassen" @@ -3649,8 +3649,8 @@ msgstr "Für alle Communitys zulassen" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "H.265 (HEVC) für Bildschirmfreigabe zulassen" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Audio-Boost" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Audiogerät" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Audio-Gerätebenachrichtigungen" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Audio senden:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Audioeinstellungen" @@ -4987,9 +4987,9 @@ msgstr "Vervollständigungsvorschlag: {label}, {selectedOptionPosition} von {res #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Automatisch" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Automatisch ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Automatische Lautstärkeregelung" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Automatisches Scrollen" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (erfordert Opt-in)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Biometrie" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Bitrate" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Zeitformat des Browsers: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Browser-Mikrofonverstärkung für benutzerdefinierte Verarbeitung" @@ -6483,15 +6483,15 @@ msgstr "Captcha-Verifizierung fehlgeschlagen. Bitte versuche es erneut." msgid "Capture" msgstr "Aufnehmen" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "App-Audio aufnehmen" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Desktop-Audio aufnehmen" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Geräteaudio aufnehmen" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Aufnahmegeräte verwenden das Gaming-Preset." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Gesamtes Systemaudio erfassen" @@ -7637,11 +7637,6 @@ msgstr "Sprache auswählen" msgid "Choose your profile accent color" msgstr "Akzentfarbe deines Profils wählen" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Code:" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Codec" @@ -8766,7 +8761,7 @@ msgstr "Fokus auf Nachrichteneingabe" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Konfigurieren" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Verbindungslautstärke" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Verbindungslautstärkeregelung" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Inhaltsfilter" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Inhaltshinweis" @@ -10594,7 +10589,7 @@ msgstr "Aktuell: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Benutzerdefiniert" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Benutzerdefinierte Videohintergründe" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Benutzerdefinierte Sprachsignalverarbeitung" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Abgesetztes Banner" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Details" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Gerät" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Gerätebenachrichtigungen" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Geräteaudio ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Nur Audiogerät" @@ -11904,12 +11899,12 @@ msgstr "Gerätedetails" msgid "Device revoked" msgstr "Gerät entfernt" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Geräteauswahl" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Geräte-Lautstärke" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Geräte" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Eigene Werte festlegen" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Mobile Push-Benachrichtigungen deaktivieren" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Bild-im-Bild-Pop-out für Bildschirmfreigaben deaktivieren" @@ -12629,7 +12624,7 @@ msgstr "{deviceName} nicht mehr vorschlagen" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Fertig" @@ -13756,8 +13751,8 @@ msgstr "Aktiviert" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Encoder-Pfad" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Encoder-Einstellung für neue Bildschirmfreigaben." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Encoder, SVC und Bitraten-Voreinstellungen" @@ -15616,7 +15611,7 @@ msgstr "Rahmen" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Bildrate" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Beende und starte {productName} vollständig neu, damit macOS diese Berechtigung anwendet." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Verstärkungsregelung" @@ -15946,7 +15941,7 @@ msgstr "Gamepad Y / Dreieck" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Gaming" @@ -16451,7 +16446,7 @@ msgstr "{permissions} gewährt" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Gewährt alle Berechtigungen und umgeht Kanalbeschränkungen. Hochsensibel." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Feinauswahl" @@ -16629,13 +16624,8 @@ msgstr "Gruppe aktualisiert" msgid "Grouping" msgstr "Gruppierung" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (erfordert Opt-in)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "Hardwarebeschleunigung kann bei transparenten Fenstern zu Darstellungsfehlern führen. Bitte versuche es mit --disable-gpu, wenn du Flackern oder Schlieren siehst." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Hardware-Encoder" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Hilf auf <0>{I18N_WEBLATE_DOMAIN} mit, {PRODUCT_NAME} in deine Sprache zu übersetzen." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Stummgeschaltete Kanäle standardmäßig ausblenden?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Vorschaubild meines Streams ausblenden" @@ -17014,7 +17004,7 @@ msgstr "Passwort ausblenden" msgid "Hide picture-in-picture popout?" msgstr "Bild-im-Bild-Fenster ausblenden?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Vorschaubild ausblenden" @@ -17417,11 +17407,11 @@ msgstr "Ignorieren" msgid "Ignore friend request" msgstr "Freundschaftsanfrage ignorieren" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Hardwaregeräte ignorieren" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Eingabemedien ignorieren" @@ -17452,7 +17442,7 @@ msgstr "Freundschaftsanfrage von {displayName} ignorieren?" msgid "Ignore this channel's slowmode cooldown." msgstr "Wartezeit des Slow-Modus in diesem Kanal ignorieren." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Virtuelle ignorieren" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Ebenen" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Layering für AV1 und VP9, falls verfügbar." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Maximaler Schutz für familienfreundliche Bereiche" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Kann Kompatibilitätsprobleme für Zuschauer verursachen. Wir arbeiten daran, dies zu verbessern." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "Der Mikrofonzugriff wurde verweigert. Aktiviere ihn in deinen Systemeinstellungen und versuche es erneut." #. 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Mikrofonverstärkung" @@ -21318,7 +21308,7 @@ msgstr "Relevanteste" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "New Mexico" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Neues Mikrofon" @@ -22830,11 +22820,11 @@ msgstr "Kein Nutzer mit diesem Nutzernamen gefunden." msgid "No users are currently banned from this community." msgstr "Derzeit sind keine Nutzer aus dieser Community gebannt." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Keine Benutzer verfügbar" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Keine Benutzer gefunden" @@ -23313,7 +23303,7 @@ msgstr "Gilt nur für breite Bildschirme." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Es werden nur Kreditkarten akzeptiert. Debit- und Prepaid-Karten können für die Altersprüfung für nicht jugendfreie Inhalte nicht verwendet werden." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Nur Standardlautsprecher" @@ -23361,7 +23351,7 @@ msgstr "Führe hier nur Code aus, wenn du genau verstehst, was er bewirkt." msgid "Only show message previews for DMs with unread messages" msgstr "Nachrichtenvorschauen nur für DMs mit ungelesenen Nachrichten anzeigen" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Nur Lautsprecher" @@ -23901,21 +23891,6 @@ msgstr "Öffne die Nachrichten-App deines Smartphones und beginne eine neue SMS. msgid "Open your settings" msgstr "Einstellungen öffnen" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "OpenH264-Softwarecodec für Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "OpenH264-Videocodec" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "OpenH264-Video-Codec von Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Einladungen pausieren? Neue Nutzer können über Einladungslinks nicht beitreten, bis du sie wieder aktivierst. Bestehende Mitglieder sind davon nicht betroffen." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Bildschirmfreigabe-Vorschau im Hintergrund pausieren" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Profile pro 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Lautstärke pro Gerät" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Bild" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Bild-im-Bild" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Pins als Pop-out" #. 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "Bild-im-Bild" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "@-Erwähnung bevorzugen" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Hardware bevorzugen" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Keine @-Erwähnungen bevorzugen" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Software bevorzugen" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Einstellungen..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Bevorzugter Codec für Bildschirmfreigabe" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Ton vorhören" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Vorschau-, Popout- und Stream-Thumbnail-Verhalten" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Eingabeaufforderung" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Bei neuen Audiogeräten nachfragen" @@ -27659,7 +27634,7 @@ msgstr "Größenänderung, Maximierung und Andocken von Fenstern hängen vom Com #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Auflösung" @@ -28352,7 +28327,7 @@ msgstr "Berechtigung zur Bildschirmaufnahme erforderlich" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Bildschirm teilen" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "Bildschirmfreigabe-Audio konnte nicht gestartet werden" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Codec für Bildschirmfreigabe" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Encoder-Einstellungen für die Bildschirmfreigabe" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Bildschirmfreigabe beendet" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "Die Bildschirmfreigabe verwendet Software-Kodierung ({codec}). Die Qualität kann reduziert und die CPU-Auslastung erhöht sein. Deine GPU unterstützt möglicherweise keine Hardware-Kodierung für diesen Codec." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Bildschirmfreigabe-Vorschau" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Verhalten der Bildschirmfreigabe-Vorschau" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Bildschirmfreigabe" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Codec für die Bildschirmfreigabe" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Bildschirme und Fenster teilen." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Stream-Audio teilen" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Teilen persönlicher Informationen" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Scharfer Text in 720p, bis zu 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Scharfer Text mit bis zu 4K, bis zu 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "Neko anzeigen" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Benachrichtigungen für neue Geräte anzeigen" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Passwort anzeigen" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Lautstärkeregler für einzelne Geräte der Teilnehmer in Sprachchat-Menüs anzeigen" @@ -30662,7 +30637,7 @@ msgstr "Lautlose Anrufe" msgid "Silent calls from everyone" msgstr "Lautlose Anrufe von allen" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Stumm, wenn das Aufnahmegerät keinen eigenen Audioeingang hat" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Modus mit einer einzigen Community" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Einzelne Ebene" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Smileys" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Flüssige 30 FPS bei bis zu 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Flüssige 60 FPS bei bis zu 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" msgstr "Soziales" #. 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Software-Encoder" @@ -31258,7 +31233,7 @@ msgstr "Töne" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Quelle" @@ -32047,13 +32022,13 @@ msgstr "Stream ausgeblendet" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Stream-Vorschau" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Streamqualität" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Streamt" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Streaming-Modus" @@ -32280,12 +32255,12 @@ msgid "Suspend" msgstr "Pausieren" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "SVC-Modus" @@ -32559,7 +32534,7 @@ msgstr "Systemankündigungen vom {productName}-Team. Hier kannst du nicht antwor #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Systemstandard" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "Vorlagen-URL" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Zeitliche Ebenen" @@ -32837,7 +32812,7 @@ msgstr "Texas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Text" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "Die Quelle der Bildschirmfreigabe hat keine Videodaten mehr gesendet. Deshalb wurde deine Bildschirmfreigabe beendet." @@ -35774,7 +35749,7 @@ msgstr "Unbenannte Gruppe" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Unbenannte Eingabe" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Wird in Communitys verwendet, die keinen eigenen Ton haben." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Wird im benutzerdefinierten Modus verwendet. Die Voreinstellungen \"Gaming\" und \"Bildschirmfreigabe\" legen ihren eigenen Hinweis fest." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" msgstr "Videoanruf nicht verfügbar" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Video-Codec" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Videocodec für Bildschirmfreigabe" @@ -37912,7 +37887,7 @@ msgid "Volume mute" msgstr "Stummschalten" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Lautstärkeregler" @@ -38466,6 +38441,11 @@ msgstr "Was enthalten sein soll" msgid "What to search for." msgstr "Wonach gesucht werden soll." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "Was du teilst, wird nicht aktualisiert" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Deine gespeicherte {savedResolution} mit {savedFrameRate} FPS benötigt {premiumProductName}, daher werden Shares mit {resolution} mit {frameRate} FPS verwendet." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Deine Bildschirmfreigabe konnte nicht mit einem kompatiblen Videocodec veröffentlicht werden und wurde daher beendet. Versuche es erneut." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Deine Vanity-URL wurde auf {inviteEndpoint}/{vanitySlug} festgelegt" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Dein Video-Encoder hat aufgehört, Frames zu kodieren, daher wurde deine Bildschirmfreigabe beendet. Versuche es erneut." diff --git a/fluxer_app/src/features/i18n/locales/el/messages.po b/fluxer_app/src/features/i18n/locales/el/messages.po index 320f7a313..7d5cb123f 100644 --- a/fluxer_app/src/features/i18n/locales/el/messages.po +++ b/fluxer_app/src/features/i18n/locales/el/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Ανάπτυξη (# γραμμή)} other {Ανάπ msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Ανάπτυξη (# σειρά)} other {Ανάπτυξη (# σειρές)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Ανάπτυξη # άλλης συσκευής} other {Ανάπτυξη # άλλων συσκευών}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {Σε κλήση} other {# σε κλήση}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Συμμετοχή σε βιντεοκλήση (# συμμετέχων)} other {Συμμετοχή σε βιντεοκλήση (# συμμετέχοντες)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {Συνεχίστε να παρακολουθείτε # ροή και προσθέστε αυτήν} other {Συνεχίστε να παρακολουθείτε # ροές και προσθέστε αυτήν}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} καρέ/δευτ" @@ -3590,8 +3590,8 @@ msgstr "Να επιτρέπεται σε οποιονδήποτε μπορεί #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Να επιτρέπεται το AV1 για κοινή χρήση οθόνης" @@ -3649,8 +3649,8 @@ msgstr "Να επιτραπεί για όλες τις κοινότητες" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Να επιτρέπεται η χρήση H.265 (HEVC) για κοινή χρήση οθόνης" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Ενίσχυση ήχου" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Ειδοποιήσεις συσκευής ήχου" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Αποστολή ήχου:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Ρυθμίσεις ήχου" @@ -4987,9 +4987,9 @@ msgstr "Πρόταση αυτόματης συμπλήρωσης: {label}, {sele #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Αυτόματα" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Αυτόματο ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Αυτόματος έλεγχος απολαβής" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Αυτόματη κύλιση" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (απαιτείται ενεργοποίηση)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Ρυθμός μετάδοσης δεδομένων" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Μορφή ώρας του προγράμματος περιήγησης: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Έλεγχος έντασης μικροφώνου του προγράμματος περιήγησης για προσαρμοσμένη επεξεργασία" @@ -6483,15 +6483,15 @@ msgstr "Η επαλήθευση Captcha απέτυχε. Δοκιμάστε ξα msgid "Capture" msgstr "Λήψη" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Λήψη ήχου εφαρμογής" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Λήψη ήχου επιφάνειας εργασίας" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Λήψη ήχου συσκευής" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Οι συσκευές λήψης χρησιμοποιούν την προεπιλογή \"Gaming\"." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Λήψη όλου του ήχου συστήματος" @@ -7637,11 +7637,6 @@ msgstr "Επιλέξτε τη γλώσσα σας" msgid "Choose your profile accent color" 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Κωδικοποιητής" @@ -8766,7 +8761,7 @@ msgstr "Εστίαση στο πεδίο σύνταξης" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Διαμόρφωση" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Ένταση σύνδεσης" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Έλεγχοι έντασης σύνδεσης" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Φιλτράρισμα περιεχομένου" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Τύπος περιεχομένου για κωδικοποίηση" @@ -10594,7 +10589,7 @@ msgstr "Τρέχουσα ρύθμιση: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Προσαρμοσμένο" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Προσαρμοσμένη επεξεργασία φωνής" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Ξεχωριστό banner" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Λεπτομέρεια" @@ -11880,7 +11875,7 @@ msgid "Device" 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Ειδοποιήσεις συσκευής" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Ήχος συσκευής ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Μόνο ήχος συσκευής" @@ -11904,12 +11899,12 @@ msgstr "Λεπτομέρειες συσκευής" msgid "Device revoked" msgstr "Η συσκευή ανακλήθηκε" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Ένταση συσκευής" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Συσκευές" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Ρυθμίστε τα νούμερα όπως θέλετε" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Απενεργοποίηση ειδοποιήσεων push σε κινητό" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Απενεργοποίηση αναδυόμενου παραθύρου εικόνας-σε-εικόνα για την κοινή χρήση οθόνης" @@ -12629,7 +12624,7 @@ msgstr "Να μην προταθεί ξανά η συσκευή {deviceName}" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Τέλος" @@ -13756,8 +13751,8 @@ msgstr "Ενεργοποιημένο" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Τύπος κωδικοποιητή" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Προτιμώμενος κωδικοποιητής για νέα κοινή χρήση οθόνης." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Κωδικοποιητής, SVC και προεπιλογές ρυθμού μετάδοσης" @@ -15616,7 +15611,7 @@ msgstr "Πλαίσιο παραθύρου" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Ρυθμός καρέ" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Τερματίστε πλήρως και επανεκκινήστε το {productName} για να εφαρμόσει το macOS αυτήν την άδεια." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Έλεγχος απολαβής" @@ -15946,7 +15941,7 @@ msgstr "Χειριστήριο Y / Τρίγωνο" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Παιχνίδια" @@ -16451,7 +16446,7 @@ msgstr "Χορηγήθηκαν {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Παρέχει όλα τα δικαιώματα και παρακάμπτει τους περιορισμούς καναλιών. Εξαιρετικά ευαίσθητο." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Λεπτομερής επιλογή" @@ -16629,13 +16624,8 @@ msgstr "Η ομάδα ενημερώθηκε" msgid "Grouping" 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (απαιτεί ενεργοποίηση)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "Η επιτάχυνση υλικού μπορεί να προκαλέσει προβλήματα απεικόνισης με διαφανή παράθυρα. Δοκιμάστε το --disable-gpu αν παρατηρήσετε τρεμόπαιγμα ή μουτζούρες." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Κωδικοποιητής υλικού" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Βοηθήστε στη μετάφραση του {PRODUCT_NAME} στη γλώσσα σας στο <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Να αποκρύπτονται τα κανάλια σε σίγαση από προεπιλογή;" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Απόκρυψη μικρογραφίας προεπισκόπησης της ροής μου" @@ -17014,7 +17004,7 @@ msgstr "Απόκρυψη κωδικού" msgid "Hide picture-in-picture popout?" msgstr "Απόκρυψη αναδυόμενου παραθύρου εικόνας-σε-εικόνα;" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Απόκρυψη μικρογραφίας προεπισκόπησης" @@ -17417,11 +17407,11 @@ msgstr "Αγνόηση" msgid "Ignore friend request" msgstr "Αγνόηση αιτήματος φιλίας" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Παράβλεψη συσκευών υλικού" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Παράβλεψη μέσων εισόδου" @@ -17452,7 +17442,7 @@ msgstr "Να αγνοήσετε το αίτημα φιλίας από τον/τ msgid "Ignore this channel's slowmode cooldown." msgstr "Παράβλεψη της αργής λειτουργίας αυτού του καναλιού." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Παράβλεψη εικονικών συσκευών" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Σειρά επιπέδων" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Χρήση επιπέδων για AV1 και VP9 όταν είναι διαθέσιμα." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Μέγιστη προστασία για χώρους φιλικούς προς την οικογένεια" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Μπορεί να προκαλέσει προβλήματα συμβατότητας στους θεατές. Εργαζόμαστε για να το βελτιώσουμε." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Ένταση μικροφώνου" @@ -21318,7 +21308,7 @@ msgstr "Πιο σχετικό" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Νέο μικρόφωνο" @@ -22830,11 +22820,11 @@ msgstr "Δεν βρέθηκε χρήστης με αυτό το όνομα χρ msgid "No users are currently banned from this community." msgstr "Αυτήν τη στιγμή δεν υπάρχουν αποκλεισμένοι χρήστες σε αυτήν την κοινότητα." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Δεν υπάρχουν διαθέσιμοι χρήστες" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Δεν βρέθηκαν χρήστες" @@ -23313,7 +23303,7 @@ msgstr "Εφαρμόζεται μόνο σε μεγάλες οθόνες." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Γίνονται δεκτές μόνο πιστωτικές κάρτες. Οι χρεωστικές και οι προπληρωμένες κάρτες δεν μπορούν να χρησιμοποιηθούν για τον έλεγχο περιεχομένου ενηλίκων." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Μόνο προεπιλεγμένα ηχεία" @@ -23361,7 +23351,7 @@ msgstr "Εκτελέστε κώδικα εδώ μόνο αν κατανοείτ msgid "Only show message previews for DMs with unread messages" msgstr "Να εμφανίζονται προεπισκοπήσεις μηνυμάτων μόνο για DM με μη αναγνωσμένα μηνύματα" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Μόνο ηχεία" @@ -23901,21 +23891,6 @@ msgstr "Ανοίξτε την εφαρμογή μηνυμάτων του τηλ msgid "Open your settings" msgstr "Άνοιγμα ρυθμίσεων" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "Κωδικοποιητής λογισμικού OpenH264 στο Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "Κωδικοποιητής βίντεο OpenH264" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "Κωδικοποιητής βίντεο OpenH264 που παρέχεται από την Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Παύση προσκλήσεων; Οι νέοι χρήστες δεν θα μπορούν να μπουν μέσω συνδέσμων πρόσκλησης μέχρι να τις ενεργοποιήσετε ξανά. Τα υπάρχοντα μέλη δεν θα επηρεαστούν." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Παύση της προεπισκόπησης κοινής χρήσης οθόνης στο παρασκήνιο" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Ένταση ανά συσκευή" @@ -24776,7 +24751,7 @@ msgid "Picture" 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Εικόνα σε εικόνα" @@ -24906,7 +24881,7 @@ msgid "Pins popout" 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PiP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Προτίμηση αναφοράς με @" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Προτίμηση υλικού" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Προτίμηση χωρίς αναφορά με @" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Προτίμηση λογισμικού" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Προτιμήσεις..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Προτιμώμενος κωδικοποιητής κοινής χρήσης οθόνης" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Προεπισκόπηση ήχου" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Συμπεριφορά προεπισκόπησης, ξεχωριστού παραθύρου και μικρογραφίας ροής" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Προτροπή" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Εμφάνιση ειδοποίησης για νέες συσκευές ήχου" @@ -27659,7 +27634,7 @@ msgstr "Η αλλαγή μεγέθους, η μεγιστοποίηση και #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Ανάλυση" @@ -28352,7 +28327,7 @@ msgstr "Απαιτείται άδεια εγγραφής οθόνης" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Κοινή χρήση οθόνης" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "Ο ήχος της κοινής χρήσης οθόνης δεν μπόρεσε να ξεκινήσει" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Κωδικοποιητής κοινής χρήσης οθόνης" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Έλεγχος κωδικοποιητή κοινής χρήσης οθόνης" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Η κοινή χρήση οθόνης διακόπηκε" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "Η κοινή χρήση οθόνης χρησιμοποιεί κωδικοποίηση λογισμικού ({codec}). Η ποιότητα ενδέχεται να είναι μειωμένη και η χρήση της CPU αυξημένη. Η GPU σας ενδέχεται να μην υποστηρίζει κωδικοποίηση υλικού για αυτόν τον κωδικοποιητή." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Προεπισκόπηση κοινής χρήσης οθόνης" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Συμπεριφορά προεπισκόπησης κοινής χρήσης οθόνης" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Κωδικοποιητής κοινής χρήσης οθόνης" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Κοινή χρήση οθονών και παραθύρων." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Κοινή χρήση ήχου ροής" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Κοινοποίηση προσωπικών πληροφοριών" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Ευκρινές κείμενο στα 720p, έως 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Ευκρινές κείμενο έως 4K, έως 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "Εμφάνιση Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Εμφάνιση ειδοποιήσεων νέων συσκευών" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Εμφάνιση κωδικού" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Εμφάνιση ρυθμιστικών έντασης ήχου συμμετεχόντων ανά συσκευή στα μενού φωνής" @@ -30662,7 +30637,7 @@ msgstr "Σιωπηλές κλήσεις" msgid "Silent calls from everyone" msgstr "Σιωπηλές κλήσεις από όλους" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Σίγαση όταν η συσκευή λήψης δεν έχει δική της είσοδο ήχου" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Λειτουργία μίας κοινότητας" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Μονό επίπεδο" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Φατσούλες" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Ομαλή ροή 30 FPS σε ανάλυση έως 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Ομαλή ροή 60 FPS σε ανάλυση έως 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Κωδικοποιητής λογισμικού" @@ -31258,7 +31233,7 @@ msgstr "Ήχοι" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Πηγή" @@ -32047,13 +32022,13 @@ msgstr "Η ροή είναι κρυφή" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Προεπισκόπηση ροής" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Ποιότητα ροής" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Μετάδοση" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Λειτουργία ροής" @@ -32280,12 +32255,12 @@ msgid "Suspend" 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "Λειτουργία SVC" @@ -32559,7 +32534,7 @@ msgstr "Ανακοινώσεις συστήματος από το προσωπι #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Προεπιλογή συστήματος" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "URL προτύπου" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Χρονικά επίπεδα" @@ -32837,7 +32812,7 @@ msgstr "Τέξας" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Κείμενο" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "Η πηγή κοινής χρήσης οθόνης σταμάτησε να στέλνει βίντεο, επομένως η κοινή χρήση της οθόνης σας διακόπηκε." @@ -35774,7 +35749,7 @@ msgstr "Ομάδα χωρίς όνομα" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Είσοδος χωρίς όνομα" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Χρησιμοποιείται σε κοινότητες που δεν έχουν δικό τους ήχο." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Χρησιμοποιείται στην προσαρμοσμένη λειτουργία. Οι προεπιλογές \"Παιχνίδι\" και \"Κοινή χρήση οθόνης\" ορίζουν τη δική τους υπόδειξη." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Κωδικοποιητής βίντεο" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Κωδικοποιητής βίντεο για κοινή χρήση οθόνης" @@ -37912,7 +37887,7 @@ msgid "Volume mute" 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Ρυθμιστικά έντασης" @@ -38466,6 +38441,11 @@ msgstr "Τι να συμπεριλάβετε" msgid "What to search for." msgstr "Τι να αναζητήσετε." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "Αυτό που μοιράζεστε δεν ενημερώνεται" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Η αποθηκευμένη ποιότητα {savedResolution} στα {savedFrameRate} FPS απαιτεί {premiumProductName}, οπότε οι κοινοποιήσεις χρησιμοποιούν {resolution} στα {frameRate} FPS." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Η κοινή χρήση οθόνης σας δεν μπόρεσε να δημοσιευτεί με συμβατό κωδικοποιητή βίντεο, επομένως διακόπηκε. Δοκιμάστε να μοιραστείτε ξανά." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Η προσαρμοσμένη διεύθυνση URL έχει οριστεί σε {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Ο κωδικοποιητής βίντεο σταμάτησε να κωδικοποιεί καρέ, οπότε η κοινή χρήση οθόνης διακόπηκε. Δοκιμάστε να την μοιραστείτε ξανά." 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 2ea8c4d4c..835b027be 100644 --- a/fluxer_app/src/features/i18n/locales/en-GB/messages.po +++ b/fluxer_app/src/features/i18n/locales/en-GB/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Expand (# line)} other {Expand (# lines)}}" msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Expand # other device} other {Expand # other devices}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {In call} other {# in call}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} FPS" @@ -3590,8 +3590,8 @@ msgstr "Allow anyone who can view your full profile to see your local time" #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Allow AV1 for screen sharing" @@ -3649,8 +3649,8 @@ msgstr "Allow for all communities" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Allow H.265 (HEVC) for screen sharing" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Audio boost" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Audio device" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Audio device alerts" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Audio send:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Audio settings" @@ -4987,9 +4987,9 @@ msgstr "Autocomplete suggestion: {label}, {selectedOptionPosition} of {resultCou #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Automatic" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Automatic ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Automatic gain control" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Autoscrolling" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (requires opt-in)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Biometrics" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Bitrate" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Browser locale: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Browser mic gain for custom processing" @@ -6483,15 +6483,15 @@ msgstr "Captcha verification failed. Try again." msgid "Capture" msgstr "Capture" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Capture app audio" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Capture desktop audio" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Capture device audio" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Capture devices use the Gaming preset." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Capture entire system audio" @@ -7637,11 +7637,6 @@ msgstr "Choose your language" msgid "Choose your profile accent color" msgstr "Choose your profile accent colour" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Code:" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Codec" @@ -8766,7 +8761,7 @@ msgstr "Composer focus" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Configure" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Connection volume" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Connection volume controls" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Content filtering" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Content hint" @@ -10594,7 +10589,7 @@ msgstr "Currently: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Custom" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Custom video backgrounds" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Custom voice processing" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Detached banner" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Detail" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Device" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Device alerts" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Device audio ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Device audio only" @@ -11904,12 +11899,12 @@ msgstr "Device details" msgid "Device revoked" msgstr "Device revoked" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Device selection" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Device volume" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Devices" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Dial in your own numbers" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Disable mobile push notifications" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Disable picture-in-picture popout for screen shares" @@ -12629,7 +12624,7 @@ msgstr "Don't suggest {deviceName} again" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Done" @@ -13756,8 +13751,8 @@ msgstr "Enabled" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Encoder path" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Encoder preference for new screen shares." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Encoder, SVC and bitrate presets" @@ -15616,7 +15611,7 @@ msgstr "Frame" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Frame rate" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Fully quit and restart {productName} so macOS applies this permission." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Gain control" @@ -15946,7 +15941,7 @@ msgstr "Gamepad Y / Triangle" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Gaming" @@ -16451,7 +16446,7 @@ msgstr "Granted {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Grants all permissions and bypasses channel restrictions. Highly sensitive." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Granular selection" @@ -16629,13 +16624,8 @@ msgstr "Group updated" msgid "Grouping" msgstr "Grouping" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (requires opt-in)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "Hardware acceleration can cause rendering glitches with transparent windows. Try --disable-gpu if you see flicker or smearing." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Hardware encoder" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Hide muted channels by default?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Hide my stream preview thumbnail" @@ -17014,7 +17004,7 @@ msgstr "Hide password" msgid "Hide picture-in-picture popout?" msgstr "Hide picture-in-picture popout?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Hide preview thumbnail" @@ -17417,11 +17407,11 @@ msgstr "Ignore" msgid "Ignore friend request" msgstr "Ignore friend request" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Ignore hardware devices" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Ignore input media" @@ -17452,7 +17442,7 @@ msgstr "Ignore the friend request from {displayName}?" msgid "Ignore this channel's slowmode cooldown." msgstr "Ignore this channel's slowmode cooldown." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Ignore virtual" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Layering" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Layering for AV1 and VP9 when available." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Maximum protection for family-friendly spaces" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "May cause compatibility issues for viewers. We’re working on improving this." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "Microphone access was denied. Enable it in your system settings and try again." #. 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Microphone gain" @@ -21318,7 +21308,7 @@ msgstr "Most relevant" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "New Mexico" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "New microphone" @@ -22830,11 +22820,11 @@ msgstr "No user found with that username." msgid "No users are currently banned from this community." msgstr "No users are currently banned from this community." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "No users available" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "No users found" @@ -23313,7 +23303,7 @@ msgstr "Only applies on wide screens." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Only default speakers" @@ -23361,7 +23351,7 @@ msgstr "Only run code here if you understand exactly what it does." msgid "Only show message previews for DMs with unread messages" msgstr "Only show message previews for DMs with unread messages" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Only speakers" @@ -23901,21 +23891,6 @@ msgstr "Open your phone's messaging app and start a new text message." msgid "Open your settings" msgstr "Open your settings" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "OpenH264 software codec on Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "OpenH264 video codec" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "OpenH264 Video Codec provided by Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Pause invites? New users won't be able to join through invite links until you re-enable them. Existing members won't be affected." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Pause my screen share preview in the background" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Per-community profiles" #. 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Per-device volume" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Picture" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Picture-in-picture" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Pins popout" #. 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PiP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Prefer @mention" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Prefer hardware" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Prefer no @mention" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Prefer software" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Preferences..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Preferred screen share codec" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Preview sound" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Preview, popout, and stream thumbnail behaviour" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Prompt" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Prompt for new audio devices" @@ -27659,7 +27634,7 @@ msgstr "Resizing, maximising, and window snapping depend on the compositor. Wayl #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Resolution" @@ -28352,7 +28327,7 @@ msgstr "Screen recording permission required" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Screen share" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "Screen share audio couldn't start" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Screen share codec" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Screen share encoder controls" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Screen share ended" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "Screen share is using software encoding ({codec}). Quality may be reduced and CPU usage increased. Your GPU may not support hardware encoding for this codec." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Screen share preview" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Screen share preview behaviour" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Screen sharing" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Screen sharing codec" @@ -29427,7 +29402,6 @@ msgstr "Sending malware or dangerous links" msgid "Sending messages is disabled in this community" msgstr "Sending messages is disabled in this community" -# auto-i18n: reviewed unchanged #. Description for the stereo microphone switch in the voice settings. #: src/features/voice/utils/noise_suppression/NoiseSuppressionLabels.ts:49 msgid "Sends both channels of a stereo microphone. Needs all processing off and a channel at 128 kbps or higher." @@ -29830,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Share screens and windows." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Share stream audio" @@ -29910,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Sharing personal information" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Sharp text at 720p, up to 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Sharp text at up to 4K, up to 15 FPS" @@ -30328,7 +30302,7 @@ msgstr "Show Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Show new device alerts" @@ -30365,7 +30339,7 @@ msgid "Show password" msgstr "Show password" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Show per-device participant volume sliders in voice menus" @@ -30663,7 +30637,7 @@ msgstr "Silent calls" msgid "Silent calls from everyone" msgstr "Silent calls from everyone" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Silent when the capture device has no audio input of its own" @@ -30690,7 +30664,7 @@ msgid "Single community mode" msgstr "Single community mode" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Single layer" @@ -30976,12 +30950,12 @@ msgid "Smileys" msgstr "Smileys" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Smooth 30 FPS at up to 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Smooth 60 FPS at up to 1440p" @@ -31029,7 +31003,7 @@ msgid "Social" msgstr "Social" #. 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Software encoder" @@ -31259,7 +31233,7 @@ msgstr "Sounds" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Source" @@ -32048,13 +32022,13 @@ msgstr "Stream hidden" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Stream preview" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Stream quality" @@ -32080,7 +32054,7 @@ msgid "Streaming" msgstr "Streaming" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Streaming mode" @@ -32281,12 +32255,12 @@ msgid "Suspend" msgstr "Suspend" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "SVC mode" @@ -32560,7 +32534,7 @@ msgstr "System announcements from {productName} staff. You can't reply here." #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "System default" @@ -32761,7 +32735,7 @@ msgid "Template URL" msgstr "Template URL" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Temporal layers" @@ -32838,7 +32812,7 @@ msgstr "Texas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Text" @@ -33248,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "The screen share source stopped sending video, so your screen share was stopped." @@ -35776,7 +35750,7 @@ msgstr "Unnamed group" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Unnamed input" @@ -36664,7 +36638,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Used in communities that do not have their own sound." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Used in Custom mode. The Gaming and Screen share presets set their own hint." @@ -37238,12 +37212,12 @@ msgid "Video call unavailable" msgstr "Video call unavailable" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Video codec" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Video codec for screen sharing" @@ -37914,7 +37888,7 @@ msgid "Volume mute" msgstr "Volume mute" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Volume sliders" @@ -38468,6 +38442,12 @@ msgstr "What to include" msgid "What to search for." msgstr "What to search for." +# auto-i18n: reviewed unchanged +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "What you're sharing isn't updating" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39974,7 +39954,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProductName}, so shares use {resolution} at {frameRate} FPS." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." @@ -40073,7 +40053,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." 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 59153951c..39a7212dd 100644 --- a/fluxer_app/src/features/i18n/locales/en-US/messages.po +++ b/fluxer_app/src/features/i18n/locales/en-US/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Expand (# line)} other {Expand (# lines)}}" msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Expand # other device} other {Expand # other devices}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {In call} other {# in call}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} FPS" @@ -3590,8 +3590,8 @@ msgstr "Allow anyone who can view your full profile to see your local time" #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Allow AV1 for screen sharing" @@ -3649,8 +3649,8 @@ msgstr "Allow for all communities" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Allow H.265 (HEVC) for screen sharing" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Audio boost" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Audio device" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Audio device alerts" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Audio send:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Audio settings" @@ -4987,9 +4987,9 @@ msgstr "Autocomplete suggestion: {label}, {selectedOptionPosition} of {resultCou #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Automatic" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Automatic ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Automatic gain control" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Autoscrolling" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (requires opt-in)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Biometrics" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Bitrate" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Browser locale: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Browser mic gain for custom processing" @@ -6483,15 +6483,15 @@ msgstr "Captcha verification failed. Try again." msgid "Capture" msgstr "Capture" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Capture app audio" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Capture desktop audio" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Capture device audio" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Capture devices use the Gaming preset." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Capture entire system audio" @@ -7637,11 +7637,6 @@ msgstr "Choose your language" msgid "Choose your profile accent color" msgstr "Choose your profile accent color" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Code:" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Codec" @@ -8766,7 +8761,7 @@ msgstr "Composer focus" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Configure" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Connection volume" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Connection volume controls" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Content filtering" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Content hint" @@ -10594,7 +10589,7 @@ msgstr "Currently: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Custom" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Custom video backgrounds" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Custom voice processing" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Detached banner" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Detail" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Device" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Device alerts" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Device audio ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Device audio only" @@ -11904,12 +11899,12 @@ msgstr "Device details" msgid "Device revoked" msgstr "Device revoked" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Device selection" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Device volume" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Devices" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Dial in your own numbers" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Disable mobile push notifications" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Disable picture-in-picture popout for screen shares" @@ -12629,7 +12624,7 @@ msgstr "Don't suggest {deviceName} again" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Done" @@ -13756,8 +13751,8 @@ msgstr "Enabled" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Encoder path" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Encoder preference for new screen shares." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Encoder, SVC, and bitrate presets" @@ -15616,7 +15611,7 @@ msgstr "Frame" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Frame rate" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Fully quit and restart {productName} so macOS applies this permission." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Gain control" @@ -15946,7 +15941,7 @@ msgstr "Gamepad Y / Triangle" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Gaming" @@ -16451,7 +16446,7 @@ msgstr "Granted {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Grants all permissions and bypasses channel restrictions. Highly sensitive." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Granular selection" @@ -16629,13 +16624,8 @@ msgstr "Group updated" msgid "Grouping" msgstr "Grouping" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (requires opt-in)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "Hardware acceleration can cause rendering glitches with transparent windows. Try --disable-gpu if you see flicker or smearing." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Hardware encoder" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Hide muted channels by default?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Hide my stream preview thumbnail" @@ -17014,7 +17004,7 @@ msgstr "Hide password" msgid "Hide picture-in-picture popout?" msgstr "Hide picture-in-picture popout?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Hide preview thumbnail" @@ -17417,11 +17407,11 @@ msgstr "Ignore" msgid "Ignore friend request" msgstr "Ignore friend request" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Ignore hardware devices" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Ignore input media" @@ -17452,7 +17442,7 @@ msgstr "Ignore the friend request from {displayName}?" msgid "Ignore this channel's slowmode cooldown." msgstr "Ignore this channel's slowmode cooldown." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Ignore virtual" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Layering" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Layering for AV1 and VP9 when available." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Maximum protection for family-friendly spaces" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "May cause compatibility issues for viewers. We’re working on improving this." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "Microphone access was denied. Enable it in your system settings and try again." #. 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Microphone gain" @@ -21318,7 +21308,7 @@ msgstr "Most relevant" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "New Mexico" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "New microphone" @@ -22830,11 +22820,11 @@ msgstr "No user found with that username." msgid "No users are currently banned from this community." msgstr "No users are currently banned from this community." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "No users available" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "No users found" @@ -23313,7 +23303,7 @@ msgstr "Only applies on wide screens." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Only default speakers" @@ -23361,7 +23351,7 @@ msgstr "Only run code here if you understand exactly what it does." msgid "Only show message previews for DMs with unread messages" msgstr "Only show message previews for DMs with unread messages" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Only speakers" @@ -23901,21 +23891,6 @@ msgstr "Open your phone's messaging app and start a new text message." msgid "Open your settings" msgstr "Open your settings" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "OpenH264 software codec on Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "OpenH264 video codec" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "OpenH264 Video Codec provided by Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Pause invites? New users won't be able to join through invite links until you re-enable them. Existing members won't be affected." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Pause my screen share preview in the background" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Per-community profiles" #. 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Per-device volume" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Picture" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Picture-in-picture" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Pins popout" #. 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PiP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Prefer @mention" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Prefer hardware" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Prefer no @mention" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Prefer software" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Preferences..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Preferred screen share codec" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Preview sound" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Preview, popout, and stream thumbnail behavior" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Prompt" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Prompt for new audio devices" @@ -27659,7 +27634,7 @@ msgstr "Resizing, maximizing, and window snapping depend on the compositor. Wayl #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Resolution" @@ -28352,7 +28327,7 @@ msgstr "Screen recording permission required" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Screen share" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "Screen share audio couldn't start" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Screen share codec" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Screen share encoder controls" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Screen share ended" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "Screen share is using software encoding ({codec}). Quality may be reduced and CPU usage increased. Your GPU may not support hardware encoding for this codec." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Screen share preview" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Screen share preview behavior" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Screen sharing" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Screen sharing codec" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Share screens and windows." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Share stream audio" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Sharing personal information" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Sharp text at 720p, up to 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Sharp text at up to 4K, up to 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "Show Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Show new device alerts" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Show password" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Show per-device participant volume sliders in voice menus" @@ -30662,7 +30637,7 @@ msgstr "Silent calls" msgid "Silent calls from everyone" msgstr "Silent calls from everyone" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Silent when the capture device has no audio input of its own" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Single community mode" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Single layer" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Smileys" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Smooth 30 FPS at up to 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Smooth 60 FPS at up to 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" msgstr "Social" #. 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Software encoder" @@ -31258,7 +31233,7 @@ msgstr "Sounds" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Source" @@ -32047,13 +32022,13 @@ msgstr "Stream hidden" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Stream preview" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Stream quality" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Streaming" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Streaming mode" @@ -32280,12 +32255,12 @@ msgid "Suspend" msgstr "Suspend" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "SVC mode" @@ -32559,7 +32534,7 @@ msgstr "System announcements from {productName} staff. You can't reply here." #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "System default" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "Template URL" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Temporal layers" @@ -32837,7 +32812,7 @@ msgstr "Texas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Text" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "The screen share source stopped sending video, so your screen share was stopped." @@ -35774,7 +35749,7 @@ msgstr "Unnamed group" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Unnamed input" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Used in communities that do not have their own sound." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Used in Custom mode. The Gaming and Screen share presets set their own hint." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" msgstr "Video call unavailable" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Video codec" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Video codec for screen sharing" @@ -37912,7 +37887,7 @@ msgid "Volume mute" msgstr "Volume mute" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Volume sliders" @@ -38466,6 +38441,11 @@ msgstr "What to include" msgid "What to search for." msgstr "What to search for." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "What you're sharing isn't updating" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProductName}, so shares use {resolution} at {frameRate} FPS." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." 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 029a48c8d..12e959c82 100644 --- a/fluxer_app/src/features/i18n/locales/es-419/messages.po +++ b/fluxer_app/src/features/i18n/locales/es-419/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Expandir (# línea)} other {Expandir (# líneas)}}" msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Mostrar (# fila)} other {Mostrar (# filas)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Mostrar # dispositivo más} other {Mostrar # dispositivos más}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {En llamada} other {# en llamada}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Unirse a videollamada (# participante)} other {Unirse a videollamada (# participantes)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {Seguir viendo # transmisión y agregar esta} other {Seguir viendo # transmisiones y agregar esta}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} FPS" @@ -3590,8 +3590,8 @@ msgstr "Permitir que cualquiera que pueda ver tu perfil completo vea tu hora loc #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Permitir AV1 para compartir pantalla" @@ -3649,8 +3649,8 @@ msgstr "Permitir en todas las comunidades" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Permitir H.265 (HEVC) para compartir pantalla" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Amplificación de audio" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Dispositivo de audio" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Alertas del dispositivo de audio" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Envío de audio:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Configuración de audio" @@ -4987,9 +4987,9 @@ msgstr "Sugerencia de autocompletar: {label}, {selectedOptionPosition} de {resul #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Automático" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Automático ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Control automático de ganancia" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Desplazamiento automático" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (requiere activación)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Datos biométricos" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Tasa de bits" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Formato de hora del navegador: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Ganancia del micrófono del navegador para procesamiento personalizado" @@ -6483,15 +6483,15 @@ msgstr "Falló la verificación del captcha. Intenta de nuevo." msgid "Capture" msgstr "Capturar" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Capturar audio de la app" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Capturar audio del escritorio" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Capturar audio del dispositivo" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Los dispositivos de captura usan la configuración predeterminada de Juegos." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Capturar todo el audio del sistema" @@ -7637,11 +7637,6 @@ msgstr "Elige tu idioma" msgid "Choose your profile accent color" msgstr "Elige el color de énfasis de tu perfil" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Código:" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Códec" @@ -8766,7 +8761,7 @@ msgstr "Foco del editor de mensajes" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Configurar" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Volumen de conexión" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Controles de volumen de conexión" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Filtro de contenido" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Indicación del tipo de contenido" @@ -10594,7 +10589,7 @@ msgstr "Actualmente: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Personalizado" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Fondos de video personalizados" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Procesamiento de voz personalizado" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Banner desvinculado" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Detalle" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Dispositivo" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Alertas del dispositivo" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Audio del dispositivo ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Audio del dispositivo solamente" @@ -11904,12 +11899,12 @@ msgstr "Detalles del dispositivo" msgid "Device revoked" msgstr "Dispositivo revocado" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Selección de dispositivo" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Volumen del dispositivo" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Dispositivos" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Ingresa tus propios valores" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Desactivar las notificaciones push en el celular" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Desactivar la ventana flotante de imagen en imagen para compartir pantalla" @@ -12629,7 +12624,7 @@ msgstr "No volver a sugerir {deviceName}" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Listo" @@ -13756,8 +13751,8 @@ msgstr "Activado" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Ruta del codificador" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Preferencia de codificador para nuevas transmisiones de pantalla compartida." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Codificador, SVC y ajustes preestablecidos de tasa de bits" @@ -15616,7 +15611,7 @@ msgstr "Marco" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Velocidad de fotogramas" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Sal y reinicia {productName} completamente para que macOS aplique este permiso." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Control de ganancia" @@ -15946,7 +15941,7 @@ msgstr "Y / triángulo (control)" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Juegos" @@ -16451,7 +16446,7 @@ msgstr "Se otorgaron {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Otorga todos los permisos y omite las restricciones del canal. Muy delicado." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Selección detallada" @@ -16629,13 +16624,8 @@ msgstr "Grupo actualizado" msgid "Grouping" msgstr "Agrupación" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (requiere activación)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "La aceleración de hardware puede causar fallas de renderizado con ventanas transparentes. Prueba --disable-gpu si ves parpadeos o manchas." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Codificador de hardware" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Ayuda a traducir {PRODUCT_NAME} a tu idioma en <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "¿Ocultar canales silenciados por defecto?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Ocultar la miniatura de la vista previa de mi transmisión" @@ -17014,7 +17004,7 @@ msgstr "Ocultar contraseña" msgid "Hide picture-in-picture popout?" msgstr "¿Ocultar la ventana flotante de imagen en imagen?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Ocultar miniatura de vista previa" @@ -17417,11 +17407,11 @@ msgstr "Ignorar" msgid "Ignore friend request" msgstr "Ignorar solicitud de amistad" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Ignorar dispositivos de hardware" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Ignorar contenido multimedia de entrada" @@ -17452,7 +17442,7 @@ msgstr "¿Ignorar la solicitud de amistad de {displayName}?" msgid "Ignore this channel's slowmode cooldown." msgstr "Ignorar el tiempo de espera de modo lento de este canal." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Ignorar virtual" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Capas" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Capas para AV1 y VP9 cuando estén disponibles." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Máxima protección para espacios familiares" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Puede causar problemas de compatibilidad para los espectadores. Estamos trabajando para mejorar esto." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "Se denegó el acceso al micrófono. Habilítalo en la configuración del sistema e inténtalo de nuevo." #. 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Ganancia del micrófono" @@ -21318,7 +21308,7 @@ msgstr "Más relevantes" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "Nuevo México" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Nuevo micrófono" @@ -22830,11 +22820,11 @@ msgstr "No se encontró ningún usuario con ese nombre de usuario." msgid "No users are currently banned from this community." msgstr "Actualmente no hay usuarios baneados de esta comunidad." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "No hay usuarios disponibles" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "No se encontraron usuarios" @@ -23313,7 +23303,7 @@ msgstr "Solo se aplica en pantallas anchas." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Solo se aceptan tarjetas de crédito. Las tarjetas de débito y prepago no se pueden usar para la verificación de contenido para adultos." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Solo altavoces predeterminados" @@ -23361,7 +23351,7 @@ msgstr "Solo ejecuta código aquí si entiendes exactamente lo que hace." msgid "Only show message previews for DMs with unread messages" msgstr "Mostrar vistas previas de mensajes solo en los MD con mensajes sin leer" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Solo altavoces" @@ -23901,21 +23891,6 @@ msgstr "Abre tu app de mensajería y empieza un mensaje de texto nuevo." msgid "Open your settings" msgstr "Abrir tu configuración" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "Códec de software OpenH264 en Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "Códec de video OpenH264" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "Códec de video OpenH264 proporcionado por Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "¿Pausar invitaciones? Los usuarios nuevos no podrán unirse a través de enlaces de invitación hasta que los vuelvas a habilitar. Los miembros existentes no se verán afectados." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Pausar la vista previa de mi pantalla compartida en segundo plano" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Perfiles por 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Volumen por dispositivo" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Foto" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Imagen en imagen" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Ventana flotante de mensajes fijados" #. 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PiP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Preferir menciones con @" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Preferir hardware" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Preferir no recibir menciones con @" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Preferir software" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Preferencias..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Códec preferido para compartir pantalla" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Escuchar vista previa del sonido" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Comportamiento de la vista previa, las ventanas flotantes y las miniaturas de las transmisiones" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Solicitud de confirmación" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Preguntar al detectar nuevos dispositivos de audio" @@ -27659,7 +27634,7 @@ msgstr "El cambio de tamaño, la maximización y el ajuste de ventanas dependen #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Resolución" @@ -28352,7 +28327,7 @@ msgstr "Se necesita permiso para grabar la pantalla" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Compartir pantalla" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "No se pudo iniciar el audio de la pantalla compartida" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Códec para compartir pantalla" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Controles del codificador para compartir pantalla" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Se detuvo el uso compartido de pantalla" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "La pantalla compartida está usando codificación por software ({codec}). La calidad podría reducirse y el uso de CPU, aumentar. Es posible que tu GPU no sea compatible con la codificación por hardware para este códec." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Vista previa de la pantalla compartida" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Comportamiento de la vista previa de la pantalla compartida" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Compartir pantalla" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Códec para compartir pantalla" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Comparte pantallas y ventanas." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Compartir audio de la transmisión" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Compartir información personal" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Texto nítido a 720p, hasta 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Texto nítido hasta 4K, hasta 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "Mostrar Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Mostrar alertas de dispositivos nuevos" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Mostrar contraseña" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Mostrar controles deslizantes de volumen por participante y dispositivo en los menús de voz" @@ -30662,7 +30637,7 @@ msgstr "Llamadas silenciosas" msgid "Silent calls from everyone" msgstr "Llamadas silenciosas de todos" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Silencioso cuando el dispositivo de captura no tiene entrada de audio propia" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Modo de comunidad única" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Capa única" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Caritas" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Suave a 30 FPS y hasta 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Suave a 60 FPS y hasta 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" msgstr "Social" #. 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Codificador de software" @@ -31258,7 +31233,7 @@ msgstr "Sonidos" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Original" @@ -32047,13 +32022,13 @@ msgstr "Transmisión oculta" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Vista previa de la transmisión" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Calidad de transmisión" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Transmitiendo" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Modo de transmisión" @@ -32280,12 +32255,12 @@ msgid "Suspend" msgstr "Suspender" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "Modo SVC" @@ -32559,7 +32534,7 @@ msgstr "Anuncios del personal de {productName}. No puedes responder aquí." #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Predeterminado del sistema" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "URL de la plantilla" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Capas temporales" @@ -32837,7 +32812,7 @@ msgstr "Texas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Texto" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "La fuente de uso compartido de pantalla dejó de enviar video, por lo que se detuvo el uso compartido de pantalla." @@ -35774,7 +35749,7 @@ msgstr "Grupo sin nombre" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Entrada sin nombre" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Se usa en comunidades que no tienen su propio sonido." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Se usa en modo Personalizado. Los ajustes preestablecidos de Juegos y Compartir pantalla establecen su propia indicación." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" msgstr "Videollamada no disponible" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Códec de video" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Códec de video para compartir pantalla" @@ -37912,7 +37887,7 @@ msgid "Volume mute" msgstr "Silenciar audio" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Controles de volumen" @@ -38466,6 +38441,11 @@ msgstr "Qué incluir" msgid "What to search for." msgstr "Qué buscar." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "Lo que estás compartiendo no se está actualizando" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Tu {savedResolution} guardado a {savedFrameRate} FPS requiere {premiumProductName}, por lo que los envíos usan {resolution} a {frameRate} FPS." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "No se pudo publicar tu pantalla compartida con un códec de video compatible, por lo que se detuvo. Intenta compartir de nuevo." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Tu URL personalizada se estableció en {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Tu codificador de video dejó de procesar fotogramas, por lo que se detuvo tu uso compartido de pantalla. Intenta compartir de nuevo." 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 8d69e667c..51e99d2f6 100644 --- a/fluxer_app/src/features/i18n/locales/es-ES/messages.po +++ b/fluxer_app/src/features/i18n/locales/es-ES/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Expandir (# línea)} other {Expandir (# líneas)}}" msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Mostrar (# fila)} other {Mostrar (# filas)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Mostrar # dispositivo más} other {Mostrar # dispositivos más}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {En llamada} other {# en llamada}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Unirse a la videollamada (# participante)} other {Unirse a la videollamada (# participantes)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {Seguir viendo # transmisión y añadir esta} other {Seguir viendo # transmisiones y añadir esta}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} FPS" @@ -3590,8 +3590,8 @@ msgstr "Permitir que cualquiera que pueda ver tu perfil completo vea tu hora loc #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Permitir AV1 para compartir pantalla" @@ -3649,8 +3649,8 @@ msgstr "Permitir en todas las comunidades" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Permitir H.265 (HEVC) para compartir pantalla" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Amplificación de audio" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Dispositivo de audio" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Alertas del dispositivo de audio" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Envío de audio:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Ajustes de audio" @@ -4987,9 +4987,9 @@ msgstr "Sugerencia de autocompletar: {label}, {selectedOptionPosition} de {resul #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Automático" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Automático ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Control automático de ganancia" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Desplazamiento automático" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (requiere activación)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Datos biométricos" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Tasa de bits" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Formato de hora del navegador: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Ganancia del micrófono del navegador para el procesamiento personalizado." @@ -6483,15 +6483,15 @@ msgstr "Error de verificación de captcha. Inténtalo de nuevo." msgid "Capture" msgstr "Capturar" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Capturar audio de la aplicación" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Capturar audio del escritorio" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Capturar audio del dispositivo" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Los dispositivos de captura usan el ajuste preestablecido de Juegos." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Capturar todo el audio del sistema" @@ -7637,11 +7637,6 @@ msgstr "Elige tu idioma" msgid "Choose your profile accent color" msgstr "Elige el color de énfasis de tu perfil" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Código:" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Códec" @@ -8766,7 +8761,7 @@ msgstr "Foco del editor de mensajes" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Configurar" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Volumen de la conexión" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Controles de volumen de conexión" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Filtro de contenido" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Indicación del tipo de contenido" @@ -10594,7 +10589,7 @@ msgstr "Actualmente: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Personalizado" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Fondos de vídeo personalizados" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Procesamiento de voz personalizado" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Banner desvinculado" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Detalle" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Dispositivo" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Alertas del dispositivo" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Audio del dispositivo ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Solo audio del dispositivo" @@ -11904,12 +11899,12 @@ msgstr "Detalles del dispositivo" msgid "Device revoked" msgstr "Dispositivo revocado" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Selección de dispositivo" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Volumen del dispositivo" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Dispositivos" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Introduce tus propios valores" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Desactivar las notificaciones push en el móvil" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Desactivar la ventana flotante de imagen en imagen para compartir pantalla" @@ -12629,7 +12624,7 @@ msgstr "No volver a sugerir {deviceName}" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Hecho" @@ -13756,8 +13751,8 @@ msgstr "Activado" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Ruta del codificador" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Preferencia del codificador para nuevos flujos de pantalla compartida." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Ajustes predeterminados de codificador, SVC y tasa de bits" @@ -15616,7 +15611,7 @@ msgstr "Marco" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Velocidad de fotogramas" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Sal y reinicia {productName} completamente para que macOS aplique este permiso." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Control de ganancia" @@ -15946,7 +15941,7 @@ msgstr "Y / triángulo (mando)" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Juegos" @@ -16451,7 +16446,7 @@ msgstr "Concedido {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Concede todos los permisos y omite las restricciones del canal. Muy sensible." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Selección granular" @@ -16629,13 +16624,8 @@ msgstr "Grupo actualizado" msgid "Grouping" msgstr "Agrupación" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (requiere activación)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "La aceleración de hardware puede causar fallos de renderizado con ventanas transparentes. Prueba --disable-gpu si ves parpadeos o manchas." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Codificador de hardware" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Ayuda a traducir {PRODUCT_NAME} a tu idioma en <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "¿Ocultar los canales silenciados por defecto?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Ocultar la miniatura de la vista previa de mi transmisión" @@ -17014,7 +17004,7 @@ msgstr "Ocultar contraseña" msgid "Hide picture-in-picture popout?" msgstr "¿Ocultar la ventana flotante de imagen en imagen?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Ocultar miniatura de previsualización" @@ -17417,11 +17407,11 @@ msgstr "Ignorar" msgid "Ignore friend request" msgstr "Ignorar solicitud de amistad" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Ignorar dispositivos de hardware" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Ignorar contenido multimedia de entrada" @@ -17452,7 +17442,7 @@ msgstr "¿Ignorar la solicitud de amistad de {displayName}?" msgid "Ignore this channel's slowmode cooldown." msgstr "Ignorar el tiempo de espera de modo lento de este canal." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Ignorar virtual" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Capas" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Capas para AV1 y VP9 cuando estén disponibles." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Máxima protección para espacios familiares" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Puede causar problemas de compatibilidad para los espectadores. Estamos trabajando para mejorar esto." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "Se denegó el acceso al micrófono. Actívalo en los ajustes del sistema y vuelve a intentarlo." #. 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Ganancia del micrófono" @@ -21318,7 +21308,7 @@ msgstr "Más relevantes" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "Nuevo México" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Nuevo micrófono" @@ -22830,11 +22820,11 @@ msgstr "No se ha encontrado ningún usuario con ese nombre de usuario." msgid "No users are currently banned from this community." msgstr "Actualmente no hay usuarios baneados de esta comunidad." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "No hay usuarios disponibles" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "No se encontraron usuarios" @@ -23313,7 +23303,7 @@ msgstr "Solo se aplica en pantallas anchas." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Solo se aceptan tarjetas de crédito. Las tarjetas de débito y prepago no se pueden usar para la comprobación de contenido para adultos." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Solo altavoces predeterminados" @@ -23361,7 +23351,7 @@ msgstr "Ejecuta código aquí solo si entiendes exactamente lo que hace." msgid "Only show message previews for DMs with unread messages" msgstr "Mostrar vistas previas de mensajes solo en los MD con mensajes sin leer" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Solo altavoces" @@ -23901,21 +23891,6 @@ msgstr "Abre la aplicación de mensajería de tu teléfono e inicia un nuevo men msgid "Open your settings" msgstr "Abrir ajustes" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "Códec de software OpenH264 en Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "Códec de vídeo OpenH264" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "Códec de vídeo OpenH264 proporcionado por Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "¿Pausar las invitaciones? Los nuevos usuarios no podrán unirse a través de enlaces de invitación hasta que las vuelvas a activar. Los miembros existentes no se verán afectados." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Pausar la vista previa de mi pantalla compartida en segundo plano" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Perfiles por 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Volumen por dispositivo" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Imagen" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Imagen en imagen" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Ventana flotante de mensajes fijados" #. 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PiP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Preferir menciones con @" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Preferir hardware" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Preferir no recibir menciones con @" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Preferir software" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Preferencias..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Códec preferido para compartir pantalla" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Escuchar vista previa del sonido" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Comportamiento de la vista previa, las ventanas flotantes y las miniaturas de las transmisiones" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Solicitud de confirmación" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Preguntar al detectar nuevos dispositivos de audio" @@ -27659,7 +27634,7 @@ msgstr "El cambio de tamaño, la maximización y el ajuste de ventanas dependen #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Resolución" @@ -28352,7 +28327,7 @@ msgstr "Se necesita permiso para grabar la pantalla" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Compartir pantalla" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "No se pudo iniciar el audio de la pantalla compartida" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Códec para compartir pantalla" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Controles del codificador para compartir pantalla" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Finalizó el uso compartido de pantalla" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "La pantalla compartida está usando codificación por software ({codec}). La calidad podría reducirse y el uso de la CPU, aumentar. Es posible que tu GPU no sea compatible con la codificación por hardware para este códec." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Vista previa de la pantalla compartida" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Comportamiento de la vista previa de la pantalla compartida" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Compartir pantalla" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Códec para compartir pantalla" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Comparte pantallas y ventanas." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Compartir audio de la transmisión" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Compartir información personal" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Texto nítido a 720p, hasta 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Texto nítido hasta 4K, hasta 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "Mostrar Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Mostrar alertas de nuevos dispositivos" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Mostrar contraseña" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Mostrar controles deslizantes de volumen por participante y dispositivo en los menús de voz" @@ -30662,7 +30637,7 @@ msgstr "Llamadas silenciosas" msgid "Silent calls from everyone" msgstr "Llamadas silenciosas de todos" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Silencioso cuando el dispositivo de captura no tiene entrada de audio propia" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Modo de comunidad única" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Capa única" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Caritas" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Suave a 30 FPS hasta 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Suave a 60 FPS y hasta 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" msgstr "Social" #. 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Codificador de software" @@ -31258,7 +31233,7 @@ msgstr "Sonidos" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Original" @@ -32047,13 +32022,13 @@ msgstr "Transmisión oculta" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Vista previa de la transmisión" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Calidad de la transmisión" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "En directo" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Modo de transmisión" @@ -32280,12 +32255,12 @@ msgid "Suspend" msgstr "Suspender" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "Modo SVC" @@ -32559,7 +32534,7 @@ msgstr "Anuncios del personal de {productName}. No puedes responder aquí." #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Predeterminado del sistema" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "URL de la plantilla" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Capas temporales" @@ -32837,7 +32812,7 @@ msgstr "Texas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Texto" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "La fuente de uso compartido de pantalla dejó de enviar vídeo, por lo que se detuvo el uso compartido de pantalla." @@ -35774,7 +35749,7 @@ msgstr "Grupo sin nombre" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Entrada sin nombre" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Se usa en comunidades que no tienen su propio sonido." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Se usa en modo Personalizado. Los ajustes predeterminados de Juegos y Compartir pantalla establecen su propia indicación." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" msgstr "Videollamada no disponible" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Códec de vídeo" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Códec de vídeo para compartir pantalla" @@ -37912,7 +37887,7 @@ msgid "Volume mute" msgstr "Silenciar audio" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Controles de volumen" @@ -38466,6 +38441,11 @@ msgstr "Qué incluir" msgid "What to search for." msgstr "Qué buscar." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "Lo que estás compartiendo no se actualiza" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Tu {savedResolution} a {savedFrameRate} FPS requiere {premiumProductName}, por lo que las comparticiones usan {resolution} a {frameRate} FPS." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "No se ha podido publicar tu pantalla compartida con un códec de vídeo compatible, por lo que se ha detenido. Intenta compartir de nuevo." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Tu URL personalizada se ha establecido en {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "El codificador de vídeo dejó de codificar fotogramas, por lo que se detuvo el uso compartido de pantalla. Intenta compartir de nuevo." diff --git a/fluxer_app/src/features/i18n/locales/fi/messages.po b/fluxer_app/src/features/i18n/locales/fi/messages.po index 506c39a9d..9d5b277be 100644 --- a/fluxer_app/src/features/i18n/locales/fi/messages.po +++ b/fluxer_app/src/features/i18n/locales/fi/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Laajenna (# rivi)} other {Laajenna (# riviä)}}" msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Laajenna (# rivi)} other {Laajenna (# riviä)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Laajenna # muu laite} other {Laajenna # muuta laitetta}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {Puhelussa} other {# puhelussa}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Liity videopuheluun (# osallistuja)} other {Liity videopuheluun (# osallistujaa)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {Jatka # striimin katsomista ja lisää tämä} other {Jatka # striimin katsomista ja lisää tämä}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} FPS" @@ -3590,8 +3590,8 @@ msgstr "Salli paikallisen aikasi näyttäminen kaikille, jotka näkevät koko pr #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Salli AV1 näytön jakamiseen" @@ -3649,8 +3649,8 @@ msgstr "Salli kaikille yhteisöille" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Salli H.265 (HEVC) näytön jakamiseen" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Äänen tehostus" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Äänilaite" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Äänilaitteen ilmoitukset" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Äänen lähetys:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Ääniasetukset" @@ -4987,9 +4987,9 @@ msgstr "Automaattinen täydennysehdotus: {label}, {selectedOptionPosition}/{resu #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Automaattinen" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Automaattinen ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Automaattinen äänenvoimakkuuden säätö" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Automaattinen vieritys" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (vaatii käyttöönoton)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Biometriikka" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Bittinopeus" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Selaimen aikamuoto: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Selaimen mikrofonin vahvistus mukautettua käsittelyä varten" @@ -6483,15 +6483,15 @@ msgstr "Captcha-varmennus epäonnistui. Yritä uudelleen." msgid "Capture" msgstr "Kaappaa" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Kaappaa sovelluksen ääni" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Kaappaa työpöydän ääni" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Kaappaa laitteen ääni" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Tallennuslaitteet käyttävät Peli-esiasetusta." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Kaappaa koko järjestelmän ääni" @@ -7637,11 +7637,6 @@ msgstr "Valitse kieli" msgid "Choose your profile accent color" msgstr "Valitse profiilisi korostusväri" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Koodi:" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Koodekki" @@ -8766,7 +8761,7 @@ msgstr "Viestikentän kohdistus" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Määritä" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Yhteyden äänenvoimakkuus" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Yhteyden äänenvoimakkuuden säätimet" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Sisällön suodatus" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Sisältötyypin vihje" @@ -10594,7 +10589,7 @@ msgstr "Tällä hetkellä: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Mukautettu" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Mukautetut videotaustat" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Mukautettu äänenkäsittely" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Irrotettu banneri" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Yksityiskohdat" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Laite" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Laitteen hälytykset" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Laitteen ääni ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Laitteen ääni" @@ -11904,12 +11899,12 @@ msgstr "Laitteen tiedot" msgid "Device revoked" msgstr "Laite poistettu" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Laitteen valinta" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Laitteen äänenvoimakkuus" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Laitteet" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Säädä arvot itse" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Poista mobiili-ilmoitukset käytöstä" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Poista kuva kuvassa -ponnahdusikkuna käytöstä näytön jaon yhteydessä" @@ -12629,7 +12624,7 @@ msgstr "Älä ehdota laitetta {deviceName} uudelleen" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Valmis" @@ -13756,8 +13751,8 @@ msgstr "Käytössä" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Enkooderin polku" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Ensisijainen enkooderi uusissa näytönjaoissa." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Kooderi, SVC ja bittinopeusasetukset" @@ -15616,7 +15611,7 @@ msgstr "Kehys" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Kuvataajuus" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Sulje {productName} kokonaan ja käynnistä se uudelleen, jotta macOS ottaa tämän käyttöoikeuden käyttöön." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Vahvistuksen säätö" @@ -15946,7 +15941,7 @@ msgstr "Ohjaimen Y / kolmio" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Pelaaminen" @@ -16451,7 +16446,7 @@ msgstr "Myönnetty {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Myöntää kaikki käyttöoikeudet ja ohittaa kanavarajoitukset. Erittäin arkaluontoinen." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Tarkka valinta" @@ -16629,13 +16624,8 @@ msgstr "Ryhmä päivitetty" msgid "Grouping" msgstr "Ryhmittely" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (vaatii valinnan)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "Laitteistokiihdytys voi aiheuttaa renderöintivirheitä läpinäkyvissä ikkunoissa. Kokeile --disable-gpu, jos näet välkkymistä tai jälkikuvia." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Laitteistokooderi" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Auta kääntämään {PRODUCT_NAME} kielellesi osoitteessa <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Piilotetaanko mykistetyt kanavat oletuksena?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Piilota oman striimini esikatselukuva" @@ -17014,7 +17004,7 @@ msgstr "Piilota salasana" msgid "Hide picture-in-picture popout?" msgstr "Piilotetaanko kuva kuvassa -ikkuna?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Piilota esikatselukuva" @@ -17417,11 +17407,11 @@ msgstr "Ohita" msgid "Ignore friend request" msgstr "Ohita kaveripyyntö" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Ohita fyysiset laitteet" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Ohita syötemedia" @@ -17452,7 +17442,7 @@ msgstr "Ohita kaveripyyntö käyttäjältä {displayName}?" msgid "Ignore this channel's slowmode cooldown." msgstr "Ohita tämän kanavan hitaan tilan odotusaika." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Ohita virtuaaliset" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Tasojärjestys" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Kerrostus AV1:lle ja VP9:lle, kun saatavilla." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Paras suoja perheystävällisille tiloille" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Voi aiheuttaa yhteensopivuusongelmia katsojille. Pyrimme parantamaan tätä." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "Mikrofonin käyttö estettiin. Ota se käyttöön järjestelmäasetuksista ja yritä uudelleen." #. 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Mikrofonin vahvistus" @@ -21318,7 +21308,7 @@ msgstr "Osuvimmat" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "Uusi-Meksiko" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Uusi mikrofoni" @@ -22830,11 +22820,11 @@ msgstr "Käyttäjää ei löydy kyseisellä käyttäjänimellä." msgid "No users are currently banned from this community." msgstr "Yhteisöstä ei ole tällä hetkellä porttikiellettyjä käyttäjiä." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Ei käyttäjiä saatavilla" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Käyttäjiä ei löytynyt" @@ -23313,7 +23303,7 @@ msgstr "Näkyy vain leveillä näytöillä." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Vain luottokortit hyväksytään. Pankki- ja prepaid-kortteja ei voi käyttää aikuisille tarkoitetun sisällön tarkistukseen." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Vain oletuskaiuttimet" @@ -23361,7 +23351,7 @@ msgstr "Suorita koodia täällä vain, jos ymmärrät tarkalleen, mitä se tekee msgid "Only show message previews for DMs with unread messages" msgstr "Näytä viestien esikatselut vain yksityisviesteissä, joissa on lukemattomia viestejä" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Vain kaiuttimet" @@ -23901,21 +23891,6 @@ msgstr "Avaa puhelimen viestisovellus ja aloita uusi tekstiviesti." msgid "Open your settings" msgstr "Avaa asetukset" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "OpenH264-ohjelmistokoodekki Linuxissa" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "OpenH264-videokoodekki" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "OpenH264-videokoodekin tarjoaa Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Keskeytetäänkö kutsut? Uudet käyttäjät eivät voi liittyä kutsulinkkien kautta, ennen kuin otat ne uudelleen käyttöön. Nykyisiin jäseniin tämä ei vaikuta." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Keskeytä näytön jakamisen esikatselu taustalla" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Yhteisökohtaiset profiilit" #. 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Laitekohtainen äänenvoimakkuus" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Kuva" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Kuva kuvassa" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Kiinnitysten ponnahdusikkuna" #. 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PiP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Mieluummin @maininnalla" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Suosi laitteistoa" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Mieluummin ilman @mainintaa" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Suosi ohjelmistoa" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Asetukset..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Ensisijainen näytön jakamisen koodekki" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Esikuuntele ääni" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Esikatselun, ponnahdusikkunan ja lähetyksen pikkukuvien toiminta" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Kehote" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Kysy, kun uusi äänilaite yhdistetään" @@ -27659,7 +27634,7 @@ msgstr "Ikkunan koon muuttaminen, suurentaminen ja reunoihin kiinnitys riippuvat #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Tarkkuus" @@ -28352,7 +28327,7 @@ msgstr "Näytön tallennukseen tarvitaan lupa" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Näytön jako" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "Näytön jaon äänen käynnistäminen epäonnistui" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Näytönjaon koodekki" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Näytönjakamisen kooderin asetukset" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Näytönjako päättyi" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "Näytönjako käyttää ohjelmistopohjaista koodausta ({codec}). Kuvanlaatu voi heikentyä ja suorittimen käyttö lisääntyä. Näytönohjaimesi ei ehkä tue laitteistopohjaista koodausta tälle koodekille." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Näytön jakamisen esikatselu" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Näytön jakamisen esikatselun toiminta" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Näytön jakaminen" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Näytönjaon koodekki" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Jaa näyttöjä ja ikkunoita." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Jaa striimin ääni" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Henkilötietojen jakaminen" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Terävä teksti 720p, jopa 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Terävää tekstiä jopa 4K-resoluutiolla, jopa 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "Näytä Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Näytä uusien laitteiden ilmoitukset" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Näytä salasana" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Näytä laitekohtaiset osallistujien äänenvoimakkuuden liukusäätimet äänivalikoissa" @@ -30662,7 +30637,7 @@ msgstr "Äänettömät puhelut" msgid "Silent calls from everyone" msgstr "Äänettömät puhelut kaikilta" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Mykistää, kun tallennuslaitteessa ei ole omaa äänisyötettä" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Yhden yhteisön tila" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Yksikerroksinen" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Hymiöt" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Sujuva 30 FPS jopa 720p-resoluutiolla" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Sujuva 60 FPS jopa 1440p-resoluutiolla" @@ -31028,7 +31003,7 @@ msgid "Social" msgstr "Sosiaalinen media" #. 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Ohjelmistokooderi" @@ -31258,7 +31233,7 @@ msgstr "Äänet" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Alkuperäinen" @@ -32047,13 +32022,13 @@ msgstr "Striimi piilotettu" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Striimin esikatselu" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Striimin laatu" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Striimaa" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Striimaustila" @@ -32280,12 +32255,12 @@ msgid "Suspend" msgstr "Jäädytys" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "SVC-tila" @@ -32559,7 +32534,7 @@ msgstr "{productName}-henkilökunnan järjestelmäilmoituksia. Tähän ei voi va #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Järjestelmän oletus" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "Mallipohjan URL-osoite" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Ajalliset tasot" @@ -32837,7 +32812,7 @@ msgstr "Texas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Teksti" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "Näytönjakolähde lopetti videon lähettämisen, joten näytönjako on lopetettu." @@ -35774,7 +35749,7 @@ msgstr "Nimetön ryhmä" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Nimetön syöttölaite" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Käytetään yhteisöissä, joilla ei ole omaa ääntä." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Käytetään mukautetussa tilassa. Pelitila- ja näytönjakoesiasetukset määrittävät oman vihjeensä." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" msgstr "Videopuhelu ei ole käytettävissä" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Videokoodekki" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Videokoodekki näytön jakamiseen" @@ -37912,7 +37887,7 @@ msgid "Volume mute" msgstr "Mykistä ääni" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Äänenvoimakkuuden liukusäätimet" @@ -38466,6 +38441,11 @@ msgstr "Mitä sisällytetään" msgid "What to search for." msgstr "Mitä etsitään." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "Jakamasi sisältö ei päivity" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Tallentamasi {savedResolution} ja {savedFrameRate} FPS vaativat {premiumProductName} -tilauksen, joten jaot käyttävät {resolution} ja {frameRate} FPS." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Näyttösi jakamista ei voitu julkaista yhteensopivalla videokoodekilla, joten se pysäytettiin. Yritä jakaa uudelleen." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Mukautetuksi URL-osoitteeksi on asetettu {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Videokooderisi lopetti kuvien koodaamisen, joten näytön jakaminen pysäytettiin. Yritä jakaa uudelleen." diff --git a/fluxer_app/src/features/i18n/locales/fr/messages.po b/fluxer_app/src/features/i18n/locales/fr/messages.po index c6a305f4c..c9f57285e 100644 --- a/fluxer_app/src/features/i18n/locales/fr/messages.po +++ b/fluxer_app/src/features/i18n/locales/fr/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Développer (# ligne)} other {Développer (# lignes msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Afficher (# ligne)} other {Afficher (# lignes)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Afficher # autre appareil} other {Afficher # autres appareils}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, =1 {En appel} other {# en appel}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Rejoindre l’appel vidéo (# participant)} other {Rejoindre l’appel vidéo (# participants)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {Continuer à regarder # diffusion et ajouter celle-ci} other {Continuer à regarder # diffusions et ajouter celle-ci}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} IPS" @@ -3590,8 +3590,8 @@ msgstr "Autoriser toute personne pouvant consulter votre profil complet à voir #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Autoriser AV1 pour le partage d'écran" @@ -3649,8 +3649,8 @@ msgstr "Autoriser pour toutes les communautés" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Autoriser H.265 (HEVC) pour le partage d'écran" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Amplification audio" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Périphérique audio" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Alertes concernant le périphérique audio" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Envoi audio :" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Paramètres audio" @@ -4987,9 +4987,9 @@ msgstr "Suggestion de saisie semi-automatique : {label}, {selectedOptionPosition #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Automatique" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Automatique ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Contrôle automatique du gain" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Défilement automatique" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (nécessite une activation)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Données biométriques" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Débit binaire" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Format horaire du navigateur : {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Gain du micro du navigateur pour le traitement personnalisé" @@ -6483,15 +6483,15 @@ msgstr "Échec de la vérification du CAPTCHA. Veuillez réessayer." msgid "Capture" msgstr "Capture" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Capturer le son de l’application" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Capturer le son de l’ordinateur" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Capturer l'audio de l'appareil" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Les appareils de capture utilisent le préréglage Gaming." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Capturer tout l’audio du système" @@ -7637,11 +7637,6 @@ msgstr "Choisissez votre langue" msgid "Choose your profile accent color" msgstr "Choisir la couleur d'accentuation de votre profil" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Code :" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Codec" @@ -8766,7 +8761,7 @@ msgstr "Focus de la zone de rédaction" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Configurer" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Volume de la connexion" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Contrôles du volume de connexion" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Filtrage du contenu" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Indication du type de contenu" @@ -10594,7 +10589,7 @@ msgstr "Actuellement : {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Personnalisé" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Arrière-plans vidéo personnalisés" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Traitement vocal personnalisé" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Bannière détachée" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Détail" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Appareil" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Alertes des appareils" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Audio de l'appareil ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Audio de l'appareil uniquement" @@ -11904,12 +11899,12 @@ msgstr "Détails de l’appareil" msgid "Device revoked" msgstr "Appareil révoqué" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Sélection de l'appareil" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Volume de l'appareil" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Appareils" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Définissez vos propres valeurs" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Désactiver les notifications push sur mobile" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Désactiver l'incrustation d'image pour les partages d'écran" @@ -12629,7 +12624,7 @@ msgstr "Ne plus suggérer {deviceName}" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Terminé" @@ -13756,8 +13751,8 @@ msgstr "Activé" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Chemin de l’encodeur" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Préférence d’encodeur pour les nouveaux partages d’écran." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Encodeur, SVC et préréglages de débit" @@ -15616,7 +15611,7 @@ msgstr "Cadre" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Fréquence d'images" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Quittez complètement et redémarrez {productName} pour que macOS applique cette autorisation." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Contrôle du gain" @@ -15946,7 +15941,7 @@ msgstr "Manette Y / Triangle" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Jeux vidéo" @@ -16451,7 +16446,7 @@ msgstr "A accordé {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Accorde toutes les permissions et contourne les restrictions des salons. Permission très sensible." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Sélection granulaire" @@ -16629,13 +16624,8 @@ msgstr "Groupe mis à jour" msgid "Grouping" msgstr "Groupement" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (nécessite une activation)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "L'accélération matérielle peut provoquer des problèmes d'affichage avec les fenêtres transparentes. Essayez --disable-gpu si vous constatez un scintillement ou des bavures." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Encodeur matériel" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Aidez à traduire {PRODUCT_NAME} dans votre langue sur <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Masquer les salons mis en sourdine par défaut ?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Masquer la miniature d’aperçu de ma diffusion" @@ -17014,7 +17004,7 @@ msgstr "Masquer le mot de passe" msgid "Hide picture-in-picture popout?" msgstr "Masquer la fenêtre incrustée (PIP) ?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Masquer la miniature d’aperçu" @@ -17417,11 +17407,11 @@ msgstr "Ignorer" msgid "Ignore friend request" msgstr "Ignorer la demande d'ami" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Ignorer les appareils matériels" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Ignorer les médias entrants" @@ -17452,7 +17442,7 @@ msgstr "Ignorer la demande d'ami de {displayName} ?" msgid "Ignore this channel's slowmode cooldown." msgstr "Ignorer le délai du mode lent de ce salon." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Ignorer le virtuel" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Superposition" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Encodage en couches pour AV1 et VP9, si disponible." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Protection maximale pour les espaces familiaux" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Peut causer des problèmes de compatibilité pour les spectateurs. Nous travaillons à améliorer cela." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "L'accès au microphone a été refusé. Activez-le dans les réglages de votre système et réessayez." #. 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Gain du microphone" @@ -21318,7 +21308,7 @@ msgstr "Les plus pertinents" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "Nouveau-Mexique" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Nouveau microphone" @@ -22830,11 +22820,11 @@ msgstr "Aucun utilisateur trouvé avec ce nom d'utilisateur." msgid "No users are currently banned from this community." msgstr "Aucun utilisateur n'est actuellement banni de cette communauté." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Aucun utilisateur disponible" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Aucun utilisateur trouvé" @@ -23313,7 +23303,7 @@ msgstr "S'applique uniquement aux écrans larges." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Seules les cartes de crédit sont acceptées. Les cartes de débit et prépayées ne peuvent pas servir à la vérification d’accès aux contenus pour adultes." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Haut-parleurs par défaut uniquement" @@ -23361,7 +23351,7 @@ msgstr "N'exécutez du code ici que si vous comprenez exactement ce qu'il fait." msgid "Only show message previews for DMs with unread messages" msgstr "Afficher les aperçus de message uniquement pour les MP non lus" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Haut-parleurs seulement" @@ -23901,21 +23891,6 @@ msgstr "Ouvrez l’application de SMS de votre téléphone et commencez un nouve msgid "Open your settings" msgstr "Ouvrir vos réglages" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "Codec logiciel OpenH264 sur Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "Codec vidéo OpenH264" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "Codec vidéo OpenH264 fourni par Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Mettre les invitations en pause ? Les nouveaux utilisateurs ne pourront pas rejoindre via les liens d'invitation tant que vous ne les réactiverez pas. Les membres existants ne seront pas affectés." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Mettre en pause l'aperçu de mon partage d'écran en arrière-plan" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Profils par 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Volume par appareil" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Photo" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Image dans l'image" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Fenêtre des messages épinglés" #. 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PiP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Préférer être @mentionné" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Préférer le matériel" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Préférer ne pas être @mentionné" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Préférer le logiciel" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Préférences..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Codec de partage d'écran préféré" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Écouter un aperçu" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Comportement des aperçus, des fenêtres séparées et des miniatures de diffusion" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Demande de confirmation" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Demander la confirmation pour les nouveaux périphériques audio." @@ -27659,7 +27634,7 @@ msgstr "Le redimensionnement, l'agrandissement et l'ancrage des fenêtres dépen #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Résolution" @@ -28352,7 +28327,7 @@ msgstr "Autorisation d'enregistrement d'écran requise" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Partage d'écran" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "Le partage audio de l'écran n'a pas pu démarrer" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Codec de partage d'écran" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Commandes de l’encodeur de partage d’écran" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Partage d’écran terminé" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "Le partage d'écran utilise l'encodage logiciel ({codec}). La qualité peut être réduite et l'utilisation du processeur augmentée. Votre GPU pourrait ne pas prendre en charge l'encodage matériel pour ce codec." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Aperçu du partage d'écran" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Comportement de l’aperçu du partage d’écran" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Partage d'écran" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Codec de partage d'écran" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Partager des écrans et des fenêtres." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Partager le son de la diffusion" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Partage d'informations personnelles" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Texte net en 720p, jusqu’à 30 IPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Texte net jusqu'à 4K, jusqu'à 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "Afficher Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Afficher les alertes de nouvel appareil" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Afficher le mot de passe" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Afficher les curseurs de volume des participants par appareil dans les menus vocaux" @@ -30662,7 +30637,7 @@ msgstr "Appels silencieux" msgid "Silent calls from everyone" msgstr "Appels silencieux de tout le monde" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Silencieux lorsque l’appareil de capture n’a pas sa propre entrée audio" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Mode communauté unique" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Couche unique" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Émoticônes" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Fluide 30 IPS jusqu'à 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Fluide 60 IPS jusqu'à 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" msgstr "Social" #. 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Encodeur logiciel" @@ -31258,7 +31233,7 @@ msgstr "Sons" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Source" @@ -32047,13 +32022,13 @@ msgstr "Diffusion masquée" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Aperçu de la diffusion" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Qualité de la diffusion" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "En direct" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Mode de diffusion" @@ -32280,12 +32255,12 @@ msgid "Suspend" msgstr "Suspendre" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "Mode SVC" @@ -32559,7 +32534,7 @@ msgstr "Annonces système de l'équipe {productName}. Vous ne pouvez pas répond #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Par défaut du système" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "URL du modèle" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Couches temporelles" @@ -32837,7 +32812,7 @@ msgstr "Texas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Texte" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "La source de partage d’écran a cessé d’envoyer des vidéos, votre partage d’écran a donc été arrêté." @@ -35774,7 +35749,7 @@ msgstr "Groupe sans nom" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Entrée sans nom" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Utilisé dans les communautés qui n'ont pas leur propre son." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Utilisé en mode Personnalisé. Les préréglages Jeu et Partage d'écran définissent leur propre indication." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" msgstr "Appel vidéo indisponible" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Codec vidéo" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Codec vidéo pour le partage d’écran." @@ -37912,7 +37887,7 @@ msgid "Volume mute" msgstr "Couper le son" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Curseurs de volume" @@ -38466,6 +38441,11 @@ msgstr "Éléments à inclure" msgid "What to search for." msgstr "Ce qu'il faut rechercher." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "Ce que vous partagez ne se met pas à jour" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Votre {savedResolution} à {savedFrameRate} FPS nécessite {premiumProductName}, les partages utilisent donc {resolution} à {frameRate} FPS." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Votre partage d'écran n'a pas pu être publié avec un codec vidéo compatible, il a donc été arrêté. Essayez de partager à nouveau." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Votre URL personnalisée a été définie sur {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Votre encodeur vidéo a cessé d'encoder des images, votre partage d'écran a donc été arrêté. Essayez de partager à nouveau." diff --git a/fluxer_app/src/features/i18n/locales/he/messages.po b/fluxer_app/src/features/i18n/locales/he/messages.po index 3aabe46f7..a8b905525 100644 --- a/fluxer_app/src/features/i18n/locales/he/messages.po +++ b/fluxer_app/src/features/i18n/locales/he/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {הרחב (שורה אחת)} other {הרחב (# שו msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {הרחב (שורה אחת)} other {הרחב (# שורות)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {הרחב מכשיר אחד נוסף} other {הרחב # מכשירים נוספים}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {בשיחה} other {# בשיחה}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {הצטרף לשיחת וידאו (משתתף אחד)} other {הצטרף לשיחת וידאו (# משתתפים)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {המשך לצפות בשידור אחד והוסף גם את זה} other {המשך לצפות ב-# שידורים והוסף גם את זה}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} FPS" @@ -3590,8 +3590,8 @@ msgstr "אפשר לכל מי שיכול לצפות בפרופיל המלא של #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "אפשר AV1 לשיתוף מסך" @@ -3649,8 +3649,8 @@ msgstr "אפשר לכל הקהילות" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "אפשר H.265 (HEVC) לשיתוף מסך" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "הגברת שמע" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "התראות על התקן שמע" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "שליחת שמע:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "הגדרות שמע" @@ -4987,9 +4987,9 @@ msgstr "הצעת השלמה אוטומטית: {label}, {selectedOptionPosition} #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "אוטומטי" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "אוטומטי ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "בקרת הגברה אוטומטית" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "גלילה אוטומטית" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (דורש אישור מראש)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "קצב סיביות" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "תבנית השעה של הדפדפן: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "עוצמת המיקרופון בדפדפן עבור עיבוד קולי מותאם אישית" @@ -6483,15 +6483,15 @@ msgstr "אימות הקאפצ'ה נכשל. יש לנסות שוב." msgid "Capture" msgstr "לכידה" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "לכידת שמע מהאפליקציה" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "לכידת שמע מהמחשב" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "לכידת שמע מהמכשיר" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "מכשירי לכידה משתמשים בהגדרות קבועות מראש של \"משחקים\"." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "לכידת כל שמע המערכת" @@ -7637,11 +7637,6 @@ msgstr "בחר את השפה שלך" msgid "Choose your profile accent color" 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "קודק" @@ -8766,7 +8761,7 @@ msgstr "מיקוד תיבת ההודעה" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "הגדרות מתקדמות" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "עוצמת שמע של החיבור" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "בקרות עוצמת הקול של החיבור" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "סינון תוכן" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "סוג התוכן לקידוד" @@ -10594,7 +10589,7 @@ msgstr "נוכחי: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "מותאם אישית" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "עיבוד קולי מותאם אישית" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "באנר מנותק" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "פירוט" @@ -11880,7 +11875,7 @@ msgid "Device" 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "התראות מכשיר" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "שמע של שיתוף מסך במכשיר וידאו. {deviceLabel} הוא שם קלט השמע המשויך למכשיר הלכידה." #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "שמע מהמכשיר בלבד" @@ -11904,12 +11899,12 @@ msgstr "פרטי מכשיר" msgid "Device revoked" msgstr "המכשיר נותק" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "עוצמת שמע של המכשיר" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "מכשירים" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "כוונון ידני של הרזולוציה וקצב הפריימים" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "השבתת התראות דחיפה בנייד" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "השבתת חלון קופץ של תמונה בתוך תמונה לשיתופי מסך" @@ -12629,7 +12624,7 @@ msgstr "אל תציע את {deviceName} שוב" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "בוצע" @@ -13756,8 +13751,8 @@ msgstr "מופעל" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "נתיב המקודד" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "העדפת מקודד עבור שיתופי מסך חדשים." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "קידוד, SVC והגדרות קבועות מראש של קצב סיביות" @@ -15616,7 +15611,7 @@ msgstr "מסגרת" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "קצב פריימים" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "צא לגמרי מ-{productName} והפעל אותו מחדש כדי ש-macOS יחיל את ההרשאה הזו." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "בקרת הגברה" @@ -15946,7 +15941,7 @@ msgstr "לחצן בקר Y / משולש" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "גיימינג" @@ -16451,7 +16446,7 @@ msgstr "הוענקו {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "מעניק את כל ההרשאות ועוקף הגבלות ערוץ. רגיש במיוחד." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "בחירה פרטנית" @@ -16629,13 +16624,8 @@ msgstr "הקבוצה עודכנה" msgid "Grouping" 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (דורש אישור מראש)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "האצת חומרה עלולה לגרום לבעיות רינדור עם חלונות שקופים. נסה --disable-gpu אם אתה רואה הבהוב או מריחה." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "מקודד חומרה" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "עזור לתרגם את {PRODUCT_NAME} לשפה שלך ב-<0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "להסתיר ערוצים מושתקים כברירת מחדל?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "הסתר את התמונה הממוזערת של התצוגה המקדימה של השידור שלי" @@ -17014,7 +17004,7 @@ msgstr "הסתר סיסמה" msgid "Hide picture-in-picture popout?" msgstr "להסתיר את החלון הקופץ של תמונה בתוך תמונה?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "הסתר תצוגה מקדימה ממוזערת" @@ -17417,11 +17407,11 @@ msgstr "התעלם" msgid "Ignore friend request" msgstr "התעלם מבקשת חברות" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "התעלם מהתקני חומרה" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "התעלם מקלט מדיה" @@ -17452,7 +17442,7 @@ msgstr "להתעלם מבקשת החברות מ-{displayName}?" msgid "Ignore this channel's slowmode cooldown." msgstr "התעלם מהשהיית המצב האיטי של הערוץ הזה." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "התעלם מהתקנים וירטואליים" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "שכבות" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "שכבות עבור AV1 ו-VP9 כשהן זמינות." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "הגנה מרבית למרחבים ידידותיים למשפחה" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "עלול לגרום לבעיות תאימות עבור צופים. אנו עובדים על שיפור זה." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "עוצמת המיקרופון" @@ -21318,7 +21308,7 @@ msgstr "הכי רלוונטי" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "מיקרופון חדש" @@ -22830,11 +22820,11 @@ msgstr "לא נמצא משתמש עם שם המשתמש הזה." msgid "No users are currently banned from this community." msgstr "אין משתמשים חסומים כרגע מהקהילה הזו." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "אין משתמשים זמינים" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "לא נמצאו משתמשים" @@ -23313,7 +23303,7 @@ msgstr "חל רק על מסכים רחבים." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "מתקבלים כרטיסי אשראי בלבד. לא ניתן להשתמש בכרטיסי חיוב או בכרטיסים נטענים לצורך אימות התוכן למבוגרים." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "רמקולי ברירת המחדל בלבד" @@ -23361,7 +23351,7 @@ msgstr "יש להריץ כאן קוד רק אם אתה מבין בדיוק מה msgid "Only show message previews for DMs with unread messages" msgstr "הצג תצוגה מקדימה של הודעות רק בצ'אטים פרטיים עם הודעות שלא נקראו" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "רמקולים בלבד" @@ -23901,21 +23891,6 @@ msgstr "פתח את אפליקציית ההודעות בטלפון שלך והת msgid "Open your settings" msgstr "פתח את ההגדרות שלך" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "קודק תוכנה OpenH264 בלינוקס" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "קודק וידאו OpenH264" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "קודק הווידאו OpenH264 מסופק על ידי Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "להשהות הזמנות? משתמשים חדשים לא יוכלו להצטרף דרך קישורי הזמנה עד שתפעיל אותם מחדש. חברים קיימים לא יושפעו." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "השהה את התצוגה המקדימה של שיתוף המסך שלי ברקע" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "עוצמת קול לכל מכשיר" @@ -24776,7 +24751,7 @@ msgid "Picture" 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "תמונה בתוך תמונה" @@ -24906,7 +24881,7 @@ msgid "Pins popout" 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "תמונה בתוך תמונה" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "העדפת אזכור ב-@" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "העדף חומרה" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "העדפה ללא אזכור ב-@" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "העדף תוכנה" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "העדפות..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "קודק שיתוף מסך מועדף" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "השמעת צליל" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "תצוגה מקדימה, פתיחה בחלון נפרד והתנהגות התמונה הממוזערת של השידור" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "בקשת אישור" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "הצגת בקשה כשמתחבר התקן שמע חדש" @@ -27659,7 +27634,7 @@ msgstr "שינוי גודל, הגדלה והצמדת חלונות תלויים #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "רזולוציה" @@ -28352,7 +28327,7 @@ msgstr "נדרשת הרשאת הקלטת מסך" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "שיתוף מסך" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "לא ניתן היה להתחיל את שיתוף המסך עם שמע" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "קודק שיתוף מסך" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "בקרות מקודד שיתוף מסך" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "שיתוף מסך הסתיים" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "שיתוף המסך משתמש בקידוד תוכנה ({codec}). ייתכן שהאיכות תהיה נמוכה יותר וצריכת המעבד תגדל. ייתכן שכרטיס המסך שלך אינו תומך בקידוד חומרה עבור הקודק הזה." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "תצוגה מקדימה של שיתוף מסך" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "התנהגות תצוגה מקדימה של שיתוף מסך" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "קודק שיתוף מסך" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "שתף מסכים וחלונות." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "שתף שמע של הזרם" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "שיתוף מידע אישי" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "טקסט חד ב-720p, עד 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "טקסט חד עד 4K, עד 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "הצג נקו" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "הצגת התראות על מכשירים חדשים" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "הצג סיסמה" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "הצג פקדי עוצמת קול למשתתפים לפי מכשיר בתפריטי קול" @@ -30662,7 +30637,7 @@ msgstr "שיחות שקטות" msgid "Silent calls from everyone" msgstr "שיחות שקטות מכולם" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "השתק כאשר למכשיר הלכידה אין קלט שמע משלו" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "מצב קהילה יחידה" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "שכבה אחת" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "סמיילים" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "חלק 30 FPS עד 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "60 FPS חלקים עד 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "מקודד תוכנה" @@ -31258,7 +31233,7 @@ msgstr "צלילים" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "מקור" @@ -32047,13 +32022,13 @@ msgstr "השידור מוסתר" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "תצוגה מקדימה של השידור" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "איכות השידור" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "בשידור" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "מצב סטרימינג" @@ -32280,12 +32255,12 @@ msgid "Suspend" 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "מצב SVC" @@ -32559,7 +32534,7 @@ msgstr "הודעות מערכת מצוות {productName}. לא ניתן להשי #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "ברירת מחדל של המערכת" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "כתובת URL של תבנית" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "שכבות זמניות" @@ -32837,7 +32812,7 @@ msgstr "טקסס" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "טקסט" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "מקור שיתוף המסך הפסיק לשלוח וידאו, ולכן שיתוף המסך שלך הופסק." @@ -35774,7 +35749,7 @@ msgstr "קבוצה ללא שם" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "קלט ללא שם" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "בשימוש בקהילות שאין להן צליל משלהן." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "בשימוש במצב מותאם אישית. ההגדרות הקבועות מראש \"משחקים\" ו\"שיתוף מסך\" מגדירות רמז משלהן." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "קודק וידאו" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "קודק וידאו לשיתוף מסך" @@ -37912,7 +37887,7 @@ msgid "Volume mute" 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "מחווני עוצמת קול" @@ -38466,6 +38441,11 @@ msgstr "מה לכלול" msgid "What to search for." msgstr "מה לחפש." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "מה שאתה משתף לא מתעדכן" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "האיכות ששמרת של {savedResolution} ב- {savedFrameRate} FPS דורשת {premiumProductName}, לכן השיתופים משתמשים ב- {resolution} ב- {frameRate} FPS." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "לא ניתן היה לפרסם את שיתוף המסך שלך בקודק וידאו תואם, ולכן הוא הופסק. נסה לשתף שוב." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "כתובת ה-URL המותאמת אישית שלך הוגדרה ל-{inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "מקודד הווידאו שלך הפסיק לקודד פריימים, ולכן שיתוף המסך שלך הופסק. נסה לשתף שוב." diff --git a/fluxer_app/src/features/i18n/locales/hi/messages.po b/fluxer_app/src/features/i18n/locales/hi/messages.po index 03ac1a198..2aebf6ceb 100644 --- a/fluxer_app/src/features/i18n/locales/hi/messages.po +++ b/fluxer_app/src/features/i18n/locales/hi/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {विस्तार करें (# लाइन) msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {विस्तार करें (# पंक्ति)} other {विस्तार करें (# पंक्तियाँ)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {# अन्य डिवाइस दिखाएँ} other {# अन्य डिवाइस दिखाएँ}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {कॉल पर} other {# लोग कॉल प msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {वीडियो कॉल में शामिल हों (# प्रतिभागी)} other {वीडियो कॉल में शामिल हों (# प्रतिभागी)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {# स्ट्रीम देखना जारी रखें और इसे जोड़ें} other {# स्ट्रीम देखना जारी रखें और इसे जोड़ें}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} एफपीएस" @@ -3590,8 +3590,8 @@ msgstr "जो कोई भी आपकी पूरी प्रोफ़ा #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "स्क्रीन शेयरिंग के लिए AV1 की अनुमति दें" @@ -3649,8 +3649,8 @@ msgstr "सभी कम्युनिटी के लिए अनुमत #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "स्क्रीन शेयरिंग के लिए H.265 (HEVC) की अनुमति दें" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "ऑडियो बूस्ट" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "ऑडियो डिवाइस अलर्ट" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "ऑडियो सेंड:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "ऑडियो सेटिंग्स" @@ -4987,9 +4987,9 @@ msgstr "ऑटो-कम्प्लीट सुझाव: {label}, {resultCoun #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "ऑटोमैटिक" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "ऑटोमैटिक ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "ऑटोमैटिक गेन कंट्रोल" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "ऑटोस्क्रॉलिंग" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (ऑप्ट-इन आवश्यक)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "बिटरेट" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "ब्राउज़र का समय प्रारूप: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "कस्टम प्रोसेसिंग के लिए ब्राउज़र माइक गेन" @@ -6483,15 +6483,15 @@ msgstr "कैप्चा वेरिफ़िकेशन विफल रह msgid "Capture" msgstr "कैप्चर करें" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "ऐप ऑडियो कैप्चर करें" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "डेस्कटॉप ऑडियो कैप्चर करें" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "डिवाइस ऑडियो कैप्चर करें" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "कैप्चर डिवाइस गेमिंग प्रीसेट का उपयोग करते हैं।" #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "पूरे सिस्टम का ऑडियो कैप्चर करें" @@ -7637,11 +7637,6 @@ msgstr "अपनी भाषा चुनें" msgid "Choose your profile accent color" 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "कोडेक" @@ -8766,7 +8761,7 @@ msgstr "कंपोजर फ़ोकस" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "कॉन्फ़िगर करें" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "कनेक्शन वॉल्यूम" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "कनेक्शन वॉल्यूम नियंत्रण" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "कंटेंट फ़िल्टरिंग" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "कंटेंट हिंट" @@ -10594,7 +10589,7 @@ msgstr "अभी: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "कस्टम" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "कस्टम वॉइस प्रोसेसिंग" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "अलग बैनर" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "डिटेल" @@ -11880,7 +11875,7 @@ msgid "Device" 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "डिवाइस अलर्ट" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "डिवाइस ऑडियो ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "डिवाइस ऑडियो ही" @@ -11904,12 +11899,12 @@ msgstr "डिवाइस विवरण" msgid "Device revoked" msgstr "डिवाइस हटा दिया गया" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "डिवाइस वॉल्यूम" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "डिवाइस" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "अपने नंबर खुद तय करें" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "मोबाइल पुश नोटिफ़िकेशन बंद करें" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "स्क्रीन शेयर के लिए पिक्चर-इन-पिक्चर पॉपआउट बंद करें" @@ -12629,7 +12624,7 @@ msgstr "{deviceName} का सुझाव दोबारा न दें" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "हो गया" @@ -13756,8 +13751,8 @@ msgstr "चालू है" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "एन्कोडर पाथ" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "नए स्क्रीन शेयर के लिए एन्कोडर प्राथमिकता।" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "एनकोडर, एसवीसी और बिटरेट प्रीसेट" @@ -15616,7 +15611,7 @@ msgstr "फ़्रेम" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "फ़्रेम रेट" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "{productName} को पूरी तरह बंद करके फिर से खोलें ताकि macOS यह अनुमति लागू कर सके।" #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "गेन कंट्रोल" @@ -15946,7 +15941,7 @@ msgstr "गेमपैड Y / ट्राएंगल" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "गेमिंग" @@ -16451,7 +16446,7 @@ msgstr "{permissions} प्रदान किए गए" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "सभी अनुमतियाँ देता है और चैनल प्रतिबंधों को बायपास करता है। अत्यधिक संवेदनशील।" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "बारीक चयन" @@ -16629,13 +16624,8 @@ msgstr "ग्रुप अपडेट किया गया" msgid "Grouping" 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (ऑप्ट-इन ज़रूरी है)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "हार्डवेयर एक्सीलरेशन से पारदर्शी विंडो में रेंडरिंग में गड़बड़ी हो सकती है। अगर आपको फ़्लिकर या स्मियरिंग दिखती है, तो --disable-gpu आज़माएँ।" #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "हार्डवेयर एन्कोडर" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "<0>{I18N_WEBLATE_DOMAIN} पर {PRODUCT_NAME} का अपनी भाषा में अनुवाद करने में मदद करें।" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "म्यूट किए गए चैनल डिफ़ॉल्ट रूप से छिपाएँ?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "मेरे स्ट्रीम पूर्वावलोकन थंबनेल को छिपाएँ" @@ -17014,7 +17004,7 @@ msgstr "पासवर्ड छिपाएं" msgid "Hide picture-in-picture popout?" msgstr "पिक्चर-इन-पिक्चर पॉपआउट छिपाएँ?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "पूर्वावलोकन थंबनेल छिपाएँ" @@ -17417,11 +17407,11 @@ msgstr "अनदेखा करें" msgid "Ignore friend request" msgstr "फ्रेंड रिक्वेस्ट अनदेखा करें" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "हार्डवेयर डिवाइस को अनदेखा करें" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "इनपुट मीडिया को अनदेखा करें" @@ -17452,7 +17442,7 @@ msgstr "क्या आप {displayName} की फ्रेंड रिक् msgid "Ignore this channel's slowmode cooldown." msgstr "इस चैनल के स्लोमोड कूलडाउन को अनदेखा करें।" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "वर्चुअल को अनदेखा करें" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "लेयरिंग" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "उपलब्ध होने पर AV1 और VP9 के लिए लेयरिंग।" @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "परिवार के अनुकूल जगहों के लिए अधिकतम सुरक्षा" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "यह देखने वालों के लिए अनुकूलता समस्याएँ पैदा कर सकता है। हम इसमें सुधार कर रहे हैं।" @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "माइक्रोफ़ोन गेन" @@ -21318,7 +21308,7 @@ msgstr "सबसे ज़्यादा प्रासंगिक" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "नया माइक्रोफ़ोन" @@ -22830,11 +22820,11 @@ msgstr "इस यूज़रनेम से कोई यूज़र नह msgid "No users are currently banned from this community." msgstr "इस कम्युनिटी से अभी कोई भी यूज़र बैन नहीं है।" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "कोई यूज़र उपलब्ध नहीं है" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "कोई यूज़र नहीं मिला" @@ -23313,7 +23303,7 @@ msgstr "केवल चौड़ी स्क्रीन पर लागू msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "केवल क्रेडिट कार्ड स्वीकार किए जाते हैं। वयस्क सामग्री की जाँच के लिए डेबिट और प्रीपेड कार्ड इस्तेमाल नहीं किए जा सकते।" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "केवल डिफ़ॉल्ट स्पीकर" @@ -23361,7 +23351,7 @@ msgstr "यहां कोड तभी चलाएं जब आप ठीक msgid "Only show message previews for DMs with unread messages" msgstr "केवल बिना पढ़े मैसेज वाले DM के लिए मैसेज प्रीव्यू दिखाएं" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "केवल स्पीकर" @@ -23901,21 +23891,6 @@ msgstr "अपने फ़ोन के मैसेजिंग ऐप को msgid "Open your settings" msgstr "अपनी सेटिंग्स खोलें" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "Linux पर OpenH264 सॉफ़्टवेयर कोडेक" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "OpenH264 वीडियो कोडेक" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "Cisco Systems, Inc. द्वारा प्रदान किया गया OpenH264 वीडियो कोडेक।" - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "इनवाइट रोकें? जब तक आप इन्हें फिर से चालू नहीं करते, नए यूज़र इनवाइट लिंक के ज़रिए शामिल नहीं हो पाएँगे। मौजूदा सदस्यों पर कोई असर नहीं पड़ेगा।" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "बैकग्राउंड में मेरा स्क्रीन शेयर प्रीव्यू रोकें" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "प्रति-डिवाइस वॉल्यूम" @@ -24776,7 +24751,7 @@ msgid "Picture" 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "पिक्चर इन पिक्चर" @@ -24906,7 +24881,7 @@ msgid "Pins popout" 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "पिप" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "@मेंशन चाहिए" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "हार्डवेयर को प्राथमिकता दें" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "@मेंशन नहीं चाहिए" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "सॉफ़्टवेयर को प्राथमिकता दें" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "प्राथमिकताएँ..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "पसंदीदा स्क्रीन शेयर कोडेक" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "साउंड का प्रीव्यू करें" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "प्रीव्यू, पॉपआउट और स्ट्रीम थंबनेल का व्यवहार" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "प्रॉम्प्ट" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "नया ऑडियो डिवाइस कनेक्ट होने पर पूछें" @@ -27659,7 +27634,7 @@ msgstr "आकार बदलना, विंडो बड़ी करना #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "रिज़ॉल्यूशन" @@ -28352,7 +28327,7 @@ msgstr "स्क्रीन रिकॉर्डिंग की अनुम #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "स्क्रीन शेयर" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "स्क्रीन शेयर ऑडियो शुरू नहीं हो सका" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "स्क्रीन शेयर कोडेक" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "स्क्रीन शेयर एन्कोडर कंट्रोल" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "स्क्रीन शेयर समाप्त हो गया" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "स्क्रीन शेयर सॉफ़्टवेयर एन्कोडिंग ({codec}) का इस्तेमाल कर रहा है। क्वालिटी कम हो सकती है और CPU का इस्तेमाल बढ़ सकता है। हो सकता है कि आपका GPU इस कोडेक के लिए हार्डवेयर एन्कोडिंग सपोर्ट न करता हो।" #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "स्क्रीन शेयर का प्रीव्यू" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "स्क्रीन शेयर प्रीव्यू का तरीका" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "स्क्रीन शेयरिंग कोडेक" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "स्क्रीन और विंडो शेयर करें।" #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "स्ट्रीम ऑडियो शेयर करें" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "व्यक्तिगत जानकारी शेयर करना" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "720p पर शार्प टेक्स्ट, 30 FPS तक" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "15 FPS पर 4K तक शार्प टेक्स्ट" @@ -30327,7 +30302,7 @@ msgstr "नेको दिखाएं" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "नए डिवाइस अलर्ट दिखाएं" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "पासवर्ड दिखाएं" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "वॉइस मेन्यू में प्रति-डिवाइस प्रतिभागी वॉल्यूम स्लाइडर दिखाएं" @@ -30662,7 +30637,7 @@ msgstr "साइलेंट कॉल" msgid "Silent calls from everyone" msgstr "सभी से साइलेंट कॉल" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "जब कैप्चर डिवाइस में अपना कोई ऑडियो इनपुट न हो तो साइलेंट रहें" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "सिंगल कम्युनिटी मोड" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "सिंगल लेयर" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "स्माइली" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "720p तक, स्मूथ 30 FPS" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "1440p तक स्मूथ 60 FPS" @@ -31028,7 +31003,7 @@ msgid "Social" 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "सॉफ़्टवेयर एन्कोडर" @@ -31258,7 +31233,7 @@ msgstr "साउंड" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "सोर्स" @@ -32047,13 +32022,13 @@ msgstr "स्ट्रीम छिपी हुई है" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "स्ट्रीम का प्रीव्यू" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "स्ट्रीम क्वालिटी" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "स्ट्रीमिंग" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "स्ट्रीमिंग मोड" @@ -32280,12 +32255,12 @@ msgid "Suspend" 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "SVC मोड" @@ -32559,7 +32534,7 @@ msgstr "{productName} स्टाफ़ की सिस्टम घोषण #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "सिस्टम डिफ़ॉल्ट" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "टेम्पलेट यूआरएल" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "टेम्पोरल लेयर्स" @@ -32837,7 +32812,7 @@ msgstr "टेक्सास" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "टेक्स्ट" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "स्क्रीन शेयर स्रोत ने वीडियो भेजना बंद कर दिया है, इसलिए आपका स्क्रीन शेयर रोक दिया गया।" @@ -35774,7 +35749,7 @@ msgstr "बिना नाम का ग्रुप" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "अनाम इनपुट" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "उन कम्युनिटी में इस्तेमाल किया जाता है जिनका अपना कोई साउंड नहीं है।" #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "कस्टम मोड में इस्तेमाल किया गया। गेमिंग और स्क्रीन शेयर प्रीसेट अपना हिंट सेट करते हैं।" @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "वीडियो कोडेक" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "स्क्रीन शेयर के लिए वीडियो कोडेक" @@ -37912,7 +37887,7 @@ msgid "Volume mute" 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "वॉल्यूम स्लाइडर" @@ -38466,6 +38441,11 @@ msgstr "क्या शामिल करें" msgid "What to search for." msgstr "क्या खोजना है।" +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "आप जो शेयर कर रहे हैं वह अपडेट नहीं हो रहा है" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "आपका सहेजा गया {savedResolution} {savedFrameRate} FPS पर {premiumProductName} की आवश्यकता है, इसलिए शेयर {resolution} {frameRate} FPS पर उपयोग करते हैं।" #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "आपका स्क्रीन शेयर किसी कम्पैटिबल वीडियो कोडेक के साथ पब्लिश नहीं हो सका, इसलिए इसे रोक दिया गया। फिर से शेयर करने की कोशिश करें।" @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "आपका वैनिटी यूआरएल {inviteEndpoint}/{vanitySlug} पर सेट कर दिया गया है" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "आपके वीडियो एन्कोडर ने फ़्रेम एन्कोड करना बंद कर दिया, इसलिए आपकी स्क्रीन शेयरिंग रोक दी गई। फिर से शेयर करने की कोशिश करें।" diff --git a/fluxer_app/src/features/i18n/locales/hr/messages.po b/fluxer_app/src/features/i18n/locales/hr/messages.po index 81c2c12fa..7953e5f28 100644 --- a/fluxer_app/src/features/i18n/locales/hr/messages.po +++ b/fluxer_app/src/features/i18n/locales/hr/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Proširi (# redak)} few {Proširi (# retka)} other msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Proširi (# redak)} few {Proširi (# retka)} other {Proširi (# redaka)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Proširi # drugi uređaj} few {Proširi # druga uređaja} other {Proširi # drugih uređaja}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, =1 {U pozivu} one {# u pozivu} few {# u pozivu} other {# msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Pridruži se videopozivu (# sudionik)} few {Pridruži se videopozivu (# sudionika)} other {Pridruži se videopozivu (# sudionika)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {Nastavi gledati # prijenos i dodaj ovaj} few {Nastavi gledati # prijenosa i dodaj ovaj} other {Nastavi gledati # prijenosa i dodaj ovaj}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} FPS" @@ -3590,8 +3590,8 @@ msgstr "Dopusti svima koji mogu vidjeti vaš cijeli profil da vide vaše lokalno #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Dopusti AV1 za dijeljenje zaslona" @@ -3649,8 +3649,8 @@ msgstr "Dopusti za sve zajednice" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Dopusti H.265 (HEVC) za dijeljenje zaslona" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Pojačanje zvuka" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Audio uređaj" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Upozorenja za audio uređaj" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Slanje zvuka:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Postavke zvuka" @@ -4987,9 +4987,9 @@ msgstr "Prijedlog automatskog dovršavanja: {label}, {selectedOptionPosition} od #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Automatski" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Automatski ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Automatska kontrola pojačanja" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Automatsko pomicanje" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (zahtijeva uključivanje)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Biometrija" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Brzina prijenosa podataka" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Format vremena preglednika: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Pojačanje mikrofona preglednika za prilagođenu obradu" @@ -6483,15 +6483,15 @@ msgstr "Provjera Captche nije uspjela. Pokušajte ponovno." msgid "Capture" msgstr "Snimanje" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Snimanje zvuka aplikacije" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Snimanje zvuka s radne površine" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Snimanje zvuka uređaja" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Uređaji za snimanje koriste predmemoriju za igre." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Snimanje cjelokupnog zvuka sustava" @@ -7637,11 +7637,6 @@ msgstr "Odaberite jezik" msgid "Choose your profile accent color" msgstr "Odaberite boju naglaska profila" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Kod:" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Kodek" @@ -8766,7 +8761,7 @@ msgstr "Fokusiranje sastavljača" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Konfiguriraj" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Glasnoća veze" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Kontrole glasnoće veze" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Filtriranje sadržaja" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Vrsta sadržaja za kodiranje" @@ -10594,7 +10589,7 @@ msgstr "Trenutačno: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Prilagođeno" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Prilagođene video pozadine" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Prilagođena obrada glasa" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Odvojeni natpis" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Detalji" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Uređaj" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Upozorenja za uređaje" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Zvuk uređaja ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Samo zvuk uređaja" @@ -11904,12 +11899,12 @@ msgstr "Detalji uređaja" msgid "Device revoked" msgstr "Uređaj opozvan" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Odabir uređaja" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Glasnoća uređaja" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Uređaji" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Namjestite brojke po svojoj mjeri" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Isključi mobilne push obavijesti" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Onemogući skočni prozor slike u slici za dijeljenje zaslona" @@ -12629,7 +12624,7 @@ msgstr "Ne predlaži {deviceName} ponovno" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Gotovo" @@ -13756,8 +13751,8 @@ msgstr "Omogućeno" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Način kodiranja" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Željeni način kodiranja za nova dijeljenja zaslona." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Kodeci, SVC i unaprijed postavljene vrijednosti protoka" @@ -15616,7 +15611,7 @@ msgstr "Okvir" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Broj sličica u sekundi" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Potpuno zatvorite i ponovno pokrenite {productName} kako bi macOS primijenio ovo dopuštenje." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Regulacija pojačanja" @@ -15946,7 +15941,7 @@ msgstr "Kontroler Y / Trokut" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Igranje" @@ -16451,7 +16446,7 @@ msgstr "Dodijeljena {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Daje sva dopuštenja i zaobilazi ograničenja kanala. Vrlo osjetljivo." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Detaljan odabir" @@ -16629,13 +16624,8 @@ msgstr "Grupa ažurirana" msgid "Grouping" msgstr "Grupiranje" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (zahtijeva uključivanje)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "Hardversko ubrzanje može uzrokovati greške u iscrtavanju prozirnih prozora. Pokušajte s --disable-gpu ako primijetite treperenje ili razmazivanje." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Hardverski enkoder" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Pomozite prevesti {PRODUCT_NAME} na vaš jezik na <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Sakriti utišane kanale po zadanim postavkama?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Sakrij sličicu pretpregleda mog streama" @@ -17014,7 +17004,7 @@ msgstr "Sakrij lozinku" msgid "Hide picture-in-picture popout?" msgstr "Sakriti skočni prozor slike u slici?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Sakrij sličicu pretpregleda" @@ -17417,11 +17407,11 @@ msgstr "Zanemari" msgid "Ignore friend request" msgstr "Zanemari zahtjev za prijateljstvo" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Zanemari hardverske uređaje" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Zanemari ulazne medije" @@ -17452,7 +17442,7 @@ msgstr "Zanemariti zahtjev za prijateljstvo od {displayName}?" msgid "Ignore this channel's slowmode cooldown." msgstr "Zaobiđi ograničenje usporenog načina rada ovog kanala." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Zanemari virtualne uređaje" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Slojevi" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Slojni način rada za AV1 i VP9 kada je dostupan." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Maksimalna zaštita za prostore prikladne za obitelj" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Može uzrokovati probleme s kompatibilnošću za gledatelje. Radimo na poboljšanju ovoga." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "Pristup mikrofonu je odbijen. Omogućite ga u postavkama sustava i pokušajte ponovno." #. 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Pojačanje mikrofona" @@ -21318,7 +21308,7 @@ msgstr "Najrelevantnije" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "Novi Meksiko" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Novi mikrofon" @@ -22830,11 +22820,11 @@ msgstr "Nije pronađen korisnik s tim korisničkim imenom." msgid "No users are currently banned from this community." msgstr "Trenutno nema zabranjenih korisnika u ovoj zajednici." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Nema dostupnih korisnika" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Nema pronađenih korisnika" @@ -23313,7 +23303,7 @@ msgstr "Primjenjuje se samo na širokim zaslonima." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Prihvaćaju se samo kreditne kartice. Debitne i prepaid kartice ne mogu se koristiti za provjeru sadržaja za odrasle." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Samo zadani zvučnici" @@ -23361,7 +23351,7 @@ msgstr "Ovdje pokrećite kod samo ako točno razumijete što radi." msgid "Only show message previews for DMs with unread messages" msgstr "Prikazuj pretpreglede poruka samo za izravne poruke s nepročitanim porukama" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Samo zvučnici" @@ -23901,21 +23891,6 @@ msgstr "Otvorite aplikaciju za poruke na telefonu i započnite novu tekstualnu p msgid "Open your settings" msgstr "Otvori postavke" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "Softverski kodek OpenH264 na Linuxu" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "Videokodek OpenH264" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "Videokodek OpenH264 koji pruža Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Pauzirati pozivnice? Novi se korisnici neće moći pridružiti putem poveznica za pozivnice dok ih ponovno ne omogućite. To neće utjecati na postojeće članove." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Pauziraj pretpregled mog dijeljenja zaslona u pozadini" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Profili po zajednicama" #. 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Glasnoća po uređaju" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Slika" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Slika u slici" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Skočni prozor s prikvačenim porukama" #. 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PiP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Uz @spominjanje" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Preferiraj hardver" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Bez @spominjanja" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Preferiraj softver" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Postavke..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Preferirani kodek za dijeljenje zaslona" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Pretpregled zvuka" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Ponašanje pretpregleda, skočnog prozora i sličice streama" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Upit" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Upit pri povezivanju novih audio uređaja" @@ -27659,7 +27634,7 @@ msgstr "Promjena veličine, maksimiziranje i pripinjanje prozora ovise o kompozi #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Razlučivost" @@ -28352,7 +28327,7 @@ msgstr "Potrebno je dopuštenje za snimanje zaslona" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Dijeljenje zaslona" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "Zvuk dijeljenja zaslona nije se mogao pokrenuti" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Kodek za dijeljenje zaslona" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Kontrole za enkoder dijeljenja zaslona" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Dijeljenje zaslona završeno" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "Dijeljenje zaslona koristi softversko kodiranje ({codec}). Kvaliteta može biti smanjena, a upotreba procesora povećana. Vaš GPU možda ne podržava hardversko kodiranje za ovaj kodek." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Pregled dijeljenja zaslona" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Ponašanje pregleda dijeljenja zaslona" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Dijeljenje zaslona" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Kodek za dijeljenje zaslona" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Dijelite zaslone i prozore." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Podijeli zvuk streama" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Dijeljenje osobnih podataka" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Oštro u 720p, do 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Oštro s do 4K, do 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "Prikaži Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Prikaži upozorenja za novi uređaj" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Prikaži lozinku" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Prikaži klizače glasnoće sudionika za svaki uređaj u glasovnim izbornicima" @@ -30662,7 +30637,7 @@ msgstr "Tihi pozivi" msgid "Silent calls from everyone" msgstr "Tihi pozivi od svih" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Tiho kada uređaj za snimanje nema vlastiti audio ulaz" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Način rada jedne zajednice" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Jednoslojno" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Smajlići" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Glatko 30 FPS pri do 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Glatko 60 FPS pri do 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" msgstr "Društveno" #. 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Softverski enkoder" @@ -31258,7 +31233,7 @@ msgstr "Zvukovi" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Izvorno" @@ -32047,13 +32022,13 @@ msgstr "Prijenos skriven" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Pregled prijenosa" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Kvaliteta prijenosa" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Strimanje" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Način prijenosa uživo" @@ -32280,12 +32255,12 @@ msgid "Suspend" msgstr "Suspendiraj" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "SVC način rada" @@ -32559,7 +32534,7 @@ msgstr "Sustavne obavijesti osoblja {productName}a. Ovdje ne možete odgovoriti. #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Zadano sustavom" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "URL predloška" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Vremenski slojevi" @@ -32837,7 +32812,7 @@ msgstr "Teksas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Tekst" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "Izvor dijeljenja zaslona prestao je slati video, pa je dijeljenje zaslona zaustavljeno." @@ -35774,7 +35749,7 @@ msgstr "Neimenovana grupa" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Neimenovani ulaz" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Koristi se u zajednicama koje nemaju vlastiti zvuk." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Koristi se u prilagođenom načinu rada. Predodređene postavke za igre i dijeljenje zaslona postavljaju vlastiti savjet." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" msgstr "Videopoziv nije dostupan" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Video kodek" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Video kodek za dijeljenje zaslona" @@ -37912,7 +37887,7 @@ msgid "Volume mute" msgstr "Isključi zvuk" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Klizači glasnoće" @@ -38466,6 +38441,11 @@ msgstr "Što uključiti" msgid "What to search for." msgstr "Što tražiti." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "Ono što dijelite ne ažurira se" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Tvoja spremljena kvaliteta od {savedResolution} pri {savedFrameRate} FPS zahtijeva {premiumProductName}, stoga dijeljenje koristi {resolution} pri {frameRate} FPS." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Vaše dijeljenje zaslona nije se moglo objaviti s kompatibilnim video kodekom pa je zaustavljeno. Pokušajte ponovno dijeliti." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Vaš prilagođeni URL postavljen je na {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Vaš video enkoder prestao je kodirati sličice, stoga je dijeljenje zaslona zaustavljeno. Pokušajte ponovno dijeliti." diff --git a/fluxer_app/src/features/i18n/locales/hu/messages.po b/fluxer_app/src/features/i18n/locales/hu/messages.po index 7687781bc..98172e6c8 100644 --- a/fluxer_app/src/features/i18n/locales/hu/messages.po +++ b/fluxer_app/src/features/i18n/locales/hu/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Kibontás (# sor)} other {Kibontás (# sor)}}" msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Kibontás (# sor)} other {Kibontás (# sor)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Kibontás: # további eszköz} other {Kibontás: # további eszköz}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {Hívásban} other {# résztvevő hívásban}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Csatlakozás videóhíváshoz (# résztvevő)} other {Csatlakozás videóhíváshoz (# résztvevő)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {Folytasd a(z) # stream nézését, és add hozzá ezt} other {Folytasd a(z) # stream nézését, és add hozzá ezt}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} képkocka/mp" @@ -3590,8 +3590,8 @@ msgstr "Bárki láthatja a helyi idődet, aki megtekintheti a teljes profilodat" #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "AV1 engedélyezése képernyőmegosztáshoz" @@ -3649,8 +3649,8 @@ msgstr "Engedélyezés minden közösség számára" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "H.265 (HEVC) engedélyezése képernyőmegosztáshoz" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Hangerősítés" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Hangeszköz" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Hangeszköz-értesítések" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Kimenő hang:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Hangbeállítások" @@ -4987,9 +4987,9 @@ msgstr "Automatikus kiegészítési javaslat: {label}, {selectedOptionPosition}/ #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Automatikus" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Automatikus ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Automatikus erősítésszabályozás" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Automatikus görgetés" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (külön engedélyezést igényel)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Biometria" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Bitráta" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Böngésző időformátuma: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Mikrofonerősítés a böngészőben egyéni hangfeldolgozáshoz" @@ -6483,15 +6483,15 @@ msgstr "A CAPTCHA-ellenőrzés sikertelen. Próbáld újra." msgid "Capture" msgstr "Rögzítés" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Alkalmazáshang rögzítése" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Asztali hang rögzítése" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Eszköz hangjának rögzítése" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "A rögzítőeszközök a Játék beállítást használják." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Teljes rendszerhang rögzítése" @@ -7637,11 +7637,6 @@ msgstr "Válaszd ki a nyelvedet" msgid "Choose your profile accent color" msgstr "Válaszd ki a profilod kiemelőszínét" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Kód:" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Kodek" @@ -8766,7 +8761,7 @@ msgstr "Üzenetmező fókusza" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Beállítás" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Kapcsolat hangereje" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Kapcsolati hangerőszabályzók" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Tartalomszűrés" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Tartalomtípus kódoláshoz" @@ -10594,7 +10589,7 @@ msgstr "Jelenleg: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Egyéni" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Egyéni videóhátterek" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Egyéni hangfeldolgozás" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Különálló borítókép" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Részletesség" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Eszköz" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Eszközértesítések" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Eszköz hangja ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Csak az eszköz hangja" @@ -11904,12 +11899,12 @@ msgstr "Eszköz részletei" msgid "Device revoked" msgstr "Az eszköz hozzáférése visszavonva" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Eszközválasztás" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Eszköz hangereje" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Eszközök" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Saját értékek beállítása" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Mobilértesítések kikapcsolása" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Képernyőmegosztás esetén ne legyen kép a képben felugró ablak" @@ -12629,7 +12624,7 @@ msgstr "Ne javasold újra ezt az eszközt: {deviceName}" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Kész" @@ -13756,8 +13751,8 @@ msgstr "Engedélyezve" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Kódolási útvonal" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Az új képernyőmegosztásokhoz használt kódoló beállításai." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Kódoló, SVC és bitráta előbeállítások" @@ -15616,7 +15611,7 @@ msgstr "Keret" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Képkockasebesség" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Teljesen zárd be, majd indítsd újra a(z) {productName} alkalmazást, hogy a macOS érvényesítse ezt az engedélyt." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Erősítésszabályozás" @@ -15946,7 +15941,7 @@ msgstr "Kontroller Y / Háromszög" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Játék" @@ -16451,7 +16446,7 @@ msgstr "Megadva: {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Minden jogosultságot megad, és megkerüli a csatornakorlátozásokat. Különösen érzékeny jogosultság." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Részletes kiválasztás" @@ -16629,13 +16624,8 @@ msgstr "Csoport frissítve" msgid "Grouping" msgstr "Csoportosítás" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (külön engedélyezést igényel)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "A hardveres gyorsítás átlátszó ablakok esetén megjelenítési hibákat okozhat. Próbáld ki a --disable-gpu kapcsolót, ha villódzást vagy elmosódást tapasztalsz." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Hardveres kódoló" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Segíts a(z) {PRODUCT_NAME} fordításában a saját nyelvedre itt: <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Alapértelmezés szerint elrejted a némított csatornákat?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Saját stream előnézeti bélyegképének elrejtése" @@ -17014,7 +17004,7 @@ msgstr "Jelszó elrejtése" msgid "Hide picture-in-picture popout?" msgstr "Elrejted a kép a képben ablakot?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Előnézeti bélyegkép elrejtése" @@ -17417,11 +17407,11 @@ msgstr "Elutasítás" msgid "Ignore friend request" msgstr "Ismerősjelölés mellőzése" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Hardvereszközök figyelmen kívül hagyása" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Bemeneti média mellőzése" @@ -17452,7 +17442,7 @@ msgstr "{displayName} ismerősjelölésének mellőzése?" msgid "Ignore this channel's slowmode cooldown." msgstr "A csatorna lassú módjához tartozó várakozási idő figyelmen kívül hagyása." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Virtuális eszközök figyelmen kívül hagyása" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Rétegzés" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Rétegzés AV1 és VP9 esetén, ha elérhető." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Maximális védelem a családbarát tereknek" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Előfordulhatnak kompatibilitási problémák a nézők számára. Dolgozunk a javításon." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "A mikrofonhoz való hozzáférés megtagadva. Engedélyezd a rendszerbeállításokban, majd próbáld újra." #. 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Mikrofon erősítése" @@ -21318,7 +21308,7 @@ msgstr "Legrelevánsabb" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "Új-Mexikó" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Új mikrofon" @@ -22830,11 +22820,11 @@ msgstr "Nem található felhasználó ezzel a felhasználónévvel." msgid "No users are currently banned from this community." msgstr "Jelenleg nincsenek kitiltott felhasználók ebből a közösségből." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Nincsenek elérhető felhasználók" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Nem található felhasználó" @@ -23313,7 +23303,7 @@ msgstr "Csak széles képernyőn jelenik meg." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Csak hitelkártyát fogadunk el. Betéti és előre feltöltött kártya nem használható a felnőtt tartalomhoz való hozzáférés ellenőrzéséhez." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Csak az alapértelmezett hangszórók" @@ -23361,7 +23351,7 @@ msgstr "Csak akkor futtass itt kódot, ha pontosan érted, mit csinál." msgid "Only show message previews for DMs with unread messages" msgstr "Üzenetelőnézetek megjelenítése csak az olvasatlan üzeneteket tartalmazó közvetlen beszélgetéseknél" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Csak hangszórók" @@ -23901,21 +23891,6 @@ msgstr "Nyisd meg a telefonod üzenetküldő alkalmazását, és kezdj új szöv msgid "Open your settings" msgstr "Beállítások megnyitása" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "OpenH264 szoftveres kodek Linuxon" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "OpenH264 videokodek" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "OpenH264 videokodek, amelyet a Cisco Systems, Inc. biztosít." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Szünetelteted a meghívókat? Az új felhasználók nem tudnak csatlakozni meghívólinken keresztül, amíg újra nem engedélyezed. A meglévő tagokat ez nem érinti." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "A képernyőmegosztás előnézetének szüneteltetése a háttérben" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Közösségenkénti profilok" #. 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Eszközönkénti hangerő" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Kép" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Kép a képben" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Rögzített üzenetek előugró ablaka" #. 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "Kép a képben" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "@említés előnyben részesítése" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Hardveres gyorsítás előnyben" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Említés mellőzésének előnyben részesítése" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Szoftveres kódolás előnyben részesítése" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Beállítások..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Előnyben részesített képernyőmegosztási kodek" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Hang előnézete" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Előnézetek, külön ablakok és streambélyegképek működése" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Rákérdezés" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Rákérdezés új hangeszközök csatlakoztatásakor" @@ -27659,7 +27634,7 @@ msgstr "Az átméretezés, a teljes méretre állítás és az ablakok illeszté #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Felbontás" @@ -28352,7 +28327,7 @@ msgstr "Képernyőfelvételi engedély szükséges" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Képernyőmegosztás" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "A képernyőmegosztás hangja nem indult el" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Képernyőmegosztási kodek" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Képernyőmegosztás-kódoló beállításai" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "A képernyőmegosztás befejeződött" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "A képernyőmegosztás szoftveres kódolást használ ({codec}). A minőség romolhat, és a CPU-használat megnőhet. Lehet, hogy a GPU-d nem támogatja a hardveres kódolást ehhez a kodekhez." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Képernyőmegosztás előnézete" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Képernyőmegosztás előnézetének viselkedése" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Képernyőmegosztás" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Képernyőmegosztási kodek" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Ossz meg képernyőket és ablakokat." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Stream hangjának megosztása" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Személyes adatok megosztása" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Éles kép 720p-ben, akár 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Éles kép 4K felbontásig, legfeljebb 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "Neko megjelenítése" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Új eszközre vonatkozó riasztások megjelenítése" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Jelszó megjelenítése" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Résztvevőnként és eszközönként külön hangerőcsúszkák megjelenítése a hangmenükben" @@ -30662,7 +30637,7 @@ msgstr "Csengetés nélküli hívások" msgid "Silent calls from everyone" msgstr "Csengetés nélküli hívások mindenkitől" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Némítva, ha a rögzítőeszköznek nincs saját hangbemenete" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Egyetlen közösség mód" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Egyetlen réteg" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Emotikonok" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Kiegyensúlyozott 30 FPS, akár 720p felbontásig" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Simulékony 60 FPS, akár 1440p felbontásig" @@ -31028,7 +31003,7 @@ msgid "Social" msgstr "Közösségi" #. 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Szoftveres kódoló" @@ -31258,7 +31233,7 @@ msgstr "Hangok" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Forrás" @@ -32047,13 +32022,13 @@ msgstr "Stream elrejtve" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Stream előnézete" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Stream minősége" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Élő adás" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Streamelési mód" @@ -32280,12 +32255,12 @@ msgid "Suspend" msgstr "Felfüggesztés" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "SVC mód" @@ -32559,7 +32534,7 @@ msgstr "Rendszerüzenetek a(z) {productName} munkatársaitól. Itt nem válaszol #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Rendszer alapértelmezett" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "Sablon URL-je" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Időbeli rétegek" @@ -32837,7 +32812,7 @@ msgstr "Texas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Szöveg" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "A képernyőmegosztás forrása nem küldött tovább videót, ezért a képernyőmegosztásod leállt." @@ -35774,7 +35749,7 @@ msgstr "Névtelen csoport" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Névtelen bemenet" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Olyan közösségekben használatos, amelyeknek nincs saját hangjuk." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Egyéni módban használatos. A Játék és Képernyőmegosztás előbeállítások saját jelzést állítanak be." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" msgstr "Videóhívás nem elérhető" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Videokodek" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Videokodek képernyőmegosztáshoz" @@ -37912,7 +37887,7 @@ msgid "Volume mute" msgstr "Hang némítása" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Hangerőcsúszkák" @@ -38466,6 +38441,11 @@ msgstr "Mit tartalmazzon" msgid "What to search for." msgstr "Mit keress." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "A megosztott tartalom nem frissül" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "A mentett {savedResolution} {savedFrameRate} FPS minőséghez {premiumProductName} szükséges, ezért a megosztások {resolution} minőségben, {frameRate} FPS sebességgel történnek." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "A képernyőmegosztásodat nem sikerült kompatibilis videokodekkel közzétenni, ezért leállt. Próbáld meg újra megosztani." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Az egyéni meghívólinked beállítva: {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "A videokódolód nem kódolt több képkockát, ezért a képernyőmegosztásod leállt. Próbáld meg újra megosztani." diff --git a/fluxer_app/src/features/i18n/locales/id/messages.po b/fluxer_app/src/features/i18n/locales/id/messages.po index 59872b40b..70a8b1fdc 100644 --- a/fluxer_app/src/features/i18n/locales/id/messages.po +++ b/fluxer_app/src/features/i18n/locales/id/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Perluas (# baris)} other {Perluas (# baris)}}" msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Perluas (# baris)} other {Perluas (# baris)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Perluas # perangkat lain} other {Perluas # perangkat lain}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {Dalam panggilan} other {# dalam panggilan}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Gabung panggilan video (# peserta)} other {Gabung panggilan video (# peserta)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {Tetap tonton # stream dan tambahkan yang ini} other {Tetap tonton # stream dan tambahkan yang ini}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} FPS" @@ -3590,8 +3590,8 @@ msgstr "Izinkan siapa pun yang dapat melihat profil lengkapmu untuk melihat wakt #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Izinkan AV1 untuk berbagi layar" @@ -3649,8 +3649,8 @@ msgstr "Izinkan untuk semua komunitas" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Izinkan H.265 (HEVC) untuk berbagi layar" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Peningkatan audio" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Perangkat audio" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Peringatan perangkat audio" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Pengiriman audio:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Pengaturan audio" @@ -4987,9 +4987,9 @@ msgstr "Saran pelengkapan otomatis: {label}, {selectedOptionPosition} dari {resu #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Otomatis" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Otomatis ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Kontrol penguatan otomatis" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Gulir otomatis" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (perlu diaktifkan)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Biometrik" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Bitrate" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Format waktu browser: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Penguatan mikrofon browser untuk pemrosesan khusus" @@ -6483,15 +6483,15 @@ msgstr "Verifikasi Captcha gagal. Coba lagi." msgid "Capture" msgstr "Rekam" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Rekam audio aplikasi" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Rekam audio desktop" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Rekam audio perangkat" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Perangkat penangkap menggunakan preset Gaming." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Rekam seluruh audio sistem" @@ -7637,11 +7637,6 @@ msgstr "Pilih bahasamu" msgid "Choose your profile accent color" msgstr "Pilih warna aksen profilmu" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Kode:" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Codec" @@ -8766,7 +8761,7 @@ msgstr "Fokus kotak pesan" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Konfigurasi" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Volume koneksi" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Kontrol volume koneksi" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Filter konten" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Petunjuk konten" @@ -10594,7 +10589,7 @@ msgstr "Saat ini: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Kustom" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Latar belakang video khusus" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Pemrosesan suara khusus" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Banner terpisah" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Detail" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Perangkat" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Peringatan perangkat" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Audio perangkat ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Audio perangkat saja" @@ -11904,12 +11899,12 @@ msgstr "Detail perangkat" msgid "Device revoked" msgstr "Akses perangkat dicabut" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Pilihan perangkat" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Volume perangkat" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Perangkat" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Atur sendiri angkanya" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Nonaktifkan notifikasi push seluler" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Nonaktifkan pop-out gambar-dalam-gambar untuk berbagi layar" @@ -12629,7 +12624,7 @@ msgstr "Jangan sarankan {deviceName} lagi" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Selesai" @@ -13756,8 +13751,8 @@ msgstr "Diaktifkan" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Jalur encoder" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Preferensi encoder untuk berbagi layar baru." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Encoder, preset SVC, dan bitrate" @@ -15616,7 +15611,7 @@ msgstr "Bingkai" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Laju bingkai" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Keluar sepenuhnya dari {productName} lalu mulai ulang agar macOS menerapkan izin 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Kontrol penguatan" @@ -15946,7 +15941,7 @@ msgstr "Gamepad Y / Segitiga" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Game" @@ -16451,7 +16446,7 @@ msgstr "Diberikan {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Memberikan semua izin dan melewati pembatasan saluran. Sangat sensitif." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Pilihan terperinci" @@ -16629,13 +16624,8 @@ msgstr "Grup diperbarui" msgid "Grouping" msgstr "Pengelompokan" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (perlu diaktifkan)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "Akselerasi hardware dapat menyebabkan gangguan rendering pada jendela transparan. Coba --disable-gpu jika kamu melihat kedipan atau gambar yang mengekor." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Encoder perangkat keras" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Bantu terjemahkan {PRODUCT_NAME} ke bahasamu di <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Sembunyikan saluran yang dibisukan secara default?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Sembunyikan gambar mini pratinjau streaming saya" @@ -17014,7 +17004,7 @@ msgstr "Sembunyikan kata sandi" msgid "Hide picture-in-picture popout?" msgstr "Sembunyikan pop-out gambar-dalam-gambar?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Sembunyikan gambar mini pratinjau" @@ -17417,11 +17407,11 @@ msgstr "Abaikan" msgid "Ignore friend request" msgstr "Abaikan permintaan pertemanan" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Abaikan perangkat keras" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Abaikan media masukan" @@ -17452,7 +17442,7 @@ msgstr "Abaikan permintaan pertemanan dari {displayName}?" msgid "Ignore this channel's slowmode cooldown." msgstr "Abaikan jeda mode lambat saluran ini." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Abaikan virtual" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Lapisan" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Lapisan untuk AV1 dan VP9 jika tersedia." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Perlindungan maksimal untuk ruang yang ramah keluarga" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Dapat menyebabkan masalah kompatibilitas bagi penonton. Kami sedang berupaya memperbaikinya." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "Akses mikrofon ditolak. Aktifkan di pengaturan sistem kamu dan coba lagi." #. 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Gain mikrofon" @@ -21318,7 +21308,7 @@ msgstr "Paling relevan" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "New Mexico" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Mikrofon baru" @@ -22830,11 +22820,11 @@ msgstr "Tidak ada pengguna yang ditemukan dengan nama pengguna tersebut." msgid "No users are currently banned from this community." msgstr "Saat ini tidak ada pengguna yang diblokir dari komunitas ini." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Tidak ada pengguna yang tersedia" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Tidak ada pengguna yang ditemukan" @@ -23313,7 +23303,7 @@ msgstr "Hanya berlaku di layar lebar." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Hanya kartu kredit yang diterima. Kartu debit dan prabayar tidak dapat digunakan untuk pemeriksaan konten dewasa." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Hanya speaker default" @@ -23361,7 +23351,7 @@ msgstr "Jalankan kode di sini hanya jika kamu benar-benar paham apa fungsinya." msgid "Only show message previews for DMs with unread messages" msgstr "Hanya tampilkan pratinjau pesan untuk DM dengan pesan yang belum dibaca" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Hanya speaker" @@ -23901,21 +23891,6 @@ msgstr "Buka aplikasi pesan di ponselmu dan mulai pesan teks baru." msgid "Open your settings" msgstr "Buka pengaturanmu" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "Codec perangkat lunak OpenH264 di Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "Codec video OpenH264" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "Codec video OpenH264 disediakan oleh Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Jeda undangan? Pengguna baru tidak akan bisa bergabung melalui tautan undangan sampai kamu mengaktifkannya lagi. Anggota yang sudah ada tidak akan terpengaruh." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Jeda pratinjau berbagi layar saya di latar belakang" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Profil per komunitas" #. 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Volume per perangkat" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Gambar" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Gambar dalam gambar" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Pop-out sematan" #. 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PiP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Pakai @sebutan" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Utamakan perangkat keras" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Tanpa @sebutan" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Utamakan perangkat lunak" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Preferensi..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Codec berbagi layar pilihan" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Pratinjau suara" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Pratinjau, pop-out, dan perilaku gambar mini streaming" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Prompt" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Tanya saat ada perangkat audio baru" @@ -27659,7 +27634,7 @@ msgstr "Mengubah ukuran, memaksimalkan, dan menempelkan jendela bergantung pada #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Resolusi" @@ -28352,7 +28327,7 @@ msgstr "Izin perekaman layar diperlukan" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Berbagi layar" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "Audio berbagi layar tidak dapat dimulai" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Codec berbagi layar" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Kontrol encoder berbagi layar" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Berbagi layar berakhir" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "Berbagi layar menggunakan encoding perangkat lunak ({codec}). Kualitas mungkin berkurang dan penggunaan CPU meningkat. GPU kamu mungkin tidak mendukung encoding perangkat keras untuk codec 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Pratinjau berbagi layar" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Perilaku pratinjau berbagi layar" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Berbagi layar" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Codec berbagi layar" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Bagikan layar dan jendela." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Bagikan audio streaming" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Berbagi informasi pribadi" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Teks tajam pada 720p, hingga 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Teks tajam hingga 4K, hingga 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "Tampilkan Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Tampilkan peringatan perangkat baru" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Tampilkan kata sandi" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Tampilkan penggeser volume peserta per perangkat di menu suara" @@ -30662,7 +30637,7 @@ msgstr "Panggilan senyap" msgid "Silent calls from everyone" msgstr "Panggilan senyap dari semua orang" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Senyap saat perangkat penangkap tidak memiliki input audio sendiri" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Mode komunitas tunggal" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Satu lapisan" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Emotikon" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Halus 30 FPS hingga 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Halus 60 FPS hingga 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" msgstr "Sosial" #. 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Encoder perangkat lunak" @@ -31258,7 +31233,7 @@ msgstr "Suara" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Sumber" @@ -32047,13 +32022,13 @@ msgstr "Streaming disembunyikan" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Pratinjau streaming" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Kualitas streaming" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Sedang streaming" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Mode streaming" @@ -32280,12 +32255,12 @@ msgid "Suspend" msgstr "Tangguhkan" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "Mode SVC" @@ -32559,7 +32534,7 @@ msgstr "Pengumuman sistem dari staf {productName}. Kamu tidak bisa membalas di s #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Default sistem" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "URL template" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Lapisan temporal" @@ -32837,7 +32812,7 @@ msgstr "Texas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Teks" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "Sumber berbagi layar berhenti mengirim video, jadi berbagi layarmu dihentikan." @@ -35774,7 +35749,7 @@ msgstr "Grup tanpa nama" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Input tanpa nama" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Digunakan di komunitas yang tidak memiliki suara sendiri." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Digunakan dalam mode Kustom. Preset Gaming dan Berbagi layar mengatur petunjuknya sendiri." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" msgstr "Panggilan video tidak tersedia" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Codec video" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Codec video untuk berbagi layar" @@ -37912,7 +37887,7 @@ msgid "Volume mute" msgstr "Bisukan volume" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Slider volume" @@ -38466,6 +38441,11 @@ msgstr "Apa yang akan disertakan" msgid "What to search for." msgstr "Apa yang ingin kamu cari." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "Apa yang Anda bagikan tidak diperbarui" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Kualitas {savedResolution} yang tersimpan pada {savedFrameRate} FPS memerlukan {premiumProductName}, jadi berbagi menggunakan {resolution} pada {frameRate} FPS." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Berbagi layarmu tidak dapat dipublikasikan dengan codec video yang kompatibel, jadi dihentikan. Coba bagikan lagi." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "URL kustommu telah diatur ke {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Encoder videomu berhenti mengenkode frame, jadi berbagi layarmu dihentikan. Coba bagikan lagi." diff --git a/fluxer_app/src/features/i18n/locales/it/messages.po b/fluxer_app/src/features/i18n/locales/it/messages.po index 38e27e34b..3bb5df1fc 100644 --- a/fluxer_app/src/features/i18n/locales/it/messages.po +++ b/fluxer_app/src/features/i18n/locales/it/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Espandi (# riga)} other {Espandi (# righe)}}" msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Espandi (# riga)} other {Espandi (# righe)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Espandi # altro dispositivo} other {Espandi # altri dispositivi}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {In chiamata} other {# in chiamata}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Partecipa alla videochiamata (# partecipante)} other {Partecipa alla videochiamata (# partecipanti)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {Continua a guardare # stream e aggiungi questo} other {Continua a guardare # stream e aggiungi questo}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} FPS" @@ -3590,8 +3590,8 @@ msgstr "Consenti a chiunque possa visualizzare il tuo profilo completo di vedere #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Consenti AV1 per la condivisione dello schermo" @@ -3649,8 +3649,8 @@ msgstr "Consenti per tutte le community" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Consenti H.265 (HEVC) per la condivisione dello schermo" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Potenziamento audio" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Dispositivo audio" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Avvisi sui dispositivi audio" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Invio audio:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Impostazioni audio" @@ -4987,9 +4987,9 @@ msgstr "Suggerimento di completamento automatico: {label}, {selectedOptionPositi #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Automatico" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Automatico ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Controllo automatico del guadagno" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Scorrimento automatico" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (richiede attivazione)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Biometria" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Bitrate" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Formato orario del browser: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Guadagno del microfono del browser per l'elaborazione personalizzata" @@ -6483,15 +6483,15 @@ msgstr "Verifica Captcha non riuscita. Riprova." msgid "Capture" msgstr "Acquisisci" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Acquisisci audio app" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Acquisisci audio desktop" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Acquisisci audio del dispositivo" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "I dispositivi di acquisizione utilizzano il preset Gaming." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Cattura l'audio dell'intero sistema" @@ -7637,11 +7637,6 @@ msgstr "Scegli la tua lingua" msgid "Choose your profile accent color" msgstr "Scegli il colore accento del tuo profilo" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Codice:" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Codec" @@ -8766,7 +8761,7 @@ msgstr "Focus del campo di composizione" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Configura" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Volume connessione" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Controlli del volume della connessione" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Filtro contenuti" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Indicazione del tipo di contenuto" @@ -10594,7 +10589,7 @@ msgstr "Attualmente: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Personalizzato" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Sfondi video personalizzati" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Elaborazione vocale personalizzata" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Banner separato" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Dettaglio" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Dispositivo" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Avvisi dispositivo" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Audio del dispositivo ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Solo audio del dispositivo" @@ -11904,12 +11899,12 @@ msgstr "Dettagli del dispositivo" msgid "Device revoked" msgstr "Accesso del dispositivo revocato" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Selezione dispositivo" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Volume del dispositivo" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Dispositivi" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Imposta i valori che preferisci" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Disattiva le notifiche push su cellulare" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Disattiva il pop-out picture-in-picture per la condivisione schermo" @@ -12629,7 +12624,7 @@ msgstr "Non suggerire più {deviceName}" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Fatto" @@ -13756,8 +13751,8 @@ msgstr "Abilitato" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Percorso encoder" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Preferenza dell'encoder per le nuove condivisioni schermo." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Codifica, SVC e preimpostazioni bitrate" @@ -15616,7 +15611,7 @@ msgstr "Cornice" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Frequenza fotogrammi" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Chiudi completamente e riavvia {productName} affinché macOS applichi questa autorizzazione." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Controllo del guadagno" @@ -15946,7 +15941,7 @@ msgstr "Controller Y / Triangolo" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Giochi" @@ -16451,7 +16446,7 @@ msgstr "Concesso {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Concede tutti i permessi e ignora le restrizioni del canale. Molto sensibile." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Selezione dettagliata" @@ -16629,13 +16624,8 @@ msgstr "Gruppo aggiornato" msgid "Grouping" msgstr "Raggruppamento" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (richiede attivazione)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "L'accelerazione hardware può causare problemi di rendering con le finestre trasparenti. Prova --disable-gpu se noti sfarfallio o sbavature." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Encoder hardware" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Aiuta a tradurre {PRODUCT_NAME} nella tua lingua su <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Nascondere i canali silenziati per impostazione predefinita?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Nascondi la miniatura di anteprima del mio stream" @@ -17014,7 +17004,7 @@ msgstr "Nascondi password" msgid "Hide picture-in-picture popout?" msgstr "Nascondere la finestra picture-in-picture?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Nascondi miniatura di anteprima" @@ -17417,11 +17407,11 @@ msgstr "Ignora" msgid "Ignore friend request" msgstr "Ignora richiesta di amicizia" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Ignora dispositivi hardware" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Ignora i media in entrata" @@ -17452,7 +17442,7 @@ msgstr "Ignorare la richiesta di amicizia da {displayName}?" msgid "Ignore this channel's slowmode cooldown." msgstr "Ignora l’intervallo di attesa della modalità lenta di questo canale." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Ignora virtuale" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Livelli" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Livelli per AV1 e VP9, se disponibili." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Massima protezione per gli spazi adatti alle famiglie" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Potrebbe causare problemi di compatibilità per gli spettatori. Stiamo lavorando per migliorare la situazione." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "L'accesso al microfono è stato negato. Abilitalo nelle impostazioni di sistema e riprova." #. 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Guadagno del microfono" @@ -21318,7 +21308,7 @@ msgstr "Più rilevanti" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "Nuovo Messico" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Nuovo microfono" @@ -22830,11 +22820,11 @@ msgstr "Nessun utente trovato con quel nome utente." msgid "No users are currently banned from this community." msgstr "Nessun utente è attualmente bannato da questa community." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Nessun utente disponibile" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Nessun utente trovato" @@ -23313,7 +23303,7 @@ msgstr "Si applica solo su schermi ampi." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Sono accettate solo carte di credito. Le carte di debito e prepagate non possono essere utilizzate per la verifica dei contenuti per adulti." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Solo altoparlanti predefiniti" @@ -23361,7 +23351,7 @@ msgstr "Esegui codice qui solo se comprendi esattamente cosa fa." msgid "Only show message previews for DMs with unread messages" msgstr "Mostra anteprime messaggi solo per i DM con messaggi non letti" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Solo altoparlanti" @@ -23901,21 +23891,6 @@ msgstr "Apri l’app di messaggistica del tuo telefono e crea un nuovo SMS." msgid "Open your settings" msgstr "Apri le impostazioni" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "Codec software OpenH264 su Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "Codec video OpenH264" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "Codec video OpenH264 fornito da Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Mettere in pausa gli inviti? I nuovi utenti non potranno più unirsi tramite link di invito finché non li riattiverai. I membri esistenti non saranno interessati." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Metti in pausa l'anteprima della mia condivisione schermo in background" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Profili per 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Volume per dispositivo" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Immagine" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Picture-in-picture" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Finestra separata dei messaggi fissati" #. 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PiP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Preferisci essere @menzionato" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Preferisci hardware" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Preferisci non essere @menzionato" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Preferisci software" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Preferenze..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Codec preferito per la condivisione schermo" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Riproduci suono" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Comportamento delle anteprime, delle finestre separate e delle miniature degli stream" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Richiesta" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Chiedi conferma per i nuovi dispositivi audio" @@ -27659,7 +27634,7 @@ msgstr "Il ridimensionamento, l'ingrandimento e l'aggancio delle finestre dipend #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Risoluzione" @@ -28352,7 +28327,7 @@ msgstr "Autorizzazione registrazione schermo richiesta" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Condivisione schermo" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "L'audio della condivisione schermo non è stato avviato" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Codec di condivisione schermo" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Controlli dell'encoder per la condivisione dello schermo" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Condivisione schermo terminata" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "La condivisione schermo sta usando la codifica software ({codec}). La qualità potrebbe essere ridotta e l'utilizzo della CPU aumentato. La tua GPU potrebbe non supportare la codifica hardware per questo codec." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Anteprima condivisione schermo" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Comportamento delle anteprime della condivisione schermo" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Condivisione schermo" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Codec per la condivisione schermo" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Condividi schermi e finestre." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Condividi l'audio dello stream" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Condivisione di informazioni personali" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Testo nitido a 720p, fino a 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Testo nitido fino a 4K, fino a 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "Mostra Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Mostra avvisi nuovo dispositivo" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Mostra password" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Mostra i controlli del volume dei partecipanti per dispositivo nei menu vocali" @@ -30662,7 +30637,7 @@ msgstr "Chiamate silenziose" msgid "Silent calls from everyone" msgstr "Chiamate silenziose da tutti" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Silenzioso quando il dispositivo di acquisizione non ha un proprio input audio" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Modalità community singola" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Singolo livello" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Faccine" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Fluido a 30 FPS fino a 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Fluidi 60 FPS fino a 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" msgstr "Sociale" #. 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Encoder software" @@ -31258,7 +31233,7 @@ msgstr "Suoni" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Sorgente" @@ -32047,13 +32022,13 @@ msgstr "Stream nascosto" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Anteprima stream" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Qualità dello stream" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "In streaming" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Modalità streaming" @@ -32280,12 +32255,12 @@ msgid "Suspend" msgstr "Sospendi" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "Modalità SVC" @@ -32559,7 +32534,7 @@ msgstr "Annunci di sistema dallo staff di {productName}. Non puoi rispondere qui #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Predefinito di sistema" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "URL del modello" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Livelli temporali" @@ -32837,7 +32812,7 @@ msgstr "Texas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Testo" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "La sorgente della condivisione dello schermo ha smesso di inviare video, quindi la condivisione dello schermo è stata interrotta." @@ -35774,7 +35749,7 @@ msgstr "Gruppo senza nome" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Input senza nome" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Usato nelle community che non hanno un suono personalizzato." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Usato in modalità personalizzata. I preset Gaming e Condivisione schermo impostano il proprio suggerimento." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" msgstr "Videochiamata non disponibile" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Codec video" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Codec video per la condivisione dello schermo" @@ -37912,7 +37887,7 @@ msgid "Volume mute" msgstr "Disattiva volume" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Regolatori del volume" @@ -38466,6 +38441,11 @@ msgstr "Cosa includere" msgid "What to search for." msgstr "Cosa cercare." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "Ciò che stai condividendo non si aggiorna" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "La tua impostazione salvata {savedResolution} a {savedFrameRate} FPS richiede {premiumProductName}, quindi le condivisioni usano {resolution} a {frameRate} FPS." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "La condivisione dello schermo non è stata pubblicata con un codec video compatibile, quindi è stata interrotta. Riprova a condividere." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "L'URL personalizzato è stato impostato su {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Il tuo codificatore video ha smesso di codificare i frame, quindi la condivisione dello schermo è stata interrotta. Riprova a condividere." diff --git a/fluxer_app/src/features/i18n/locales/ja/messages.po b/fluxer_app/src/features/i18n/locales/ja/messages.po index 5a893d87b..7ae02c86b 100644 --- a/fluxer_app/src/features/i18n/locales/ja/messages.po +++ b/fluxer_app/src/features/i18n/locales/ja/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {展開(#行)} other {展開(#行)}}" msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {展開(#行)} other {展開(#行)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {他#台のデバイスを展開} other {他#台のデバイスを展開}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, =1 {通話中} other {#人が通話中}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {ビデオ通話に参加(#人)} other {ビデオ通話に参加(#人)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {#件のストリームを視聴し続け、これを追加} other {#件のストリームを視聴し続け、これを追加}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} FPS" @@ -3590,8 +3590,8 @@ msgstr "プロフィールを閲覧できるすべてのユーザーに、あな #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "画面共有でAV1を許可する" @@ -3649,8 +3649,8 @@ msgstr "すべてのコミュニティで許可" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "H.265 (HEVC) による画面共有を許可" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "音声ブースト" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "オーディオデバイスの通知" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "音声送信:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "オーディオ設定" @@ -4987,9 +4987,9 @@ msgstr "入力候補: {label}、{resultCount}件中{selectedOptionPosition}番 #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "自動" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "自動 ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "自動音量調整" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "自動スクロール" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1(オプトインが必要)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "ビットレート" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "ブラウザの時刻形式: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "カスタム処理用のブラウザマイクゲイン" @@ -6483,15 +6483,15 @@ msgstr "CAPTCHA認証に失敗しました。もう一度お試しください msgid "Capture" msgstr "キャプチャ" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "アプリの音声をキャプチャ" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "デスクトップ音声をキャプチャ" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "デバイスの音声をキャプチャ" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "キャプチャデバイスはゲームプリセットを使用しています。" #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "システム全体の音声をキャプチャ" @@ -7637,11 +7637,6 @@ msgstr "言語を選択" msgid "Choose your profile accent color" 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "コーデック" @@ -8766,7 +8761,7 @@ msgstr "入力欄のフォーカス" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "設定" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "接続音量" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "接続音量コントロール" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "コンテンツフィルター" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "コンテンツヒント" @@ -10594,7 +10589,7 @@ msgstr "現在: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "カスタム" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "カスタム音声処理" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "バナーを分離表示" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "詳細" @@ -11880,7 +11875,7 @@ msgid "Device" 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "デバイスの通知" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "デバイスの音声 ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "デバイスの音声のみ" @@ -11904,12 +11899,12 @@ msgstr "デバイスの詳細" msgid "Device revoked" msgstr "デバイスを取り消しました" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "デバイスの音量" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "デバイス" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "自分好みの数値に調整" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "モバイルプッシュ通知をオフにする" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "画面共有のピクチャーインピクチャーポップアウトを無効にする" @@ -12629,7 +12624,7 @@ msgstr "{deviceName}を再度提案しない" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "完了" @@ -13756,8 +13751,8 @@ msgstr "有効" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "エンコーダーパス" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "新しい画面共有のエンコーダー設定" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "エンコーダー、SVC、ビットレートプリセット" @@ -15616,7 +15611,7 @@ msgstr "ウィンドウ枠" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "フレームレート" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "macOSでこの権限を適用するには、{productName}を完全に終了して再起動してください。" #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "ゲイン制御" @@ -15946,7 +15941,7 @@ msgstr "ゲームパッド Y / サンカク" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "ゲーム" @@ -16451,7 +16446,7 @@ msgstr "{permissions} を付与しました" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "すべての権限を付与し、チャンネルごとの制限を無視します。非常に強力な権限です。" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "詳細選択" @@ -16629,13 +16624,8 @@ msgstr "グループを更新しました" msgid "Grouping" 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265(オプトインが必要です)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "ハードウェアアクセラレーションは、透過ウィンドウでレンダリングの不具合を引き起こす可能性があります。ちらつきやにじみが見られる場合は、「--disable-gpu」をお試しください。" #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "ハードウェアエンコーダー" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "<0>{I18N_WEBLATE_DOMAIN}で{PRODUCT_NAME}をあなたの言語に翻訳するお手伝いをしてください。" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "ミュート中のチャンネルをデフォルトで非表示にしますか?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "ストリームプレビューのサムネイルを非表示にする" @@ -17014,7 +17004,7 @@ msgstr "パスワードを非表示" msgid "Hide picture-in-picture popout?" msgstr "ピクチャーインピクチャーを非表示にしますか?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "プレビューサムネイルを非表示" @@ -17417,11 +17407,11 @@ msgstr "無視" msgid "Ignore friend request" msgstr "友達リクエストを無視" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "ハードウェアデバイスを無視" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "入力メディアを無視" @@ -17452,7 +17442,7 @@ msgstr "{displayName}からの友達リクエストを無視しますか?" msgid "Ignore this channel's slowmode cooldown." msgstr "このチャンネルのスローモードのクールダウンを無視します。" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "仮想デバイスを無視" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "レイヤー" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "利用可能な場合に、AV1 と VP9 をレイヤー化します。" @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "ファミリー向けスペースを最大限保護" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "視聴者に互換性の問題が発生する可能性があります。現在改善に取り組んでいます。" @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "マイクの音量" @@ -21318,7 +21308,7 @@ msgstr "関連度が高い順" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "新しいマイク" @@ -22830,11 +22820,11 @@ msgstr "そのユーザー名を持つユーザーは見つかりませんでし msgid "No users are currently banned from this community." msgstr "現在、このコミュニティでBANされているユーザーはいません。" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "ユーザーがいません" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "ユーザーが見つかりませんでした" @@ -23313,7 +23303,7 @@ msgstr "ワイド画面にのみ適用されます。" msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "クレジットカードのみご利用いただけます。デビットカードやプリペイドカードは、成人向けコンテンツの確認にはご利用いただけません。" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "デフォルトスピーカーのみ" @@ -23361,7 +23351,7 @@ msgstr "内容を正確に理解している場合にのみ、ここでコード msgid "Only show message previews for DMs with unread messages" msgstr "未読メッセージがあるDMのメッセージプレビューのみ表示" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "スピーカーのみ" @@ -23901,21 +23891,6 @@ msgstr "スマートフォンのメッセージアプリを開き、新しいテ msgid "Open your settings" msgstr "設定を開く" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "OpenH264ソフトウェアコーデック(Linux)" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "OpenH264ビデオコーデック" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "Cisco Systems, Inc.が提供するOpenH264ビデオコーデック" - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "招待を一時停止しますか?再開するまで、新しいユーザーは招待リンクから参加できなくなります。既存のメンバーには影響しません。" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "バックグラウンドで画面共有プレビューを一時停止する" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "デバイスごとの音量" @@ -24776,7 +24751,7 @@ msgid "Picture" 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "ピクチャーインピクチャー" @@ -24906,7 +24881,7 @@ msgid "Pins popout" 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PiP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "@メンションあり" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "ハードウェアを優先" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "@メンションなし" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "ソフトウェアを優先" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "環境設定..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "画面共有の優先コーデック" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "サウンドをプレビュー" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "プレビュー、ポップアウト、ストリームサムネイルの動作" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "プロンプト" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "新しいオーディオデバイスの接続時に通知する" @@ -27659,7 +27634,7 @@ msgstr "ウィンドウのリサイズ、最大化、スナップはコンポジ #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "解像度" @@ -28352,7 +28327,7 @@ msgstr "画面収録の許可が必要です" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "画面共有" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "画面共有の音声を開始できませんでした" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "画面共有コーデック" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "画面共有エンコーダー設定" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "画面共有が終了しました" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "画面共有でソフトウェアエンコード({codec})を使用しています。画質が低下し、CPU使用率が増加する可能性があります。お使いのGPUは、このコーデックのハードウェアエンコードに対応していない可能性があります。" #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "画面共有プレビュー" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "画面共有プレビューの動作" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "画面共有コーデック" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "画面とウィンドウを共有します。" #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "ストリームの音声を共有" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "個人情報の共有" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "720pでシャープ、最大30FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "最大4K、最大15 FPSで鮮明なテキスト" @@ -30327,7 +30302,7 @@ msgstr "ネコを表示" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "新しいデバイスの通知を表示" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "パスワードを表示" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "デバイスごとの参加者の音量スライダーを音声メニューに表示" @@ -30662,7 +30637,7 @@ msgstr "サイレント着信" msgid "Silent calls from everyone" msgstr "全員からの着信をサイレントにする" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "音声入力がない場合はミュート" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "単一コミュニティモード" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "シングルレイヤー" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "笑顔の絵文字" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "最大720pで滑らかな30FPS" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "最大1440pで滑らかな60 FPS" @@ -31028,7 +31003,7 @@ msgid "Social" 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "ソフトウェアエンコーダー" @@ -31258,7 +31233,7 @@ msgstr "サウンド" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "ソース" @@ -32047,13 +32022,13 @@ msgstr "ストリームを非表示にしました" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "ストリームプレビュー" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "ストリームの画質" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "配信中" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "配信モード" @@ -32280,12 +32255,12 @@ msgid "Suspend" 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "SVCモード" @@ -32559,7 +32534,7 @@ msgstr "{productName}スタッフからのシステムアナウンスです。 #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "システムのデフォルト" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "テンプレートURL" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "時間的レイヤー" @@ -32837,7 +32812,7 @@ msgstr "テキサス州" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "テキスト" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "画面共有のソースがビデオの送信を停止したため、画面共有は停止されました。" @@ -35774,7 +35749,7 @@ msgstr "名前のないグループ" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "名前のない入力" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "独自のサウンドがないコミュニティで使用されます。" #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "カスタムモードで使用されます。ゲームと画面共有のプリセットは、独自のヒントを設定します。" @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "ビデオコーデック" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "画面共有のビデオコーデック" @@ -37912,7 +37887,7 @@ msgid "Volume mute" 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "音量スライダー" @@ -38466,6 +38441,11 @@ msgstr "含めるもの" msgid "What to search for." msgstr "検索対象。" +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "共有中の画面が更新されていません" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "保存された {savedResolution} ({savedFrameRate} FPS) は {premiumProductName} が必要です。そのため、共有は {resolution} ({frameRate} FPS) で行われます。" #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "互換性のあるビデオコーデックで画面共有を公開できなかったため、停止しました。もう一度共有してみてください。" @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "カスタムURLを{inviteEndpoint}/{vanitySlug}に設定しました" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "ビデオエンコーダーがフレームのエンコードを停止したため、画面共有が停止しました。もう一度共有してみてください。" diff --git a/fluxer_app/src/features/i18n/locales/ko/messages.po b/fluxer_app/src/features/i18n/locales/ko/messages.po index 90446e963..6e4ef8d9f 100644 --- a/fluxer_app/src/features/i18n/locales/ko/messages.po +++ b/fluxer_app/src/features/i18n/locales/ko/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {펼치기 (#줄)} other {펼치기 (#줄)}}" msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {펼치기 (#행)} other {펼치기 (#행)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {다른 기기 #개 펼치기} other {다른 기기 #개 펼치기}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {통화 중} other {#명 통화 중}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {영상 통화 참여 (참여자 #명)} other {영상 통화 참여 (참여자 #명)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {#개의 스트림을 계속 시청하고 이 스트림을 추가합니다} other {#개의 스트림을 계속 시청하고 이 스트림을 추가합니다}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} FPS" @@ -3590,8 +3590,8 @@ msgstr "전체 프로필을 볼 수 있는 모든 사람이 내 프로필 현지 #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "화면 공유에 AV1 사용 허용" @@ -3649,8 +3649,8 @@ msgstr "모든 커뮤니티에서 허용" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "H.265(HEVC) 화면 공유 허용" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "오디오 부스트" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "오디오 장치 알림" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "오디오 전송:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "오디오 설정" @@ -4987,9 +4987,9 @@ msgstr "자동 완성 제안: {label}, {resultCount}개 중 {selectedOptionPosit #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "자동" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "자동 ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "자동 게인 제어" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "자동 스크롤" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (옵트인 필요)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "비트 전송률" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "브라우저 시간 형식: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "맞춤 처리를 위한 브라우저 마이크 게인" @@ -6483,15 +6483,15 @@ msgstr "캡차 인증에 실패했습니다. 다시 시도해 주세요." msgid "Capture" msgstr "캡처" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "앱 오디오 캡처" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "데스크톱 오디오 캡처" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "기기 오디오 캡처" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "캡처 장치에서 게임 프리셋을 사용합니다." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "전체 시스템 오디오 캡처" @@ -7637,11 +7637,6 @@ msgstr "언어 선택" msgid "Choose your profile accent color" 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "시스코" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "코덱" @@ -8766,7 +8761,7 @@ msgstr "입력창 자동 활성화" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "구성" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "연결 볼륨" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "연결 볼륨 컨트롤" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "콘텐츠 필터링" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "콘텐츠 힌트" @@ -10594,7 +10589,7 @@ msgstr "현재: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "사용자 지정" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "맞춤 음성 처리" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "분리형 배너" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "디테일" @@ -11880,7 +11875,7 @@ msgid "Device" 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "기기 알림" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "기기 오디오({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "기기 오디오만" @@ -11904,12 +11899,12 @@ msgstr "기기 정보" msgid "Device revoked" msgstr "기기 연결 해제됨" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "기기 볼륨" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "기기" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "원하는 값을 직접 맞춰 보세요" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "모바일 푸시 알림 끄기" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "화면 공유 시 PIP 팝업 비활성화" @@ -12629,7 +12624,7 @@ msgstr "{deviceName} 다시 추천 안 함" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "완료" @@ -13756,8 +13751,8 @@ msgstr "사용" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "인코더 방식" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "새 화면 공유에 사용할 인코더 설정입니다." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "인코더, SVC 및 비트 전송률 사전 설정" @@ -15616,7 +15611,7 @@ msgstr "프레임" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "프레임 속도" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "이 권한을 적용하려면 {productName}을(를) 완전히 종료하고 다시 시작하세요." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "게인 제어" @@ -15946,7 +15941,7 @@ msgstr "게임패드 Y / △" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "게임" @@ -16451,7 +16446,7 @@ msgstr "{permissions} 권한을 부여했습니다" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "모든 권한을 부여하고 채널 제한을 우회합니다. 매우 민감한 권한입니다." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "세부 선택" @@ -16629,13 +16624,8 @@ msgstr "그룹이 업데이트되었습니다" msgid "Grouping" 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265(옵트인 필요)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "하드웨어 가속은 투명 창에서 렌더링 오류를 일으킬 수 있습니다. 화면 깜빡임이나 번짐 현상이 나타나면 --disable-gpu를 사용해 보세요." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "하드웨어 인코더" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "<0>{I18N_WEBLATE_DOMAIN}에서 {PRODUCT_NAME}을(를) 여러분의 언어로 번역하는 데 참여해 보세요." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "음소거된 채널을 기본으로 숨길까요?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "내 스트림 미리보기 썸네일 숨기기" @@ -17014,7 +17004,7 @@ msgstr "비밀번호 숨기기" msgid "Hide picture-in-picture popout?" msgstr "PIP 팝업을 숨길까요?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "미리보기 썸네일 숨기기" @@ -17417,11 +17407,11 @@ msgstr "무시" msgid "Ignore friend request" msgstr "친구 요청 무시하기" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "하드웨어 기기 무시" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "입력 미디어 무시" @@ -17452,7 +17442,7 @@ msgstr "{displayName}님의 친구 요청을 무시하시겠어요?" msgid "Ignore this channel's slowmode cooldown." msgstr "이 채널의 슬로우 모드 제한을 무시합니다." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "가상 기기 무시" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "레이어 순서" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "사용 가능한 경우 AV1 및 VP9에 레이어링을 적용합니다." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "가족 친화적인 공간을 위한 최고의 보호" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "시청자에게 호환성 문제가 발생할 수 있습니다. 개선 중입니다." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "마이크 증폭" @@ -21318,7 +21308,7 @@ msgstr "정확도순" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "새 마이크" @@ -22830,11 +22820,11 @@ msgstr "해당 사용자 이름으로 찾을 수 있는 사용자가 없습니 msgid "No users are currently banned from this community." msgstr "현재 이 커뮤니티에서 차단된 사용자가 없습니다." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "사용 가능한 사용자 없음" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "사용자를 찾을 수 없습니다" @@ -23313,7 +23303,7 @@ msgstr "넓은 화면에서만 적용됩니다." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "신용카드만 사용할 수 있습니다. 성인 콘텐츠 확인을 위해 직불카드 및 선불카드는 사용할 수 없습니다." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "기본 스피커만" @@ -23361,7 +23351,7 @@ msgstr "여기에서 실행하는 코드가 어떤 동작을 하는지 정확히 msgid "Only show message previews for DMs with unread messages" msgstr "읽지 않은 메시지가 있는 DM에 대해서만 메시지 미리보기 표시" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "스피커만" @@ -23901,21 +23891,6 @@ msgstr "휴대폰 메시지 앱을 열고 새 문자 메시지를 시작하세 msgid "Open your settings" msgstr "설정 열기" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "Linux의 OpenH264 소프트웨어 코덱" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "OpenH264 비디오 코덱" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "Cisco Systems, Inc.에서 제공하는 OpenH264 비디오 코덱." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "초대를 일시 중지할까요? 다시 사용 설정할 때까지 새 사용자는 초대 링크로 참여할 수 없습니다. 기존 멤버는 영향을 받지 않습니다." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "백그라운드에서 화면 공유 미리보기 일시 중지" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "기기별 볼륨" @@ -24776,7 +24751,7 @@ msgid "Picture" 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "화면 속 화면" @@ -24906,7 +24881,7 @@ msgid "Pins popout" 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PIP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "@멘션 받기 선호" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "하드웨어 선호" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "@멘션 안 받기 선호" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "소프트웨어 선호" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "환경설정..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "화면 공유 시 선호하는 코덱" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "사운드 미리 듣기" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "미리보기, 팝아웃, 스트림 썸네일 동작" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "묻기" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "새 오디오 장치가 연결되면 알림 표시" @@ -27659,7 +27634,7 @@ msgstr "창 크기 조절, 최대화, 창 스냅은 컴포지터에 따라 달 #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "해상도" @@ -28352,7 +28327,7 @@ msgstr "화면 녹화 권한 필요" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "화면 공유" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "화면 공유 오디오를 시작할 수 없습니다" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "화면 공유 코덱" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "화면 공유 인코더 컨트롤" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "화면 공유가 종료되었습니다" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "화면 공유에서 소프트웨어 인코딩({codec})을 사용하고 있습니다. 화질이 저하되고 CPU 사용량이 증가할 수 있습니다. GPU가 이 코덱에 대한 하드웨어 인코딩을 지원하지 않을 수 있습니다." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "화면 공유 미리보기" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "화면 공유 미리보기 동작" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "화면 공유 코덱" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "화면과 창을 공유합니다." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "스트림 오디오 공유" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "개인 정보 공유" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "720p에서 최대 30FPS의 선명한 텍스트" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "최대 4K, 최대 15 FPS의 선명한 텍스트" @@ -30327,7 +30302,7 @@ msgstr "네코 표시" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "새 기기 알림 표시" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "비밀번호 표시" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "음성 메뉴에서 기기별 참여자 볼륨 슬라이더 표시" @@ -30662,7 +30637,7 @@ msgstr "무음 통화" msgid "Silent calls from everyone" msgstr "모든 사람의 통화 무음 처리" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "오디오 입력이 없는 캡처 장치는 음소거됩니다" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "단일 커뮤니티 모드" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "단일 레이어" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "이모티콘" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "최대 720p에서 부드러운 30 FPS" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "1440p 해상도에서 최대 60 FPS로 부드럽게" @@ -31028,7 +31003,7 @@ msgid "Social" 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "소프트웨어 인코더" @@ -31258,7 +31233,7 @@ msgstr "소리" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "원본" @@ -32047,13 +32022,13 @@ msgstr "화면 공유 숨김" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "스트림 미리보기" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "스트림 품질" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "스트리밍 중" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "스트리밍 모드" @@ -32280,12 +32255,12 @@ msgid "Suspend" 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "SVC 모드" @@ -32559,7 +32534,7 @@ msgstr "{productName} 직원의 시스템 공지입니다. 여기에 답장할 #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "시스템 기본값" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "템플릿 URL" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "시간 레이어" @@ -32837,7 +32812,7 @@ msgstr "텍사스" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "텍스트" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "화면 공유 소스가 더 이상 비디오를 보내지 않아 화면 공유가 중단되었습니다." @@ -35774,7 +35749,7 @@ msgstr "이름 없는 그룹" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "이름 없는 입력" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "자체 입장음이 없는 커뮤니티에 사용됩니다." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "사용자 지정 모드에서 사용됩니다. 게임 및 화면 공유 사전 설정은 자체 힌트를 설정합니다." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "비디오 코덱" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "화면 공유용 비디오 코덱" @@ -37912,7 +37887,7 @@ msgid "Volume mute" 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "볼륨 슬라이더" @@ -38466,6 +38441,11 @@ msgstr "포함할 내용" msgid "What to search for." msgstr "검색할 내용" +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "공유 중인 화면이 업데이트되지 않고 있습니다" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "저장된 {savedResolution} ({savedFrameRate} FPS)를 사용하려면 {premiumProductName}이 필요합니다. 대신 {resolution} ({frameRate} FPS)으로 공유됩니다." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "호환되는 비디오 코덱으로 화면 공유를 게시할 수 없어 중지되었습니다. 다시 공유해 보세요." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "맞춤 URL이 {inviteEndpoint}/{vanitySlug}(으)로 설정되었습니다" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "비디오 인코더에서 프레임을 더 이상 인코딩하지 않아 화면 공유가 중지되었습니다. 다시 공유해 보세요." diff --git a/fluxer_app/src/features/i18n/locales/lt/messages.po b/fluxer_app/src/features/i18n/locales/lt/messages.po index 2e4d7dfa6..5d8642932 100644 --- a/fluxer_app/src/features/i18n/locales/lt/messages.po +++ b/fluxer_app/src/features/i18n/locales/lt/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Išskleisti (# eilutė)} few {Išskleisti (# eilut msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Išskleisti (# eilutė)} few {Išskleisti (# eilutės)} other {Išskleisti (# eilučių)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Išskleisti # kitą įrenginį} few {Išskleisti # kitus įrenginius} other {Išskleisti # kitų įrenginių}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {Skambutyje: #} few {Skambutyje: #} other {Skambutyj msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Prisijungti prie vaizdo skambučio (# dalyvis)} few {Prisijungti prie vaizdo skambučio (# dalyviai)} other {Prisijungti prie vaizdo skambučio (# dalyvių)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {Toliau žiūrėti # srautą ir pridėti šį} few {Toliau žiūrėti # srautus ir pridėti šį} other {Toliau žiūrėti # srautų ir pridėti šį}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} FPS" @@ -3590,8 +3590,8 @@ msgstr "Leisti visiems, kurie gali matyti visą jūsų profilį, matyti jūsų v #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Leisti AV1 ekrano bendrinimui" @@ -3649,8 +3649,8 @@ msgstr "Leisti visoms bendruomenėms" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Leisti H.265 (HEVC) ekrano bendrinimui" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Garso stiprinimas" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Garso įrenginys" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Garso įrenginio pranešimai" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Garso siuntimas:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Garso nustatymai" @@ -4987,9 +4987,9 @@ msgstr "Automatinio užbaigimo pasiūlymas: {label}, {selectedOptionPosition} i #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Automatinis" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Automatinis ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Automatinis stiprinimo valdymas" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Automatinis slinkimas" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (reikia įjungti)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Biometriniai duomenys" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Bitų srautas" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Naršyklės lokalė: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Naršyklės mikrofono stiprinimas, skirtas pasirinktiniam apdorojimui" @@ -6483,15 +6483,15 @@ msgstr "Nepavyko patvirtinti „Captcha“. Bandykite dar kartą." msgid "Capture" msgstr "Įrašyti" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Įrašyti programos garsą" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Įrašyti darbalaukio garsą" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Įrašyti įrenginio garsą" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Naudojami žaidimų išankstiniai nustatymai." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Įrašyti visą sistemos garsą" @@ -7637,11 +7637,6 @@ msgstr "Pasirinkite kalbą" msgid "Choose your profile accent color" msgstr "Pasirinkite profilio akcento spalvą" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Kodas:" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Kodekas" @@ -8766,7 +8761,7 @@ msgstr "Rašymo lauko fokusavimas" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Konfigūruoti" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Ryšio garsumas" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Ryšio garsumo valdikliai" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Turinio filtravimas" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Koduojamo turinio tipas" @@ -10594,7 +10589,7 @@ msgstr "Šiuo metu: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Pasirinktinis" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Pasirinktiniai vaizdo fonai" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Pasirinktinis balso apdorojimas" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Atskirta reklamjuostė" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Detalumas" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Įrenginys" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Įrenginio pranešimai" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Įrenginio garsas ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Tik garso įrenginys" @@ -11904,12 +11899,12 @@ msgstr "Įrenginio informacija" msgid "Device revoked" msgstr "Įrenginys atšauktas" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Įrenginio pasirinkimas" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Įrenginio garsumas" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Įrenginiai" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Nusistatykite savo skaičius" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Išjungti mobiliųjų įrenginių pranešimus" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Išjungti ekrano bendrinimo „vaizdas vaizde“ iššokantįjį langą" @@ -12629,7 +12624,7 @@ msgstr "Daugiau nesiūlyti įrenginio „{deviceName}“" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Atlikta" @@ -13756,8 +13751,8 @@ msgstr "Įjungta" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Kodavimo būdas" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Pageidaujamas naujų ekrano bendrinimų kodavimo būdas." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Encoderio, SVC ir bitų perdavimo spartos išankstiniai nustatymai" @@ -15616,7 +15611,7 @@ msgstr "Rėmelis" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Kadrų dažnis" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Visiškai uždarykite ir iš naujo paleiskite {productName}, kad „macOS“ pritaikytų šį leidimą." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Stiprinimo valdymas" @@ -15946,7 +15941,7 @@ msgstr "Valdiklio Y / trikampis" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Žaidimai" @@ -16451,7 +16446,7 @@ msgstr "Suteikta {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Suteikia visus leidimus ir apeina kanalo apribojimus. Labai jautrus leidimas." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Detalus pasirinkimas" @@ -16629,13 +16624,8 @@ msgstr "Grupė atnaujinta" msgid "Grouping" msgstr "Grupavimas" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (reikia įjungti atskirai)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "Aparatinės įrangos spartinimas gali sukelti atvaizdavimo trikdžių permatomuose languose. Jei matote mirgėjimą ar išsiliejimą, pabandykite naudoti --disable-gpu." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Aparatinis kodavimo įrenginys" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Padėkite išversti {PRODUCT_NAME} į savo kalbą svetainėje <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Slėpti nutildytus kanalus pagal numatytuosius nustatymus?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Slėpti mano srauto peržiūros miniatiūrą" @@ -17014,7 +17004,7 @@ msgstr "Slėpti slaptažodį" msgid "Hide picture-in-picture popout?" msgstr "Slėpti iššokantįjį paveikslėlio paveikslėlyje langą?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Slėpti peržiūros miniatiūrą" @@ -17417,11 +17407,11 @@ msgstr "Ignoruoti" msgid "Ignore friend request" msgstr "Nepaisyti draugystės užklausos" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Ignoruoti aparatinius įrenginius" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Ignoruoti įvesties mediją" @@ -17452,7 +17442,7 @@ msgstr "Nepaisyti {displayName} draugystės užklausos?" msgid "Ignore this channel's slowmode cooldown." msgstr "Ignoruoti šio kanalo lėtojo režimo apribojimą." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Ignoruoti virtualius" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Sluoksniavimas" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Sluoksnių kūrimas AV1 ir VP9 kodekams, kai jie yra pasiekiami." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Didžiausia apsauga šeimai tinkamoms erdvėms" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Gali sukelti suderinamumo problemų žiūrovams. Stengiamės tai pagerinti." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "Prieiga prie mikrofono atmesta. Įjunkite ją sistemos nustatymuose ir bandykite dar kartą." #. 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Mikrofono stiprinimas" @@ -21318,7 +21308,7 @@ msgstr "Tinkamiausi" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "Naujoji Meksika" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Naujas mikrofonas" @@ -22830,11 +22820,11 @@ msgstr "Naudotojo tokiu vardu nerasta." msgid "No users are currently banned from this community." msgstr "Šiuo metu iš šios bendruomenės niekas nėra užblokuotas." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Nėra naudotojų" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Naudotojų nerasta" @@ -23313,7 +23303,7 @@ msgstr "Taikoma tik plačiuose ekranuose." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Priimamos tik kredito kortelės. Debeto ir išankstinio mokėjimo kortelės negali būti naudojamos turinio suaugusiesiems patikrai." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Tik numatytieji garsiakalbiai" @@ -23361,7 +23351,7 @@ msgstr "Vykdykite kodą tik tuo atveju, jei tiksliai suprantate, ką jis daro." msgid "Only show message previews for DMs with unread messages" msgstr "Rodyti žinučių peržiūras tik DM su neskaitytomis žinutėmis" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Tik garsiakalbiai" @@ -23901,21 +23891,6 @@ msgstr "Atidarykite telefono žinučių programėlę ir pradėkite naują teksti msgid "Open your settings" msgstr "Atidaryti savo nustatymus" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "„OpenH264“ programinis kodekas „Linux“ sistemoje" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "„OpenH264“ vaizdo kodekas" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "„OpenH264“ vaizdo kodekas, kurį teikia „Cisco Systems, Inc.“." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Pristabdyti kvietimus? Nauji naudotojai negalės prisijungti per kvietimo nuorodas, kol vėl jų neįjungsite. Esamiems nariams tai neturės įtakos." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Pristabdyti ekrano bendrinimo peržiūrą fone" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Profiliai kiekvienai bendruomenei" #. 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Garsumo nustatymas įrenginiui" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Nuotrauka" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Vaizdas vaizde" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Prisegtų žinučių iššokantis langas" #. 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PiP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Geriau su @paminėjimu" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Teikti pirmenybę aparatinei įrangai" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Geriau be @paminėjimo" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Teikti pirmenybę programinei įrangai" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Nuostatos..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Pageidaujamas ekrano bendrinimo kodekas" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Perklausyti garsą" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Peržiūros, iššokančio lango ir srauto miniatiūrų veikimas" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Raginimas" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Klausti prijungus naują garso įrenginį" @@ -27659,7 +27634,7 @@ msgstr "Langų dydžio keitimas, maksimalus išplėtimas ir prilipdymas priklaus #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Raiška" @@ -28352,7 +28327,7 @@ msgstr "Reikalingas ekrano įrašymo leidimas" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Ekrano bendrinimas" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "Nepavyko pradėti ekrano bendrinimo garso" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Ekrano bendrinimo kodekas" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Ekrano bendrinimo kodavimo valdikliai" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Ekrano bendrinimas baigėsi" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "Ekrano bendrinimas naudoja programinį kodavimą ({codec}). Kokybė gali suprastėti, o procesoriaus naudojimas padidėti. Jūsų GPU gali nepalaikyti šio kodeko aparatinio kodavimo." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Ekrano bendrinimo peržiūra" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Ekrano bendrinimo peržiūros elgsena" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Ekrano bendrinimas" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Ekrano bendrinimo kodekas" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Bendrinkite ekranus ir langus." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Bendrinti srauto garsą" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Asmeninės informacijos bendrinimas" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Aukštos kokybės tekstas 720p raiška, iki 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Aukštos kokybės vaizdas iki 4K, iki 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "Rodyti Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Rodyti naujų įrenginių įspėjimus" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Rodyti slaptažodį" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Rodyti atskirų įrenginių dalyvių garsumo slankiklius balso meniu" @@ -30662,7 +30637,7 @@ msgstr "Tylūs skambučiai" msgid "Silent calls from everyone" msgstr "Tylūs skambučiai iš visų" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Nebalsinis, kai įrenginys neturi savo garso įvesties" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Vienos bendruomenės režimas" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Vienas sluoksnis" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Šypsenėlės" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Sklandus 30 FPS iki 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Sklandus 60 FPS iki 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" msgstr "Socialiniai tinklai" #. 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Programinis koduoklis" @@ -31258,7 +31233,7 @@ msgstr "Garsai" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Šaltinis" @@ -32047,13 +32022,13 @@ msgstr "Srautas paslėptas" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Srauto peržiūra" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Srauto kokybė" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Transliuojama" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Srautinio perdavimo režimas" @@ -32280,12 +32255,12 @@ msgid "Suspend" msgstr "Pristabdyti" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "SVC režimas" @@ -32559,7 +32534,7 @@ msgstr "Sistemos pranešimai iš „{productName}“ darbuotojų. Čia negalite #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Numatytasis sistemos įrenginys" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "Šablono URL" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Laiko sluoksniai" @@ -32837,7 +32812,7 @@ msgstr "Teksasas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Tekstas" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "Ekrano bendrinimo šaltinis nustojo siųsti vaizdą, todėl ekrano bendrinimas buvo sustabdytas." @@ -35774,7 +35749,7 @@ msgstr "Grupė be pavadinimo" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Įvesties įrenginys be pavadinimo" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Naudojama bendruomenėse, kurios neturi savo garso." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Naudojama pasirinktiniu režimu. Žaidimų ir ekrano bendrinimo nustatymai automatiškai parenka savo užuominą." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" msgstr "Vaizdo skambutis nepasiekiamas" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Vaizdo kodekas" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Vaizdo kodekas ekrano bendrinimui" @@ -37912,7 +37887,7 @@ msgid "Volume mute" msgstr "Nutildyti garsą" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Garsumo slankikliai" @@ -38466,6 +38441,11 @@ msgstr "Ką įtraukti" msgid "What to search for." msgstr "Ko ieškoti." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "Tai, ką bendrinate, nebeatnaujinama" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Jūsų išsaugotas vaizdo įrašas {savedResolution} su {savedFrameRate} kadrų per sekundę reikalauja {premiumProductName}, todėl bendrinama naudojant {resolution} su {frameRate} kadrų per sekundę." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Jūsų ekrano bendrinimas negalėjo būti paskelbtas naudojant suderinamą vaizdo kodeką, todėl jis buvo sustabdytas. Pabandykite bendrinti dar kartą." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Jūsų pasirinktinis URL nustatytas į {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Jūsų vaizdo kodavimo įrenginys nustojo koduoti kadrus, todėl jūsų ekrano bendrinimas buvo sustabdytas. Pabandykite bendrinti dar kartą." diff --git a/fluxer_app/src/features/i18n/locales/nl/messages.po b/fluxer_app/src/features/i18n/locales/nl/messages.po index 73b3a1196..e234ef27b 100644 --- a/fluxer_app/src/features/i18n/locales/nl/messages.po +++ b/fluxer_app/src/features/i18n/locales/nl/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Uitvouwen (# regel)} other {Uitvouwen (# regels)}}" msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Uitvouwen (# rij)} other {Uitvouwen (# rijen)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Vouw # ander apparaat uit} other {Vouw # andere apparaten uit}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {In gesprek} other {# in gesprek}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Deelnemen aan videogesprek (# deelnemer)} other {Deelnemen aan videogesprek (# deelnemers)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {Blijf # stream bekijken en voeg deze toe} other {Blijf # streams bekijken en voeg deze toe}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} beelden per seconde" @@ -3590,8 +3590,8 @@ msgstr "Sta iedereen die je volledige profiel kan bekijken toe om je lokale tijd #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "AV1 toestaan voor scherm delen" @@ -3649,8 +3649,8 @@ msgstr "Toestaan voor alle communities" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Sta H.265 (HEVC) toe voor scherm delen" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Audioversterking" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Audioapparaat" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Meldingen over audioapparaten" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Audio verzenden:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Audio-instellingen" @@ -4987,9 +4987,9 @@ msgstr "Automatische aanvulling: {label}, {selectedOptionPosition} van {resultCo #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Automatisch" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Automatisch ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Automatische versterkingsregeling" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Automatisch scrollen" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (moet expliciet worden ingeschakeld)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Biometrie" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Bitrate" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Tijdnotatie van de browser: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Microfoonversterking in de browser bij aangepaste verwerking" @@ -6483,15 +6483,15 @@ msgstr "Captcha-verificatie mislukt. Probeer het opnieuw." msgid "Capture" msgstr "Opnemen" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "App-audio opnemen" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Bureaubladgeluid opnemen" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Apparaataudio opnemen" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Captureapparaten gebruiken de Gaming-preset." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Volledige systeemaudio opnemen" @@ -7637,11 +7637,6 @@ msgstr "Kies je taal" msgid "Choose your profile accent color" msgstr "Kies de accentkleur van je profiel" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Code:" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Codec" @@ -8766,7 +8761,7 @@ msgstr "Focus op berichtinvoer" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Configureren" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Verbindingsvolume" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Volumeregeling voor verbindingen" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Inhoud filteren" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Indicatie van inhoudstype" @@ -10594,7 +10589,7 @@ msgstr "Momenteel: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Aangepast" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Aangepaste videoachtergronden" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Aangepaste spraakverwerking" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Losgekoppelde banner" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Detail" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Apparaat" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Apparaatmeldingen" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Audio van apparaat ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Alleen apparaataudio" @@ -11904,12 +11899,12 @@ msgstr "Apparaatgegevens" msgid "Device revoked" msgstr "Apparaattoegang ingetrokken" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Apparaat selecteren" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Apparaatvolume" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Apparaten" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Stel je eigen waarden in" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Mobiele pushmeldingen uitschakelen" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Beeld-in-beeldvensters voor schermdeling uitschakelen" @@ -12629,7 +12624,7 @@ msgstr "Stel {deviceName} niet opnieuw voor" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Klaar" @@ -13756,8 +13751,8 @@ msgstr "Ingeschakeld" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Encoderpad" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Encodervoorkeur voor nieuwe schermdeelsessies." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Encoder-, SVC- en bitrate-presets" @@ -15616,7 +15611,7 @@ msgstr "Kader" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Beeldsnelheid" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Sluit {productName} volledig af en start het opnieuw op, zodat macOS deze toestemming toepast." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Versterkingsregeling" @@ -15946,7 +15941,7 @@ msgstr "Controller Y / Driehoek" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Gaming" @@ -16451,7 +16446,7 @@ msgstr "{permissions} verleend" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Verleent alle rechten en omzeilt kanaalbeperkingen. Zeer gevoelig." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Nauwkeurige selectie" @@ -16629,13 +16624,8 @@ msgstr "Groep bijgewerkt" msgid "Grouping" msgstr "Groeperen" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (moet expliciet worden ingeschakeld)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "Hardwareversnelling kan weergavefouten veroorzaken bij transparante vensters. Probeer --disable-gpu als je flikkering of vegen ziet." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Hardware-encoder" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Help {PRODUCT_NAME} vertalen naar jouw taal op <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Gedempte kanalen standaard verbergen?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Miniatuur van mijn streamvoorbeeld verbergen" @@ -17014,7 +17004,7 @@ msgstr "Wachtwoord verbergen" msgid "Hide picture-in-picture popout?" msgstr "Beeld-in-beeld-pop-out verbergen?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Voorbeeldminiatuur verbergen" @@ -17417,11 +17407,11 @@ msgstr "Negeren" msgid "Ignore friend request" msgstr "Vriendschapsverzoek negeren" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Hardwareapparaten negeren" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Invoermedia negeren" @@ -17452,7 +17442,7 @@ msgstr "Vriendschapsverzoek van {displayName} negeren?" msgid "Ignore this channel's slowmode cooldown." msgstr "Negeer de wachttijd van slowmodus in dit kanaal." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Virtuele audio negeren" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Lagen" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Lagen voor AV1 en VP9 wanneer beschikbaar." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Maximale bescherming voor gezinsvriendelijke ruimtes" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Kan compatibiliteitsproblemen veroorzaken voor kijkers. We werken eraan om dit te verbeteren." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "Microfoontoegang is geweigerd. Schakel deze in via de systeeminstellingen en probeer het opnieuw." #. 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Microfoonversterking" @@ -21318,7 +21308,7 @@ msgstr "Meest relevant" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "New Mexico" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Nieuwe microfoon" @@ -22830,11 +22820,11 @@ msgstr "Geen gebruiker gevonden met die gebruikersnaam." msgid "No users are currently banned from this community." msgstr "Er zijn momenteel geen gebruikers verbannen uit deze community." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Geen gebruikers beschikbaar" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Geen gebruikers gevonden" @@ -23313,7 +23303,7 @@ msgstr "Alleen van toepassing op brede schermen." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Alleen creditcards worden geaccepteerd. Betaalpassen en prepaidkaarten kunnen niet worden gebruikt voor de controle voor inhoud voor volwassenen." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Alleen standaardluidsprekers" @@ -23361,7 +23351,7 @@ msgstr "Voer hier alleen code uit als je precies begrijpt wat het doet." msgid "Only show message previews for DMs with unread messages" msgstr "Toon alleen berichtvoorbeelden voor DM's met ongelezen berichten" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Alleen luidsprekers" @@ -23901,21 +23891,6 @@ msgstr "Open de berichtenapp op je telefoon en start een nieuw sms-bericht." msgid "Open your settings" msgstr "Open je instellingen" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "OpenH264-softwarecodec op Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "OpenH264-videocodec" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "OpenH264-videocodec geleverd door Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Uitnodigingen pauzeren? Nieuwe gebruikers kunnen niet deelnemen via uitnodigingslinks totdat je ze opnieuw inschakelt. Bestaande leden worden niet beïnvloed." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Voorbeeld van mijn gedeelde scherm op de achtergrond pauzeren" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Profielen per 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Volume per apparaat" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Foto" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Beeld in beeld" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Apart venster met vastgezette berichten" #. 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PiP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Voorkeur voor @vermeldingen" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Voorkeur voor hardware" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Voorkeur voor geen @vermelding" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Voorkeur voor software" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Voorkeuren..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Voorkeurscodec voor schermdelen" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Geluid beluisteren" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Gedrag van voorbeelden, aparte vensters en streamminiaturen" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Vraag" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Om bevestiging vragen bij nieuwe audioapparaten" @@ -27659,7 +27634,7 @@ msgstr "Het formaat wijzigen, maximaliseren en vensters vastklikken zijn afhanke #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Resolutie" @@ -28352,7 +28327,7 @@ msgstr "Toestemming voor schermopname vereist" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Scherm delen" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "Audio bij schermdelen kon niet worden gestart" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Codec voor scherm delen" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Encoderinstellingen voor schermdelen" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Schermdeling beëindigd" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "Schermdelen gebruikt softwarecodering ({codec}). De kwaliteit kan lager zijn en het CPU-gebruik hoger. Je GPU ondersteunt mogelijk geen hardwarecodering voor deze codec." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Voorbeeld scherm delen" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Gedrag van voorbeelden bij schermdelen" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Scherm delen" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Codec voor scherm delen" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Deel schermen en vensters." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Streamaudio delen" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Persoonlijke informatie delen" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Scherpe tekst op 720p, tot 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Scherpe tekst tot 4K, tot 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "Neko weergeven" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Meldingen over nieuwe apparaten tonen" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Wachtwoord tonen" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Volumeregelaars voor deelnemers per apparaat tonen in spraakmenu’s" @@ -30662,7 +30637,7 @@ msgstr "Stille oproepen" msgid "Silent calls from everyone" msgstr "Stille oproepen van iedereen" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Stil wanneer het opnameapparaat geen eigen audio-invoer heeft" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Modus voor één community" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Enkele laag" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Lachende gezichtjes" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Vloeiend 30 FPS tot 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Vloeiende 60 FPS tot 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" msgstr "Sociaal" #. 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Software-encoder" @@ -31258,7 +31233,7 @@ msgstr "Geluiden" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Bron" @@ -32047,13 +32022,13 @@ msgstr "Stream verborgen" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Streamvoorbeeld" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Streamkwaliteit" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Streamen" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Streammodus" @@ -32280,12 +32255,12 @@ msgid "Suspend" msgstr "Opschorten" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "SVC-modus" @@ -32559,7 +32534,7 @@ msgstr "Systeemaankondigingen van {productName}-medewerkers. Je kunt hier niet a #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Systeemstandaard" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "Sjabloon-URL" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Temporele lagen" @@ -32837,7 +32812,7 @@ msgstr "Texas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Tekst" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "De bron van het gedeelde scherm verstuurde geen video meer. Daarom is het schermdelen gestopt." @@ -35774,7 +35749,7 @@ msgstr "Naamloze groep" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Naamloze invoer" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Wordt gebruikt in communities die geen eigen geluid hebben." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Gebruikt in aangepaste modus. De presets Gaming en Scherm delen stellen hun eigen hint in." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" msgstr "Videogesprek niet beschikbaar" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Videocodec" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Videocodec voor scherm delen" @@ -37912,7 +37887,7 @@ msgid "Volume mute" msgstr "Geluid dempen" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Volumeregelaars" @@ -38466,6 +38441,11 @@ msgstr "Wat opnemen" msgid "What to search for." msgstr "Waar je naar wilt zoeken." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "Wat je deelt, wordt niet bijgewerkt" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Je opgeslagen {savedResolution} met {savedFrameRate} FPS vereist {premiumProductName}, dus delen gebruiken {resolution} met {frameRate} FPS." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Je gedeelde scherm kon niet met een compatibele videocodec worden uitgezonden. Daarom is het schermdelen gestopt. Probeer je scherm opnieuw te delen." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Je aangepaste URL is ingesteld op {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Je video-encoder is gestopt met het coderen van frames. Daarom is het schermdelen gestopt. Probeer je scherm opnieuw te delen." diff --git a/fluxer_app/src/features/i18n/locales/no/messages.po b/fluxer_app/src/features/i18n/locales/no/messages.po index 83baa4eb6..4e7d72e82 100644 --- a/fluxer_app/src/features/i18n/locales/no/messages.po +++ b/fluxer_app/src/features/i18n/locales/no/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Vis (# linje)} other {Vis (# linjer)}}" msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Vis flere (# rad)} other {Vis flere (# rader)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Vis # annen enhet} other {Vis # andre enheter}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {I samtale} other {# i samtale}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Bli med i videosamtale (# deltaker)} other {Bli med i videosamtale (# deltakere)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {Fortsett å se # strøm og legg til denne} other {Fortsett å se # strømmer og legg til denne}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} bilder/sek" @@ -3590,8 +3590,8 @@ msgstr "Tillat alle som kan se hele profilen din, å se din lokale tid" #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Tillat AV1 for skjermdeling" @@ -3649,8 +3649,8 @@ msgstr "Tillat for alle fellesskap" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Tillat H.265 (HEVC) for skjermdeling" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Lydforsterkning" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Lydenhet" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Varsler om lydenheter" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Sendt lyd:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Lydinnstillinger" @@ -4987,9 +4987,9 @@ msgstr "Autofullføringsforslag: {label}, {selectedOptionPosition} av {resultCou #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Automatisk" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Automatisk ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Automatisk forsterkningskontroll" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Automatisk rulling" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (må aktiveres)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Biometri" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Bithastighet" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Nettleserens tidsformat: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Mikrofonforsterkning i nettleseren for egendefinert lydbehandling" @@ -6483,15 +6483,15 @@ msgstr "Captcha-verifisering mislyktes. Prøv igjen." msgid "Capture" msgstr "Ta opp" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Ta opp applyd" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Ta opp systemlyd" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Ta opp enhetslyd" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Opptaksenheter bruker spillinnstillingene." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Ta opp all systemlyd" @@ -7637,11 +7637,6 @@ msgstr "Velg språk" msgid "Choose your profile accent color" msgstr "Velg aksentfargen for profilen din" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Kode:" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Kodek" @@ -8766,7 +8761,7 @@ msgstr "Fokus på skrivefeltet" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Konfigurer" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Tilkoblingsvolum" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Volumkontroller for tilkobling" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Innholdsfiltrering" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Innholdshint" @@ -10594,7 +10589,7 @@ msgstr "Nå: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Egendefinert" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Egendefinerte videobakgrunner" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Egendefinert talebehandling" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Løsrevet banner" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Detaljert" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Enhet" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Enhetsvarsler" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Lydenhet ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Kun lyden fra enheten" @@ -11904,12 +11899,12 @@ msgstr "Enhetsdetaljer" msgid "Device revoked" msgstr "Enhet tilbakekalt" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Enhetsvalg" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Enhetsvolum" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Enheter" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Finjuster med dine egne verdier" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Deaktiver push-varsler på mobil" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Deaktiver bilde-i-bilde-vindu for skjermdeling" @@ -12629,7 +12624,7 @@ msgstr "Ikke foreslå {deviceName} igjen" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Ferdig" @@ -13756,8 +13751,8 @@ msgstr "Aktivert" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Kodingsmetode" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Foretrukket kodingsmetode for nye skjermdelinger." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Koder, SVC og bitratemaler" @@ -15616,7 +15611,7 @@ msgstr "Ramme" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Bildefrekvens" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Avslutt {productName} helt og start appen på nytt slik at macOS tar i bruk denne tillatelsen." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Forsterkningskontroll" @@ -15946,7 +15941,7 @@ msgstr "Kontroller Y / Trekant" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Spill" @@ -16451,7 +16446,7 @@ msgstr "Ga {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Gir alle tillatelser og omgår kanalbegrensninger. Svært sensitivt." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Detaljert utvalg" @@ -16629,13 +16624,8 @@ msgstr "Gruppe oppdatert" msgid "Grouping" msgstr "Gruppering" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (må aktiveres)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "Maskinvareakselerasjon kan forårsake gjengivelsesfeil med gjennomsiktige vinduer. Prøv --disable-gpu hvis du ser flimring eller utvisking i bildet." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Maskinvarekoder" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Hjelp til med å oversette {PRODUCT_NAME} til ditt språk på <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Skjule dempede kanaler som standard?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Skjul miniatyrbildet av strømmen min" @@ -17014,7 +17004,7 @@ msgstr "Skjul passord" msgid "Hide picture-in-picture popout?" msgstr "Skjule bilde-i-bilde-vinduet?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Skjul miniatyrbilde" @@ -17417,11 +17407,11 @@ msgstr "Ignorer" msgid "Ignore friend request" msgstr "Ignorer venneforespørsel" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Ignorer maskinvareenheter" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Ignorer medieinndata" @@ -17452,7 +17442,7 @@ msgstr "Ignorere venneforespørselen fra {displayName}?" msgid "Ignore this channel's slowmode cooldown." msgstr "Ignorer ventetiden for sakte modus i denne kanalen." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Ignorer virtuelle enheter" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Lagdeling" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Lagdeling for AV1 og VP9 når det er tilgjengelig." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Maksimal beskyttelse for familievennlige områder" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Kan forårsake kompatibilitetsproblemer for seere. Vi jobber med å forbedre dette." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "Tilgang til mikrofonen ble nektet. Gi tilgang i systeminnstillingene dine og prøv igjen." #. 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Mikrofonforsterkning" @@ -21318,7 +21308,7 @@ msgstr "Mest relevant" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "New Mexico" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Ny mikrofon" @@ -22830,11 +22820,11 @@ msgstr "Ingen bruker funnet med det brukernavnet." msgid "No users are currently banned from this community." msgstr "Ingen brukere er for øyeblikket utestengt fra dette fellesskapet." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Ingen brukere tilgjengelige" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Ingen brukere funnet" @@ -23313,7 +23303,7 @@ msgstr "Gjelder bare på brede skjermer." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Bare kredittkort godtas. Debetkort og forhåndsbetalte kort kan ikke brukes til kontrollen for vokseninnhold." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Kun standardhøyttalere" @@ -23361,7 +23351,7 @@ msgstr "Kjør bare kode her hvis du forstår nøyaktig hva den gjør." msgid "Only show message previews for DMs with unread messages" msgstr "Vis bare forhåndsvisninger for direktemeldingssamtaler med uleste meldinger" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Kun høyttalere" @@ -23901,21 +23891,6 @@ msgstr "Åpne meldingsappen på telefonen din og start en ny tekstmelding." msgid "Open your settings" msgstr "Åpne innstillingene dine" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "OpenH264-programvarekodek på Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "OpenH264-videokodek" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "OpenH264-videokodek levert av Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Vil du sette invitasjoner på pause? Nye brukere kan ikke bli med via invitasjonslenker før du aktiverer dem igjen. Eksisterende medlemmer blir ikke påvirket." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Sett forhåndsvisningen av skjermdelingen min på pause i bakgrunnen" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Profiler per fellesskap" #. 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Volum per enhet" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Bilde" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Bilde i bilde" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Panel for festede meldinger" #. 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "Bilde i bilde" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Foretrekk @omtale" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Foretrekk maskinvare" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Foretrekk ingen @omtale" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Foretrekk programvare" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Innstillinger …" #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Foretrukket skjermdelingskodek" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Spill av lydprøve" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Innstillinger for forhåndsvisning, egne vinduer og strømmeminiatyrbilder" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Bekreftelsesdialog" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Spør om nye lydenheter" @@ -27659,7 +27634,7 @@ msgstr "Endring av størrelse, maksimering og vindusfesting avhenger av komposit #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Oppløsning" @@ -28352,7 +28327,7 @@ msgstr "Tilgang til skjermopptak kreves" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Skjermdeling" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "Lyd for skjermdeling kunne ikke starte" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Skjermdelingskodek" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Kontroller for skjermdelingskoding" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Skjermdelingen ble avsluttet" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "Skjermdeling bruker programvarekoding ({codec}). Kvaliteten kan bli redusert og CPU-bruken økt. GPU-en din støtter kanskje ikke maskinvarekoding for denne kodeken." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Forhåndsvisning av skjermdeling" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Innstillinger for forhåndsvisning av skjermdeling" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Skjermdeling" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Skjermdelingskodek" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Del skjermer og vinduer." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Del lyd fra strømmen" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Deling av personlig informasjon" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Skarpt bilde i 720p, opptil 30 bilder/sek" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Skarpt bilde i opptil 4K, opptil 15 bilder per sekund" @@ -30327,7 +30302,7 @@ msgstr "Vis Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Vis varsler om nye enheter" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Vis passord" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Vis skyveknapper for deltakervolum per enhet i talemenyer" @@ -30662,7 +30637,7 @@ msgstr "Stille anrop" msgid "Silent calls from everyone" msgstr "Stille anrop fra alle" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Stille når opptaksenheten ikke har egen lydinngang" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Modus for ett fellesskap" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Enkeltlag" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Smil" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Jevn 30 FPS ved opptil 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Jevn 60 FPS med opptil 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" msgstr "Sosialt" #. 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Programvarekoder" @@ -31258,7 +31233,7 @@ msgstr "Lyder" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Kilde" @@ -32047,13 +32022,13 @@ msgstr "Strøm skjult" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Forhåndsvisning av strøm" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Strømmekvalitet" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Strømmer" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Strømmemodus" @@ -32280,12 +32255,12 @@ msgid "Suspend" msgstr "Deaktiver midlertidig" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "SVC-modus" @@ -32559,7 +32534,7 @@ msgstr "Systemkunngjøringer fra {productName}-ansatte. Du kan ikke svare her." #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Systemstandard" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "Mal-URL" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Tidsmessige lag" @@ -32837,7 +32812,7 @@ msgstr "Texas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Tekst" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "Kilden for skjermdelingen sluttet å sende video, så skjermdelingen ble stoppet." @@ -35774,7 +35749,7 @@ msgstr "Gruppe uten navn" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Inndataenhet uten navn" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Brukes i fellesskap som ikke har sin egen lyd." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Brukes i egendefinert modus. Forhåndsinnstillingene for spill og skjermdeling setter sine egne hint." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" msgstr "Videosamtale er ikke tilgjengelig" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Videokodek" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Videokodek for skjermdeling" @@ -37912,7 +37887,7 @@ msgid "Volume mute" msgstr "Demp lyd" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Volumkontroller" @@ -38466,6 +38441,11 @@ msgstr "Hva som skal inkluderes" msgid "What to search for." msgstr "Hva du vil søke etter." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "Det du deler oppdateres ikke" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Ditt lagrede {savedResolution} med {savedFrameRate} FPS krever {premiumProductName}, så delinger bruker {resolution} med {frameRate} FPS." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Skjermdelingen din kunne ikke publiseres med en kompatibel videokodek, så den ble stoppet. Prøv å dele igjen." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Den egendefinerte URL-en er nå satt til {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Videokoderen din sluttet å kode bilder, så skjermdelingen ble stoppet. Prøv å dele igjen." diff --git a/fluxer_app/src/features/i18n/locales/pl/messages.po b/fluxer_app/src/features/i18n/locales/pl/messages.po index 2c1c975db..1cae9ba72 100644 --- a/fluxer_app/src/features/i18n/locales/pl/messages.po +++ b/fluxer_app/src/features/i18n/locales/pl/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Rozwiń (1 wiersz)} few {Rozwiń (# wiersze)} many msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Rozwiń (# wiersz)} few {Rozwiń (# wiersze)} many {Rozwiń (# wierszy)} other {Rozwiń (# wiersza)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Rozwiń # inne urządzenie} few {Rozwiń # inne urządzenia} many {Rozwiń # innych urządzeń} other {Rozwiń # innego urządzenia}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {W rozmowie} few {# w rozmowie} many {# w rozmowie} msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Dołącz do rozmowy wideo (# uczestnik)} few {Dołącz do rozmowy wideo (# uczestników)} many {Dołącz do rozmowy wideo (# uczestników)} other {Dołącz do rozmowy wideo (# uczestników)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "Kontynuuj oglądanie {count, plural, one {# transmisji} few {# transmisji} many {# transmisji} other {# transmisji}} i dodaj tę" @@ -1347,7 +1347,7 @@ msgstr "{fps} kl./s" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} kl./s" @@ -3590,8 +3590,8 @@ msgstr "Zezwól każdemu, kto może wyświetlić Twój pełny profil, na sprawdz #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Zezwalaj na AV1 podczas udostępniania ekranu" @@ -3649,8 +3649,8 @@ msgstr "Zezwól dla wszystkich społeczności" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Zezwól na H.265 (HEVC) podczas udostępniania ekranu" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Wzmocnienie dźwięku" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Urządzenie audio" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Powiadomienia o urządzeniach audio" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Wysyłanie dźwięku:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Ustawienia audio" @@ -4987,9 +4987,9 @@ msgstr "Sugestia autouzupełniania: {label}, {selectedOptionPosition} z {resultC #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Automatycznie" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Automatyczne ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Automatyczna regulacja wzmocnienia" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Autoprzewijanie" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (wymaga włączenia)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Biometria" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Przepływność" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Czas według ustawień przeglądarki: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Wzmocnienie mikrofonu w przeglądarce (dla niestandardowego przetwarzania)" @@ -6483,15 +6483,15 @@ msgstr "Weryfikacja captcha nie powiodła się. Spróbuj ponownie." msgid "Capture" msgstr "Przechwytywanie" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Przechwytuj dźwięk aplikacji" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Przechwytuj dźwięk komputera" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Przechwytuj dźwięk urządzenia" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Urządzenia przechwytujące korzystają z ustawienia „Gry”." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Przechwytuj cały dźwięk systemowy" @@ -7637,11 +7637,6 @@ msgstr "Wybierz swój język" msgid "Choose your profile accent color" msgstr "Wybierz kolor akcentu profilu" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Kod:" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Kodek" @@ -8766,7 +8761,7 @@ msgstr "Fokus edytora wiadomości" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Skonfiguruj" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Głośność połączenia" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Sterowanie głośnością połączenia" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Filtrowanie treści" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Typ treści dla kodera" @@ -10594,7 +10589,7 @@ msgstr "Obecnie: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Niestandardowe" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Własne tła wideo" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Indywidualne przetwarzanie dźwięku" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Odłączony baner" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Szczegół" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Urządzenie" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Powiadomienia o urządzeniu" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Dźwięk urządzenia ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Tylko dźwięk z urządzenia" @@ -11904,12 +11899,12 @@ msgstr "Szczegóły urządzenia" msgid "Device revoked" msgstr "Cofnięto dostęp urządzenia" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Wybór urządzenia" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Głośność urządzenia" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Urządzenia" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Wprowadź własne wartości" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Wyłącz powiadomienia push na urządzeniach mobilnych" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Wyłącz tryb obrazu w obrazie dla udostępniania ekranu" @@ -12629,7 +12624,7 @@ msgstr "Nie sugeruj ponownie {deviceName}" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Gotowe" @@ -13756,8 +13751,8 @@ msgstr "Włączone" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Ścieżka kodera" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Preferowana metoda kodowania dla nowych udostępnień ekranu." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Koder, SVC i presety przepustowości" @@ -15616,7 +15611,7 @@ msgstr "Ramka" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Liczba klatek na sekundę" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Całkowicie zamknij i uruchom ponownie {productName}, aby system macOS zastosował to uprawnienie." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Regulacja wzmocnienia" @@ -15946,7 +15941,7 @@ msgstr "Pad Y / Trójkąt" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Gry" @@ -16451,7 +16446,7 @@ msgstr "Przyznano {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Przyznaje wszystkie uprawnienia i pozwala omijać ograniczenia kanałów. Wymaga szczególnej ostrożności." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Szczegółowy wybór" @@ -16629,13 +16624,8 @@ msgstr "Grupa zaktualizowana" msgid "Grouping" msgstr "Grupowanie" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (wymaga włączenia)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "Akceleracja sprzętowa może powodować błędy renderowania w przypadku przezroczystych okien. Spróbuj użyć opcji --disable-gpu, jeśli widzisz migotanie lub smużenie." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Koder sprzętowy" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Pomóż przetłumaczyć {PRODUCT_NAME} na swój język na stronie <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Ukrywać wyciszone kanały domyślnie?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Ukryj miniaturę podglądu mojej transmisji" @@ -17014,7 +17004,7 @@ msgstr "Ukryj hasło" msgid "Hide picture-in-picture popout?" msgstr "Ukryć okienko obrazu w obrazie?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Ukryj miniaturę podglądu" @@ -17417,11 +17407,11 @@ msgstr "Ignoruj" msgid "Ignore friend request" msgstr "Ignoruj zaproszenie do znajomych" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Ignoruj urządzenia sprzętowe" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Ignoruj multimedia wejściowe" @@ -17452,7 +17442,7 @@ msgstr "Zignorować zaproszenie do znajomych od {displayName}?" msgid "Ignore this channel's slowmode cooldown." msgstr "Pomijaj czas oczekiwania między wiadomościami w trybie wolnym tego kanału." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Ignoruj wirtualne" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Warstwy" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Warstwowanie dla AV1 i VP9, jeśli dostępne." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Maksymalna ochrona dla przestrzeni przyjaznych rodzinie" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Może powodować problemy z kompatybilnością u widzów. Pracujemy nad poprawą tej funkcji." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "Odmówiono dostępu do mikrofonu. Włącz go w ustawieniach systemowych i spróbuj ponownie." #. 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Wzmocnienie mikrofonu" @@ -21318,7 +21308,7 @@ msgstr "Najtrafniejsze" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "Nowy Meksyk" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Nowy mikrofon" @@ -22830,11 +22820,11 @@ msgstr "Nie znaleziono użytkownika o tej nazwie użytkownika." msgid "No users are currently banned from this community." msgstr "Żaden użytkownik nie jest obecnie zbanowany w tej społeczności." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Brak dostępnych użytkowników" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Nie znaleziono użytkowników" @@ -23313,7 +23303,7 @@ msgstr "Dotyczy tylko szerokich ekranów." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Akceptujemy tylko karty kredytowe. Kart debetowych i przedpłaconych nie można użyć do weryfikacji dostępu do treści dla dorosłych." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Tylko domyślne głośniki" @@ -23361,7 +23351,7 @@ msgstr "Uruchamiaj kod tylko wtedy, gdy dokładnie rozumiesz, co robi." msgid "Only show message previews for DMs with unread messages" msgstr "Pokazuj podglądy wiadomości tylko dla rozmów prywatnych z nieprzeczytanymi wiadomościami" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Tylko głośniki" @@ -23901,21 +23891,6 @@ msgstr "Otwórz aplikację do obsługi wiadomości na telefonie i rozpocznij now msgid "Open your settings" msgstr "Otwórz ustawienia" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "Programowy kodek OpenH264 w systemie Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "Kodek wideo OpenH264" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "Kodek wideo OpenH264 dostarczany przez Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Wstrzymać zaproszenia? Nowi użytkownicy nie będą mogli dołączyć przez linki z zaproszeniami, dopóki ich ponownie nie włączysz. Nie wpłynie to na obecnych członków." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Wstrzymaj podgląd udostępniania ekranu w tle" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Profile dla każdej 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Głośność dla urządzenia" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Zdjęcie" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Obraz w obrazie" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Okno przypiętych wiadomoś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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "Obraz w obrazie" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Preferuj wzmianki" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Preferuj sprzętowy" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Preferuj brak wzmianek" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Preferuj programowy" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Preferencje..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Preferowany kodek udostępniania ekranu" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Podgląd dźwięku" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Zachowanie podglądu, odłączanego okna i miniatury transmisji" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Monit" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Pytaj o nowe urządzenia audio" @@ -27659,7 +27634,7 @@ msgstr "Zmiana rozmiaru, maksymalizacja i przyciąganie okien zależą od kompoz #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Rozdzielczość" @@ -28352,7 +28327,7 @@ msgstr "Wymagane pozwolenie na nagrywanie ekranu" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Udostępnianie ekranu" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "Nie udało się uruchomić dźwięku udostępnianego ekranu" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Kodek udostępniania ekranu" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Sterowanie ustawieniami kodowania udostępniania ekranu" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Udostępnianie ekranu zakończone" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "Udostępnianie ekranu korzysta z kodowania programowego ({codec}). Jakość może być obniżona, a użycie procesora zwiększone. Twój procesor graficzny może nie obsługiwać kodowania sprzętowego dla tego kodeka." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Podgląd udostępniania ekranu" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Zachowanie podglądu udostępniania ekranu" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Udostępnianie ekranu" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Kodek udostępniania ekranu" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Udostępniaj ekrany i okna." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Udostępnij dźwięk transmisji" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Udostępnianie danych osobowych" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Ostre tekst w 720p, do 30 kl./s" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Ostre obrazy w rozdzielczości do 4K, do 15 kl./s" @@ -30327,7 +30302,7 @@ msgstr "Pokaż Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Pokaż alerty o nowych urządzeniach" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Pokaż hasło" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Pokaż suwaki głośności uczestników dla poszczególnych urządzeń w menu głosowych" @@ -30662,7 +30637,7 @@ msgstr "Ciche połączenia" msgid "Silent calls from everyone" msgstr "Ciche połączenia od wszystkich" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Cichy, gdy urządzenie przechwytujące nie ma własnego wejścia audio" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Tryb pojedynczej społeczności" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Pojedyncza warstwa" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Buźki" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Płynne 30 kl./s w rozdzielczości do 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Płynne 60 FPS przy rozdzielczości do 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" msgstr "Społecznościowe" #. 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Koder programowy" @@ -31258,7 +31233,7 @@ msgstr "Dźwięki" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Źródło" @@ -32047,13 +32022,13 @@ msgstr "Transmisja ukryta" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Podgląd transmisji" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Jakość transmisji" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Transmisja" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Tryb transmisji" @@ -32280,12 +32255,12 @@ msgid "Suspend" msgstr "Zawieś" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "Tryb SVC" @@ -32559,7 +32534,7 @@ msgstr "Ogłoszenia systemowe od zespołu {productName}. Nie możesz tutaj odpow #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Domyślne systemowe" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "Adres URL szablonu" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Warstwy czasowe" @@ -32837,7 +32812,7 @@ msgstr "Teksas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Tekst" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "Źródło udostępniania ekranu przestało wysyłać wideo, więc udostępnianie ekranu zostało zatrzymane." @@ -35774,7 +35749,7 @@ msgstr "Grupa bez nazwy" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Wejście bez nazwy" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Używany w społecznościach, które nie mają własnego dźwięku." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Używane w trybie Niestandardowym. Presety Gry i Udostępnianie ekranu ustawiają własną wskazówkę." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" msgstr "Połączenie wideo niedostępne" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Kodek wideo" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Kodek wideo do udostępniania ekranu" @@ -37912,7 +37887,7 @@ msgid "Volume mute" msgstr "Wycisz dźwięk" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Suwaki głośności" @@ -38466,6 +38441,11 @@ msgstr "Co uwzględnić" msgid "What to search for." msgstr "Czego szukać." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "To, czym się dzielisz, nie jest aktualizowane" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Twoje zapisane {savedResolution} przy {savedFrameRate} FPS wymaga {premiumProductName}, więc udostępnianie używa {resolution} przy {frameRate} FPS." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Nie udało się opublikować udostępniania ekranu za pomocą zgodnego kodeka wideo, dlatego zostało ono zatrzymane. Spróbuj udostępnić ponownie." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Twój niestandardowy adres URL został ustawiony na {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Twój koder wideo przestał kodować klatki, więc udostępnianie ekranu zostało zatrzymane. Spróbuj udostępnić ponownie." 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 08dfa6ca9..b07a4693d 100644 --- a/fluxer_app/src/features/i18n/locales/pt-BR/messages.po +++ b/fluxer_app/src/features/i18n/locales/pt-BR/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, =0 {Expandir (# linhas)} one {Expandir (# linha)} other msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, =0 {Expandir (# linhas)} one {Expandir (# linha)} other {Expandir (# linhas)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, =0 {Expandir mais # dispositivos} one {Expandir mais # dispositivo} other {Expandir mais # dispositivos}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, =0 {# em chamada} one {Em chamada} other {# em chamada}} msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, =0 {Entrar na chamada de vídeo (# participantes)} one {Entrar na chamada de vídeo (# participante)} other {Entrar na chamada de vídeo (# participantes)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, =0 {Continuar assistindo a # transmissões e adicionar esta} one {Continuar assistindo a # transmissão e adicionar esta} other {Continuar assistindo a # transmissões e adicionar esta}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} FPS" @@ -3590,8 +3590,8 @@ msgstr "Permitir que qualquer pessoa que possa ver seu perfil completo veja seu #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Permitir AV1 para compartilhamento de tela" @@ -3649,8 +3649,8 @@ msgstr "Permitir para todas as comunidades" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Permitir H.265 (HEVC) para compartilhamento de tela" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Reforço de áudio" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Dispositivo de áudio" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Alertas do dispositivo de áudio" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Envio de áudio:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Configurações de áudio" @@ -4987,9 +4987,9 @@ msgstr "Sugestão de preenchimento automático: {label}, {selectedOptionPosition #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Automático" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Automático ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Controle automático de ganho" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Rolagem automática" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (requer ativação)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Biometria" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Taxa de bits" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Formato de hora do navegador: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Ganho do microfone do navegador para processamento personalizado" @@ -6483,15 +6483,15 @@ msgstr "A verificação do CAPTCHA falhou. Tente novamente." msgid "Capture" msgstr "Capturar" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Capturar áudio do app" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Capturar áudio do computador" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Capturar áudio do dispositivo" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Dispositivos de captura usam a predefinição Jogos." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Capturar áudio de todo o sistema" @@ -7637,11 +7637,6 @@ msgstr "Escolha seu idioma" msgid "Choose your profile accent color" msgstr "Escolha a cor de destaque do seu perfil" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Código:" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Codec" @@ -8766,7 +8761,7 @@ msgstr "Foco do editor de mensagens" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Configurar" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Volume da conexão" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Controles de volume da conexão" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Filtragem de conteúdo" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Indicação do tipo de conteúdo" @@ -10594,7 +10589,7 @@ msgstr "Atualmente: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Personalizado" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Planos de fundo de vídeo personalizados" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Processamento de voz personalizado" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Banner desanexado" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Detalhe" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Dispositivo" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Alertas do dispositivo" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Áudio do dispositivo ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Áudio do dispositivo" @@ -11904,12 +11899,12 @@ msgstr "Detalhes do dispositivo" msgid "Device revoked" msgstr "Sessão do dispositivo encerrada" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Seleção de dispositivo" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Volume do dispositivo" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Dispositivos" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Ajuste os valores do seu jeito" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Desativar notificações push no celular" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Desativar janelas flutuantes de compartilhamento de tela" @@ -12629,7 +12624,7 @@ msgstr "Não sugerir {deviceName} novamente" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Concluído" @@ -13756,8 +13751,8 @@ msgstr "Ativado" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Caminho do codificador" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Preferência do codificador para novos compartilhamentos de tela." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Codificador, SVC e predefinições de taxa de bits" @@ -15616,7 +15611,7 @@ msgstr "Moldura" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Taxa de quadros" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Feche completamente e reinicie o {productName} para que o macOS aplique esta permissão." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Controle de ganho" @@ -15946,7 +15941,7 @@ msgstr "Y / triângulo (controle)" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Jogos" @@ -16451,7 +16446,7 @@ msgstr "Concedeu {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Concede todas as permissões e ignora as restrições do canal. Altamente sensível." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Seleção granular" @@ -16629,13 +16624,8 @@ msgstr "Grupo atualizado" msgid "Grouping" msgstr "Agrupamento" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (requer ativação)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "A aceleração de hardware pode causar falhas de renderização com janelas transparentes. Tente --disable-gpu se você notar cintilação ou manchas." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Codificador de hardware" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Ajude a traduzir o {PRODUCT_NAME} para o seu idioma em <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Ocultar canais silenciados por padrão?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Ocultar miniatura da prévia da minha transmissão" @@ -17014,7 +17004,7 @@ msgstr "Ocultar senha" msgid "Hide picture-in-picture popout?" msgstr "Ocultar janela flutuante picture-in-picture?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Ocultar miniatura da prévia" @@ -17417,11 +17407,11 @@ msgstr "Ignorar" msgid "Ignore friend request" msgstr "Ignorar pedido de amizade" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Ignorar dispositivos de hardware" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Ignorar mídia de entrada" @@ -17452,7 +17442,7 @@ msgstr "Ignorar o pedido de amizade de {displayName}?" msgid "Ignore this channel's slowmode cooldown." msgstr "Ignorar o tempo de espera do modo lento deste canal." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Ignorar virtual" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Camadas" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Camadas para AV1 e VP9, quando disponíveis." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Proteção máxima para espaços familiares" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Pode causar problemas de compatibilidade para os espectadores. Estamos trabalhando para melhorar isso." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "O acesso ao microfone foi negado. Ative-o nas configurações do sistema e tente novamente." #. 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Ganho do microfone" @@ -21318,7 +21308,7 @@ msgstr "Mais relevantes" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "Novo México" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Novo microfone" @@ -22830,11 +22820,11 @@ msgstr "Nenhum usuário encontrado com esse nome de usuário." msgid "No users are currently banned from this community." msgstr "Nenhum usuário banido desta comunidade no momento." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Nenhum usuário disponível" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Nenhum usuário encontrado" @@ -23313,7 +23303,7 @@ msgstr "Aplica-se apenas a telas largas." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Apenas cartões de crédito são aceitos. Cartões de débito e pré-pagos não podem ser usados para a verificação de conteúdo adulto." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Apenas alto-falantes padrão" @@ -23361,7 +23351,7 @@ msgstr "Execute códigos aqui apenas se você souber exatamente o que eles fazem msgid "Only show message previews for DMs with unread messages" msgstr "Mostrar prévias apenas das conversas por mensagem direta com mensagens não lidas" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Apenas alto-falantes" @@ -23901,21 +23891,6 @@ msgstr "Abra o aplicativo de mensagens do celular e comece uma nova mensagem de msgid "Open your settings" msgstr "Abrir suas configurações" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "OpenH264, codec de software para Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "Codec de vídeo OpenH264" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "Codec de vídeo OpenH264 fornecido pela Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Pausar convites? Novos usuários não poderão entrar por links de convite até que você os reative. Membros existentes não serão afetados." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Pausar minha prévia de compartilhamento de tela em segundo plano" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Perfis por 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Volume por dispositivo" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Foto" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Janela flutuante (picture-in-picture)" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Janela de mensagens fixadas" #. 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PiP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Preferir menção" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Preferir hardware" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Preferir não ser @mencionado" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Preferir software" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Preferências..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Codec preferencial para compartilhamento de tela" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Prévia do som" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Comportamento das prévias, janelas separadas e miniaturas de transmissão" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Prompt" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Perguntar sobre novos dispositivos de áudio" @@ -27659,7 +27634,7 @@ msgstr "Redimensionar, maximizar e ajustar a janela dependem do compositor. O Wa #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Resolução" @@ -28352,7 +28327,7 @@ msgstr "Permissão para gravar a tela é necessária" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Compartilhar tela" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "O áudio do compartilhamento de tela não pôde ser iniciado" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Codec de compartilhamento de tela" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Controles do codificador de compartilhamento de tela" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Compartilhamento de tela encerrado" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "O compartilhamento de tela está usando codificação por software ({codec}). A qualidade pode ser reduzida e o uso da CPU aumentado. Sua GPU pode não ser compatível com a codificação por hardware para este codec." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Prévia do compartilhamento de tela" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Comportamento da prévia do compartilhamento de tela" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Compartilhamento de tela" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Codec de compartilhamento de tela" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Compartilhe telas e janelas." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Compartilhar áudio da transmissão" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Compartilhando informações pessoais" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Texto nítido em 720p, até 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Texto nítido em até 4K, até 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "Mostrar Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Mostrar alertas de novos aparelhos" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Mostrar senha" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Mostrar controles deslizantes de volume por participante por dispositivo nos menus de voz" @@ -30662,7 +30637,7 @@ msgstr "Chamadas silenciosas" msgid "Silent calls from everyone" msgstr "Chamadas silenciosas de todos" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Silencioso quando o dispositivo de captura não tem entrada de áudio própria" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Modo de comunidade única" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Camada única" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Carinhas" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Suave a 30 FPS em até 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Suave a 60 FPS em até 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" msgstr "Social" #. 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Codificador de software" @@ -31258,7 +31233,7 @@ msgstr "Sons" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Original" @@ -32047,13 +32022,13 @@ msgstr "Transmissão oculta" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Prévia da transmissão" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Qualidade da transmissão" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Transmitindo" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Modo de transmissão" @@ -32280,12 +32255,12 @@ msgid "Suspend" msgstr "Suspender" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "Modo SVC" @@ -32559,7 +32534,7 @@ msgstr "Comunicados do sistema da equipe {productName}. Não é possível respon #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Padrão do sistema" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "URL do modelo" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Camadas temporais" @@ -32837,7 +32812,7 @@ msgstr "Texas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Texto" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "A fonte de compartilhamento de tela parou de enviar vídeo, então o seu compartilhamento de tela foi interrompido." @@ -35774,7 +35749,7 @@ msgstr "Grupo sem nome" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Entrada sem nome" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Usado em comunidades que não têm um som próprio." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Usado no modo Personalizado. As predefinições de Jogo e Compartilhamento de tela definem sua própria dica." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" msgstr "Chamada de vídeo indisponível" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Codec de vídeo" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Codec de vídeo para compartilhamento de tela" @@ -37912,7 +37887,7 @@ msgid "Volume mute" msgstr "Desativar áudio" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Controles de volume" @@ -38466,6 +38441,11 @@ msgstr "O que incluir" msgid "What to search for." msgstr "O que procurar." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "O que você está compartilhando não está atualizando" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Seu {savedResolution} salvo a {savedFrameRate} FPS precisa de {premiumProductName}, então o compartilhamento usa {resolution} a {frameRate} FPS." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Seu compartilhamento de tela não pôde ser publicado com um codec de vídeo compatível, por isso foi interrompido. Tente compartilhar novamente." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Seu URL personalizado foi definido como {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Seu codificador de vídeo parou de codificar quadros, então o compartilhamento de tela foi interrompido. Tente compartilhar novamente." diff --git a/fluxer_app/src/features/i18n/locales/ro/messages.po b/fluxer_app/src/features/i18n/locales/ro/messages.po index 00eeeb52b..3116106fc 100644 --- a/fluxer_app/src/features/i18n/locales/ro/messages.po +++ b/fluxer_app/src/features/i18n/locales/ro/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Extinde (# linie)} few {Extinde (# linii)} other {E msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Extinde (# rând)} few {Extinde (# rânduri)} other {Extinde (# de rânduri)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Extinde încă # dispozitiv} few {Extinde încă # dispozitive} other {Extinde încă # de dispozitive}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {În apel} other {# în apel}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Alătură-te apelului video (# participant)} few {Alătură-te apelului video (# participanți)} other {Alătură-te apelului video (# de participanți)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {Continuă să urmărești # stream și adaugă-l pe acesta} few {Continuă să urmărești # streamuri și adaugă-l pe acesta} other {Continuă să urmărești # de streamuri și adaugă-l pe acesta}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} FPS" @@ -3590,8 +3590,8 @@ msgstr "Permite oricui îți poate vedea profilul complet să-ți vadă ora loca #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Permite AV1 pentru partajarea ecranului" @@ -3649,8 +3649,8 @@ msgstr "Permite pentru toate comunitățile" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Permite H.265 (HEVC) pentru partajarea ecranului" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Amplificare audio" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Dispozitiv audio" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Alerte dispozitiv audio" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Trimitere audio:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Setări audio" @@ -4987,9 +4987,9 @@ msgstr "Sugestie de completare automată: {label}, {selectedOptionPosition} din #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Automat" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Automat ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Control automat al amplificării" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Derulare automată" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (necesită activare)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Biometrie" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Bitrate" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Formatul orei din browser: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Volumul microfonului în browser pentru procesare personalizată" @@ -6483,15 +6483,15 @@ msgstr "Verificarea Captcha a eșuat. Încearcă din nou." msgid "Capture" msgstr "Captură" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Capturează sunetul aplicației" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Capturează sunetul de pe desktop" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Capturează sunetul dispozitivului" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Dispozitivele de captură folosesc presetarea Gaming." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Capturează sunetul întregului sistem" @@ -7637,11 +7637,6 @@ msgstr "Alege-ți limba" msgid "Choose your profile accent color" msgstr "Alege culoarea de accent a profilului tău" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Cod:" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Codec" @@ -8766,7 +8761,7 @@ msgstr "Focalizare pe editor" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Configurează" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Volum conexiune" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Controale pentru volumul conexiunii" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Filtrarea conținutului" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Tipul conținutului" @@ -10594,7 +10589,7 @@ msgstr "Momentan: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Personalizat" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Fundaluri video personalizate" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Procesare voce personalizată" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Banner detașat" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Detaliu" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Dispozitiv" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Alerte dispozitiv" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Audio dispozitiv ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Doar audio dispozitiv" @@ -11904,12 +11899,12 @@ msgstr "Detalii dispozitiv" msgid "Device revoked" msgstr "Dispozitiv revocat" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Selectare dispozitiv" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Volumul dispozitivului" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Dispozitive" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Reglează-ți propriile valori" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Dezactivează notificările push pe mobil" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Dezactivează ferestrele imagine în imagine pentru partajările de ecran" @@ -12629,7 +12624,7 @@ msgstr "Nu mai sugera {deviceName}" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Gata" @@ -13756,8 +13751,8 @@ msgstr "Activat" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Cale de codificare" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Preferința codificatorului pentru noile partajări de ecran." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Codificator, SVC și presetări de bitrate" @@ -15616,7 +15611,7 @@ msgstr "Ramă" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Rată de cadre" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Închide complet și repornește {productName} pentru ca macOS să aplice această permisiune." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Controlul amplificării" @@ -15946,7 +15941,7 @@ msgstr "Controller Y / Triunghi" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Jocuri" @@ -16451,7 +16446,7 @@ msgstr "Acordat {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Acordă toate permisiunile și ocolește restricțiile canalului. Foarte sensibil." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Selecție granulară" @@ -16629,13 +16624,8 @@ msgstr "Grup actualizat" msgid "Grouping" msgstr "Grupare" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (necesită activare)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "Accelerarea hardware poate cauza defecte de randare la ferestrele transparente. Încearcă --disable-gpu dacă observi pâlpâiri sau urme pe imagine." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Codificator hardware" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Ajută la traducerea {PRODUCT_NAME} în limba ta pe <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Ascunzi implicit canalele puse pe silențios?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Ascunde miniatura de previzualizare a streamului meu" @@ -17014,7 +17004,7 @@ msgstr "Ascunde parola" msgid "Hide picture-in-picture popout?" msgstr "Ascunzi fereastra pop-up imagine în imagine?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Ascunde miniatura de previzualizare" @@ -17417,11 +17407,11 @@ msgstr "Ignoră" msgid "Ignore friend request" msgstr "Ignoră cererea de prietenie" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Ignoră dispozitivele hardware" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Ignoră media de intrare" @@ -17452,7 +17442,7 @@ msgstr "Ignori cererea de prietenie de la {displayName}?" msgid "Ignore this channel's slowmode cooldown." msgstr "Ignoră pauza impusă de modul lent al acestui canal." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Ignoră dispozitivele virtuale" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Suprapunere" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Stratificare pentru AV1 și VP9, dacă sunt disponibile." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Protecție maximă pentru spații potrivite familiilor" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Poate cauza probleme de compatibilitate pentru spectatori. Lucrăm la îmbunătățirea acestui aspect." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "Accesul la microfon a fost refuzat. Activează-l din setările sistemului și încearcă din nou." #. 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Amplificare microfon" @@ -21318,7 +21308,7 @@ msgstr "Cele mai relevante" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "New Mexico" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Microfon nou" @@ -22830,11 +22820,11 @@ msgstr "Nu s-a găsit niciun utilizator cu acest nume de utilizator." msgid "No users are currently banned from this community." msgstr "Niciun utilizator nu este banat momentan din această comunitate." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Niciun utilizator disponibil" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Nu s-au găsit utilizatori" @@ -23313,7 +23303,7 @@ msgstr "Se aplică doar pe ecrane late." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Sunt acceptate doar cardurile de credit. Cardurile de debit și preplătite nu pot fi utilizate pentru verificarea conținutului matur." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Doar difuzoare implicite" @@ -23361,7 +23351,7 @@ msgstr "Rulează cod aici doar dacă înțelegi exact ce face." msgid "Only show message previews for DMs with unread messages" msgstr "Afișează previzualizările mesajelor doar pentru DM-urile cu mesaje necitite" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Doar difuzoare" @@ -23901,21 +23891,6 @@ msgstr "Deschide aplicația de mesagerie de pe telefon și începe un mesaj text msgid "Open your settings" msgstr "Deschide setările" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "Codec software OpenH264 pe Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "Codec video OpenH264" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "Codec video OpenH264 furnizat de Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Întrerupi invitațiile? Utilizatorii noi nu se vor putea alătura prin linkuri de invitație până când nu le reactivezi. Membrii existenți nu vor fi afectați." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Întrerupe previzualizarea partajării ecranului în fundal" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Profiluri pentru fiecare comunitate" #. 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Volum per dispozitiv" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Poză" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Imagine în imagine" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Fereastră pop-out cu mesaje fixate" #. 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PiP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Cu @mențiune" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Preferă hardware" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Fără @mențiune" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Preferă software" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Preferințe..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Codec preferat pentru partajarea ecranului" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Previzualizează sunetul" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Comportamentul previzualizării, al ferestrelor separate și al miniaturilor de stream" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Întrebare" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Afișează o alertă când se conectează un dispozitiv audio nou" @@ -27659,7 +27634,7 @@ msgstr "Redimensionarea, maximizarea și fixarea ferestrei depind de compozitor. #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Rezoluție" @@ -28352,7 +28327,7 @@ msgstr "Este necesară permisiunea de înregistrare a ecranului" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Partajare ecran" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "Nu s-a putut porni sunetul partajării ecranului" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Codec partajare ecran" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Controalele codificatorului pentru partajarea ecranului" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Partajarea ecranului s-a încheiat" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "Partajarea ecranului utilizează codificarea software ({codec}). Calitatea poate fi redusă și utilizarea procesorului poate crește. Este posibil ca GPU-ul tău să nu accepte codificarea hardware pentru acest codec." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Previzualizare partajare ecran" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Comportamentul previzualizării la partajarea ecranului" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Partajare ecran" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Codec partajare ecran" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Partajează ecrane și ferestre." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Partajează sunetul fluxului" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Partajarea informațiilor personale" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Text clar la 720p, până la 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Text clar, până la 4K, până la 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "Afișează Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Afișează alerte pentru dispozitive noi" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Afișează parola" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Afișează glisoare de volum per dispozitiv pentru participanți în meniurile vocale" @@ -30662,7 +30637,7 @@ msgstr "Apeluri silențioase" msgid "Silent calls from everyone" msgstr "Apeluri silențioase de la toată lumea" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Silenzios când dispozitivul de captură nu are propria intrare audio" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Modul comunitate unică" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Strat unic" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Smiley-uri" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Fluid 30 FPS la până la 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Fluid 60 FPS la rezoluție de până la 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" msgstr "Social" #. 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Codec software" @@ -31258,7 +31233,7 @@ msgstr "Sunete" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Sursă" @@ -32047,13 +32022,13 @@ msgstr "Stream ascuns" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Previzualizare stream" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Calitatea streamului" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Streaming" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Mod de streaming" @@ -32280,12 +32255,12 @@ msgid "Suspend" msgstr "Suspendare" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "Mod SVC" @@ -32559,7 +32534,7 @@ msgstr "Anunțuri de sistem de la personalul {productName}. Nu poți răspunde a #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Implicit din sistem" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "URL șablon" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Straturi temporale" @@ -32837,7 +32812,7 @@ msgstr "Texas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Text" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "Sursa partajării ecranului a încetat să trimită video, astfel încât partajarea ecranului s-a oprit." @@ -35774,7 +35749,7 @@ msgstr "Grup fără nume" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Intrare fără nume" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Folosit în comunitățile care nu au propriul sunet." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Folosit în modul Personalizat. Presetările Jocuri și Partajare ecran își setează propriul indiciu." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" msgstr "Apelul video nu este disponibil" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Codec video" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Codec video pentru partajarea ecranului" @@ -37912,7 +37887,7 @@ msgid "Volume mute" msgstr "Dezactivează sunetul" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Glisoare de volum" @@ -38466,6 +38441,11 @@ msgstr "Ce să includem" msgid "What to search for." msgstr "Ce să cauți." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "Ce partajezi nu se actualizează" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Calitatea salvată de {savedResolution} la {savedFrameRate} FPS necesită {premiumProductName}, așa că partajările folosesc {resolution} la {frameRate} FPS." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Partajarea ecranului tău nu a putut fi publicată cu un codec video compatibil, așa că a fost oprită. Încearcă să partajezi din nou." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Adresa URL personalizată a fost setată la {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Codificatorul tău video a încetat să codifice cadre, așa că partajarea ecranului a fost oprită. Încearcă să partajezi din nou." diff --git a/fluxer_app/src/features/i18n/locales/ru/messages.po b/fluxer_app/src/features/i18n/locales/ru/messages.po index 3148b2b5f..ee4c78476 100644 --- a/fluxer_app/src/features/i18n/locales/ru/messages.po +++ b/fluxer_app/src/features/i18n/locales/ru/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Развернуть (# строка)} few {Раз msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Развернуть (# строка)} few {Развернуть (# строки)} many {Развернуть (# строк)} other {Развернуть (# строки)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Развернуть ещё # устройство} few {Развернуть ещё # устройства} many {Развернуть ещё # устройств} other {Развернуть ещё # устройства}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, =1 {В звонке} one {# в звонке} few {# в msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Присоединиться к видеозвонку (# участник)} few {Присоединиться к видеозвонку (# участника)} many {Присоединиться к видеозвонку (# участников)} other {Присоединиться к видеозвонку (# участника)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {Продолжить смотреть # трансляцию и добавить эту} few {Продолжить смотреть # трансляции и добавить эту} many {Продолжить смотреть # трансляций и добавить эту} other {Продолжить смотреть # трансляций и добавить эту}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} кадров/с" @@ -3590,8 +3590,8 @@ msgstr "Разрешить всем, кто может просматриват #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Разрешить AV1 для демонстрации экрана" @@ -3649,8 +3649,8 @@ msgstr "Разрешить для всех сообществ" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Разрешить H.265 (HEVC) для демонстрации экрана" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Усиление звука" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Уведомления об аудиоустройстве" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Отправка аудио:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Настройки аудио" @@ -4987,9 +4987,9 @@ msgstr "Подсказка: {label}, {selectedOptionPosition} из {resultCount} #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Автоматически" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Автоматически ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Автоматическая регулировка усиления" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Автопрокрутка" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (требуется согласие)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Битрейт" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Формат времени браузера: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Усиление микрофона в браузере для пользовательской обработки" @@ -6483,15 +6483,15 @@ msgstr "Проверка капчи не удалась. Попробуйте е msgid "Capture" msgstr "Захват" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Захватывать звук приложения" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Захватывать звук рабочего стола" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Захватывать звук устройства" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Устройства захвата используют игровой пресет." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Захватывать весь звук системы" @@ -7637,11 +7637,6 @@ msgstr "Выберите язык" msgid "Choose your profile accent color" 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Кодек" @@ -8766,7 +8761,7 @@ msgstr "Фокус на поле ввода" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Настроить" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Громкость подключения" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Регуляторы громкости подключений" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Фильтрация контента" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Тип содержимого для кодирования" @@ -10594,7 +10589,7 @@ msgstr "Сейчас: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Другое" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Настраиваемая обработка звука" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Откреплённый баннер" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Детализация" @@ -11880,7 +11875,7 @@ msgid "Device" 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Уведомления устройства" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Аудио устройства ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Аудио только с устройства" @@ -11904,12 +11899,12 @@ msgstr "Информация об устройстве" msgid "Device revoked" msgstr "Устройство отозвано" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Громкость устройства" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Устройства" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Настройте всё под себя" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Отключить мобильные push-уведомления" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Отключить режим «картинка в картинке» для демонстрации экрана" @@ -12629,7 +12624,7 @@ msgstr "Больше не предлагать {deviceName}" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Готово" @@ -13756,8 +13751,8 @@ msgstr "Включено" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Тип кодировщика" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Предпочтительный кодировщик для новых демонстраций экрана." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Кодировщик, SVC и предустановки битрейта" @@ -15616,7 +15611,7 @@ msgstr "Рамка" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Частота кадров" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Полностью закройте и перезапустите {productName}, чтобы macOS применила это разрешение." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Регулировка усиления" @@ -15946,7 +15941,7 @@ msgstr "Геймпад Y / Треугольник" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Игры" @@ -16451,7 +16446,7 @@ msgstr "Предоставлены разрешения: {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Предоставляет все разрешения и обходит ограничения канала. Крайне рискованно." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Детальный выбор" @@ -16629,13 +16624,8 @@ msgstr "Группа обновлена" msgid "Grouping" 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (требуется согласие)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "Аппаратное ускорение может вызывать сбои отрисовки прозрачных окон. Попробуйте --disable-gpu, если видите мерцание или смазывание." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Аппаратный кодировщик" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Помогите перевести {PRODUCT_NAME} на ваш язык на сайте <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Скрывать заглушенные каналы по умолчанию?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Скрыть миниатюру предпросмотра моей трансляции" @@ -17014,7 +17004,7 @@ msgstr "Скрыть пароль" msgid "Hide picture-in-picture popout?" msgstr "Скрыть окно «картинка в картинке»?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Скрыть миниатюру предпросмотра" @@ -17417,11 +17407,11 @@ msgstr "Игнорировать" msgid "Ignore friend request" msgstr "Игнорировать запрос в друзья" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Игнорировать аппаратные устройства" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Игнорировать входные медиапотоки" @@ -17452,7 +17442,7 @@ msgstr "Игнорировать запрос в друзья от {displayName} msgid "Ignore this channel's slowmode cooldown." msgstr "Игнорировать медленный режим в этом канале." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Игнорировать виртуальные устройства" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Слои" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Послойная обработка для AV1 и VP9, если доступно." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Максимальная защита для семейных чатов" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Может вызвать проблемы совместимости у зрителей. Мы работаем над улучшением." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Уровень усиления микрофона" @@ -21318,7 +21308,7 @@ msgstr "Самые релевантные" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Новый микрофон" @@ -22830,11 +22820,11 @@ msgstr "Пользователь с таким именем не найден." msgid "No users are currently banned from this community." msgstr "Сейчас в этом сообществе нет забаненных пользователей." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Нет доступных пользователей" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Пользователи не найдены" @@ -23313,7 +23303,7 @@ msgstr "Применяется только на широких экранах." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Принимаются только кредитные карты. Дебетовые и предоплаченные карты нельзя использовать для проверки доступа к контенту для взрослых." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Только динамики по умолчанию" @@ -23361,7 +23351,7 @@ msgstr "Запускайте код здесь, только если вы то msgid "Only show message previews for DMs with unread messages" msgstr "Показывать предпросмотр сообщений только для личных чатов с непрочитанными сообщениями" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Только динамики" @@ -23901,21 +23891,6 @@ msgstr "Откройте приложение для обмена сообщен msgid "Open your settings" msgstr "Открыть настройки" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "Программный кодек OpenH264 в Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "Видеокодек OpenH264" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "Видеокодек OpenH264 предоставлен Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Приостановить приглашения? Новые пользователи не смогут присоединиться по ссылкам-приглашениям, пока вы их снова не включите. На существующих участниках это не отразится." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Приостанавливать предпросмотр демонстрации экрана в фоновом режиме" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Громкость для устройства" @@ -24776,7 +24751,7 @@ msgid "Picture" 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Картинка в картинке" @@ -24906,7 +24881,7 @@ msgid "Pins popout" 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "Картинка в картинке" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "С @упоминанием" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Предпочитать аппаратный" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Без @упоминания" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Предпочитать программный" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Настройки..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Предпочтительный кодек для демонстрации экрана" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Предпросмотр звука" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Предпросмотр, открытие в отдельном окне и поведение миниатюр трансляции" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Запрос" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Оповещать о новых аудиоустройствах" @@ -27659,7 +27634,7 @@ msgstr "Изменение размера, разворачивание и пр #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Разрешение" @@ -28352,7 +28327,7 @@ msgstr "Требуется разрешение на запись экрана" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Демонстрация экрана" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "Не удалось включить звук демонстрации экрана" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Кодек демонстрации экрана" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Настройки кодировщика для демонстрации экрана" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Демонстрация экрана завершена" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "Демонстрация экрана использует программное кодирование ({codec}). Качество может быть снижено, а загрузка ЦП увеличена. Ваш графический процессор может не поддерживать аппаратное кодирование для этого кодека." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Предпросмотр демонстрации экрана" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Поведение предпросмотра демонстрации экрана" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Кодек для демонстрации экрана" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Демонстрируйте экраны и окна." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Транслировать звук" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Распространение личной информации" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Четкий текст в 720p, до 30 кадров/сек" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Чёткий текст до 4K, до 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "Показывать Неко" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Показывать оповещения о новых устройствах" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Показать пароль" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Показывать ползунки громкости участников для каждого устройства в голосовых меню" @@ -30662,7 +30637,7 @@ msgstr "Тихие звонки" msgid "Silent calls from everyone" msgstr "Тихие звонки от всех" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Без звука, если у устройства захвата нет собственного аудиовхода" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Режим одного сообщества" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Один слой" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Смайлики" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Плавное видео 30 FPS с разрешением до 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Плавные 60 FPS при разрешении до 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Программный кодировщик" @@ -31258,7 +31233,7 @@ msgstr "Звуки" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Исходное" @@ -32047,13 +32022,13 @@ msgstr "Трансляция скрыта" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Предпросмотр трансляции" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Качество трансляции" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Трансляция" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Режим трансляции" @@ -32280,12 +32255,12 @@ msgid "Suspend" 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "Режим SVC" @@ -32559,7 +32534,7 @@ msgstr "Системные объявления от сотрудников {pro #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Системное по умолчанию" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "URL шаблона" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Временные слои" @@ -32837,7 +32812,7 @@ msgstr "Техас" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Текст" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "Источник демонстрации экрана прекратил передачу видео, поэтому демонстрация была остановлена." @@ -35774,7 +35749,7 @@ msgstr "Безымянная группа" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Безымянный аудиовход" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Используется в сообществах, у которых нет собственного звука." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Используется в режиме «Другое». Пресеты «Игры» и «Демонстрация экрана» устанавливают свои собственные подсказки." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Видеокодек" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Видеокодек для демонстрации экрана" @@ -37912,7 +37887,7 @@ msgid "Volume mute" 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Регуляторы громкости" @@ -38466,6 +38441,11 @@ msgstr "Что включить" msgid "What to search for." msgstr "Что искать." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "То, чем вы делитесь, не обновляется" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Ваше сохраненное качество {savedResolution} при {savedFrameRate} FPS требует {premiumProductName}, поэтому используется качество {resolution} при {frameRate} FPS." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Не удалось опубликовать демонстрацию экрана с совместимым видеокодеком, поэтому она была остановлена. Попробуйте начать демонстрацию снова." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Короткая ссылка установлена: {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." 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 b5f34d2f5..c6c0445cf 100644 --- a/fluxer_app/src/features/i18n/locales/sv-SE/messages.po +++ b/fluxer_app/src/features/i18n/locales/sv-SE/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Visa (# rad)} other {Visa (# rader)}}" msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Visa (# rad)} other {Visa (# rader)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Visa # annan enhet} other {Visa # andra enheter}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {I samtal} other {# i samtal}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Gå med i videosamtal (# deltagare)} other {Gå med i videosamtal (# deltagare)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "Fortsätt titta på {count, plural, one {# sändning} other {# sändningar}} och lägg till den här" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} bilder/sek" @@ -3590,8 +3590,8 @@ msgstr "Tillåt alla som kan se din fullständiga profil att se din lokala tid i #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Tillåt AV1 för skärmdelning" @@ -3649,8 +3649,8 @@ msgstr "Tillåt för alla communities" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Tillåt H.265 (HEVC) för skärmdelning" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Ljudförstärkning" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Ljudenhet" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Ljudenhetsvarningar" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Ljudsändning:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Ljudinställningar" @@ -4987,9 +4987,9 @@ msgstr "Föreslagen komplettering: {label}, {selectedOptionPosition} av {resultC #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Automatisk" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Automatisk ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Automatisk förstärkningsreglering" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Automatisk skrollning" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (kräver aktivering)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Biometri" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Bithastighet" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Webbläsarens tidsformat: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Mikrofonförstärkning i webbläsaren för anpassad ljudbehandling" @@ -6483,15 +6483,15 @@ msgstr "Verifiering av captcha misslyckades. Försök igen." msgid "Capture" msgstr "Spela in" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Spela in app-ljud" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Spela in datorljud" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Spela in enhetsljud" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Skärmdelningar använder förinställningen Spel." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Spela in hela systemets ljud" @@ -7637,11 +7637,6 @@ msgstr "Välj språk" msgid "Choose your profile accent color" msgstr "Välj accentfärg för din profil" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Kod:" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Codec" @@ -8766,7 +8761,7 @@ msgstr "Fokus på skrivfältet" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Konfigurera" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Anslutningsvolym" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Volymkontroller för anslutning" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Innehållsfiltrering" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Innehållstyp för kodning" @@ -10594,7 +10589,7 @@ msgstr "Just nu: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Anpassad" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Anpassade videobakgrunder" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Anpassad röstbehandling" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Fristående banner" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Detalj" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Enhet" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Enhetsaviseringar" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Enhetsljud ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Endast enhetsljud" @@ -11904,12 +11899,12 @@ msgstr "Enhetsinformation" msgid "Device revoked" msgstr "Enhetens åtkomst har återkallats" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Enhetsval" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Enhetsvolym" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Enheter" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Ange egna värden" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Inaktivera pushaviseringar på mobilen" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Inaktivera bild-i-bild-fönster för skärmdelningar" @@ -12629,7 +12624,7 @@ msgstr "Föreslå inte {deviceName} igen" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Klar" @@ -13756,8 +13751,8 @@ msgstr "Aktiverad" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Kodningsmetod" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Önskad kodare för nya skärmdelningar." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Kodare, SVC och bithastighetsförinställningar" @@ -15616,7 +15611,7 @@ msgstr "Ram" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Bildfrekvens" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Stäng ner och starta om {productName} helt så att macOS tillämpar den här behörigheten." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Förstärkningsreglering" @@ -15946,7 +15941,7 @@ msgstr "Handkontroll Y / Triangel" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Spel" @@ -16451,7 +16446,7 @@ msgstr "Beviljade {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Ger alla behörigheter och kringgår kanalbegränsningar. Mycket känsligt." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Detaljerat urval" @@ -16629,13 +16624,8 @@ msgstr "Gruppen uppdaterad" msgid "Grouping" msgstr "Gruppering" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (kräver aktivering)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "Maskinvaruacceleration kan orsaka grafikfel med transparenta fönster. Prova --disable-gpu om du ser flimmer eller suddighet." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Maskinvarukodare" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Hjälp till att översätta {PRODUCT_NAME} till ditt språk på <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Dölj tystade kanaler som standard?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Dölj förhandsvisningsbilden för min sändning" @@ -17014,7 +17004,7 @@ msgstr "Dölj lösenord" msgid "Hide picture-in-picture popout?" msgstr "Dölj bild-i-bild-fönstret?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Dölj förhandsgranskningens miniatyrbild" @@ -17417,11 +17407,11 @@ msgstr "Ignorera" msgid "Ignore friend request" msgstr "Ignorera vänförfrågan" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Ignorera maskinvaruenheter" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Ignorera inmatningsmedia" @@ -17452,7 +17442,7 @@ msgstr "Ignorera vänförfrågan från {displayName}?" msgid "Ignore this channel's slowmode cooldown." msgstr "Ignorera väntetiden för långsamt läge i den här kanalen." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Ignorera virtuella" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Lagerordning" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Lagerindelning för AV1 och VP9 när det är tillgängligt." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Maximalt skydd för familjevänliga utrymmen" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Kan orsaka kompatibilitetsproblem för tittare. Vi arbetar på att förbättra detta." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "Mikrofonåtkomst nekades. Aktivera den i dina systeminställningar och försök igen." #. 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Mikrofonförstärkning" @@ -21318,7 +21308,7 @@ msgstr "Mest relevant" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "New Mexico" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Ny mikrofon" @@ -22830,11 +22820,11 @@ msgstr "Ingen användare hittades med det användarnamnet." msgid "No users are currently banned from this community." msgstr "Inga användare är för närvarande bannlysta från den här communityn." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Inga användare tillgängliga" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Inga användare hittades" @@ -23313,7 +23303,7 @@ msgstr "Gäller endast på breda skärmar." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Endast kreditkort accepteras. Bankkort och förbetalda kort kan inte användas för kontrollen för vuxet innehåll." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Endast standardhögtalare" @@ -23361,7 +23351,7 @@ msgstr "Kör bara kod här om du förstår exakt vad den gör." msgid "Only show message previews for DMs with unread messages" msgstr "Visa bara meddelandeförhandsvisningar för DM-konversationer med olästa meddelanden" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Endast högtalare" @@ -23901,21 +23891,6 @@ msgstr "Öppna telefonens meddelandeapp och påbörja ett nytt SMS." msgid "Open your settings" msgstr "Öppna dina inställningar" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "OpenH264-programvarukodek för Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "OpenH264-videokodek" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "OpenH264-videocodec från Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Pausa inbjudningar? Nya användare kan inte gå med via inbjudningslänkar förrän du aktiverar dem igen. Befintliga medlemmar påverkas inte." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Pausa förhandsvisningen av min skärmdelning i bakgrunden" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Profiler per 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Volym per enhet" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Bild" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Bild i bild" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Utfällbar ruta för fästa meddelanden" #. 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "Bild-i-bild" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Föredra @-omnämnande" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Föredra maskinvara" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Föredra inget @-omnämnande" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Föredra programvara" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Inställningar..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Föredragen codec för skärmdelning" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Förhandsgranska ljud" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Beteende för förhandsvisningar, fristående fönster och miniatyrbilder för sändningar" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Fråga" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Fråga när nya ljudenheter upptäcks" @@ -27659,7 +27634,7 @@ msgstr "Storleksändring, maximering och fönsterfästning beror på kompositorn #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Upplösning" @@ -28352,7 +28327,7 @@ msgstr "Skärminspelningsbehörighet krävs" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Skärmdelning" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "Ljud för skärmdelning kunde inte starta" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Skärmdelnings-codec" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Inställningar för skärmdelningskodare" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Skärmdelningen avslutades" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "Skärmdelningen använder programvarukodning ({codec}). Kvaliteten kan bli sämre och CPU-användningen högre. Din GPU kanske inte stöder maskinvarukodning för den här kodeken." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Förhandsvisning av skärmdelning" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Beteende för skärmdelningsförhandsvisning" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Skärmdelning" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Skärmdelnings-codec" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Dela skärmar och fönster." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Dela sändningens ljud" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Delar personlig information" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Skarpa texter i 720p, upp till 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Skarpa texter i upp till 4K, upp till 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "Visa Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Visa aviseringar för nya enheter" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Visa lösenord" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Visa volymreglage för deltagare per enhet i röstmenyer" @@ -30662,7 +30637,7 @@ msgstr "Tysta samtal" msgid "Silent calls from everyone" msgstr "Tysta samtal från alla" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Tyst när enheten som används för inspelning inte har någon egen ljudingång" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Läge för enskild community" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Enkelt lager" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Smileys" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Jämn 30 FPS vid upp till 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Jämn 60 FPS vid upp till 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" msgstr "Socialt" #. 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Programvarukodare" @@ -31258,7 +31233,7 @@ msgstr "Ljud" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Källa" @@ -32047,13 +32022,13 @@ msgstr "Sändningen dold" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Förhandsvisning av sändning" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Sändningskvalitet" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Sänder" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Sändningsläge" @@ -32280,12 +32255,12 @@ msgid "Suspend" msgstr "Pausa" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "SVC-läge" @@ -32559,7 +32534,7 @@ msgstr "Systemmeddelanden från {productName}-personal. Du kan inte svara här." #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Systemstandard" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "Mall-URL" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Temporala lager" @@ -32837,7 +32812,7 @@ msgstr "Texas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Text" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "Skärmdelningskällan slutade skicka video, så din skärmdelning har stoppats." @@ -35774,7 +35749,7 @@ msgstr "Namnlös grupp" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Namnlös ingång" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Används i communities som inte har ett eget ljud." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Används i anpassat läge. Förinställningarna för spel och skärmdelning ställer in sin egen ledtråd." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" msgstr "Videosamtal är inte tillgängligt" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Videokodek" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Videokodek för skärmdelning" @@ -37912,7 +37887,7 @@ msgid "Volume mute" msgstr "Stäng av ljudet" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Volymreglage" @@ -38466,6 +38441,11 @@ msgstr "Vad som ska inkluderas" msgid "What to search for." msgstr "Vad du vill söka efter." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "Det du delar uppdateras inte" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Din sparade {savedResolution} med {savedFrameRate} FPS kräver {premiumProductName}, så delningar använder {resolution} med {frameRate} FPS." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Din skärmdelning kunde inte publiceras med en kompatibel videokodek, så den stoppades. Försök dela igen." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Din anpassade URL har ställts in till {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Din videokodare slutade koda bildrutor, så din skärmdelning stoppades. Försök dela igen." diff --git a/fluxer_app/src/features/i18n/locales/th/messages.po b/fluxer_app/src/features/i18n/locales/th/messages.po index 680d08ea0..8e1a1348a 100644 --- a/fluxer_app/src/features/i18n/locales/th/messages.po +++ b/fluxer_app/src/features/i18n/locales/th/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {ขยาย (# บรรทัด)} other {ขย msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {ขยาย (# แถว)} other {ขยาย (# แถว)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {ขยายอุปกรณ์อื่น # เครื่อง} other {ขยายอุปกรณ์อื่น # เครื่อง}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {กำลังคุยสาย} other {# คน msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {เข้าร่วมวิดีโอคอล (ผู้เข้าร่วม # คน)} other {เข้าร่วมวิดีโอคอล (ผู้เข้าร่วม # คน)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {ดูสตรีมที่เปิดอยู่ # รายการต่อไปและเพิ่มสตรีมนี้} other {ดูสตรีมที่เปิดอยู่ # รายการต่อไปและเพิ่มสตรีมนี้}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} เฟรมต่อวินาที" @@ -3590,8 +3590,8 @@ msgstr "อนุญาตให้ทุกคนที่ดูโปรไฟ #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "อนุญาต AV1 สำหรับการแชร์หน้าจอ" @@ -3649,8 +3649,8 @@ msgstr "อนุญาตสำหรับทุกคอมมูนิตี #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "อนุญาต H.265 (HEVC) สำหรับการแชร์หน้าจอ" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "เพิ่มเสียง" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "การแจ้งเตือนอุปกรณ์เสียง" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "ส่งเสียง:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "การตั้งค่าเสียง" @@ -4987,9 +4987,9 @@ msgstr "คำแนะนำการเติมข้อความอัต #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "อัตโนมัติ" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "อัตโนมัติ ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "ควบคุมอัตราขยายเสียงอัตโนมัติ" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "เลื่อนอัตโนมัติ" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (ต้องเปิดใช้งานก่อน)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "บิตเรต" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "รูปแบบเวลาตามเบราว์เซอร์: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "ระดับเสียงไมโครโฟนของเบราว์เซอร์สำหรับการประมวลผลแบบกำหนดเอง" @@ -6483,15 +6483,15 @@ msgstr "การยืนยันแคปต์ชาล้มเหลว msgid "Capture" msgstr "บันทึกเสียง" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "บันทึกเสียงจากแอป" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "บันทึกเสียงเดสก์ท็อป" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "บันทึกเสียงจากอุปกรณ์" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "อุปกรณ์บันทึกภาพใช้การตั้งค่าล่วงหน้าสำหรับเกม" #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "บันทึกเสียงทั้งระบบ" @@ -7637,11 +7637,6 @@ msgstr "เลือกภาษาของคุณ" msgid "Choose your profile accent color" 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "โคเดก" @@ -8766,7 +8761,7 @@ msgstr "โฟกัสช่องพิมพ์ข้อความ" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "กำหนดค่า" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "ระดับเสียงการเชื่อมต่อ" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "การควบคุมระดับเสียงการเชื่อมต่อ" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "การกรองเนื้อหา" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "ประเภทเนื้อหา" @@ -10594,7 +10589,7 @@ msgstr "ปัจจุบัน: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "กำหนดเอง" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "การประมวลผลเสียงแบบกำหนดเอง" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "แบนเนอร์แยกส่วน" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "รายละเอียด" @@ -11880,7 +11875,7 @@ msgid "Device" 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "การแจ้งเตือนอุปกรณ์" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "เสียงอุปกรณ์ ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "เสียงอุปกรณ์เท่านั้น" @@ -11904,12 +11899,12 @@ msgstr "รายละเอียดอุปกรณ์" msgid "Device revoked" msgstr "ยกเลิกอุปกรณ์แล้ว" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "ระดับเสียงอุปกรณ์" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "อุปกรณ์" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "ปรับตัวเลขเองได้ตามใจ" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "ปิดการแจ้งเตือนบนมือถือ" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "ปิดหน้าต่างย่อยสำหรับแชร์หน้าจอ" @@ -12629,7 +12624,7 @@ msgstr "ไม่ต้องแนะนำ {deviceName} อีก" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "เสร็จสิ้น" @@ -13756,8 +13751,8 @@ msgstr "เปิดใช้งาน" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "เส้นทางตัวเข้ารหัส" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "การตั้งค่าตัวเข้ารหัสสำหรับแชร์หน้าจอใหม่" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "การตั้งค่าล่วงหน้าสำหรับตัวเข้ารหัส, SVC และบิตเรต" @@ -15616,7 +15611,7 @@ msgstr "กรอบหน้าต่าง" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "อัตราเฟรม" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "ปิด {productName} ให้สนิทแล้วเปิดใหม่ เพื่อให้ macOS นำสิทธิ์นี้ไปใช้" #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "ควบคุมเกน" @@ -15946,7 +15941,7 @@ msgstr "เกมแพด Y / สามเหลี่ยม" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "เกม" @@ -16451,7 +16446,7 @@ msgstr "ได้รับสิทธิ์ {permissions} แล้ว" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "ให้สิทธิ์ทั้งหมดและข้ามข้อจำกัดของช่อง มีความละเอียดอ่อนสูง" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "เลือกแบบละเอียด" @@ -16629,13 +16624,8 @@ msgstr "อัปเดตกลุ่มแล้ว" msgid "Grouping" 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (ต้องเปิดใช้งานก่อน)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "การเร่งความเร็วด้วยฮาร์ดแวร์อาจทำให้การแสดงผลผิดปกติกับหน้าต่างโปร่งใส ลองใช้ --disable-gpu หากคุณเห็นการกะพริบหรือภาพลากเป็นทาง" #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "ตัวเข้ารหัสฮาร์ดแวร์" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "ช่วยแปล {PRODUCT_NAME} เป็นภาษาของคุณบน <0>{I18N_WEBLATE_DOMAIN}" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "ซ่อนช่องที่ปิดเสียงไว้เป็นค่าเริ่มต้นหรือไม่" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "ซ่อนภาพตัวอย่างสตรีมของฉัน" @@ -17014,7 +17004,7 @@ msgstr "ซ่อนรหัสผ่าน" msgid "Hide picture-in-picture popout?" msgstr "ซ่อนหน้าต่างย่อย Picture-in-picture หรือไม่" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "ซ่อนภาพตัวอย่าง" @@ -17417,11 +17407,11 @@ msgstr "ไม่สนใจ" msgid "Ignore friend request" msgstr "ไม่สนใจคำขอเป็นเพื่อน" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "ไม่สนใจอุปกรณ์ฮาร์ดแวร์" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "ไม่สนใจสื่อนำเข้า" @@ -17452,7 +17442,7 @@ msgstr "ไม่สนใจคำขอเป็นเพื่อนจาก msgid "Ignore this channel's slowmode cooldown." msgstr "ข้ามช่วงรอของโหมดจำกัดเวลาในช่องนี้" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "ไม่สนใจอุปกรณ์เสมือน" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "การจัดลำดับชั้น" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "การแบ่งเลเยอร์สำหรับ AV1 และ VP9 เมื่อใช้งานได้" @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "ปกป้องเต็มที่เพื่อพื้นที่ที่เหมาะสำหรับทุกคนในครอบครัว" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "อาจทำให้ผู้ชมมีปัญหาด้านความเข้ากันได้ เรากำลังปรับปรุงเรื่องนี้อยู่" @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "ระดับเสียงไมโครโฟน" @@ -21318,7 +21308,7 @@ msgstr "เกี่ยวข้องมากที่สุด" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "ไมโครโฟนใหม่" @@ -22830,11 +22820,11 @@ msgstr "ไม่พบผู้ใช้ที่มีชื่อผู้ใ msgid "No users are currently banned from this community." msgstr "ไม่มีผู้ใช้ที่ถูกแบนจากคอมมูนิตี้นี้" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "ไม่มีผู้ใช้ให้เลือก" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "ไม่พบผู้ใช้" @@ -23313,7 +23303,7 @@ msgstr "ใช้ได้เฉพาะบนหน้าจอขนาดใ msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "รับเฉพาะบัตรเครดิตเท่านั้น ไม่สามารถใช้บัตรเดบิตและบัตรเติมเงินในการตรวจสอบเนื้อหาสำหรับผู้ใหญ่ได้" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "ลำโพงเริ่มต้นเท่านั้น" @@ -23361,7 +23351,7 @@ msgstr "เรียกใช้โค้ดที่นี่เฉพาะเ msgid "Only show message previews for DMs with unread messages" msgstr "แสดงตัวอย่างข้อความเฉพาะในข้อความส่วนตัวที่มีข้อความยังไม่ได้อ่าน" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "เฉพาะลำโพง" @@ -23901,21 +23891,6 @@ msgstr "เปิดแอปข้อความในโทรศัพท์ msgid "Open your settings" msgstr "เปิดการตั้งค่า" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "ตัวแปลงสัญญาณซอฟต์แวร์ OpenH264 บน Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "ตัวแปลงสัญญาณวิดีโอ OpenH264" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "ตัวแปลงสัญญาณวิดีโอ OpenH264 ให้บริการโดย Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "หยุดคำเชิญชั่วคราวใช่ไหม ผู้ใช้ใหม่จะไม่สามารถเข้าร่วมผ่านลิงก์เชิญได้จนกว่าคุณจะเปิดใช้งานอีกครั้ง สมาชิกปัจจุบันจะไม่ได้รับผลกระทบ" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "หยุดแสดงตัวอย่างการแชร์หน้าจอของฉันชั่วคราวเมื่อแอปอยู่เบื้องหลัง" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "ระดับเสียงต่ออุปกรณ์" @@ -24776,7 +24751,7 @@ msgid "Picture" 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "ภาพซ้อนภาพ" @@ -24906,7 +24881,7 @@ msgid "Pins popout" 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PiP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "ต้องการ @mention" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "ใช้ฮาร์ดแวร์เป็นหลัก" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "ไม่ต้องการ @mention" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "ใช้ซอฟต์แวร์เป็นหลัก" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "การตั้งค่า..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "ตัวแปลงสัญญาณที่ต้องการสำหรับการแชร์หน้าจอ" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "ลองฟังเสียง" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "พฤติกรรมของตัวอย่าง ป๊อปเอาต์ และภาพขนาดย่อของสตรีม" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "ข้อความแจ้ง" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "แจ้งเตือนเมื่อมีอุปกรณ์เสียงใหม่" @@ -27659,7 +27634,7 @@ msgstr "การปรับขนาด การขยาย และกา #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "ความละเอียด" @@ -28352,7 +28327,7 @@ msgstr "ต้องมีสิทธิ์บันทึกหน้าจอ #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "แชร์หน้าจอ" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "ไม่สามารถเริ่มเสียงแชร์หน้าจอได้" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "ตัวแปลงสัญญาณการแชร์หน้าจอ" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "การควบคุมตัวเข้ารหัสสำหรับการแชร์หน้าจอ" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "การแชร์หน้าจอสิ้นสุดลง" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "การแชร์หน้าจอใช้การเข้ารหัสซอฟต์แวร์ ({codec}) คุณภาพอาจลดลงและการใช้งาน CPU อาจเพิ่มขึ้น GPU ของคุณอาจไม่รองรับการเข้ารหัสฮาร์ดแวร์สำหรับตัวแปลงสัญญาณนี้" #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "ตัวอย่างการแชร์หน้าจอ" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "พฤติกรรมการแสดงตัวอย่างการแชร์หน้าจอ" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "ตัวแปลงสัญญาณการแชร์หน้าจอ" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "แชร์หน้าจอและหน้าต่าง" #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "แชร์เสียงสตรีม" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "แชร์ข้อมูลส่วนตัว" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "ข้อความคมชัดที่ 720p สูงสุด 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "ข้อความคมชัดสูงสุด 4K สูงสุด 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "แสดง Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "แสดงการแจ้งเตือนอุปกรณ์ใหม่" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "แสดงรหัสผ่าน" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "แสดงแถบเลื่อนระดับเสียงของผู้เข้าร่วมตามอุปกรณ์ในเมนูเสียง" @@ -30662,7 +30637,7 @@ msgstr "สายเรียกเข้าแบบไม่มีเสีย msgid "Silent calls from everyone" msgstr "ปิดเสียงสายเรียกเข้าจากทุกคน" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "เงียบเมื่ออุปกรณ์บันทึกไม่มีอินพุตเสียงของตัวเอง" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "โหมดคอมมูนิตี้เดียว" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "เลเยอร์เดียว" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "อิโมจิ" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "ลื่นไหล 30 FPS ที่สูงสุด 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "ลื่นไหล 60 FPS ที่ความละเอียดสูงสุด 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "ตัวเข้ารหัสซอฟต์แวร์" @@ -31258,7 +31233,7 @@ msgstr "เสียง" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "ต้นฉบับ" @@ -32047,13 +32022,13 @@ msgstr "ซ่อนสตรีมแล้ว" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "ตัวอย่างสตรีม" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "คุณภาพสตรีม" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "กำลังสตรีม" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "โหมดสตรีมมิง" @@ -32280,12 +32255,12 @@ msgid "Suspend" 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "โหมด SVC" @@ -32559,7 +32534,7 @@ msgstr "ประกาศจากทีมงาน {productName} คุณไ #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "ค่าเริ่มต้นของระบบ" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "URL เทมเพลต" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "เลเยอร์เชิงเวลา" @@ -32837,7 +32812,7 @@ msgstr "เท็กซัส" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "ข้อความ" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "แหล่งที่มาของการแชร์หน้าจอหยุดส่งวิดีโอ การแชร์หน้าจอของคุณจึงหยุดลง" @@ -35774,7 +35749,7 @@ msgstr "กลุ่มที่ไม่มีชื่อ" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "อินพุตที่ไม่มีชื่อ" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "ใช้ในคอมมูนิตี้ที่ไม่มีเสียงเฉพาะของตัวเอง" #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "ใช้ในโหมดกำหนดเอง การตั้งค่าล่วงหน้าสำหรับเกมและการแชร์หน้าจอจะตั้งค่าคำแนะนำของตนเอง" @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "ตัวแปลงสัญญาณวิดีโอ" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "ตัวแปลงสัญญาณวิดีโอสำหรับการแชร์หน้าจอ" @@ -37912,7 +37887,7 @@ msgid "Volume mute" 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "แถบเลื่อนระดับเสียง" @@ -38466,6 +38441,11 @@ msgstr "สิ่งที่ต้องการรวม" msgid "What to search for." msgstr "สิ่งที่ต้องการค้นหา" +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "สิ่งที่คุณกำลังแชร์ไม่อัปเดต" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "คุณภาพที่บันทึกไว้ของคุณที่ {savedResolution} ที่ {savedFrameRate} FPS ต้องใช้ {premiumProductName} ดังนั้นการแชร์จะใช้ {resolution} ที่ {frameRate} FPS" #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "ไม่สามารถเผยแพร่การแชร์หน้าจอของคุณด้วยตัวแปลงสัญญาณวิดีโอที่รองรับได้ จึงหยุดการแชร์ลง ลองแชร์อีกครั้ง" @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "URL ที่กำหนดเองของคุณถูกตั้งค่าเป็น {inviteEndpoint}/{vanitySlug} แล้ว" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "ตัวเข้ารหัสวิดีโอของคุณหยุดการเข้ารหัสเฟรม จึงหยุดการแชร์หน้าจอของคุณแล้ว ลองแชร์อีกครั้ง" diff --git a/fluxer_app/src/features/i18n/locales/tr/messages.po b/fluxer_app/src/features/i18n/locales/tr/messages.po index b038bafc7..6d73a5980 100644 --- a/fluxer_app/src/features/i18n/locales/tr/messages.po +++ b/fluxer_app/src/features/i18n/locales/tr/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Genişlet (# satır)} other {Genişlet (# satır)}} msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Genişlet (# satır)} other {Genişlet (# satır)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {# diğer cihazı genişlet} other {# diğer cihazı genişlet}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {Aramada} other {# aramada}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Görüntülü aramaya katıl (# katılımcı)} other {Görüntülü aramaya katıl (# katılımcı)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {# akışı izlemeye devam et ve bunu ekle} other {# akışı izlemeye devam et ve bunu ekle}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} FPS" @@ -3590,8 +3590,8 @@ msgstr "Profilinizin tamamını görüntüleyebilen herkesin yerel saatinizi gö #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Ekran paylaşımı için AV1'e izin ver" @@ -3649,8 +3649,8 @@ msgstr "Tüm topluluklara izin ver" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Ekran paylaşımı için H.265 (HEVC) kullanılmasına izin ver" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Ses yükseltme" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Ses cihazı" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Ses cihazı uyarıları" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Ses gönderimi:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Ses ayarları" @@ -4987,9 +4987,9 @@ msgstr "Otomatik tamamlama önerisi: {label}, {resultCount} sonuçtan {selectedO #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Otomatik" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Otomatik ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Otomatik kazanç kontrolü" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Otomatik kaydırma" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (etkinleştirilmesi gerekir)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Biyometrik veriler" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Bit hızı" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Tarayıcının saat biçimi: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Özel işleme için tarayıcı mikrofon kazancı" @@ -6483,15 +6483,15 @@ msgstr "Captcha doğrulaması başarısız oldu. Tekrar deneyin." msgid "Capture" msgstr "Yakala" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Uygulama sesini yakala" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Masaüstü sesini yakala" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Cihaz sesini yakala" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Ekran kartları Oyun ön ayarını kullanır." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Tüm sistem sesini yakala" @@ -7637,11 +7637,6 @@ msgstr "Dilinizi seçin" msgid "Choose your profile accent color" msgstr "Profil vurgu renginizi seçin" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Kod:" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Kodek" @@ -8766,7 +8761,7 @@ msgstr "Yazma alanı odağı" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Yapılandır" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Bağlantı sesi düzeyi" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Bağlantı sesi düzeyi denetimleri" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "İçerik filtreleme" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Kodlanacak içerik türü" @@ -10594,7 +10589,7 @@ msgstr "Şu anda: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Özel" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Özel video arka planları" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Özel ses işleme" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Ayrılmış başlık" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Ayrıntı" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Cihaz" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Cihaz uyarıları" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Cihaz sesi ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Yalnızca cihaz sesi" @@ -11904,12 +11899,12 @@ msgstr "Cihaz ayrıntıları" msgid "Device revoked" msgstr "Cihazın erişimi iptal edildi" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Cihaz seçimi" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Cihaz sesi" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Cihazlar" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Kendi değerlerinizi belirleyin" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Mobil anlık bildirimleri kapat" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Ekran paylaşımları için resim içinde resim açılır penceresini devre dışı bırak" @@ -12629,7 +12624,7 @@ msgstr "{deviceName} cihazını bir daha önerme" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Bitti" @@ -13756,8 +13751,8 @@ msgstr "Etkin" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Kodlayıcı yolu" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Yeni ekran paylaşımları için kodlayıcı tercihi." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Kodlayıcı, SVC ve bit hızı ön ayarları" @@ -15616,7 +15611,7 @@ msgstr "Çerçeve" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Kare hızı" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Bu iznin macOS tarafından uygulanması için {productName} uygulamasından tamamen çıkın ve yeniden başlatın." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Kazanç kontrolü" @@ -15946,7 +15941,7 @@ msgstr "Oyun kumandası Y / Üçgen" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Oyun" @@ -16451,7 +16446,7 @@ msgstr "{permissions} verildi" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Tüm izinleri verir ve kanal kısıtlamalarını atlar. Çok hassastır." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Ayrıntılı seçim" @@ -16629,13 +16624,8 @@ msgstr "Grup güncellendi" msgid "Grouping" msgstr "Gruplama" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (katılım gerektirir)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "Donanım hızlandırma, şeffaf pencerelerde görüntüleme sorunlarına neden olabilir. Titreme veya görüntü izi görüyorsanız --disable-gpu seçeneğini deneyin." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Donanım kodlayıcı" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "{PRODUCT_NAME}'i <0>{I18N_WEBLATE_DOMAIN} üzerinde dilinize çevirmemize yardım edin." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Sessize alınmış kanallar varsayılan olarak gizlensin mi?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Yayın önizleme küçük resmimi gizle" @@ -17014,7 +17004,7 @@ msgstr "Parolayı gizle" msgid "Hide picture-in-picture popout?" msgstr "Resim içinde resim penceresi gizlensin mi?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Önizleme küçük resmini gizle" @@ -17417,11 +17407,11 @@ msgstr "Yok say" msgid "Ignore friend request" msgstr "Arkadaşlık isteğini yok say" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Donanım aygıtlarını yok say" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Giriş medyasını yok say" @@ -17452,7 +17442,7 @@ msgstr "{displayName} adlı kişiden gelen arkadaşlık isteği yok sayılsın m msgid "Ignore this channel's slowmode cooldown." msgstr "Bu kanalın yavaş mod sınırlamasını yok sayın." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Sanalı yok say" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Katmanlama" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Kullanılabildiğinde AV1 ve VP9 için katmanlama." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Aile dostu alanlar için maksimum koruma" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Görüntüleyenler için uyumluluk sorunlarına neden olabilir. Bunu iyileştirmek için çalışıyoruz." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "Mikrofon erişimi reddedildi. Sistem ayarlarınızdan etkinleştirip tekrar deneyin." #. 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Mikrofon kazancı" @@ -21318,7 +21308,7 @@ msgstr "En alakalı" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "New Mexico" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Yeni mikrofon" @@ -22830,11 +22820,11 @@ msgstr "Bu kullanıcı adıyla bir kullanıcı bulunamadı." msgid "No users are currently banned from this community." msgstr "Bu topluluktan şu anda yasaklı kullanıcı yok." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Kullanıcı yok" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Kullanıcı bulunamadı" @@ -23313,7 +23303,7 @@ msgstr "Yalnızca geniş ekranlarda geçerlidir." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Yalnızca kredi kartları kabul edilir. Banka ve ön ödemeli kartlar yetişkin içeriği kontrolü için kullanılamaz." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Yalnızca varsayılan hoparlörler" @@ -23361,7 +23351,7 @@ msgstr "Burada yalnızca ne yaptığını tam olarak anladığınız kodları ç msgid "Only show message previews for DMs with unread messages" msgstr "Yalnızca okunmamış mesajları olan DM'ler için mesaj önizlemelerini göster" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Yalnızca hoparlörler" @@ -23901,21 +23891,6 @@ msgstr "Telefonunuzun mesajlaşma uygulamasını açın ve yeni bir kısa mesaj msgid "Open your settings" msgstr "Ayarları aç" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "Linux'ta OpenH264 yazılım kodeği" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "OpenH264 video kodeği" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "Cisco Systems, Inc. tarafından sağlanan OpenH264 video kodeği." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Davetler duraklatılsın mı? Yeniden etkinleştirene kadar yeni kullanıcılar davet bağlantılarıyla katılamaz. Mevcut üyeler etkilenmez." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Arka planda ekran paylaşımı önizlememi duraklat" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Topluluğa özel profiller" #. 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Cihaz başına ses düzeyi" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Resim" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Resim içinde resim" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Sabitlenenler açılır penceresi" #. 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PiP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "@bahsedilmeyi tercih et" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Donanımı tercih et" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "@bahsedilmemeyi tercih et" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Yazılımı tercih et" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Tercihler..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Tercih edilen ekran paylaşımı kodeği" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Sesi önizle" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Önizleme, açılır pencere ve yayın küçük resmi davranışı" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Sor" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Yeni ses cihazı bağlandığında sor" @@ -27659,7 +27634,7 @@ msgstr "Yeniden boyutlandırma, büyütme ve pencere yapıştırma kompozitöre #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Çözünürlük" @@ -28352,7 +28327,7 @@ msgstr "Ekran kaydı izni gerekli" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Ekran paylaşımı" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "Ekran paylaşımı sesi başlatılamadı" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Ekran paylaşımı kodeği" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Ekran paylaşımı kodlayıcı ayarları" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Ekran paylaşımı sona erdi" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "Ekran paylaşımı yazılım kodlaması ({codec}) kullanıyor. Kalite düşebilir ve CPU kullanımı artabilir. GPU'nuz bu kodek için donanım kodlamayı desteklemiyor olabilir." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Ekran paylaşımı önizlemesi" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Ekran paylaşımı önizleme davranışı" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Ekran paylaşımı" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Ekran paylaşımı kodeği" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Ekranları ve pencereleri paylaşın." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Akış sesini paylaş" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Kişisel bilgi paylaşımı" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "720p'de keskin metin, 30 FPS'ye kadar" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "15 FPS'ye kadar 4K'ya kadar keskin metin" @@ -30327,7 +30302,7 @@ msgstr "Neko'yu göster" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Yeni cihaz uyarılarını göster" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Parolayı göster" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Ses menülerinde cihaza özel katılımcı ses seviyesi kaydırıcılarını göster" @@ -30662,7 +30637,7 @@ msgstr "Sessiz aramalar" msgid "Silent calls from everyone" msgstr "Herkesten sessiz aramalar" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Cihazın kendi ses girişi olmadığında sessiz" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Tek topluluk modu" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Tek katmanlı" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Emoji" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "720p'ye kadar akıcı 30 FPS" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "1440p'ye kadar akıcı 60 FPS" @@ -31028,7 +31003,7 @@ msgid "Social" msgstr "Sosyal" #. 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Yazılım kodlayıcı" @@ -31258,7 +31233,7 @@ msgstr "Sesler" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Kaynak" @@ -32047,13 +32022,13 @@ msgstr "Yayın gizlendi" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Yayın önizlemesi" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Yayın kalitesi" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Yayınlama" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Yayın modu" @@ -32280,12 +32255,12 @@ msgid "Suspend" msgstr "Askıya al" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "SVC modu" @@ -32559,7 +32534,7 @@ msgstr "{productName} ekibinden sistem duyuruları. Buradan yanıt veremezsiniz. #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Sistem varsayılanı" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "Şablon URL'si" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Zamansal katmanlar" @@ -32837,7 +32812,7 @@ msgstr "Teksas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Metin" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "Ekran paylaşımı kaynağı video göndermeyi durdurdu, bu nedenle ekran paylaşımınız durduruldu." @@ -35774,7 +35749,7 @@ msgstr "Adsız grup" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Adsız giriş" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Kendi sesi olmayan topluluklarda kullanılır." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Özel modda kullanılır. Oyun ve Ekran paylaşımı ön ayarları kendi ipuçlarını belirler." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" msgstr "Görüntülü arama kullanılamıyor" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Video kodeği" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Ekran paylaşımı için video kodeği" @@ -37912,7 +37887,7 @@ msgid "Volume mute" msgstr "Sesi kapat" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Ses kaydırıcıları" @@ -38466,6 +38441,11 @@ msgstr "Neler dahil edilsin" msgid "What to search for." msgstr "Ne arayacağınız." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "Paylaştığınız içerik güncellenmiyor" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Kaydedilen {savedResolution} ({savedFrameRate} FPS) ayarlarınız {premiumProductName} gerektiriyor, bu nedenle paylaşımlar {resolution} ({frameRate} FPS) kullanıyor." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Ekran paylaşımınız uyumlu bir video kodeğiyle yayınlanamadı, bu nedenle durduruldu. Tekrar paylaşmayı deneyin." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Özel URL'niz {inviteEndpoint}/{vanitySlug} olarak ayarlandı" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Video kodlayıcınız kare kodlamayı durdurduğu için ekran paylaşımınız durduruldu. Tekrar paylaşmayı deneyin." diff --git a/fluxer_app/src/features/i18n/locales/uk/messages.po b/fluxer_app/src/features/i18n/locales/uk/messages.po index 6627bf48a..8f6f20aac 100644 --- a/fluxer_app/src/features/i18n/locales/uk/messages.po +++ b/fluxer_app/src/features/i18n/locales/uk/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Розгорнути (# рядок)} few {Розг msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Розгорнути (# рядок)} few {Розгорнути (# рядки)} many {Розгорнути (# рядків)} other {Розгорнути (# рядка)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Розгорнути ще # пристрій} few {Розгорнути ще # пристрої} many {Розгорнути ще # пристроїв} other {Розгорнути ще # пристроїв}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, =1 {У дзвінку} one {# у дзвінку} few {# msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Приєднатися до відеодзвінка (# учасник)} few {Приєднатися до відеодзвінка (# учасники)} many {Приєднатися до відеодзвінка (# учасників)} other {Приєднатися до відеодзвінка (# учасника)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {Продовжуйте дивитися # трансляцію та додайте цю} few {Продовжуйте дивитися # трансляції та додайте цю} many {Продовжуйте дивитися # трансляцій та додайте цю} other {Продовжуйте дивитися # трансляції та додайте цю}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} кадр/с" @@ -3590,8 +3590,8 @@ msgstr "Дозволити будь-кому, хто може перегляда #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Дозволити AV1 для демонстрації екрана" @@ -3649,8 +3649,8 @@ msgstr "Дозволити для всіх спільнот" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Дозволити H.265 (HEVC) для демонстрації екрана" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Підсилення звуку" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Сповіщення про аудіопристрій" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Надсилання аудіо:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Налаштування аудіо" @@ -4987,9 +4987,9 @@ msgstr "Пропозиція автозаповнення: {label}, {selectedOpt #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Автоматично" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Автоматично ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Автоматичне регулювання підсилення" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Автопрокрутка" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (потрібно увімкнути)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Бітрейт" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Формат часу браузера: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Посилення мікрофона в браузері для власної обробки звуку" @@ -6483,15 +6483,15 @@ msgstr "Перевірка капчі не вдалася. Спробуйте щ msgid "Capture" msgstr "Захоплення" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Захоплювати звук застосунку" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Захоплювати звук робочого столу" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Захоплювати звук пристрою" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Пристрої захоплення використовують ігровий пресет." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Захоплювати весь звук системи" @@ -7637,11 +7637,6 @@ msgstr "Виберіть мову" msgid "Choose your profile accent color" 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Кодек" @@ -8766,7 +8761,7 @@ msgstr "Фокус на полі введення" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Налаштувати" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Гучність підключення" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Керування гучністю підключення" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Фільтрування вмісту" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Тип вмісту для кодування" @@ -10594,7 +10589,7 @@ msgstr "Зараз: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Власне" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Власна обробка голосу" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Окремий банер" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Деталізація" @@ -11880,7 +11875,7 @@ msgid "Device" 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Сповіщення пристрою" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Аудіо пристрою ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Аудіо пристрою" @@ -11904,12 +11899,12 @@ msgstr "Деталі пристрою" msgid "Device revoked" msgstr "Пристрій відкликано" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Гучність пристрою" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Пристрої" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Задайте власні значення" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Вимкнути мобільні push-сповіщення" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Вимкнути спливаюче вікно «картинка в картинці» для демонстрації екрана" @@ -12629,7 +12624,7 @@ msgstr "Більше не пропонувати {deviceName}" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Готово" @@ -13756,8 +13751,8 @@ msgstr "Увімкнено" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Спосіб кодування" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Вибір кодувальника для нових демонстрацій екрана." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Кодувальник, SVC та попередні налаштування бітрейту" @@ -15616,7 +15611,7 @@ msgstr "Рамка" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Частота кадрів" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Повністю закрийте та перезапустіть {productName}, щоб macOS застосувала цей дозвіл." #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Регулювання підсилення" @@ -15946,7 +15941,7 @@ msgstr "Геймпад Y / Трикутник" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Ігри" @@ -16451,7 +16446,7 @@ msgstr "Надано {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Надає всі дозволи та обходить обмеження каналів. Дуже ризиковано." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Детальний вибір" @@ -16629,13 +16624,8 @@ msgstr "Групу оновлено" msgid "Grouping" 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (потрібно увімкнути)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "Апаратне прискорення може спричинити збої візуалізації з прозорими вікнами. Спробуйте --disable-gpu, якщо бачите мерехтіння або змазування." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Апаратний кодувальник" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Допоможіть перекласти {PRODUCT_NAME} вашою мовою на <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Приховувати канали з вимкненими сповіщеннями за замовчуванням?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Приховати мініатюру попереднього перегляду моєї трансляції" @@ -17014,7 +17004,7 @@ msgstr "Сховати пароль" msgid "Hide picture-in-picture popout?" msgstr "Сховати вікно «картинка в картинці»?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Сховати мініатюру попереднього перегляду" @@ -17417,11 +17407,11 @@ msgstr "Ігнорувати" msgid "Ignore friend request" msgstr "Ігнорувати запит на додавання в друзі" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Ігнорувати апаратні пристрої" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Ігнорувати вхідні медіа" @@ -17452,7 +17442,7 @@ msgstr "Ігнорувати запит на додавання в друзі в msgid "Ignore this channel's slowmode cooldown." msgstr "Ігнорувати обмеження повільного режиму цього каналу." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Ігнорувати віртуальні" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Шари" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Багатошаровість для AV1 і VP9, якщо доступно." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Максимальний захист для сімейних спільнот" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Може спричинити проблеми сумісності у глядачів. Ми працюємо над покращенням." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Посилення мікрофона" @@ -21318,7 +21308,7 @@ msgstr "Найрелевантніші" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Новий мікрофон" @@ -22830,11 +22820,11 @@ msgstr "Користувача з таким іменем не знайдено. msgid "No users are currently banned from this community." msgstr "Наразі жодного користувача не заблоковано в цій спільноті." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Немає доступних користувачів" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Користувачів не знайдено" @@ -23313,7 +23303,7 @@ msgstr "Застосовується лише на широких екранах msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Приймаються лише кредитні картки. Дебетові та передплачені картки не підходять для перевірки доступу до контенту для дорослих." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Лише стандартні динаміки" @@ -23361,7 +23351,7 @@ msgstr "Запускайте код тут, лише якщо ви точно р msgid "Only show message previews for DMs with unread messages" msgstr "Показувати попередній перегляд повідомлень лише для приватних чатів із непрочитаними повідомленнями" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Лише динаміки" @@ -23901,21 +23891,6 @@ msgstr "Відкрийте застосунок для обміну повідо msgid "Open your settings" msgstr "Відкрийте налаштування" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "Програмний кодек OpenH264 на Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "Відеокодек OpenH264" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "Відеокодек OpenH264 надано Cisco Systems, Inc." - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Призупинити запрошення? Нові користувачі не зможуть приєднатися за посиланнями-запрошеннями, доки ви їх не ввімкнете знову. На наявних учасників це не вплине." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Призупиняти попередній перегляд моєї демонстрації екрана у фоновому режимі" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Гучність для кожного пристрою" @@ -24776,7 +24751,7 @@ msgid "Picture" 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Картинка в картинці" @@ -24906,7 +24881,7 @@ msgid "Pins popout" 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PiP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Зі згадкою @" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Переважно апаратне" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Без згадки @" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Переважно програмне" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Параметри..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Бажаний кодек для демонстрації екрана" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Попередній перегляд звуку" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Поведінка попереднього перегляду, спливаючого вікна та мініатюр трансляції" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Запит" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Запитувати про нові аудіопристрої" @@ -27659,7 +27634,7 @@ msgstr "Зміна розміру, розгортання та прив'язка #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Роздільна здатність" @@ -28352,7 +28327,7 @@ msgstr "Потрібен дозвіл на запис екрана" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Демонстрація екрана" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "Не вдалося ввімкнути звук демонстрації екрана" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Кодек для демонстрації екрана" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Керування кодувальником демонстрації екрана" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Демонстрацію екрана завершено" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "Демонстрація екрана використовує програмне кодування ({codec}). Якість може знизитися, а навантаження на процесор зрости. Ваш графічний процесор може не підтримувати апаратне кодування для цього кодека." #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Попередній перегляд демонстрації екрана" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Поведінка попереднього перегляду демонстрації екрана" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Кодек для демонстрації екрана" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Демонструйте екрани та вікна." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Ділитися аудіо трансляції" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Поширення особистої інформації" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Чіткий текст у 720p, до 30 кадрів/сек" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Чіткий текст до 4K, до 15 кадрів/сек" @@ -30327,7 +30302,7 @@ msgstr "Показувати Неко" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Показувати сповіщення про нові пристрої" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Показати пароль" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Показувати повзунки гучності учасників для кожного пристрою в голосових меню" @@ -30662,7 +30637,7 @@ msgstr "Беззвучні дзвінки" msgid "Silent calls from everyone" msgstr "Беззвучні дзвінки від усіх" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Без звуку, коли пристрій захоплення не має власного аудіовходу" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Режим однієї спільноти" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Один шар" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Смайлики" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Плавні 30 кадрів/сек до 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Плавні 60 кадрів/сек до 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Програмний кодувальник" @@ -31258,7 +31233,7 @@ msgstr "Звуки" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Джерело" @@ -32047,13 +32022,13 @@ msgstr "Трансляцію приховано" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Попередній перегляд трансляції" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Якість трансляції" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Трансляція" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Режим трансляції" @@ -32280,12 +32255,12 @@ msgid "Suspend" 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "Режим SVC" @@ -32559,7 +32534,7 @@ msgstr "Системні оголошення від команди {productName #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Системний за замовчуванням" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "URL шаблону" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Часові шари" @@ -32837,7 +32812,7 @@ msgstr "Техас" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Текст" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "Джерело демонстрації екрана припинило надсилати відео, тому демонстрацію вашого екрана зупинено." @@ -35774,7 +35749,7 @@ msgstr "Група без назви" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Вхід без назви" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Використовується в спільнотах, які не мають власного звуку." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Використовується в режимі \"Користувацький\". Налаштування \"Ігри\" та \"Демонстрація екрана\" встановлюють власні підказки." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Відеокодек" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Відеокодек для демонстрації екрана" @@ -37912,7 +37887,7 @@ msgid "Volume mute" 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Регулятори гучності" @@ -38466,6 +38441,11 @@ msgstr "Що включити" msgid "What to search for." msgstr "Що шукати." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "Те, чим ви ділитеся, не оновлюється" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Ваша збережена якість {savedResolution} із частотою {savedFrameRate} кадрів на секунду потребує {premiumProductName}, тому спільний доступ використовує {resolution} із частотою {frameRate} кадрів на секунду." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Не вдалося опублікувати демонстрацію екрана з сумісним відеокодеком, тому її зупинено. Спробуйте почати демонстрацію знову." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "Вашу персоналізовану URL-адресу встановлено на {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Ваш відеокодер перестав кодувати кадри, тому демонстрацію екрана зупинено. Спробуйте почати демонстрацію знову." diff --git a/fluxer_app/src/features/i18n/locales/vi/messages.po b/fluxer_app/src/features/i18n/locales/vi/messages.po index 424b3fb8b..9eda8b9e7 100644 --- a/fluxer_app/src/features/i18n/locales/vi/messages.po +++ b/fluxer_app/src/features/i18n/locales/vi/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {Mở rộng (# dòng)} other {Mở rộng (# dòng) msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {Mở rộng (# hàng)} other {Mở rộng (# hàng)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {Mở rộng # thiết bị khác} other {Mở rộng # thiết bị khác}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {Đang gọi} other {# người đang gọi}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {Tham gia cuộc gọi video (# người tham gia)} other {Tham gia cuộc gọi video (# người tham gia)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {Tiếp tục xem # luồng và thêm luồng này} other {Tiếp tục xem # luồng và thêm luồng này}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} FPS" @@ -3590,8 +3590,8 @@ msgstr "Cho phép bất kỳ ai xem được hồ sơ đầy đủ của bạn t #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "Cho phép AV1 khi chia sẻ màn hình" @@ -3649,8 +3649,8 @@ msgstr "Cho phép tất cả cộng đồng" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "Cho phép H.265 (HEVC) để chia sẻ màn hình" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "Tăng âm lượng" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" msgstr "Thiết bị âm thanh" #. 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "Thông báo về thiết bị âm thanh" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "Gửi âm thanh:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "Cài đặt âm thanh" @@ -4987,9 +4987,9 @@ msgstr "Gợi ý tự động hoàn tất: {label}, {selectedOptionPosition} tr #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "Tự động" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "Tự động ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "Tự động điều chỉnh độ lợi" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "Tự động cuộn" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1 (yêu cầu bật tùy chọn)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" msgstr "Sinh trắc học" #. 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "Tốc độ bit" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "Định dạng giờ của trình duyệt: {format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "Điều chỉnh âm lượng micrô của trình duyệt để xử lý tùy chỉnh" @@ -6483,15 +6483,15 @@ msgstr "Xác minh CAPTCHA không thành công. Hãy thử lại." msgid "Capture" msgstr "Thu âm thanh" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "Thu âm thanh ứng dụng" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "Thu âm thanh từ máy tính" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "Thu âm thanh thiết bị" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "Thiết bị ghi hình sử dụng cài đặt sẵn Trò chơi." #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "Thu toàn bộ âm thanh hệ thống" @@ -7637,11 +7637,6 @@ msgstr "Chọn ngôn ngữ của bạn" msgid "Choose your profile accent color" msgstr "Chọn màu nhấn cho hồ sơ của bạn" -#. 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" msgstr "Mã:" #. 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "Codec" @@ -8766,7 +8761,7 @@ msgstr "Tập trung vào trình soạn thảo" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "Cấu hình" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "Âm lượng kết nối" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "Điều khiển âm lượng kết nối" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "Lọc nội dung" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "Loại nội dung để mã hóa" @@ -10594,7 +10589,7 @@ msgstr "Hiện tại: {mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "Tùy chỉnh" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" msgstr "Hình nền video tùy chỉnh" #. 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "Xử lý giọng nói tùy chỉnh" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "Ảnh bìa tách riêng" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "Chi tiết" @@ -11880,7 +11875,7 @@ msgid "Device" msgstr "Thiết bị" #. 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "Thông báo thiết bị" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "Âm thanh thiết bị ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "Chỉ âm thanh thiết bị" @@ -11904,12 +11899,12 @@ msgstr "Chi tiết thiết bị" msgid "Device revoked" msgstr "Thiết bị đã bị thu hồi" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" msgstr "Chọn thiết bị" #. 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "Âm lượng thiết bị" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "Thiết bị" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "Tự chỉnh thông số theo ý bạn" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "Tắt thông báo đẩy trên di động" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "Tắt chế độ hình trong hình cho chia sẻ màn hình" @@ -12629,7 +12624,7 @@ msgstr "Không gợi ý {deviceName} nữa" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "Xong" @@ -13756,8 +13751,8 @@ msgstr "Đã bật" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "Đường dẫn bộ mã hóa" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "Ưu tiên bộ mã hóa cho các lần chia sẻ màn hình mới." #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "Bộ mã hóa, SVC và cài đặt trước tốc độ bit" @@ -15616,7 +15611,7 @@ msgstr "Khung" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "Tốc độ khung hình" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "Tắt hoàn toàn và khởi động lại {productName} để macOS áp dụng quyền 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "Điều chỉnh độ khuếch đại" @@ -15946,7 +15941,7 @@ msgstr "Tay cầm Y / Tam giác" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "Trò chơi" @@ -16451,7 +16446,7 @@ msgstr "Đã cấp {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "Cấp tất cả quyền và bỏ qua các hạn chế kênh. Rất nhạy cảm." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "Chọn chi tiết" @@ -16629,13 +16624,8 @@ msgstr "Đã cập nhật nhóm" msgid "Grouping" msgstr "Nhóm" -#. 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265 (yêu cầu bật tùy chọn)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "Tăng tốc phần cứng có thể gây ra lỗi hiển thị với cửa sổ trong suốt. Hãy thử --disable-gpu nếu bạn thấy hiện tượng nhấp nháy hoặc nhòe." #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "Bộ mã hóa phần cứng" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "Giúp dịch {PRODUCT_NAME} sang ngôn ngữ của bạn trên <0>{I18N_WEBLATE_DOMAIN}." #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "Ẩn các kênh đã tắt tiếng theo mặc định?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "Ẩn hình thu nhỏ xem trước luồng của tôi" @@ -17014,7 +17004,7 @@ msgstr "Ẩn mật khẩu" msgid "Hide picture-in-picture popout?" msgstr "Ẩn cửa sổ hình trong hình?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "Ẩn hình thu nhỏ xem trước" @@ -17417,11 +17407,11 @@ msgstr "Bỏ qua" msgid "Ignore friend request" msgstr "Bỏ qua lời mời kết bạn" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "Bỏ qua thiết bị phần cứng" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "Bỏ qua phương tiện đầu vào" @@ -17452,7 +17442,7 @@ msgstr "Bỏ qua lời mời kết bạn từ {displayName}?" msgid "Ignore this channel's slowmode cooldown." msgstr "Bỏ qua thời gian chờ chế độ chậm của kênh này." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "Bỏ qua thiết bị ảo" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "Xếp lớp" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "Áp dụng nhiều lớp cho AV1 và VP9 khi có sẵn." @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "Bảo vệ tối đa cho không gian thân thiện với gia đình" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "Có thể gây ra sự cố tương thích cho người xem. Chúng tôi đang nỗ lực cải thiện điều này." @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a msgstr "Quyền truy cập micrô đã bị từ chối. Bật quyền này trong cài đặt hệ thống của bạn và thử lạ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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "Độ lợi micrô" @@ -21318,7 +21308,7 @@ msgstr "Phù hợp nhất" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" msgstr "New Mexico" #. 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "Micrô mới" @@ -22830,11 +22820,11 @@ msgstr "Không tìm thấy ai có tên người dùng đó." msgid "No users are currently banned from this community." msgstr "Hiện không có người dùng nào bị cấm khỏi cộng đồng này." -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "Không có người dùng nào" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "Không tìm thấy người dùng nào" @@ -23313,7 +23303,7 @@ msgstr "Chỉ áp dụng trên màn hình rộng." msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "Chỉ chấp nhận thẻ tín dụng. Không thể dùng thẻ ghi nợ và thẻ trả trước để kiểm tra nội dung người lớn." -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "Chỉ loa mặc định" @@ -23361,7 +23351,7 @@ msgstr "Chỉ chạy mã ở đây nếu bạn hiểu chính xác mã đó làm msgid "Only show message previews for DMs with unread messages" msgstr "Chỉ hiện bản xem trước tin nhắn cho các tin nhắn trực tiếp chưa đọc" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "Chỉ loa" @@ -23901,21 +23891,6 @@ msgstr "Mở ứng dụng nhắn tin trên điện thoại và bắt đầu mộ msgid "Open your settings" msgstr "Mở cài đặt của bạn" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "Codec phần mềm OpenH264 trên Linux" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "Codec video OpenH264" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "Codec video OpenH264 do Cisco Systems, Inc. cung cấp" - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "Tạm dừng lời mời? Người dùng mới sẽ không thể tham gia qua liên kết mời cho đến khi bạn bật lại. Thành viên hiện tại sẽ không bị ảnh hưởng." #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "Tạm dừng xem trước chia sẻ màn hình của tôi khi chạy nền" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" msgstr "Hồ sơ riêng cho từng cộng đồng" #. 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "Âm lượng từng thiết bị" @@ -24776,7 +24751,7 @@ msgid "Picture" msgstr "Ảnh" #. 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "Ảnh trong ảnh" @@ -24906,7 +24881,7 @@ msgid "Pins popout" msgstr "Tin đã ghim bật lên" #. 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PiP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "Ưu tiên @nhắc đến" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "Ưu tiên phần cứng" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "Ưu tiên không @nhắc đến" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "Ưu tiên phần mềm" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "Tùy chọn..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "Codec chia sẻ màn hình ưu tiên" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "Nghe thử âm thanh" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "Hành vi của xem trước, cửa sổ riêng và hình thu nhỏ luồng phát" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "Lời nhắc" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "Hỏi khi phát hiện thiết bị âm thanh mới" @@ -27659,7 +27634,7 @@ msgstr "Thay đổi kích thước, phóng to và gắn cửa sổ phụ thuộc #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "Độ phân giải" @@ -28352,7 +28327,7 @@ msgstr "Cần quyền ghi màn hình" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "Chia sẻ màn hình" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "Âm thanh chia sẻ màn hình không thể bắt đầu" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "Codec chia sẻ màn hình" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "Điều khiển bộ mã hóa chia sẻ màn hình" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "Chia sẻ màn hình đã kết thúc" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "Chia sẻ màn hình đang dùng mã hóa phần mềm ({codec}). Chất lượng có thể giảm và mức sử dụng CPU tăng. GPU của bạn có thể không hỗ trợ mã hóa phần cứng cho codec 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "Xem trước chia sẻ màn hình" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "Hành vi xem trước chia sẻ màn hình" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" msgstr "Chia sẻ màn hình" #. 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "Codec chia sẻ màn hình" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "Chia sẻ màn hình và cửa sổ." #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "Chia sẻ âm thanh luồng" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "Chia sẻ thông tin cá nhân" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "Chữ sắc nét ở 720p, tối đa 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "Chữ sắc nét ở độ phân giải lên tới 4K, tối đa 15 FPS" @@ -30327,7 +30302,7 @@ msgstr "Hiện Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "Hiển thị cảnh báo thiết bị mới" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "Hiện mật khẩu" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "Hiển thị thanh trượt âm lượng người tham gia theo từng thiết bị trong menu thoại" @@ -30662,7 +30637,7 @@ msgstr "Cuộc gọi im lặng" msgid "Silent calls from everyone" msgstr "Tắt tiếng cuộc gọi từ mọi người" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "Im lặng khi thiết bị ghi âm không có đầu vào âm thanh riêng" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "Chế độ cộng đồng duy nhất" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "Một lớp" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "Biểu tượng cảm xúc" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "Mượt mà 30 FPS ở độ phân giải lên đến 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "Mượt mà 60 FPS ở độ phân giải lên đến 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" msgstr "Mạng xã hộ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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "Bộ mã hóa phần mềm" @@ -31258,7 +31233,7 @@ msgstr "Âm thanh" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "Nguồn" @@ -32047,13 +32022,13 @@ msgstr "Đã ẩn luồng" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "Xem trước luồng" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "Chất lượng luồng" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "Đang phát trực tiếp" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "Chế độ phát trực tiếp" @@ -32280,12 +32255,12 @@ msgid "Suspend" msgstr "Tạm dừng" #. 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "Chế độ SVC" @@ -32559,7 +32534,7 @@ msgstr "Thông báo hệ thống từ đội ngũ {productName}. Bạn không th #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "Mặc định hệ thống" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "URL mẫu" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "Lớp thời gian" @@ -32837,7 +32812,7 @@ msgstr "Texas" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "Văn bản" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "Nguồn chia sẻ màn hình đã ngừng gửi video, vì vậy quá trình chia sẻ màn hình của bạn đã dừng." @@ -35774,7 +35749,7 @@ msgstr "Nhóm chưa đặt tên" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "Đầu vào không tên" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "Được dùng trong các cộng đồng không có âm thanh riêng." #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "Được dùng ở chế độ Tùy chỉnh. Các cài đặt sẵn Chơi game và Chia sẻ màn hình sẽ tự đặt gợi ý của riêng mình." @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" msgstr "Cuộc gọi video không khả dụng" #. 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "Codec video" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "Codec video để chia sẻ màn hình" @@ -37912,7 +37887,7 @@ msgid "Volume mute" msgstr "Tắt tiếng" #. 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "Thanh trượt âm lượng" @@ -38466,6 +38441,11 @@ msgstr "Nội dung cần đưa vào" msgid "What to search for." msgstr "Nội dung cần tìm kiếm." +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "Nội dung bạn đang chia sẻ không cập nhật" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "Chất lượng đã lưu của bạn {savedResolution} ở tốc độ {savedFrameRate} FPS yêu cầu {premiumProductName}, vì vậy các lượt chia sẻ sẽ sử dụng {resolution} ở tốc độ {frameRate} FPS." #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "Không thể phát lượt chia sẻ màn hình của bạn bằng codec video tương thích, vì vậy lượt chia sẻ đã bị dừng. Hãy thử chia sẻ lại." @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "URL tùy chỉnh của bạn đã được đặt thành {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "Bộ mã hóa video của bạn đã ngừng mã hóa khung hình, vì vậy lượt chia sẻ màn hình của bạn đã bị dừng. Hãy thử chia sẻ lại." 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 88d62751c..1745dbc5d 100644 --- a/fluxer_app/src/features/i18n/locales/zh-CN/messages.po +++ b/fluxer_app/src/features/i18n/locales/zh-CN/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, other {展开(# 行)}}" msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, other {展开(# 行)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, other {展开另外 # 台设备}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, other {# 人正在通话}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, other {加入视频通话(# 位参与者)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, other {继续观看 # 个直播并添加此直播}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} 帧/秒" @@ -3590,8 +3590,8 @@ msgstr "允许任何可以查看你完整个人资料的人看到你的本地时 #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "允许 AV1 用于屏幕共享" @@ -3649,8 +3649,8 @@ msgstr "允许所有社区" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "允许使用 H.265 (HEVC) 进行屏幕共享" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "音量增强" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "音频设备提醒" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "音频发送:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "音频设置" @@ -4987,9 +4987,9 @@ msgstr "自动补全建议:{label},第 {selectedOptionPosition} 项,共 {r #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "自动" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "自动({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "自动增益控制" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "自动滚动" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1(需要选择加入)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "比特率" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "浏览器时间格式:{format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "自定义处理的浏览器麦克风增益" @@ -6483,15 +6483,15 @@ msgstr "验证码校验失败。请重试。" msgid "Capture" msgstr "捕获" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "捕获应用音频" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "捕获桌面音频" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "捕获设备音频" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "捕获设备使用“游戏”预设。" #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "捕获整个系统音频" @@ -7637,11 +7637,6 @@ msgstr "选择语言" msgid "Choose your profile accent color" 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "思科" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "编解码器" @@ -8766,7 +8761,7 @@ msgstr "输入框聚焦" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "配置" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "连接音量" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "连接音量控制" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "内容过滤" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "内容提示" @@ -10594,7 +10589,7 @@ msgstr "当前:{mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "自定义" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "自定义语音处理" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "独立横幅" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "细节" @@ -11880,7 +11875,7 @@ msgid "Device" 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "设备提醒" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "设备音频({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "仅设备音频" @@ -11904,12 +11899,12 @@ msgstr "设备详情" msgid "Device revoked" msgstr "设备已撤销" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "设备音量" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "设备" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "自己调校各项参数" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "关闭移动推送通知" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "禁用屏幕共享的画中画浮窗" @@ -12629,7 +12624,7 @@ msgstr "不再推荐 {deviceName}" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "完成" @@ -13756,8 +13751,8 @@ msgstr "已启用" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "编码器路径" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "新屏幕共享的首选编码器。" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "编码器、SVC 和比特率预设" @@ -15616,7 +15611,7 @@ msgstr "窗口边框" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "帧率" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "请完全退出并重启 {productName},以便 macOS 应用此权限。" #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "增益控制" @@ -15946,7 +15941,7 @@ msgstr "手柄 Y / 三角" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "游戏" @@ -16451,7 +16446,7 @@ msgstr "授予了 {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "授予所有权限并绕过频道限制。高度敏感。" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "精细选择" @@ -16629,13 +16624,8 @@ msgstr "群聊已更新" msgid "Grouping" 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265(需要选择加入)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "硬件加速可能会导致透明窗口出现渲染故障。如果出现闪烁或拖影,请尝试使用 --disable-gpu。" #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "硬件编码器" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "在 <0>{I18N_WEBLATE_DOMAIN} 上帮助我们把 {PRODUCT_NAME} 翻译成你的语言。" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "默认隐藏已静音频道?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "隐藏我的直播预览缩略图" @@ -17014,7 +17004,7 @@ msgstr "隐藏密码" msgid "Hide picture-in-picture popout?" msgstr "隐藏画中画弹窗?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "隐藏预览缩略图" @@ -17417,11 +17407,11 @@ msgstr "忽略" msgid "Ignore friend request" msgstr "忽略好友请求" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "忽略硬件设备" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "忽略输入媒体" @@ -17452,7 +17442,7 @@ msgstr "忽略来自 {displayName} 的好友请求?" msgid "Ignore this channel's slowmode cooldown." msgstr "忽略此频道的慢速模式冷却时间。" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "忽略虚拟设备" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "层级" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "可用时对 AV1 和 VP9 使用分层编码。" @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "为家庭友好空间提供最高等级保护" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "可能会导致观看者出现兼容性问题。我们正在努力改进。" @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "麦克风增益" @@ -21318,7 +21308,7 @@ msgstr "最相关" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "新麦克风" @@ -22830,11 +22820,11 @@ msgstr "未找到该用户名的用户。" msgid "No users are currently banned from this community." msgstr "此社区目前没有被封禁的用户。" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "没有可用用户" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "未找到用户" @@ -23313,7 +23303,7 @@ msgstr "仅在宽屏上生效。" msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "仅接受信用卡。借记卡和预付卡不能用于成人内容验证。" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "仅默认扬声器" @@ -23361,7 +23351,7 @@ msgstr "除非你完全了解其作用,否则请勿在此处运行代码。" msgid "Only show message previews for DMs with unread messages" msgstr "仅为有未读消息的私信显示消息预览" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "仅扬声器" @@ -23901,21 +23891,6 @@ msgstr "打开手机短信应用,然后开始一条新短信。" msgid "Open your settings" msgstr "打开设置" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "在 Linux 上启用 OpenH264 软件编解码器" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "OpenH264 视频编解码器" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "由 Cisco Systems, Inc. 提供的 OpenH264 视频编解码器" - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "暂停邀请?新用户将无法通过邀请链接加入,直到你重新启用。现有成员不受影响。" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "在后台暂停我的屏幕共享预览" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "设备音量" @@ -24776,7 +24751,7 @@ msgid "Picture" 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "画中画" @@ -24906,7 +24881,7 @@ msgid "Pins popout" 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "画中画" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "接收 @提及" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "优先使用硬件" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "不接收 @提及" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "优先使用软件" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "偏好设置..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "首选屏幕共享编解码器" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "试听提示音" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "预览、弹出和直播缩略图行为" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "提示" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "连接新音频设备时提示" @@ -27659,7 +27634,7 @@ msgstr "窗口大小调整、最大化和窗口贴靠取决于合成器。不带 #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "分辨率" @@ -28352,7 +28327,7 @@ msgstr "需要屏幕录制权限" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "屏幕共享" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "屏幕共享音频无法启动" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "屏幕共享编解码器" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "屏幕共享编码器设置" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "屏幕共享已结束" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "屏幕共享正在使用软件编码 ({codec})。画面质量可能会降低,CPU 占用率可能会增加。你的 GPU 可能不支持此编解码器的硬件编码。" #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "屏幕共享预览" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "屏幕共享预览行为" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "屏幕共享编解码器" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "共享屏幕和窗口。" #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "共享直播音频" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "泄露个人信息" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "720p 清晰,最高 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "最高 4K 清晰度,最高 15 帧/秒" @@ -30327,7 +30302,7 @@ msgstr "显示 Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "显示新设备提醒" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "显示密码" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "在语音菜单中显示每个设备的参与者音量滑块" @@ -30662,7 +30637,7 @@ msgstr "静音来电" msgid "Silent calls from everyone" msgstr "所有人来电静音" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "当捕获设备没有自己的音频输入时保持静默" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "单社区模式" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "单层" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "表情符号" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "流畅的 30 FPS,最高支持 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "流畅的 1440p 60 帧" @@ -31028,7 +31003,7 @@ msgid "Social" 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "软件编码器" @@ -31258,7 +31233,7 @@ msgstr "声音" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "原画" @@ -32047,13 +32022,13 @@ msgstr "直播已隐藏" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "直播预览" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "直播画质" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "正在直播" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "直播模式" @@ -32280,12 +32255,12 @@ msgid "Suspend" 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "SVC 模式" @@ -32559,7 +32534,7 @@ msgstr "来自 {productName} 员工的系统公告。你无法在此回复。" #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "系统默认" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "模板网址" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "时域分层" @@ -32837,7 +32812,7 @@ msgstr "得克萨斯州" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "文字" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "屏幕共享源已停止发送视频,因此你的屏幕共享已停止。" @@ -35774,7 +35749,7 @@ msgstr "未命名群聊" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "未命名输入设备" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "用于没有专属音效的社区。" #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "在自定义模式下使用。游戏和屏幕共享预设会设置自己的提示。" @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "视频编解码器" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "屏幕共享的视频编解码器" @@ -37912,7 +37887,7 @@ msgid "Volume mute" 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "音量滑块" @@ -38466,6 +38441,11 @@ msgstr "包含哪些内容" msgid "What to search for." msgstr "要搜索的内容。" +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "你分享的内容没有更新" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "你保存的 {savedResolution} ({savedFrameRate} FPS) 需要 {premiumProductName},因此共享将使用 {resolution} ({frameRate} FPS)。" #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "你的屏幕共享无法使用兼容的视频编解码器发布,因此已停止。请重新共享。" @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "你的自定义邀请链接已设置为 {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "你的视频编码器已停止编码帧,因此屏幕共享已停止。请重新共享。" 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 8df5f11e4..a60e93239 100644 --- a/fluxer_app/src/features/i18n/locales/zh-TW/messages.po +++ b/fluxer_app/src/features/i18n/locales/zh-TW/messages.po @@ -1070,7 +1070,7 @@ msgstr "{count, plural, one {展開(# 行)} other {展開(# 行)}}" msgid "{count, plural, one {Expand (# row)} other {Expand (# rows)}}" msgstr "{count, plural, one {展開(# 列)} other {展開(# 列)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:315 +#: src/features/voice/components/VoiceParticipantTile.tsx:320 msgid "{count, plural, one {Expand # other device} other {Expand # other devices}}" msgstr "{count, plural, one {展開其他 # 個裝置} other {展開其他 # 個裝置}}" @@ -1091,7 +1091,7 @@ msgstr "{count, plural, one {通話中} other {# 人通話中}}" msgid "{count, plural, one {Join video call (# participant)} other {Join video call (# participants)}}" msgstr "{count, plural, one {加入視訊通話(# 位參與者)} other {加入視訊通話(# 位參與者)}}" -#: src/features/voice/components/VoiceParticipantTile.tsx:671 +#: src/features/voice/components/VoiceParticipantTile.tsx:676 msgid "{count, plural, one {Keep watching # stream and add this one} other {Keep watching # streams and add this one}}" msgstr "{count, plural, one {繼續觀看 # 個直播並新增這個} other {繼續觀看 # 個直播並新增這個}}" @@ -1347,7 +1347,7 @@ msgstr "{fps} FPS" #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #. Frame rate option label in the video tab. FPS is a technical token and frameRate is a whole number. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:53 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:114 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:115 msgid "{frameRate} FPS" msgstr "{frameRate} FPS" @@ -3590,8 +3590,8 @@ msgstr "允許所有能檢視您完整個人檔案的人查看您的當地時間 #. Settings search entry label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. #. Switch label for the AV1 screen-share opt-in. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:143 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:88 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:136 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:87 msgid "Allow AV1 for screen sharing" msgstr "允許 AV1 用於螢幕分享" @@ -3649,8 +3649,8 @@ msgstr "允許所有社群" #. Settings search entry label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. #. Switch label for the H.265/HEVC screen-share opt-in. H.265 and HEVC are codec names and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:147 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:92 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:140 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:91 msgid "Allow H.265 (HEVC) for screen sharing" msgstr "允許使用 H.265 (HEVC) 進行螢幕分享" @@ -4681,12 +4681,12 @@ msgid "Audio boost" msgstr "音訊增強" #. Section header in the stream settings menu. Selects the audio capture device for the share. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:136 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:137 msgid "Audio device" 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/VoiceVideoIndex.ts:16 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:15 msgid "Audio device alerts" msgstr "音訊裝置警示" @@ -4776,7 +4776,7 @@ msgid "Audio send:" msgstr "音訊傳送:" #. Section header in the stream settings menu grouping audio-related toggles. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:148 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:149 msgid "Audio settings" msgstr "音訊設定" @@ -4987,9 +4987,9 @@ msgstr "自動完成建議:{label},第 {selectedOptionPosition} 項,共 {r #. Voice region option label in the voice settings menu meaning let Fluxer pick the best region automatically. #. Voice region picker option label meaning 'let Fluxer pick the best region automatically'. #: src/features/channel/components/modals/channel_tabs/channel_overview_tab/RtcRegionSelect.tsx:19 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:63 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:83 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:104 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:56 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:76 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:97 #: src/features/user/components/settings_utils/section_registry/NotificationsSections.ts:264 #: src/features/voice/components/VoiceRegionSelector.tsx:16 #: src/features/voice/components/VoiceSettingsMenus.tsx:93 @@ -4997,13 +4997,13 @@ msgid "Automatic" msgstr "自動" #. Option label for the screen-share codec select. codec is the automatically selected codec label. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:129 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:122 msgid "Automatic ({codec})" msgstr "自動 ({codec})" #. Settings search entry label. Names the settings search entry in the settings UI. #. Voice setting label for automatically evening out microphone volume. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:48 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:47 #: src/features/voice/utils/VoiceMessageDescriptors.ts:215 msgid "Automatic gain control" msgstr "自動增益控制" @@ -5094,12 +5094,12 @@ msgid "Autoscrolling" msgstr "自動捲動" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:101 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:100 msgid "AV1" msgstr "AV1" #. Option label for the screen-share codec select while the AV1 opt-in is off and the option is disabled. AV1 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:133 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:126 msgid "AV1 (requires opt-in)" msgstr "AV1(需先啟用)" @@ -5558,7 +5558,7 @@ msgid "Biometrics" 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/VoiceVideoIndex.ts:169 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:152 msgid "Bitrate" msgstr "位元率" @@ -5953,7 +5953,7 @@ msgid "Browser locale: {format}" msgstr "瀏覽器時間格式:{format}" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:64 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:63 msgid "Browser mic gain for custom processing" msgstr "用於自訂處理的瀏覽器麥克風增益" @@ -6483,15 +6483,15 @@ msgstr "驗證碼驗證失敗。請再試一次。" msgid "Capture" msgstr "擷取" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:810 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 msgid "Capture app audio" msgstr "擷取應用程式音訊" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:812 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:814 msgid "Capture desktop audio" msgstr "擷取桌面音訊" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:809 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:811 msgid "Capture device audio" msgstr "擷取裝置音訊" @@ -6501,7 +6501,7 @@ msgid "Capture devices use the Gaming preset." msgstr "擷取裝置使用「遊戲」預設。" #. Toggle label in the stream settings menu for a window share whose audio scope the user widened from the shared window to the whole system mix. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:160 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:161 msgid "Capture entire system audio" msgstr "擷取整個系統音訊" @@ -7637,11 +7637,6 @@ msgstr "選擇您的語言" msgid "Choose your profile accent color" 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/VoiceVideoIndex.ts:117 -msgid "Cisco" -msgstr "Cisco" - #. Generic account action label that opens or submits the flow to secure an unclaimed account. #: src/features/i18n/utils/CommonMessageDescriptors.ts:152 msgid "Claim account" @@ -8240,7 +8235,7 @@ msgid "Code:" 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/VoiceVideoIndex.ts:76 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:75 msgid "Codec" msgstr "編解碼器" @@ -8766,7 +8761,7 @@ msgstr "輸入框自動對焦" #. Button label that opens a dedicated advanced settings modal for configuring screen-share encoder controls. #. Button label that opens a dedicated advanced settings modal. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedChatControls.tsx:164 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:120 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:113 msgid "Configure" msgstr "設定" @@ -9043,7 +9038,7 @@ msgid "Connection volume" msgstr "連線音量" #. Settings search entry label. Names an advanced voice setting in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:28 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:27 msgid "Connection volume controls" msgstr "連線音量控制" @@ -9114,7 +9109,7 @@ msgid "Content filtering" msgstr "內容篩選" #. Label for an advanced screen-share select. Refers to the WebRTC MediaStreamTrack contentHint value. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:95 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:88 msgid "Content hint" msgstr "內容提示" @@ -10594,7 +10589,7 @@ msgstr "目前:{mutedText}" #: src/features/user/components/settings_utils/section_registry/AppearanceSections.ts:94 #: src/features/voice/components/bottomsheets/VoiceSettingsBottomSheets.tsx:45 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:238 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:102 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:103 msgid "Custom" msgstr "自訂" @@ -10789,7 +10784,7 @@ msgid "Custom video backgrounds" 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/VoiceVideoIndex.ts:60 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:59 msgid "Custom voice processing" msgstr "自訂語音處理" @@ -11810,7 +11805,7 @@ msgid "Detached banner" msgstr "分離式橫幅" #. Option label for a WebRTC content hint select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:112 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:105 msgid "Detail" msgstr "細節" @@ -11880,7 +11875,7 @@ msgid "Device" 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/VoiceVideoIndex.ts:12 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:11 msgid "Device alerts" msgstr "裝置警示" @@ -11890,7 +11885,7 @@ msgid "Device audio ({deviceLabel})" msgstr "裝置音訊 ({deviceLabel})" #. Screen-share audio summary on a video device share that publishes only the audio of the capture device itself. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:866 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:868 #: src/features/voice/utils/ScreenShareAudioSummary.ts:50 msgid "Device audio only" msgstr "僅音訊裝置" @@ -11904,12 +11899,12 @@ msgstr "裝置詳細資訊" msgid "Device revoked" msgstr "裝置已撤銷" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:1004 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:1006 msgid "Device selection" 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/VoiceVideoIndex.ts:36 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:35 msgid "Device volume" msgstr "裝置音量" @@ -11933,7 +11928,7 @@ msgid "Devices" msgstr "裝置" #. Description for the Custom streaming preset. Lightly playful prose; keep tone casual. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:106 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:107 msgid "Dial in your own numbers" msgstr "自行微調各項數值" @@ -12109,7 +12104,7 @@ msgid "Disable mobile push notifications" msgstr "關閉行動裝置推播通知" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:51 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:44 msgid "Disable picture-in-picture popout for screen shares" msgstr "停用螢幕分享的子母畫面彈出視窗" @@ -12629,7 +12624,7 @@ msgstr "不要再推薦「{deviceName}」" #: src/features/moderation/components/report/ReportBreadcrumbs.tsx:31 #: src/features/search/components/search/ChannelFilterSheet.tsx:165 #: src/features/search/components/search/HasFilterSheet.tsx:206 -#: src/features/search/components/search/UserFilterSheet.tsx:175 +#: src/features/search/components/search/UserFilterSheet.tsx:186 msgid "Done" msgstr "完成" @@ -13756,8 +13751,8 @@ msgstr "已啟用" #. Label for an advanced screen-share select. Refers to hardware or software video encoding. #. Settings search synonym. Used to match this term when the user types it in the settings search bar. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:59 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:153 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:136 msgid "Encoder path" msgstr "編碼方式" @@ -13767,7 +13762,7 @@ msgid "Encoder preference for new screen shares." msgstr "新螢幕分享的編碼器偏好設定。" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:173 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:156 msgid "Encoder, SVC, and bitrate presets" msgstr "編碼器、SVC 和位元率預設" @@ -15616,7 +15611,7 @@ msgstr "視窗外框" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:341 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:132 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:133 msgid "Frame rate" msgstr "影格率" @@ -15840,7 +15835,7 @@ msgid "Fully quit and restart {productName} so macOS applies this permission." msgstr "請完全結束並重新啟動 {productName},以便 macOS 套用此權限。" #. 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/VoiceVideoIndex.ts:52 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:51 msgid "Gain control" msgstr "增益控制" @@ -15946,7 +15941,7 @@ msgstr "控制器 Y / 三角" #: src/features/guild/components/modals/guild_tabs/GuildDiscoveryTab.tsx:76 #: src/features/user/components/modals/tabs/UserVideoTabState.ts:24 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:230 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:75 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:76 msgid "Gaming" msgstr "遊戲" @@ -16451,7 +16446,7 @@ msgstr "已授予 {permissions}" msgid "Grants all permissions and bypasses channel restrictions. Highly sensitive." msgstr "授予所有權限並繞過頻道限制。高度敏感。" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:991 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:993 msgid "Granular selection" msgstr "精細選取" @@ -16629,13 +16624,8 @@ msgstr "群組已更新" msgid "Grouping" 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/VoiceVideoIndex.ts:113 -msgid "H.264" -msgstr "H.264" - #. Option label for the screen-share codec select while the HEVC opt-in is off and the option is disabled. H.265 is a codec name and should stay literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:138 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:131 msgid "H.265 (requires opt-in)" msgstr "H.265(需要選擇加入)" @@ -16691,7 +16681,7 @@ msgid "Hardware acceleration can cause rendering glitches with transparent windo msgstr "硬體加速可能會導致透明視窗出現渲染異常。如果出現閃爍或拖影,請嘗試使用 --disable-gpu。" #. 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/VoiceVideoIndex.ts:161 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:144 msgid "Hardware encoder" msgstr "硬體編碼器" @@ -16832,7 +16822,7 @@ msgid "Help translate {PRODUCT_NAME} into your language on <0>{I18N_WEBLATE_DOMA msgstr "協助將 {PRODUCT_NAME} 翻譯成您的語言,請前往 <0>{I18N_WEBLATE_DOMAIN}。" #. Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:105 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:104 msgid "HEVC" msgstr "HEVC" @@ -16995,7 +16985,7 @@ msgid "Hide muted channels by default?" msgstr "預設隱藏已靜音的頻道?" #. Short label for an advanced stream privacy preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:55 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:48 msgid "Hide my stream preview thumbnail" msgstr "隱藏我的直播預覽縮圖" @@ -17014,7 +17004,7 @@ msgstr "隱藏密碼" msgid "Hide picture-in-picture popout?" msgstr "要隱藏子母畫面嗎?" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:768 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:770 msgid "Hide preview thumbnail" msgstr "隱藏預覽縮圖" @@ -17417,11 +17407,11 @@ msgstr "忽略" msgid "Ignore friend request" msgstr "忽略好友邀請" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:981 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:983 msgid "Ignore hardware devices" msgstr "忽略硬體裝置" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:957 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:959 msgid "Ignore input media" msgstr "忽略輸入媒體" @@ -17452,7 +17442,7 @@ msgstr "要忽略來自 {displayName} 的好友邀請嗎?" msgid "Ignore this channel's slowmode cooldown." msgstr "忽略此頻道的慢速模式冷卻時間。" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:968 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:970 msgid "Ignore virtual" msgstr "忽略虛擬裝置" @@ -19067,7 +19057,7 @@ msgid "Layering" msgstr "堆疊層級" #. Description for an SVC mode select. Keep SVC and AV1 literal. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:79 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:72 msgid "Layering for AV1 and VP9 when available." msgstr "適用於 AV1 和 VP9 的分層處理(如果可用)。" @@ -20228,7 +20218,7 @@ msgid "Maximum protection for family-friendly spaces" msgstr "為闔家適宜的空間提供最高等級的保護" #. Settings search entry description for the AV1 and H.265 screen-share opt-in toggles. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:97 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:96 msgid "May cause compatibility issues for viewers. We’re working on improving this." msgstr "可能會導致觀眾出現相容性問題。我們正在努力改善此情況。" @@ -20957,7 +20947,7 @@ msgid "Microphone access was denied. Enable it in your system settings and try a 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/VoiceVideoIndex.ts:56 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:55 msgid "Microphone gain" msgstr "麥克風增益" @@ -21318,7 +21308,7 @@ msgstr "最相關" #: src/features/theme_studio/sections/TokenGroups.ts:102 #: src/features/user/components/modals/tabs/accessibility_tab/AccessibilityTabInline.tsx:31 #: src/features/user/components/modals/tabs/AccessibilityTab.tsx:99 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:108 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:101 #: src/features/user/components/settings_utils/search_index/AccessibilityIndex.ts:297 #: src/features/user/components/settings_utils/section_registry/AccessibilitySections.ts:271 msgid "Motion" @@ -22142,7 +22132,7 @@ msgid "New Mexico" 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/VoiceVideoIndex.ts:20 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:19 msgid "New microphone" msgstr "新的麥克風" @@ -22830,11 +22820,11 @@ msgstr "找不到符合該使用者名稱的使用者。" msgid "No users are currently banned from this community." msgstr "目前沒有使用者在這個社群遭到停權。" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users available" msgstr "沒有可用的使用者" -#: src/features/search/components/search/UserFilterSheet.tsx:127 +#: src/features/search/components/search/UserFilterSheet.tsx:138 msgid "No users found" msgstr "找不到使用者" @@ -23313,7 +23303,7 @@ msgstr "僅適用於寬螢幕。" msgid "Only credit cards are accepted. Debit and prepaid cards cannot be used for the mature content check." msgstr "僅接受信用卡。簽帳金融卡和預付卡無法用於成人內容檢查。" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:946 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:948 msgid "Only default speakers" msgstr "僅限預設揚聲器" @@ -23361,7 +23351,7 @@ msgstr "請僅在您完全了解其作用時,才在此處執行程式碼。" msgid "Only show message previews for DMs with unread messages" msgstr "只顯示有未讀訊息的私訊預覽" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:936 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:938 msgid "Only speakers" msgstr "僅限揚聲器" @@ -23901,21 +23891,6 @@ msgstr "開啟手機訊息應用程式,然後開始新的簡訊。" msgid "Open your settings" msgstr "開啟設定" -#. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:121 -msgid "OpenH264 software codec on Linux" -msgstr "OpenH264 軟體編解碼器(Linux)" - -#. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:109 -msgid "OpenH264 video codec" -msgstr "OpenH264 視訊編解碼器" - -#. Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:42 -msgid "OpenH264 Video Codec provided by Cisco Systems, Inc." -msgstr "Cisco Systems, Inc. 提供的 OpenH264 視訊編解碼器。" - #. Screen-reader-only hint for the Members entry in community settings. The entry receives keyboard focus without automatically opening. #: src/features/app/components/dialogs/components/DesktopGuildSettingsView.tsx:66 msgid "Opens the Members page. Press Space or Enter to open." @@ -24411,7 +24386,7 @@ msgid "Pause invites? New users won't be able to join through invite links until msgstr "要暫停邀請嗎?在您重新啟用之前,新使用者將無法透過邀請連結加入。現有成員不會受到影響。" #. Short label for an advanced screen-share preview preference. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:47 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:40 msgid "Pause my screen share preview in the background" msgstr "在背景暫停我的螢幕分享預覽" @@ -24528,7 +24503,7 @@ msgid "Per-community profiles" 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/VoiceVideoIndex.ts:32 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:31 msgid "Per-device volume" msgstr "裝置音量" @@ -24776,7 +24751,7 @@ msgid "Picture" 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/VoiceVideoIndex.ts:133 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:116 msgid "Picture-in-picture" msgstr "子母畫面" @@ -24906,7 +24881,7 @@ msgid "Pins popout" 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/VoiceVideoIndex.ts:137 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:120 msgid "PiP" msgstr "PiP" @@ -25108,7 +25083,7 @@ msgid "Prefer @mention" msgstr "偏好 @提及" #. Option label for an encoder path select. Refers to hardware video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:67 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:60 msgid "Prefer hardware" msgstr "偏好硬體" @@ -25120,7 +25095,7 @@ msgid "Prefer no @mention" msgstr "偏好不要 @提及" #. Option label for an encoder path select. Refers to software video encoders. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:71 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:64 msgid "Prefer software" msgstr "偏好軟體" @@ -25140,7 +25115,7 @@ msgid "Preferences..." msgstr "偏好設定..." #. Accessible label for the advanced screen-share codec preference select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:125 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:118 msgid "Preferred screen share codec" msgstr "偏好的螢幕分享編解碼器" @@ -25314,7 +25289,7 @@ msgid "Preview sound" msgstr "預覽音效" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:145 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:128 msgid "Preview, popout, and stream thumbnail behavior" msgstr "預覽、彈出視窗和串流縮圖行為" @@ -25644,7 +25619,7 @@ msgid "Prompt" msgstr "提示" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:24 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:23 msgid "Prompt for new audio devices" msgstr "偵測到新音訊裝置時提示" @@ -27659,7 +27634,7 @@ msgstr "調整大小、最大化和視窗貼齊取決於合成器。未啟用用 #. Section header in the stream settings menu for resolution options. #. 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/VoiceVideoSections.ts:206 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:128 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:129 msgid "Resolution" msgstr "解析度" @@ -28352,7 +28327,7 @@ msgstr "需要螢幕錄影權限" #: src/features/user/components/modals/tabs/UserVideoTabState.ts:28 #: src/features/user/components/settings_utils/section_registry/VoiceVideoSections.ts:222 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:234 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:88 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:89 msgid "Screen share" msgstr "螢幕分享" @@ -28372,17 +28347,17 @@ msgid "Screen share audio couldn't start" msgstr "無法啟動螢幕分享音訊" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:68 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:67 msgid "Screen share codec" msgstr "螢幕分享編解碼器" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:149 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:132 msgid "Screen share encoder controls" msgstr "螢幕分享編碼器控制項" #. Title of a modal shown when an active screen share stops unexpectedly. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:119 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:120 msgctxt "screen-share" msgid "Screen share ended" msgstr "螢幕分享已結束" @@ -28398,12 +28373,12 @@ msgid "Screen share is using software encoding ({codec}). Quality may be reduced msgstr "螢幕分享正在使用軟體編碼 ({codec})。畫質可能會降低,且 CPU 使用率會增加。您的 GPU 可能不支援此編解碼器的硬體編碼。" #. 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/VoiceVideoIndex.ts:129 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:112 msgid "Screen share preview" msgstr "螢幕分享預覽" #. Settings search entry label. Names the settings search entry in the settings UI. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:125 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:108 msgid "Screen share preview behavior" msgstr "螢幕分享預覽行為" @@ -28464,7 +28439,7 @@ msgid "Screen sharing" 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/VoiceVideoIndex.ts:72 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:71 msgid "Screen sharing codec" msgstr "螢幕分享編解碼器" @@ -29829,7 +29804,7 @@ msgid "Share screens and windows." msgstr "分享螢幕和視窗。" #. Toggle label for sharing audio with an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:156 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:157 msgid "Share stream audio" msgstr "分享直播音訊" @@ -29909,12 +29884,12 @@ msgid "Sharing personal information" msgstr "分享個人資訊" #. Description for the free-tier Screen share streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:97 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:98 msgid "Sharp text at 720p, up to 30 FPS" msgstr "清晰的 720p 文字,最高 30 FPS" #. Description for the high-tier Screen share streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:92 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:93 msgid "Sharp text at up to 4K, up to 15 FPS" msgstr "最高 4K 畫質,每秒最高 15 張畫面" @@ -30327,7 +30302,7 @@ msgstr "顯示 Neko" #. Settings search entry label. Names the settings search entry in the settings UI. #. Short label for an advanced voice device preference. #: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVoiceControls.tsx:11 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:8 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:7 msgid "Show new device alerts" msgstr "顯示新裝置提醒" @@ -30364,7 +30339,7 @@ msgid "Show password" msgstr "顯示密碼" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:44 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:43 msgid "Show per-device participant volume sliders in voice menus" msgstr "在語音選單中顯示個別裝置的參與者音量滑桿" @@ -30662,7 +30637,7 @@ msgstr "靜音來電" msgid "Silent calls from everyone" msgstr "所有人來電靜音" -#: src/features/voice/components/StreamSettingsMenuContent.tsx:872 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:874 msgid "Silent when the capture device has no audio input of its own" msgstr "當擷取裝置沒有自己的音訊輸入時保持靜音" @@ -30689,7 +30664,7 @@ msgid "Single community mode" msgstr "單一社群模式" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:87 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:80 msgid "Single layer" msgstr "單層" @@ -30975,12 +30950,12 @@ msgid "Smileys" msgstr "表情符號" #. Description for the free-tier Gaming streaming preset. Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:84 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:85 msgid "Smooth 30 FPS at up to 720p" msgstr "流暢的 30 FPS,最高支援 720p" #. Description for the high-tier Gaming streaming preset (Plutonium). Resolution and frame rate are technical tokens. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:79 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:80 msgid "Smooth 60 FPS at up to 1440p" msgstr "流暢的 60 FPS,最高支援 1440p" @@ -31028,7 +31003,7 @@ msgid "Social" 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/VoiceVideoIndex.ts:157 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:140 msgid "Software encoder" msgstr "軟體編碼器" @@ -31258,7 +31233,7 @@ msgstr "音效" #. Short label in the video tab for the native source resolution option. Keep it concise. #: src/features/user/components/modals/tabs/UserVideoTab.tsx:83 #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:250 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:110 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:111 #: src/features/voice/utils/VoiceMessageDescriptors.ts:336 msgid "Source" msgstr "來源" @@ -32047,13 +32022,13 @@ msgstr "已隱藏直播" #. Settings search synonym. Used to match this term when the user types it in the settings search bar. #. Short label in the user settings voice activity card. Keep it concise. #: src/features/user/components/profile/VoiceActivityCard.tsx:90 -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:141 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:124 #: src/features/voice/components/StreamWatchHoverCard.tsx:21 msgid "Stream preview" msgstr "直播預覽" #. Compact submenu label for changing the resolution and frame rate of an active stream. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:152 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:153 msgid "Stream quality" msgstr "直播畫質" @@ -32079,7 +32054,7 @@ msgid "Streaming" msgstr "直播中" #. Section header in the stream settings menu. Picks between Gaming / Screen share / Custom presets. -#: src/features/voice/components/StreamSettingsMenuContent.tsx:124 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:125 msgid "Streaming mode" msgstr "直播模式" @@ -32280,12 +32255,12 @@ msgid "Suspend" 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/VoiceVideoIndex.ts:165 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:148 msgid "SVC" msgstr "SVC" #. Label for an advanced screen-share select. SVC is a WebRTC acronym and should stay uppercase. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:75 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:68 msgid "SVC mode" msgstr "SVC 模式" @@ -32559,7 +32534,7 @@ msgstr "來自 {productName} 團隊的系統公告。您無法在此回覆。" #. Audio device option label meaning the OS default audio input device. #. Footer summary fallback for the default capture-device audio input. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:263 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:140 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:141 msgid "System default" msgstr "系統預設" @@ -32760,7 +32735,7 @@ msgid "Template URL" msgstr "範本網址" #. Option label for an SVC mode select. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:91 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:84 msgid "Temporal layers" msgstr "時間層" @@ -32837,7 +32812,7 @@ msgstr "德克薩斯州" #: src/features/channel/utils/ChannelUtils.tsx:51 #: src/features/lexical/composer/nodes/SlashSlotNode.ts:23 #: src/features/theme_studio/sections/TokenGroups.ts:50 -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:116 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:109 msgid "Text" msgstr "文字" @@ -33247,7 +33222,7 @@ 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:124 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:125 msgctxt "screen-share" msgid "The screen share source stopped sending video, so your screen share was stopped." msgstr "螢幕分享來源已停止傳送視訊,因此您的螢幕分享已停止。" @@ -35774,7 +35749,7 @@ msgstr "未命名群組" #. Fallback label for an audio input device whose name is not reported by the OS. #. Footer summary fallback for an audio input without a reported name. #: src/features/voice/components/modals/ScreenSharePickerModal.tsx:267 -#: src/features/voice/components/StreamSettingsMenuContent.tsx:144 +#: src/features/voice/components/StreamSettingsMenuContent.tsx:145 msgid "Unnamed input" msgstr "未命名的輸入裝置" @@ -36662,7 +36637,7 @@ msgid "Used in communities that do not have their own sound." msgstr "用於沒有專屬音效的社群。" #. Description for a WebRTC content hint select. Custom, Gaming and Screen share are the stream quality preset labels. -#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:99 +#: src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx:92 msgid "Used in Custom mode. The Gaming and Screen share presets set their own hint." msgstr "用於「自訂」模式。遊戲和螢幕共享預設會設定自己的提示。" @@ -37236,12 +37211,12 @@ msgid "Video call unavailable" 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/VoiceVideoIndex.ts:80 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:79 msgid "Video codec" msgstr "視訊編解碼器" #. Settings search entry description. One-line summary of what the settings search entry controls. -#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:84 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:83 msgid "Video codec for screen sharing" msgstr "螢幕分享的視訊編解碼器" @@ -37912,7 +37887,7 @@ msgid "Volume mute" 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/VoiceVideoIndex.ts:40 +#: src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts:39 msgid "Volume sliders" msgstr "音量滑桿" @@ -38466,6 +38441,11 @@ msgstr "要包含的內容" msgid "What to search for." msgstr "要搜尋的內容。" +#. Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error. +#: src/features/voice/components/VoiceParticipantTile.tsx:180 +msgid "What you're sharing isn't updating" +msgstr "您分享的內容沒有更新" + #. Placeholder question in the custom status text field. #. Placeholder question in the custom status text field. #: src/features/user/components/modals/CustomStatusBottomSheet.tsx:40 @@ -39972,7 +39952,7 @@ msgid "Your saved {savedResolution} at {savedFrameRate} FPS needs {premiumProduc msgstr "你儲存的 {savedResolution} @ {savedFrameRate} FPS 需要 {premiumProductName},因此分享會使用 {resolution} @ {frameRate} FPS。" #. Body of a modal shown when the video codec the browser negotiated for an active screen share is outside the codecs the app allows and no allowed codec could be published, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:130 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:131 msgctxt "screen-share" msgid "Your screen share could not be published with a compatible video codec, so it was stopped. Try sharing again." msgstr "由於無法使用相容的視訊編解碼器發布您的螢幕畫面,因此已停止分享。請再試一次。" @@ -40071,7 +40051,7 @@ msgid "Your vanity URL has been set to {inviteEndpoint}/{vanitySlug}" msgstr "您的自訂網址已設為 {inviteEndpoint}/{vanitySlug}" #. Body of a modal shown when the local video encoder produces no frames for an active screen share, which forces the share to stop. -#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:137 +#: src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx:138 msgctxt "screen-share" msgid "Your video encoder stopped encoding frames, so your screen share was stopped. Try sharing again." msgstr "您的視訊編碼器停止編碼影格,因此您的螢幕分享已停止。請重新嘗試分享。" diff --git a/fluxer_app/src/features/user/components/modals/tabs/AdvancedSettingDirectControls.tsx b/fluxer_app/src/features/user/components/modals/tabs/AdvancedSettingDirectControls.tsx index 13330992e..7a877bfa9 100644 --- a/fluxer_app/src/features/user/components/modals/tabs/AdvancedSettingDirectControls.tsx +++ b/fluxer_app/src/features/user/components/modals/tabs/AdvancedSettingDirectControls.tsx @@ -44,7 +44,6 @@ import { UnreadBadgeCustomizationControl, } from '@app/features/user/components/modals/tabs/advanced_settings_tab/AdvancedExperimentalControls'; import { - OpenH264Control, ScreenShareAv1OptInControl, ScreenShareCodecControl, ScreenShareEncoderControls, @@ -91,7 +90,6 @@ export const DIRECT_CONTROL_ITEM_IDS = new Set([ 'voice-video-screen-share-codec', 'voice-video-screen-share-av1-opt-in', 'voice-video-screen-share-hevc-opt-in', - 'voice-video-openh264-codec', 'voice-video-screen-share-preview-behavior', 'voice-video-screen-share-encoder-controls', 'advanced-unread-badge-customization', @@ -129,7 +127,6 @@ export const COMPACT_SWITCH_CONTROL_ITEM_IDS = new Set([ 'chat-settings-hide-muted-channels', 'voice-video-new-device-alerts', 'voice-video-connection-volume-controls', - 'voice-video-openh264-codec', 'voice-video-screen-share-av1-opt-in', 'voice-video-screen-share-hevc-opt-in', 'advanced-unread-badge-customization', @@ -291,10 +288,6 @@ export const AdvancedSettingControl = observer(({item}: {item: SearchableSetting return ( ); - case 'voice-video-openh264-codec': - return ( - - ); case 'voice-video-screen-share-preview-behavior': return ( diff --git a/fluxer_app/src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx b/fluxer_app/src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx index 58637aca2..3450d9998 100644 --- a/fluxer_app/src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx +++ b/fluxer_app/src/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControls.tsx @@ -9,7 +9,6 @@ import {Combobox, type ComboboxOption} from '@app/features/ui/components/form/Fo import {Switch} from '@app/features/ui/components/form/FormSwitch'; import {SwitchGroup, SwitchGroupItem} from '@app/features/ui/components/SwitchGroup'; import PiP from '@app/features/ui/state/PiP'; -import {getElectronAPI, isDesktop} from '@app/features/ui/utils/NativeUtils'; import styles from '@app/features/user/components/modals/tabs/AdvancedSettingsTab.module.css'; import {selectScreenShareEncoderPathDescription} from '@app/features/user/components/modals/tabs/advanced_settings_tab/AdvancedVideoControlsState'; import {CompactComboboxRow} from '@app/features/user/components/modals/tabs/components/CompactComboboxRow'; @@ -31,7 +30,6 @@ import { type HardwareEncodeReport, loadGpuEncoderReport, } from '@app/features/voice/utils/GpuEncoderCapabilities'; -import {setOpenH264Enabled} from '@app/features/voice/utils/OpenH264Status'; import {CODEC_DISPLAY_LABEL} from '@app/features/voice/utils/ScreenShareCodecPolicy'; import {msg} from '@lingui/core/macro'; import {useLingui} from '@lingui/react/macro'; @@ -39,11 +37,6 @@ import {GearIcon} from '@phosphor-icons/react'; import {observer} from 'mobx-react-lite'; import {useCallback, useEffect, useState} from 'react'; -const OPENH264_LABEL_DESCRIPTOR = msg({ - message: 'OpenH264 Video Codec provided by Cisco Systems, Inc.', - comment: - 'Switch label for the OpenH264 codec toggle. "OpenH264" is a product name and "Cisco Systems, Inc." is a company name; do not translate either.', -}); const PAUSE_PREVIEW_BACKGROUND_DESCRIPTOR = msg({ message: 'Pause my screen share preview in the background', comment: 'Short label for an advanced screen-share preview preference.', @@ -226,24 +219,6 @@ export const ScreenShareHevcOptInControl = observer(() => { ); }); -export const OpenH264Control = observer(() => { - const {i18n} = useLingui(); - const handleChange = useCallback((value: boolean) => { - VoiceSettingsCommands.update({openH264Enabled: value}); - void setOpenH264Enabled(value); - }, []); - if (!isDesktop() || getElectronAPI()?.platform !== 'linux') return null; - return ( - - ); -}); - export const ScreenSharePreviewBehaviorControl = observer(() => { const {i18n} = useLingui(); const handleDisableScreenSharePopoutToggle = useCallback((value: boolean) => { diff --git a/fluxer_app/src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts b/fluxer_app/src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts index 92f67bfde..f818d78a2 100644 --- a/fluxer_app/src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts +++ b/fluxer_app/src/features/user/components/settings_utils/search_index/VoiceVideoIndex.ts @@ -1,7 +1,6 @@ // SPDX-License-Identifier: AGPL-3.0-or-later import {PRODUCT_NAME} from '@app/features/app/config/I18nDisplayConstants'; -import {getElectronAPI, isDesktop} from '@app/features/ui/utils/NativeUtils'; import type {SearchableSettingDescriptor} from '@app/features/user/components/settings_utils/search_index/SearchIndexTypes'; import {msg} from '@lingui/core/macro'; @@ -106,22 +105,6 @@ const HEVC_KEYWORD_DESCRIPTOR = msg({ message: 'HEVC', comment: 'Settings search synonym. Codec name; keep literal. Used to match this term in the settings search bar.', }); -const OPENH264_VIDEO_CODEC_DESCRIPTOR = msg({ - message: 'OpenH264 video codec', - comment: 'Settings search entry label. Names the settings search entry in the settings UI.', -}); -const H264_DESCRIPTOR = msg({ - message: 'H.264', - comment: 'Settings search synonym. Used to match this term when the user types it in the settings search bar.', -}); -const CISCO_DESCRIPTOR = msg({ - message: 'Cisco', - comment: 'Settings search synonym. Used to match this term when the user types it in the settings search bar.', -}); -const ENABLE_OPENH264_SOFTWARE_ENCODING_AND_DECODING_ON_LINUX_DESCRIPTOR = msg({ - message: 'OpenH264 software codec on Linux', - comment: 'Settings search entry description. One-line summary of what the settings search entry controls.', -}); const SCREEN_SHARE_PREVIEW_BEHAVIOR_DESCRIPTOR = msg({ message: 'Screen share preview behavior', comment: 'Settings search entry label. Names the settings search entry in the settings UI.', @@ -236,17 +219,6 @@ export const voiceVideoIndex: Array = [ audience: 'advanced', tags: ['media', 'voice'], }, - { - id: 'voice-video-openh264-codec', - tabType: 'voice_video', - sectionId: 'video', - label: OPENH264_VIDEO_CODEC_DESCRIPTOR, - keywords: [H264_DESCRIPTOR, CODEC_DESCRIPTOR, CISCO_DESCRIPTOR], - description: ENABLE_OPENH264_SOFTWARE_ENCODING_AND_DECODING_ON_LINUX_DESCRIPTOR, - audience: 'advanced', - tags: ['media', 'voice'], - isVisible: () => isDesktop() && getElectronAPI()?.platform === 'linux', - }, { id: 'voice-video-screen-share-preview-behavior', tabType: 'voice_video', diff --git a/fluxer_app/src/features/voice/commands/VoiceSettingsCommands.ts b/fluxer_app/src/features/voice/commands/VoiceSettingsCommands.ts index 61cedc367..216cc135f 100644 --- a/fluxer_app/src/features/voice/commands/VoiceSettingsCommands.ts +++ b/fluxer_app/src/features/voice/commands/VoiceSettingsCommands.ts @@ -75,7 +75,6 @@ type VoiceSettingsPatch = Partial<{ screenShareAudioIncludeSources: Array>; screenShareAudioExcludeSources: Array>; screenShareDeviceAudioUsesMicrophone: boolean; - openH264Enabled: boolean; }>; interface VoiceSettingsUpdateOptions { diff --git a/fluxer_app/src/features/voice/components/StreamSettingsMenuContent.tsx b/fluxer_app/src/features/voice/components/StreamSettingsMenuContent.tsx index 1c092e7b8..e8cf518b1 100644 --- a/fluxer_app/src/features/voice/components/StreamSettingsMenuContent.tsx +++ b/fluxer_app/src/features/voice/components/StreamSettingsMenuContent.tsx @@ -51,6 +51,7 @@ import { reconfigureActiveDeviceShareAudio, reconfigureActiveLinuxAppShareAudio, reconfigureActiveLinuxScreenShareAudioLink, + restartActiveScreenShareCapture, scheduleConfiguredScreenShareMutation, stopActiveLinuxScreenShareAudioLink, } from '@app/features/voice/utils/ScreenShareStartFlow'; @@ -311,9 +312,10 @@ export async function pushActiveStreamSettings( displayShareEnvironment: DisplayShareEnvironment, options: PushActiveStreamSettingsOptions = {}, ): Promise { - await scheduleConfiguredScreenShareMutation(() => - runActiveStreamSettingsPush(shareContext, displayShareEnvironment, options), - ); + await scheduleConfiguredScreenShareMutation(async () => { + if (await runActiveStreamSettingsPush(shareContext, displayShareEnvironment, options)) return true; + return restartActiveScreenShareCapture(); + }); } interface StreamSettingsMenuContentProps { diff --git a/fluxer_app/src/features/voice/components/VoiceParticipantTile.tsx b/fluxer_app/src/features/voice/components/VoiceParticipantTile.tsx index 9f59e9c39..9e61228e0 100644 --- a/fluxer_app/src/features/voice/components/VoiceParticipantTile.tsx +++ b/fluxer_app/src/features/voice/components/VoiceParticipantTile.tsx @@ -177,6 +177,11 @@ const COLLAPSE_DEVICES_DESCRIPTOR = msg({ message: 'Collapse devices', comment: 'Tooltip / aria label on a voice participant tile button that collapses expanded device tiles for one user.', }); +const SHARE_NOT_UPDATING_DESCRIPTOR = msg({ + message: "What you're sharing isn't updating", + comment: + 'Informational overlay on your own screen-share tile while the shared screen or window sends no new frames, for example when it is static or minimised. Not an error.', +}); const SCREEN_SHARE_SOURCE = VoiceTrackSource.ScreenShare as Track.Source; function getVoiceMediaGraphSnapshotForTile() { @@ -875,6 +880,14 @@ const VoiceParticipantTileInner = observer(function VoiceParticipantTileInner({ !isFocusedPlaceholderTile && isActiveLocalScreenShareConnection && LocalVoiceState.getSelfStream(); + const showOwnScreenShareCapturePaused = + isOwnScreenShare && + !isFocusedPlaceholderTile && + !isOwnScreenShareHidden && + !isOwnStreamPreviewPaused && + isActiveLocalScreenShareConnection && + LocalVoiceState.getSelfStream() && + MediaEngine.isScreenShareCapturePaused; useScreensharePreviewUploader( shouldUploadOwnScreenSharePreview, streamKey, @@ -1159,6 +1172,35 @@ const VoiceParticipantTileInner = observer(function VoiceParticipantTileInner({ )} + {showOwnScreenShareCapturePaused && ( +
+
+ + + {i18n._(SHARE_NOT_UPDATING_DESCRIPTOR)} + + + {i18n._(YOUR_STREAM_IS_STILL_LIVE_DESCRIPTOR)} + +
+
+ )} {isScreenShare && !isFocusPresentationTile && !isFocusedPlaceholderTile && diff --git a/fluxer_app/src/features/voice/components/useStatsForNerds.ts b/fluxer_app/src/features/voice/components/useStatsForNerds.ts index a6b9a5275..ec9ac61ee 100644 --- a/fluxer_app/src/features/voice/components/useStatsForNerds.ts +++ b/fluxer_app/src/features/voice/components/useStatsForNerds.ts @@ -211,7 +211,6 @@ export function useStatsForNerds({enabled = true}: UseStatsForNerdsOptions = {}) shareDesktopAudio: VoiceSettings.getShareDesktopAudio(), shareAppAudio: VoiceSettings.getShareAppAudio(), muteStreamAudio: VoiceSettings.getMuteStreamAudio(), - openH264Enabled: VoiceSettings.getOpenH264Enabled(), }, screenShareAudioCapture: { nativeCapture: getNativeAudioCaptureDiagnosticState(), diff --git a/fluxer_app/src/features/voice/components/voice_participant_tile/LastFrameSnapshotCache.ts b/fluxer_app/src/features/voice/components/voice_participant_tile/LastFrameSnapshotCache.ts index 0d208a151..00deb0b36 100644 --- a/fluxer_app/src/features/voice/components/voice_participant_tile/LastFrameSnapshotCache.ts +++ b/fluxer_app/src/features/voice/components/voice_participant_tile/LastFrameSnapshotCache.ts @@ -2,27 +2,59 @@ import {videoElementHasRenderedFrame} from '@app/features/voice/components/VideoElementFrameState'; import {Store} from '@app/features/voice/engine/Store'; +import ScreenShareDeliveryRollout from '@app/features/voice/state/ScreenShareDeliveryRollout'; export const LAST_FRAME_SNAPSHOTS_MAX = 8; -export const LAST_FRAME_SNAPSHOT_WIDTH_MAX = 1280; +export const LAST_FRAME_SNAPSHOT_WIDTH_MAX = 640; export const LAST_FRAME_SNAPSHOT_JPEG_QUALITY = 0.7; -function computeSnapshotDimensions(sourceWidth: number, sourceHeight: number): {width: number; height: number} { - if (sourceWidth <= LAST_FRAME_SNAPSHOT_WIDTH_MAX) { +const LAST_FRAME_SNAPSHOT_LEGACY_WIDTH_MAX = 1280; + +function computeSnapshotDimensions( + sourceWidth: number, + sourceHeight: number, + widthMax: number, +): {width: number; height: number} { + if (sourceWidth <= widthMax) { return {width: sourceWidth, height: sourceHeight}; } - const scale = LAST_FRAME_SNAPSHOT_WIDTH_MAX / sourceWidth; + const scale = widthMax / sourceWidth; return { - width: LAST_FRAME_SNAPSHOT_WIDTH_MAX, + width: widthMax, height: Math.max(1, Math.round(sourceHeight * scale)), }; } -function drawSourceToDataUrl(source: CanvasImageSource, sourceWidth: number, sourceHeight: number): string | null { +function drawSourceToOffscreenCanvas( + source: CanvasImageSource, + sourceWidth: number, + sourceHeight: number, + widthMax: number, +): OffscreenCanvas | null { + if (typeof OffscreenCanvas === 'undefined') return null; + if (sourceWidth <= 0 || sourceHeight <= 0) return null; + try { + const {width, height} = computeSnapshotDimensions(sourceWidth, sourceHeight, widthMax); + const canvas = new OffscreenCanvas(width, height); + const context = canvas.getContext('2d'); + if (!context) return null; + context.drawImage(source, 0, 0, width, height); + return canvas; + } catch { + return null; + } +} + +function drawSourceToDataUrl( + source: CanvasImageSource, + sourceWidth: number, + sourceHeight: number, + widthMax: number, +): string | null { if (typeof document === 'undefined') return null; if (sourceWidth <= 0 || sourceHeight <= 0) return null; try { - const {width, height} = computeSnapshotDimensions(sourceWidth, sourceHeight); + const {width, height} = computeSnapshotDimensions(sourceWidth, sourceHeight, widthMax); const canvas = document.createElement('canvas'); canvas.width = width; canvas.height = height; @@ -35,8 +67,17 @@ function drawSourceToDataUrl(source: CanvasImageSource, sourceWidth: number, sou } } +function revokeSnapshotUrl(url: string): void { + if (!url.startsWith('blob:')) return; + try { + URL.revokeObjectURL(url); + } catch {} +} + class LastFrameSnapshotCache extends Store { private snapshots = new Map(); + private captureIds = new Map(); + private nextCaptureId = 1; get size(): number { return this.snapshots.size; @@ -46,42 +87,89 @@ class LastFrameSnapshotCache extends Store { return this.snapshots.get(key) ?? null; } - retainSnapshot(key: string, dataUrl: string): void { - if (!key || !dataUrl) return; + retainSnapshot(key: string, url: string): void { + if (!key || !url) return; + const revoked: Array = []; this.update(() => { - if (this.snapshots.has(key)) { + const previous = this.snapshots.get(key); + if (previous !== undefined) { this.snapshots.delete(key); + revoked.push(previous); } - this.snapshots.set(key, dataUrl); + this.snapshots.set(key, url); while (this.snapshots.size > LAST_FRAME_SNAPSHOTS_MAX) { const oldestKey = this.snapshots.keys().next().value; if (oldestKey === undefined) break; + const oldestUrl = this.snapshots.get(oldestKey); this.snapshots.delete(oldestKey); + if (oldestUrl !== undefined) { + revoked.push(oldestUrl); + } } }); + for (const stale of revoked) { + revokeSnapshotUrl(stale); + } } captureFromVideoElement(key: string, video: HTMLVideoElement | null): void { if (!key) return; + const deliveryEnabled = ScreenShareDeliveryRollout.enabled; + if (deliveryEnabled && typeof document !== 'undefined' && document.visibilityState === 'hidden') return; if (!videoElementHasRenderedFrame(video)) return; const renderedVideo = video as HTMLVideoElement; - const dataUrl = drawSourceToDataUrl(renderedVideo, renderedVideo.videoWidth, renderedVideo.videoHeight); + const widthMax = deliveryEnabled ? LAST_FRAME_SNAPSHOT_WIDTH_MAX : LAST_FRAME_SNAPSHOT_LEGACY_WIDTH_MAX; + if (deliveryEnabled) { + const captureId = this.nextCaptureId; + this.nextCaptureId += 1; + this.captureIds.set(key, captureId); + const canvas = drawSourceToOffscreenCanvas( + renderedVideo, + renderedVideo.videoWidth, + renderedVideo.videoHeight, + widthMax, + ); + if (canvas) { + void canvas + .convertToBlob({type: 'image/jpeg', quality: LAST_FRAME_SNAPSHOT_JPEG_QUALITY}) + .then((blob) => { + if (this.captureIds.get(key) !== captureId) return; + this.captureIds.delete(key); + this.retainSnapshot(key, URL.createObjectURL(blob)); + }) + .catch(() => { + if (this.captureIds.get(key) !== captureId) return; + this.captureIds.delete(key); + }); + return; + } + this.captureIds.delete(key); + } + const dataUrl = drawSourceToDataUrl(renderedVideo, renderedVideo.videoWidth, renderedVideo.videoHeight, widthMax); if (!dataUrl) return; this.retainSnapshot(key, dataUrl); } release(key: string): void { - if (!this.snapshots.has(key)) return; + this.captureIds.delete(key); + const url = this.snapshots.get(key); + if (url === undefined) return; this.update(() => { this.snapshots.delete(key); }); + revokeSnapshotUrl(url); } clear(): void { + this.captureIds.clear(); if (this.snapshots.size === 0) return; + const revoked = [...this.snapshots.values()]; this.update(() => { this.snapshots.clear(); }); + for (const stale of revoked) { + revokeSnapshotUrl(stale); + } } } diff --git a/fluxer_app/src/features/voice/engine/MediaEngineFacade.ts b/fluxer_app/src/features/voice/engine/MediaEngineFacade.ts index c74c4898b..2617a8e3c 100644 --- a/fluxer_app/src/features/voice/engine/MediaEngineFacade.ts +++ b/fluxer_app/src/features/voice/engine/MediaEngineFacade.ts @@ -2204,6 +2204,10 @@ class MediaEngineFacade extends Store { return voiceEngineV2AppScreenShareExecutionAdapter.getActiveScreenShareVideoDeviceId(this.room); } + get isScreenShareCapturePaused(): boolean { + return voiceEngineV2AppScreenShareExecutionAdapter.isScreenShareCapturePaused; + } + async ensureDeviceScreenShareMicPublication(audioDeviceId: string): Promise { return voiceEngineV2AppScreenShareExecutionAdapter.ensureDeviceScreenShareMicPublication(this.room, audioDeviceId); } diff --git a/fluxer_app/src/features/voice/engine/ScreenShareCodecNegotiation.ts b/fluxer_app/src/features/voice/engine/ScreenShareCodecNegotiation.ts index 51de425b6..a7d0c6144 100644 --- a/fluxer_app/src/features/voice/engine/ScreenShareCodecNegotiation.ts +++ b/fluxer_app/src/features/voice/engine/ScreenShareCodecNegotiation.ts @@ -2,17 +2,27 @@ import {getDesktopTroubleshootingSettings} from '@app/features/devtools/utils/DesktopTroubleshootingUtils'; import {Logger} from '@app/features/platform/utils/AppLogger'; +import { + getVoiceConnectionContextFromMediaEngine, + getVoiceStateByConnectionIdFromMediaEngine, +} from '@app/features/voice/engine/VoiceMediaEngineBridge'; +import {getStreamKeyForParticipantIdentity} from '@app/features/voice/engine/VoiceStreamWatchState'; +import { + getLocalScreenShareVideoPublications, + isLiveLocalTrackPublication, +} from '@app/features/voice/engine/VoiceTrackPublicationUtils'; +import ScreenShareDeliveryRollout from '@app/features/voice/state/ScreenShareDeliveryRollout'; import VoiceSettings from '@app/features/voice/state/VoiceSettings'; import { buildScreenShareCodecProfile, type CodecPreference, isVideoCodecAllowedForPublish, + type ScreenShareEncoderMode, selectNativeScreenCaptureScreenShareCodec, selectOptimalScreenShareCodec, } from '@app/features/voice/utils/CodecCapabilityDetector'; import {loadGpuEncoderReport} from '@app/features/voice/utils/GpuEncoderCapabilities'; import {loadNativeHardwareEncoderCapabilities} from '@app/features/voice/utils/NativeHardwareEncoderCapabilities'; -import {loadOpenH264Status} from '@app/features/voice/utils/OpenH264Status'; import { buildScreenShareCodecAdvertisements, CODEC_PREFERENCE, @@ -25,9 +35,11 @@ import { type FluxerVideoCodecName, getDecodeSet, getEncodeSet, + isScreenShareCodecUpgrade, type NegotiationReason, rankScreenShareCodecs, SCREEN_SHARE_CODEC_ADVERTISEMENT_GRACE_MS, + SCREEN_SHARE_CODEC_CHANGE_SUPPRESSION_MS, VIDEO_CODEC_NAMES, } from '@app/features/voice/utils/ScreenShareCodecSelection'; import { @@ -35,7 +47,8 @@ import { getVideoDecoderExclusionsSync, loadVideoDecoderExclusions, } from '@app/features/voice/utils/VideoDecoderCapabilities'; -import type {Participant, Room, VideoCodec} from 'livekit-client'; +import {parseVoiceParticipantIdentity} from '@app/features/voice/utils/VoiceParticipantIdentity'; +import type {LocalTrackPublication, Participant, Room, VideoCodec} from 'livekit-client'; import {RoomEvent} from 'livekit-client'; import {assign, initialTransition, type SnapshotFrom, setup, transition} from 'xstate'; @@ -91,6 +104,7 @@ type ScreenShareCodecNegotiationMachineEvent = unknownParticipants: number; reason: NegotiationReason; codecPreference: ReadonlyArray; + publishedCodec: VideoCodec | null; } | {type: 'negotiation.reset'}; @@ -145,20 +159,29 @@ export function getScreenShareCodecPreferenceOrder( }).order; } -export function buildLocalCodecAdvertisements(): Array { - return buildScreenShareCodecAdvertisements(getScreenShareCodecPreferenceOrder(), getLocalDecodeCapabilities()); +export function buildLocalCodecAdvertisements( + order: ReadonlyArray = getScreenShareCodecPreferenceOrder(), +): Array { + return buildScreenShareCodecAdvertisements(order, getLocalDecodeCapabilities()); } function evaluateScreenShareCodecNegotiation( event: Extract, ): CodecNegotiationSelection { + const negotiated = computeNegotiatedVideoCodec( + event.localCodecs, + event.remoteCodecs, + event.unknownParticipants, + event.codecPreference, + ); + const publishedCodec = event.publishedCodec; + const codec = + publishedCodec !== null && isScreenShareCodecUpgrade(event.codecPreference, publishedCodec, negotiated.codec) + ? publishedCodec + : negotiated.codec; return { - ...computeNegotiatedVideoCodec( - event.localCodecs, - event.remoteCodecs, - event.unknownParticipants, - event.codecPreference, - ), + ...negotiated, + codec, reason: event.reason, }; } @@ -329,6 +352,15 @@ class ScreenShareCodecNegotiation { private mediaSessionId = createId('media'); private negotiationSnapshot = createScreenShareCodecNegotiationSnapshot(); private bindingRevision = 0; + private frozenCodecPreference: { + preference: CodecPreference; + encoderMode: ScreenShareEncoderMode; + order: ReadonlyArray; + } | null = null; + private frozenDelivery: {trackSid: string; enabled: boolean} | null = null; + private lastCodecChangeAt = 0; + private suppressionTimer: ReturnType | null = null; + private publishedTrackSid: string | null = null; private onSelectionChanged: ((room: Room, codec: VideoCodec, reason: NegotiationReason) => void) | null = null; getSelectedCodec(): VideoCodec | null { @@ -380,7 +412,7 @@ class ScreenShareCodecNegotiation { } private canLocalEncode(codec: VideoCodec): boolean { - if (this.localCodecs.length === 0) this.localCodecs = buildLocalCodecAdvertisements(); + this.ensureLocalCodecAdvertisements(); return getEncodeSet(this.localCodecs).has(codec); } @@ -403,28 +435,101 @@ class ScreenShareCodecNegotiation { ) { return this.selectedCodec; } - if (this.localCodecs.length === 0) this.localCodecs = buildLocalCodecAdvertisements(); + this.ensureLocalCodecAdvertisements(); const {knownRemoteCodecs, unknownParticipants} = this.getRemoteCodecInputs(); const negotiated = computeNegotiatedVideoCodec( this.localCodecs, knownRemoteCodecs, unknownParticipants, - getScreenShareCodecPreferenceOrder(preference), + this.resolveCodecPreferenceOrder(preference), ); if (getEncodeSet(this.localCodecs).has(negotiated.codec)) return negotiated.codec; return selector(preference); } + private ensureLocalCodecAdvertisements(): void { + if (this.localCodecs.length > 0) return; + this.localCodecs = buildLocalCodecAdvertisements(this.resolveCodecPreferenceOrder()); + } + + private resolveScreenShareDelivery(room: Room | null = this.room): boolean { + const trackSid = this.getLocalScreenSharePublication(room)?.trackSid ?? null; + if (trackSid === null) { + this.frozenDelivery = null; + return ScreenShareDeliveryRollout.enabled; + } + if (this.frozenDelivery?.trackSid === trackSid) return this.frozenDelivery.enabled; + const enabled = ScreenShareDeliveryRollout.enabled; + this.frozenDelivery = {trackSid, enabled}; + return enabled; + } + + private resolveCodecPreferenceOrder( + preference: CodecPreference = VoiceSettings.getPreferredScreenShareCodec(), + ): ReadonlyArray { + if (!this.resolveScreenShareDelivery()) return getScreenShareCodecPreferenceOrder(preference); + const encoderMode = VoiceSettings.getScreenShareEncoderMode(); + const frozen = this.frozenCodecPreference; + if ( + frozen !== null && + frozen.preference === preference && + frozen.encoderMode === encoderMode && + this.getLocalScreenSharePublication() !== null + ) { + return frozen.order; + } + const order = getScreenShareCodecPreferenceOrder(preference); + this.frozenCodecPreference = {preference, encoderMode, order}; + return order; + } + + private getLocalScreenSharePublication(room: Room | null = this.room): LocalTrackPublication | null { + const participant = room?.localParticipant; + if (!participant) return null; + return getLocalScreenShareVideoPublications(participant).find(isLiveLocalTrackPublication) ?? null; + } + + private observePublishedScreenShareCodec(room: Room | null = this.room): VideoCodec | null { + const publication = this.getLocalScreenSharePublication(room); + const trackSid = publication?.trackSid ?? null; + if (trackSid !== this.publishedTrackSid) { + this.publishedTrackSid = trackSid; + if (trackSid !== null) this.armCodecChangeSuppression(); + } + if (!publication) return null; + return (publication as {options?: {videoCodec?: VideoCodec}}).options?.videoCodec ?? null; + } + + private getScreenShareViewerIdentities(room: Room | null): ReadonlySet | null { + const localIdentity = room?.localParticipant?.identity; + if (!localIdentity || this.getLocalScreenSharePublication(room) === null) return null; + const context = getVoiceConnectionContextFromMediaEngine(); + if (!context) return null; + const streamKey = getStreamKeyForParticipantIdentity(context.guildId, context.channelId, localIdentity); + if (!streamKey) return null; + const viewers = new Set(); + for (const participant of room?.remoteParticipants.values() ?? []) { + const {connectionId} = parseVoiceParticipantIdentity(participant.identity); + const viewerStreamKeys = getVoiceStateByConnectionIdFromMediaEngine(connectionId)?.viewer_stream_keys; + if (viewerStreamKeys === undefined || viewerStreamKeys.includes(streamKey)) { + viewers.add(participant.identity); + } + } + return viewers; + } + private getRemoteCodecInputs(room: Room | null = this.room): { knownRemoteCodecs: Array>; unknownParticipants: number; } { const now = Date.now(); + const viewerIdentities = this.resolveScreenShareDelivery(room) ? this.getScreenShareViewerIdentities(room) : null; const knownRemoteCodecs: Array> = []; const participants: Array<{identity: string; firstSeenAt: number}> = []; for (const participant of room?.remoteParticipants.values() ?? []) { const firstSeenAt = this.remoteFirstSeenAt.get(participant.identity) ?? now; this.remoteFirstSeenAt.set(participant.identity, firstSeenAt); + if (viewerIdentities !== null && !viewerIdentities.has(participant.identity)) continue; participants.push({identity: participant.identity, firstSeenAt}); const codecs = this.remoteCodecsByIdentity.get(participant.identity); if (codecs) knownRemoteCodecs.push(codecs); @@ -439,6 +544,25 @@ class ScreenShareCodecNegotiation { }; } + private armCodecChangeSuppression(): void { + this.lastCodecChangeAt = Date.now(); + } + + private clearSuppressionTimer(): void { + if (this.suppressionTimer === null) return; + clearTimeout(this.suppressionTimer); + this.suppressionTimer = null; + } + + private scheduleSuppressedReevaluation(room: Room, reason: NegotiationReason, bindingRevision: number): void { + if (this.suppressionTimer !== null) return; + const remaining = Math.max(this.lastCodecChangeAt + SCREEN_SHARE_CODEC_CHANGE_SUPPRESSION_MS - Date.now(), 0); + this.suppressionTimer = setTimeout(() => { + this.suppressionTimer = null; + void this.updateSelection(room, reason, bindingRevision); + }, remaining); + } + private scheduleGraceReevaluations(room: Room, bindingRevision: number): void { const now = Date.now(); for (const participant of room.remoteParticipants.values()) { @@ -515,6 +639,11 @@ class ScreenShareCodecNegotiation { this.room = null; this.selectedCodec = null; this.localCodecs = []; + this.frozenCodecPreference = null; + this.frozenDelivery = null; + this.lastCodecChangeAt = 0; + this.publishedTrackSid = null; + this.clearSuppressionTimer(); for (const timer of this.graceTimers.values()) clearTimeout(timer); this.graceTimers.clear(); this.remoteCodecsByIdentity.clear(); @@ -534,6 +663,7 @@ class ScreenShareCodecNegotiation { async refreshSelection(room: Room | null = this.room): Promise { if (!room) return null; + this.frozenCodecPreference = null; return await this.updateSelection(room, 'manual', this.bindingRevision); } @@ -548,18 +678,18 @@ class ScreenShareCodecNegotiation { loadGpuEncoderReport(), loadNativeHardwareEncoderCapabilities(), loadVideoDecoderExclusions(), - loadOpenH264Status(), getDesktopTroubleshootingSettings(), ]); if (!this.isBindingCurrent(room, bindingRevision)) return null; - this.localCodecs = buildLocalCodecAdvertisements(); + if (reason === 'manual') this.frozenCodecPreference = null; + this.localCodecs = buildLocalCodecAdvertisements(this.resolveCodecPreferenceOrder()); await this.publishSelectProtocol(room); if (!this.isBindingCurrent(room, bindingRevision)) return null; return await this.updateSelection(room, reason, bindingRevision); } private async publishSelectProtocol(room: Room): Promise { - if (this.localCodecs.length === 0) this.localCodecs = buildLocalCodecAdvertisements(); + this.ensureLocalCodecAdvertisements(); const message: FluxerSelectProtocolMessage = { op: SELECT_PROTOCOL_OP, d: { @@ -609,7 +739,7 @@ class ScreenShareCodecNegotiation { bindingRevision: number, ): Promise { if (!room.localParticipant || !this.isBindingCurrent(room, bindingRevision)) return null; - if (this.localCodecs.length === 0) this.localCodecs = buildLocalCodecAdvertisements(); + this.ensureLocalCodecAdvertisements(); if (reason === 'participant-disconnected' && room.remoteParticipants.size === 0 && this.selectedCodec) { logger.debug('Keeping active screen share codec after last viewer disconnected', { codec: this.selectedCodec, @@ -619,18 +749,37 @@ class ScreenShareCodecNegotiation { const {knownRemoteCodecs, unknownParticipants} = this.getRemoteCodecInputs(room); this.scheduleGraceReevaluations(room, bindingRevision); const previousCodec = this.selectedCodec; + const delivery = this.resolveScreenShareDelivery(room); this.negotiationSnapshot = transitionScreenShareCodecNegotiationSnapshot(this.negotiationSnapshot, { type: 'negotiation.evaluate', localCodecs: this.localCodecs, remoteCodecs: knownRemoteCodecs, unknownParticipants, reason, - codecPreference: getScreenShareCodecPreferenceOrder(), + codecPreference: this.resolveCodecPreferenceOrder(), + publishedCodec: delivery ? this.observePublishedScreenShareCodec(room) : null, }); const selection = this.negotiationSnapshot.context.selection; if (!selection) return null; + if (selection.codec === previousCodec) { + this.selectedCodec = selection.codec; + return selection; + } + if ( + delivery && + previousCodec !== null && + Date.now() - this.lastCodecChangeAt < SCREEN_SHARE_CODEC_CHANGE_SUPPRESSION_MS + ) { + logger.debug('Suppressed a screen share codec change inside the change window', { + codec: selection.codec, + previousCodec, + reason, + }); + this.scheduleSuppressedReevaluation(room, reason, bindingRevision); + return selection; + } this.selectedCodec = selection.codec; - if (selection.codec === previousCodec) return selection; + if (delivery) this.armCodecChangeSuppression(); this.mediaSessionId = createId('media'); logger.info('Selected screen share codec from XState capability intersection', selection); await this.publishSessionUpdate(room, selection); diff --git a/fluxer_app/src/features/voice/engine/VoiceGatewayStateMachine.test.ts b/fluxer_app/src/features/voice/engine/VoiceGatewayStateMachine.test.ts index 8b5a0038b..09c65b05f 100644 --- a/fluxer_app/src/features/voice/engine/VoiceGatewayStateMachine.test.ts +++ b/fluxer_app/src/features/voice/engine/VoiceGatewayStateMachine.test.ts @@ -9,7 +9,12 @@ import { type VoiceGatewayStateEvent, type VoiceGatewayStateSnapshot, } from '@app/features/voice/engine/VoiceGatewayStateMachine'; -import {describe, expect, it} from 'vitest'; +import {describe, expect, it, vi} from 'vitest'; + +vi.mock('@app/features/voice/state/ScreenShareDeliveryRollout', () => ({ + ScreenShareDeliveryRollout: {enabled: false}, + default: {enabled: false}, +})); function voiceState(overrides: Partial = {}): VoiceState { return { diff --git a/fluxer_app/src/features/voice/engine/VoiceMediaGraphSimulation.test.ts b/fluxer_app/src/features/voice/engine/VoiceMediaGraphSimulation.test.ts index d5e675a00..c4bef4c86 100644 --- a/fluxer_app/src/features/voice/engine/VoiceMediaGraphSimulation.test.ts +++ b/fluxer_app/src/features/voice/engine/VoiceMediaGraphSimulation.test.ts @@ -19,7 +19,12 @@ import { type VoiceMediaGraphStreamTileState, } from '@app/features/voice/engine/VoiceMediaGraphTileState'; import {VoiceTrackSource} from '@app/features/voice/engine/VoiceTrackSource'; -import {describe, expect, it} from 'vitest'; +import {describe, expect, it, vi} from 'vitest'; + +vi.mock('@app/features/voice/state/ScreenShareDeliveryRollout', () => ({ + ScreenShareDeliveryRollout: {enabled: false}, + default: {enabled: false}, +})); const SIMULATION_SEEDS: ReadonlyArray = Array.from({length: 20}, (_, index) => 1 + index * 7919); const SIMULATION_STEP_COUNT = 1000; diff --git a/fluxer_app/src/features/voice/engine/VoiceMediaGraphStats.ts b/fluxer_app/src/features/voice/engine/VoiceMediaGraphStats.ts index 4fd60c94b..0c6f5159f 100644 --- a/fluxer_app/src/features/voice/engine/VoiceMediaGraphStats.ts +++ b/fluxer_app/src/features/voice/engine/VoiceMediaGraphStats.ts @@ -11,6 +11,7 @@ import { voiceMediaGraphStatsTrackKey, } from '@app/features/voice/engine/VoiceMediaGraphStatsObservations'; import type {VoiceTrackSource} from '@app/features/voice/engine/VoiceTrackSource'; +import ScreenShareDeliveryRollout from '@app/features/voice/state/ScreenShareDeliveryRollout'; import type {VoiceEngineV2PerTrackStats} from '@fluxer/voice_engine_v2'; const VOICE_MEDIA_GRAPH_STATS_TRACK_LIMIT = 1024; @@ -76,7 +77,9 @@ function perTrackStatToInfo(track: VoiceEngineV2PerTrackStats): VoiceMediaGraphP if (track.kind !== 'video') return null; const width = track.frameWidth ?? track.sourceFrameWidth; const height = track.frameHeight ?? track.sourceFrameHeight; - const fps = track.effectiveFramesPerSecond ?? track.framesPerSecond ?? track.sourceFramesPerSecond; + const fps = ScreenShareDeliveryRollout.enabled + ? (track.effectiveFramesPerSecond ?? track.framesPerSecond) + : (track.effectiveFramesPerSecond ?? track.framesPerSecond ?? track.sourceFramesPerSecond); const info: VoiceMediaGraphPartialTrackInfo = {}; if (isPositiveDimension(width) && isPositiveDimension(height)) { info.width = width; @@ -190,7 +193,9 @@ function observationToPartialTrackInfo( ): VoiceMediaGraphPartialTrackInfo | null { const width = observation.width ?? observation.sourceWidth ?? undefined; const height = observation.height ?? observation.sourceHeight ?? undefined; - const fps = observation.fps ?? observation.sourceFps ?? undefined; + const fps = ScreenShareDeliveryRollout.enabled + ? (observation.fps ?? undefined) + : (observation.fps ?? observation.sourceFps ?? undefined); const info: VoiceMediaGraphPartialTrackInfo = {}; if (isPositiveDimension(width) && isPositiveDimension(height)) { info.width = width; diff --git a/fluxer_app/src/features/voice/engine/VoiceRoomEventBinder.ts b/fluxer_app/src/features/voice/engine/VoiceRoomEventBinder.ts index 30d10d388..752e4722c 100644 --- a/fluxer_app/src/features/voice/engine/VoiceRoomEventBinder.ts +++ b/fluxer_app/src/features/voice/engine/VoiceRoomEventBinder.ts @@ -16,8 +16,9 @@ import { } from '@app/features/voice/engine/VoiceStreamWatchState'; import {VoiceTrackSource} from '@app/features/voice/engine/VoiceTrackSource'; import ParticipantVolume from '@app/features/voice/state/ParticipantVolume'; +import ScreenShareDeliveryRollout from '@app/features/voice/state/ScreenShareDeliveryRollout'; import {ScreenShareWatchErrorCode, ScreenShareWatchFailures} from '@app/features/voice/state/ScreenShareWatchFailures'; -import {scheduleScreenShareDecoderVerification} from '@app/features/voice/utils/ScreenShareCodecDiagnostics'; +import {monitorScreenShareDecodeHealth} from '@app/features/voice/utils/ScreenShareCodecDiagnostics'; import {markScreenShareDecodeFailure} from '@app/features/voice/utils/VideoDecoderCapabilities'; import {parseVoiceParticipantIdentity} from '@app/features/voice/utils/VoiceParticipantIdentity'; import type { @@ -140,8 +141,9 @@ export function bindRoomEvents( dependencies: RoomEventDependencies, ): void { const guard = dependencies.connection.createGuardedHandler; + const screenShareDeliveryEnabled = ScreenShareDeliveryRollout.enabled; const participantSpeakingDisposers = new Map(); - const screenShareDecoderVerificationCancels = new Map void>(); + const screenShareDecodeMonitorCancels = new Map void>(); const remoteTrackLifecycleDisposers = new Map void>(); let codecNegotiationDisposer: (() => void) | null = null; let screenShareMigrationDisposer: (() => void) | null = null; @@ -228,18 +230,18 @@ export function bindRoomEvents( reason, }); }; - const clearScreenShareDecoderVerification = (trackSid: string | undefined): void => { + const clearScreenShareDecodeMonitor = (trackSid: string | undefined): void => { if (!trackSid) return; - const cancel = screenShareDecoderVerificationCancels.get(trackSid); + const cancel = screenShareDecodeMonitorCancels.get(trackSid); if (!cancel) return; cancel(); - screenShareDecoderVerificationCancels.delete(trackSid); + screenShareDecodeMonitorCancels.delete(trackSid); }; - const clearAllScreenShareDecoderVerifications = (): void => { - for (const cancel of screenShareDecoderVerificationCancels.values()) { + const clearAllScreenShareDecodeMonitors = (): void => { + for (const cancel of screenShareDecodeMonitorCancels.values()) { cancel(); } - screenShareDecoderVerificationCancels.clear(); + screenShareDecodeMonitorCancels.clear(); }; const bindCodecNegotiation = (): void => { codecNegotiationDisposer?.(); @@ -268,17 +270,13 @@ export function bindRoomEvents( unbindCodecNegotiation(); unbindScreenShareMigration(); }; - const scheduleDecoderVerification = (track: RemoteTrack, pub: RemoteTrackPublication): void => { + const monitorDecodeHealth = (track: RemoteTrack, pub: RemoteTrackPublication): void => { if (pub.source !== Track.Source.ScreenShare || pub.kind !== Track.Kind.Video) return; - clearScreenShareDecoderVerification(pub.trackSid); - const trackSid = pub.trackSid; - screenShareDecoderVerificationCancels.set( - trackSid, - scheduleScreenShareDecoderVerification( + clearScreenShareDecodeMonitor(pub.trackSid); + screenShareDecodeMonitorCancels.set( + pub.trackSid, + monitorScreenShareDecodeHealth( () => track.getRTCStatsReport(), - () => { - screenShareDecoderVerificationCancels.delete(trackSid); - }, (failure) => { if (!markScreenShareDecodeFailure(failure.codec, 'screen-share-decode-stalled')) return; void ScreenShareCodecNegotiation.publishLocalCapabilities(room, 'manual').catch((error) => { @@ -362,7 +360,7 @@ export function bindRoomEvents( participantSpeakingDisposers.forEach(({dispose}) => dispose()); participantSpeakingDisposers.clear(); unbindScreenShareNegotiation(); - clearAllScreenShareDecoderVerifications(); + clearAllScreenShareDecodeMonitors(); clearAllRemoteTrackLifecycleBindings(); dependencies.remoteSpeaking.clear(); dependencies.mediaState.resetLocalMediaState('room_disconnect'); @@ -445,8 +443,10 @@ export function bindRoomEvents( trackSid: pub.trackSid, }); } - applyInteractiveReceiverBuffer(track, pub); - scheduleDecoderVerification(track, pub); + if (!screenShareDeliveryEnabled) { + applyInteractiveReceiverBuffer(track, pub); + } + monitorDecodeHealth(track, pub); dependencies.remoteSpeaking.attachIfApplicable(participant, pub, track); bindRemoteTrackLifecycleIfApplicable(participant, pub, track); if (!participant.isLocal && pub.source === Track.Source.ScreenShare) { @@ -461,7 +461,7 @@ export function bindRoomEvents( room.on( RoomEvent.TrackUnsubscribed, guard(attemptId, (_t: RemoteTrack, pub: RemoteTrackPublication, p: Participant) => { - clearScreenShareDecoderVerification(pub.trackSid); + clearScreenShareDecodeMonitor(pub.trackSid); unbindRemoteTrackLifecycleIfApplicable(pub); dependencies.remoteSpeaking.detachIfTrackMatches(p, pub); if (!p.isLocal && pub.source === Track.Source.ScreenShare) { @@ -497,7 +497,7 @@ export function bindRoomEvents( room.on( RoomEvent.TrackUnpublished, guard(attemptId, (pub: RemoteTrackPublication, p: Participant) => { - clearScreenShareDecoderVerification(pub.trackSid); + clearScreenShareDecodeMonitor(pub.trackSid); if (!p.isLocal && pub.source === Track.Source.ScreenShare) { const replacementPublication = ScreenSharePublicationMigration.selectScreenSharePublication(p); if (replacementPublication) { diff --git a/fluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppConnectionHostAdapter.ts b/fluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppConnectionHostAdapter.ts index e063b38bb..28b978d70 100644 --- a/fluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppConnectionHostAdapter.ts +++ b/fluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppConnectionHostAdapter.ts @@ -37,13 +37,18 @@ import { isReadyToRepublishTrack, } from '@app/features/voice/engine/v2/VoiceEngineV2AppAdapterAssertions'; import {VoiceEngineV2AppReconnectPolicy} from '@app/features/voice/engine/v2/VoiceEngineV2AppReconnectPolicy'; +import ScreenShareDeliveryRollout from '@app/features/voice/state/ScreenShareDeliveryRollout'; import VoiceRegionTeleport from '@app/features/voice/state/VoiceRegionTeleport'; import { findVideoPublishCodecPolicyViolation, getRoomVideoPublishDefaults, } from '@app/features/voice/utils/CodecCapabilityDetector'; +import {getH264HardwareProfilesSync} from '@app/features/voice/utils/GpuEncoderCapabilities'; import {setNoiseSuppressionScopeGuildId} from '@app/features/voice/utils/noise_suppression/NoiseSuppressionSelection'; -import {SCREEN_SHARE_MAX_VIDEO_BITRATE_BPS} from '@app/features/voice/utils/ScreenShareOptions'; +import { + SCREEN_SHARE_DELIVERY_MAX_VIDEO_BITRATE_BPS, + SCREEN_SHARE_MAX_VIDEO_BITRATE_BPS, +} from '@app/features/voice/utils/ScreenShareOptions'; import { clearScreenShareDecodeFailures, getVideoDecoderExclusionsSync, @@ -145,7 +150,13 @@ function createWebAudioMixOption(): RoomOptions['webAudioMix'] { function createRoomPublishDefaults(): RoomOptions['publishDefaults'] { return { - screenShareEncoding: {maxBitrate: SCREEN_SHARE_MAX_VIDEO_BITRATE_BPS, maxFramerate: 30, priority: 'high'}, + screenShareEncoding: { + maxBitrate: ScreenShareDeliveryRollout.enabled + ? SCREEN_SHARE_DELIVERY_MAX_VIDEO_BITRATE_BPS + : SCREEN_SHARE_MAX_VIDEO_BITRATE_BPS, + maxFramerate: 30, + priority: 'high', + }, ...getRoomVideoPublishDefaults(), }; } @@ -153,6 +164,7 @@ function createRoomPublishDefaults(): RoomOptions['publishDefaults'] { function createRoomOptions( e2eeKey: string | null, subscriberVideoCodecExclusions: RoomOptions['subscriberVideoCodecExclusions'], + screenShareDelivery: boolean, ): { roomOptions: RoomOptions; e2eeKeyProvider: ExternalE2EEKeyProvider | null; @@ -164,6 +176,8 @@ function createRoomOptions( webAudioMix: createWebAudioMixOption(), publishDefaults: createRoomPublishDefaults(), subscriberVideoCodecExclusions, + screenShareDelivery, + h264HardwareProfiles: screenShareDelivery ? getH264HardwareProfilesSync()?.profiles : undefined, }; let e2eeKeyProvider: ExternalE2EEKeyProvider | null = null; let e2eeWorker: Worker | null = null; @@ -182,12 +196,12 @@ function createRoomOptions( return {roomOptions, e2eeKeyProvider, e2eeWorker}; } -function createRoomConnectOptions(): RoomConnectOptions { +function createRoomConnectOptions(screenShareDelivery: boolean): RoomConnectOptions { const connectOptions: RoomConnectOptions = { autoSubscribe: false, }; assert.equal(connectOptions.autoSubscribe, false, 'LiveKit connect options must not auto-subscribe'); - if (isElectronPlatform()) { + if (!screenShareDelivery && isElectronPlatform()) { connectOptions.rtcConfig = {iceTransportPolicy: 'relay'}; assert.equal( connectOptions.rtcConfig.iceTransportPolicy, @@ -550,7 +564,12 @@ export class VoiceEngineV2AppConnectionHostAdapter extends Store { logger.warn('Aborting LiveKit room creation after codec probing because attempt is stale', {attemptId}); return; } - const {roomOptions, e2eeKeyProvider, e2eeWorker} = createRoomOptions(e2eeKey, subscriberVideoCodecExclusions); + const screenShareDelivery = ScreenShareDeliveryRollout.enabled; + const {roomOptions, e2eeKeyProvider, e2eeWorker} = createRoomOptions( + e2eeKey, + subscriberVideoCodecExclusions, + screenShareDelivery, + ); const room = new LiveKitRoom(roomOptions); ownE2EEWorker(room, e2eeWorker); let roomClosed = false; @@ -583,7 +602,7 @@ export class VoiceEngineV2AppConnectionHostAdapter extends Store { return; } logger.info('Attempting to connect to LiveKit', {endpoint, guildId, channelId: resolvedChannelId}); - const connectOptions = createRoomConnectOptions(); + const connectOptions = createRoomConnectOptions(screenShareDelivery); room .connect(endpoint, token, connectOptions) .then(() => { @@ -685,12 +704,14 @@ export class VoiceEngineV2AppConnectionHostAdapter extends Store { const connectionId = raw.connection_id ?? null; this.abortHotSwap(); const cachedExclusions = getVideoDecoderExclusionsSync(); + const screenShareDelivery = ScreenShareDeliveryRollout.enabled; const roomOptions: RoomOptions = { adaptiveStream: false, dynacast: true, webAudioMix: createWebAudioMixOption(), publishDefaults: createRoomPublishDefaults(), subscriberVideoCodecExclusions: cachedExclusions && cachedExclusions.length > 0 ? cachedExclusions : undefined, + screenShareDelivery, }; if (!this.isLatestConnectionAttempt(attemptId) || this.connectionState.room !== existingRoom) { logger.warn('Region hot-swap: aborted before room creation because attempt is stale', {attemptId}); @@ -707,7 +728,7 @@ export class VoiceEngineV2AppConnectionHostAdapter extends Store { this.abortHotSwap(); } }); - const connectOptions = createRoomConnectOptions(); + const connectOptions = createRoomConnectOptions(screenShareDelivery); logger.info('Region hot-swap: connecting to new endpoint', {endpoint, guildId, channelId}); newRoom .connect(endpoint, token, connectOptions) diff --git a/fluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx b/fluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx index 03d92acb4..5bffad5aa 100644 --- a/fluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx +++ b/fluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppScreenShareExecutionAdapter.tsx @@ -63,6 +63,7 @@ import ActiveScreenShareSource, { type PublishedScreenShareSource, } from '@app/features/voice/state/ActiveScreenShareSource'; import LocalVoiceState from '@app/features/voice/state/LocalVoiceState'; +import ScreenShareDeliveryRollout from '@app/features/voice/state/ScreenShareDeliveryRollout'; import VoiceSettings from '@app/features/voice/state/VoiceSettings'; import { prepareHighFidelityScreenShareAudioTrack, @@ -141,10 +142,12 @@ const SCREEN_SHARE_ENCODER_FAILED_DESCRIPTOR = msg({ context: 'screen-share', }); -type ScreenShareVideoConstraints = MediaTrackConstraints & { - colorSpace?: string; - cursor?: 'always' | 'motion' | 'never'; -}; +type ScreenShareCaptureGeometryUpdate = 'unchanged' | 'applied' | 'failed' | 'needs-capture-restart'; + +function screenShareSourceHasClonedTracks(track: LocalVideoTrack): boolean { + const simulcastCodecs = (track as LocalVideoTrack & {simulcastCodecs?: Map}).simulcastCodecs; + return (simulcastCodecs?.size ?? 0) > 0; +} export interface ScreenShareSourceSnapshot { publishedSource: PublishedScreenShareSource | null; @@ -179,6 +182,8 @@ class VoiceEngineV2AppScreenShareExecutionAdapter extends Store { private endedScreenShareStopInFlight: Promise | null = null; encoderVerificationTimer: (() => void) | null = null; private screenShareTrackingHolds = 0; + private screenShareCapturePaused = false; + private screenShareDeliveryArmed = false; private screenShareTrackingGeneration = 0; private readonly reconciledCodecPairs = new Set(); private readonly verifiedCodecCorrectionsByTrack = new WeakMap(); @@ -209,6 +214,10 @@ class VoiceEngineV2AppScreenShareExecutionAdapter extends Store { return this.lifecycle.streamingPriorityHeld; } + get isScreenShareCapturePaused(): boolean { + return this.screenShareCapturePaused; + } + getIsScreenSharePending(): boolean { return this.isScreenSharePending; } @@ -437,12 +446,19 @@ class VoiceEngineV2AppScreenShareExecutionAdapter extends Store { cleanupActiveScreenShareEndListenerInternal(): void { this.activeScreenShareEndListener?.(); this.activeScreenShareEndListener = null; + this.setScreenShareCapturePausedInternal(false); + } + + private setScreenShareCapturePausedInternal(paused: boolean): void { + if (this.screenShareCapturePaused === paused) return; + this.update(() => { + this.screenShareCapturePaused = paused; + }); } cancelEncoderVerificationInternal(): void { this.encoderVerificationTimer?.(); this.encoderVerificationTimer = null; - this.trackPlumbing.cleanupKeyFrameRequests(); this.transitionScreenShareLifecycleInternal({type: 'share.encoderVerification.cleared'}); } @@ -606,7 +622,6 @@ class VoiceEngineV2AppScreenShareExecutionAdapter extends Store { await this.trackPlumbing.enforceTrackSenderParameters(track, codec); }, }); - this.trackPlumbing.bindKeyFrameRequests(room, participant, track); this.transitionScreenShareLifecycleInternal({type: 'share.encoderVerification.scheduled'}); } @@ -664,6 +679,7 @@ class VoiceEngineV2AppScreenShareExecutionAdapter extends Store { preferredTrack?: LocalVideoTrack, ): void { this.cleanupActiveScreenShareEndListenerInternal(); + this.screenShareDeliveryArmed = ScreenShareDeliveryRollout.enabled; const publication = preferredTrack ? undefined : participant.getTrackPublication(Track.Source.ScreenShare); const videoTrack = preferredTrack ?? publication?.videoTrack; const mediaStreamTrack = videoTrack?.mediaStreamTrack; @@ -702,9 +718,29 @@ class VoiceEngineV2AppScreenShareExecutionAdapter extends Store { this.endedScreenShareStopInFlight = stopPromise; }; const onEnded = (): void => stopEndedScreenShare('ended-event'); + const reportCapturePaused = (paused: boolean): void => { + if (!isCurrentScreenShareTrack()) return; + this.setScreenShareCapturePausedInternal(paused); + logger.info( + paused + ? 'Screen share capture stopped delivering frames; the shared surface is static or hidden' + : 'Screen share capture started delivering frames again', + {readyState: mediaStreamTrack.readyState}, + ); + }; + const onMuted = (): void => reportCapturePaused(true); + const onUnmuted = (): void => reportCapturePaused(false); + const tracksCapturePauses = this.screenShareDeliveryArmed; mediaStreamTrack.addEventListener('ended', onEnded); + if (tracksCapturePauses) { + mediaStreamTrack.addEventListener('mute', onMuted); + mediaStreamTrack.addEventListener('unmute', onUnmuted); + } this.activeScreenShareEndListener = () => { mediaStreamTrack.removeEventListener('ended', onEnded); + if (!tracksCapturePauses) return; + mediaStreamTrack.removeEventListener('mute', onMuted); + mediaStreamTrack.removeEventListener('unmute', onUnmuted); }; if (mediaStreamTrack.readyState === 'ended') { queueMicrotask(() => stopEndedScreenShare('already-ended')); @@ -1104,24 +1140,30 @@ class VoiceEngineV2AppScreenShareExecutionAdapter extends Store { private async applyActiveScreenShareResolutionSetting( screenShareTrack: LocalVideoTrack, resolution: NonNullable, - ): Promise { + ): Promise { assert.ok(screenShareTrack); assert.ok(resolution); const mediaStreamTrack = screenShareTrack.mediaStreamTrack; - const currentConstraints = mediaStreamTrack.getConstraints() as ScreenShareVideoConstraints; - const nextConstraints: ScreenShareVideoConstraints = {...currentConstraints}; + const currentConstraints = mediaStreamTrack.getConstraints(); + const nextConstraints: MediaTrackConstraints = {...currentConstraints}; if (resolution.width > 0) nextConstraints.width = {ideal: resolution.width}; if (resolution.height > 0) nextConstraints.height = {ideal: resolution.height}; if (resolution.frameRate !== undefined) { nextConstraints.frameRate = {ideal: resolution.frameRate, max: resolution.frameRate}; } - if (JSON.stringify(currentConstraints) === JSON.stringify(nextConstraints)) return true; + if (JSON.stringify(currentConstraints) === JSON.stringify(nextConstraints)) return 'unchanged'; + if (this.screenShareDeliveryArmed && screenShareSourceHasClonedTracks(screenShareTrack)) { + logger.warn('Screen share capture geometry needs a restart while a backup codec holds a clone of the source', { + resolution, + }); + return 'needs-capture-restart'; + } try { await mediaStreamTrack.applyConstraints(nextConstraints); - return true; + return 'applied'; } catch (error) { logger.warn('Failed to update active screen share constraints', {error, resolution}); - return false; + return 'failed'; } } @@ -1146,8 +1188,9 @@ class VoiceEngineV2AppScreenShareExecutionAdapter extends Store { if (typeof options?.audio === 'boolean') { await this.applyActiveScreenShareAudioSetting(participant, options.audio); } + let geometryUpdate: ScreenShareCaptureGeometryUpdate = 'unchanged'; if (options?.resolution) { - await this.applyActiveScreenShareResolutionSetting(screenShareTrack, options.resolution); + geometryUpdate = await this.applyActiveScreenShareResolutionSetting(screenShareTrack, options.resolution); } if (options && Object.hasOwn(options, 'contentHint')) { screenShareTrack.mediaStreamTrack.contentHint = options.contentHint ?? ''; @@ -1159,7 +1202,8 @@ class VoiceEngineV2AppScreenShareExecutionAdapter extends Store { this.ensureScreenShareKeepAliveSinkInternal(participant); updateLocalParticipantFromRoom(room); this.syncLocalScreenShareAudioStateInternal(participant, participant.isScreenShareEnabled); - return true; + if (!this.screenShareDeliveryArmed) return true; + return geometryUpdate !== 'needs-capture-restart' && geometryUpdate !== 'failed'; } setScreenShareAudioMuted(room: Room | null, muted: boolean): void { @@ -1181,6 +1225,8 @@ class VoiceEngineV2AppScreenShareExecutionAdapter extends Store { } resetStreamTracking(): void { + this.screenShareDeliveryArmed = false; + this.setScreenShareCapturePausedInternal(false); this.clearScreenShareKeepAliveSinkInternal(); this.setStreamingPriorityInternal(false); this.transitionScreenShareLifecycleInternal({type: 'share.reset'}); diff --git a/fluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppScreenShareTrackPlumbing.ts b/fluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppScreenShareTrackPlumbing.ts index e6b628515..8275c0e32 100644 --- a/fluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppScreenShareTrackPlumbing.ts +++ b/fluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppScreenShareTrackPlumbing.ts @@ -9,7 +9,6 @@ import { resolveActiveScreenShareTarget, } from '@app/features/voice/engine/voice_screen_share_manager/shared'; import ActiveScreenShareSource from '@app/features/voice/state/ActiveScreenShareSource'; -import VoiceSettings from '@app/features/voice/state/VoiceSettings'; import {prepareHighFidelityScreenShareAudioTrack} from '@app/features/voice/utils/AudioPublishOptions'; import type {ScreenShareContentSource} from '@app/features/voice/utils/CodecCapabilityDetector'; import { @@ -17,8 +16,6 @@ import { type LocalParticipant, type LocalVideoTrack, ParticipantEvent, - type Room, - RoomEvent, type Track as SdkTrack, Track, TrackEvent, @@ -37,7 +34,6 @@ export class VoiceEngineV2AppScreenShareTrackPlumbing { private readonly host: VoiceEngineV2AppScreenShareTrackPlumbingHost; private keepAliveElement: HTMLVideoElement | null = null; private keepAliveTrack: LocalVideoTrack | null = null; - private keyFrameRequestDisposer: (() => void) | null = null; private senderParameterDisposer: (() => void) | null = null; constructor(host: VoiceEngineV2AppScreenShareTrackPlumbingHost) { @@ -217,31 +213,4 @@ export class VoiceEngineV2AppScreenShareTrackPlumbing { participant.off(ParticipantEvent.LocalSenderCreated, onLocalSenderCreated); }; } - - cleanupKeyFrameRequests(): void { - this.keyFrameRequestDisposer?.(); - this.keyFrameRequestDisposer = null; - } - - bindKeyFrameRequests(room: Room | null, participant: LocalParticipant, preferredTrack?: LocalVideoTrack): void { - this.cleanupKeyFrameRequests(); - if (!room || VoiceSettings.getStreamingMode() !== 'screenshare') return; - const requestKeyFrame = (): void => { - const publication = preferredTrack ? undefined : participant.getTrackPublication(Track.Source.ScreenShare); - const track = preferredTrack ?? (publication?.videoTrack as LocalVideoTrack | undefined); - const sender = track?.sender as - | (RTCRtpSender & { - generateKeyFrame?: () => Promise; - }) - | undefined; - if (typeof sender?.generateKeyFrame !== 'function') return; - void sender.generateKeyFrame().catch((error) => { - logger.debug('Failed to generate screen-share keyframe on participant join', {error}); - }); - }; - room.on(RoomEvent.ParticipantConnected, requestKeyFrame); - this.keyFrameRequestDisposer = () => { - room.off(RoomEvent.ParticipantConnected, requestKeyFrame); - }; - } } diff --git a/fluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppScreenShareWiring.test.ts b/fluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppScreenShareWiring.test.ts index 7a4cb6ed0..a371d285a 100644 --- a/fluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppScreenShareWiring.test.ts +++ b/fluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppScreenShareWiring.test.ts @@ -24,6 +24,7 @@ let stallAction: ScreenShareEncoderVerificationAction = {kind: 'recover-stalled' let menuEntitled = true; const gpuReport: {gpuLabel: string} | null = null; const gpuReportLoad: Promise = Promise.resolve(null); +const h264HardwareProfiles: {profiles: Set} | null = null; let displayShareEnvironment: 'web' | 'desktop-custom' | 'desktop-wayland' = 'web'; const voiceConnectionContext: {guildId: string | null; channelId: string | null; connectionId: string | null} | null = null; @@ -31,8 +32,14 @@ const voiceStates: Record>> = {}; const settingsUpdate = vi.fn(); const openPremiumModal = vi.fn(); +vi.mock('@app/features/voice/state/ScreenShareDeliveryRollout', () => ({ + ScreenShareDeliveryRollout: {enabled: true}, + default: {enabled: true}, +})); + vi.mock('@app/features/voice/utils/GpuEncoderCapabilities', () => ({ getGpuEncoderReportSync: () => gpuReport, + getH264HardwareProfilesSync: () => h264HardwareProfiles, loadGpuEncoderReport: () => gpuReportLoad, })); @@ -725,7 +732,7 @@ describe('the screen share wiring', () => { } }); - it('refuses to publish a codec the decode probe excluded', async () => { + it('refuses to publish a codec the decode probe excluded, and keeps publishing one a runtime stall hit', async () => { const decoder = await vi.importActual( '@app/features/voice/utils/VideoDecoderCapabilities', ); @@ -736,12 +743,20 @@ describe('the screen share wiring', () => { const host = globalThis as Record; host.RTCRtpSender = {getCapabilities: () => capabilities}; host.RTCRtpReceiver = {getCapabilities: () => capabilities}; + host.VideoDecoder = {isConfigSupported: async () => ({supported: false})}; vi.spyOn(VoiceSettings, 'getScreenShareHevcOptIn').mockReturnValue(true); try { + decoder.resetVideoDecoderExclusions(); detector.resetCachedCodecCapabilities(); expect(detector.isVideoCodecAllowedForPublish('h265')).toBe(true); + expect(decoder.markScreenShareDecodeFailure('h265', 'decode stall')).toBe(true); detector.resetCachedCodecCapabilities(); + expect(detector.getVideoPublishCodecDenial('h265')).toBeNull(); + expect(detector.isVideoCodecAllowedForPublish('h265')).toBe(true); + + await decoder.loadVideoDecoderExclusions(); + detector.resetCachedCodecCapabilities(); expect(detector.getVideoPublishCodecDenial('h265')).toBe('decoder-excluded'); expect(detector.isVideoCodecAllowedForPublish('h265')).toBe(false); expect(detector.isVideoCodecAllowedForPublish('h264')).toBe(true); @@ -752,6 +767,7 @@ describe('the screen share wiring', () => { detector.resetCachedCodecCapabilities(); Reflect.deleteProperty(host, 'RTCRtpSender'); Reflect.deleteProperty(host, 'RTCRtpReceiver'); + Reflect.deleteProperty(host, 'VideoDecoder'); } }); }); @@ -936,16 +952,16 @@ describe('the video settings tab', () => { context: 'display', } as const; expect(stateOf(quality)).toEqual({ - resolution: 'source', - frameRate: 15, + resolution: 'high', + frameRate: 30, resolutionOptions: PREMIUM_RESOLUTION_OPTIONS, frameRateOptions: [15, 30, 60], preset: 'screenshare', presetOverriddenByContext: false, saved: null, }); - expect(resolveScreenShareQualityPick(quality, {axis: 'resolution', resolution: 'source'})).toBeNull(); - expect(resolveScreenShareQualityPick(quality, {axis: 'frameRate', frameRate: 15})).toBeNull(); + expect(resolveScreenShareQualityPick(quality, {axis: 'resolution', resolution: 'high'})).toBeNull(); + expect(resolveScreenShareQualityPick(quality, {axis: 'frameRate', frameRate: 30})).toBeNull(); }); it('names the preset that owns a free Gaming account and keeps the saved values out of the note', () => { @@ -1328,7 +1344,7 @@ describe('the in-call stream menu', () => { ]); }); - it('offers the 90 FPS a stored preference asks for', async () => { + it('lands a stored 90 FPS preference on the fastest rate it can send', async () => { const container = await renderStreamMenu({ variant: 'full', shareContext: 'display', @@ -1340,8 +1356,7 @@ describe('the in-call stream menu', () => { expect(radios(container, 'Frame rate')).toEqual([ {label: '15 FPS', selected: false}, {label: '30 FPS', selected: false}, - {label: '60 FPS', selected: false}, - {label: '90 FPS', selected: true}, + {label: '60 FPS', selected: true}, ]); }); diff --git a/fluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppStatsHostAdapter.ts b/fluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppStatsHostAdapter.ts index 60afc2fd6..d9875cc4c 100644 --- a/fluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppStatsHostAdapter.ts +++ b/fluxer_app/src/features/voice/engine/v2/VoiceEngineV2AppStatsHostAdapter.ts @@ -87,7 +87,6 @@ export interface PerTrackStats { maxPushLatencyMs?: number; adaptiveSendTier?: string; adaptiveSendReason?: string; - sourceFrames?: number; framesEncoded?: number; framesDecoded?: number; framesDropped?: number; @@ -456,7 +455,7 @@ function buildPerTrackStat(args: { frameHeight: report.frameHeight, sourceFrameWidth: mediaSource?.frameWidth ?? mediaSource?.width, sourceFrameHeight: mediaSource?.frameHeight ?? mediaSource?.height, - sourceFrames: mediaSource?.frames, + framesCaptured: mediaSource?.frames, framesEncoded: report.framesEncoded, framesDecoded: report.framesDecoded, framesDropped: report.framesDropped, @@ -622,6 +621,7 @@ function toVoiceEngineV2OutboundStats(track: PerTrackStats): VoiceEngineV2Outbou ...(track.framesDropped !== undefined ? {framesDropped: track.framesDropped} : {}), ...(track.framesCoalesced !== undefined ? {framesCoalesced: track.framesCoalesced} : {}), ...(track.framesCaptured !== undefined ? {framesCaptured: track.framesCaptured} : {}), + ...(track.sourceFramesPerSecond !== undefined ? {sourceFps: track.sourceFramesPerSecond} : {}), ...(track.captureFailures !== undefined ? {captureFailures: track.captureFailures} : {}), ...(track.maxQueueAgeMs !== undefined ? {maxQueueAgeMs: track.maxQueueAgeMs} : {}), ...(track.maxPushLatencyMs !== undefined ? {maxPushLatencyMs: track.maxPushLatencyMs} : {}), diff --git a/fluxer_app/src/features/voice/engine/voice_screen_share_manager/DisplayMediaCapture.ts b/fluxer_app/src/features/voice/engine/voice_screen_share_manager/DisplayMediaCapture.ts index bf9d07f62..f4340071f 100644 --- a/fluxer_app/src/features/voice/engine/voice_screen_share_manager/DisplayMediaCapture.ts +++ b/fluxer_app/src/features/voice/engine/voice_screen_share_manager/DisplayMediaCapture.ts @@ -6,6 +6,7 @@ import { stopMediaTrack, stopUnselectedStreamTracks, } from '@app/features/voice/engine/voice_screen_share_manager/shared'; +import ActiveScreenShareSource from '@app/features/voice/state/ActiveScreenShareSource'; import {rememberCapturedDisplayAudioTrack} from '@app/features/voice/utils/NativeAudioCaptureBridge'; import {ScreenShareAudioCaptureError} from '@app/features/voice/utils/ScreenShareAudioCaptureError'; import type {ScreenShareCaptureOptions} from 'livekit-client'; @@ -36,7 +37,7 @@ function getRequestedDisplayMediaVideoConstraints( return options.video as DisplayMediaVideoConstraints; } -export function resolveCapturedDisplayMediaCursorCapture( +function resolveCapturedDisplayMediaCursorCapture( track: Pick, options?: ScreenShareCaptureOptions, ): 'always' | 'motion' | 'never' { @@ -126,10 +127,12 @@ export async function createDisplayScreenShareTracks( if (options?.contentHint) { videoTrack.contentHint = options.contentHint; } - const cursor = resolveCapturedDisplayMediaCursorCapture(videoTrack, options); - await videoTrack - .applyConstraints(buildCapturedDisplayMediaConstraints(displayMediaOptions, cursor)) - .catch(() => undefined); + if (ActiveScreenShareSource.getTarget()?.delivery !== true) { + const cursor = resolveCapturedDisplayMediaCursorCapture(videoTrack, options); + await videoTrack + .applyConstraints(buildCapturedDisplayMediaConstraints(displayMediaOptions, cursor)) + .catch(() => undefined); + } const capturedAudioTrack = stream.getAudioTracks()[0]; const audioTrack = capturedAudioTrack?.readyState === 'live' ? capturedAudioTrack : undefined; rememberCapturedDisplayAudioTrack(capturedAudioTrack, Boolean(capturedAudioTrack) && !audioTrack); diff --git a/fluxer_app/src/features/voice/engine/voice_screen_share_manager/shared.ts b/fluxer_app/src/features/voice/engine/voice_screen_share_manager/shared.ts index b59a0a68e..45a94eac9 100644 --- a/fluxer_app/src/features/voice/engine/voice_screen_share_manager/shared.ts +++ b/fluxer_app/src/features/voice/engine/voice_screen_share_manager/shared.ts @@ -4,6 +4,7 @@ import {getDesktopTroubleshootingSettings} from '@app/features/devtools/utils/De import {Logger} from '@app/features/platform/utils/AppLogger'; import ScreenShareCodecNegotiation from '@app/features/voice/engine/ScreenShareCodecNegotiation'; import ActiveScreenShareSource from '@app/features/voice/state/ActiveScreenShareSource'; +import ScreenShareDeliveryRollout from '@app/features/voice/state/ScreenShareDeliveryRollout'; import SoftwareEncoderWarning from '@app/features/voice/state/SoftwareEncoderWarning'; import VoiceSettings from '@app/features/voice/state/VoiceSettings'; import { @@ -17,13 +18,16 @@ import {loadGpuEncoderReport} from '@app/features/voice/utils/GpuEncoderCapabili import {loadNativeHardwareEncoderCapabilities} from '@app/features/voice/utils/NativeHardwareEncoderCapabilities'; import { buildScreenShareSenderParameters, + classifyScreenShareLimit, resolveScreenShareDegradationPreference, resolveScreenShareLayering, resolveScreenShareSenderCodec, resolveScreenShareTarget, + SCREEN_SHARE_DELIVERY_MAX_VIDEO_BITRATE_BPS, SCREEN_SHARE_MAX_VIDEO_BITRATE_BPS, type ScreenShareContext, type ScreenShareLayering, + type ScreenShareLimitClass, type ScreenShareTarget, } from '@app/features/voice/utils/ScreenShareOptions'; import {ScreenShareRollbackIncompleteError} from '@app/features/voice/utils/ScreenShareRollbackIncompleteError'; @@ -191,13 +195,11 @@ export async function releaseScreenShareCaptureCleanup(snapshot: ScreenShareCapt } } -function clampScreenShareEncoding(encoding: VideoEncoding): VideoEncoding { +function clampScreenShareEncoding(encoding: VideoEncoding, delivery: boolean): VideoEncoding { + const ceiling = delivery ? SCREEN_SHARE_DELIVERY_MAX_VIDEO_BITRATE_BPS : SCREEN_SHARE_MAX_VIDEO_BITRATE_BPS; return { ...encoding, - maxBitrate: - typeof encoding.maxBitrate === 'number' - ? Math.min(encoding.maxBitrate, SCREEN_SHARE_MAX_VIDEO_BITRATE_BPS) - : encoding.maxBitrate, + maxBitrate: typeof encoding.maxBitrate === 'number' ? Math.min(encoding.maxBitrate, ceiling) : encoding.maxBitrate, priority: encoding.priority ?? 'high', }; } @@ -206,10 +208,15 @@ export function resolveActiveScreenShareContext(): ScreenShareContext { return ActiveScreenShareSource.getShareContext() ?? 'display'; } +function resolveScreenShareDeliveryArm(): boolean { + return ActiveScreenShareSource.getTarget()?.delivery ?? ScreenShareDeliveryRollout.enabled; +} + export function resolveConfiguredScreenShareTarget( context: ScreenShareContext, sourceDimensions: {width: number; height: number} | null, ): ScreenShareTarget { + const delivery = resolveScreenShareDeliveryArm(); return resolveScreenShareTarget({ mode: VoiceSettings.getStreamingMode(), storedResolution: VoiceSettings.getScreenshareResolution(), @@ -218,6 +225,13 @@ export function resolveConfiguredScreenShareTarget( context, sourceDimensions, hintSetting: VoiceSettings.getScreenShareContentHint(), + delivery, + ...(delivery + ? { + codec: getPreferredScreenShareCodec(), + softwareEncoderClamp: ActiveScreenShareSource.isSoftwareEncoderClamped(), + } + : {}), }); } @@ -227,6 +241,15 @@ export function resolveActiveScreenShareTarget( return resolveConfiguredScreenShareTarget(context, ActiveScreenShareSource.getSourceDimensions()); } +function recommitClampedScreenShareTarget(committed: ScreenShareTarget): ScreenShareTarget { + if (committed.delivery !== true) return committed; + if (committed.softwareEncoderClamped) return committed; + const resolved = resolveActiveScreenShareTarget(committed.context); + if (!resolved.softwareEncoderClamped) return committed; + ActiveScreenShareSource.setTarget(resolved); + return ActiveScreenShareSource.getTarget() ?? resolved; +} + export function ensureCommittedScreenShareTarget(): ScreenShareTarget { const committed = ActiveScreenShareSource.getTarget(); if (committed !== null) return committed; @@ -246,7 +269,9 @@ export function getStatsKind( } function resolveScreenShareEncoding(target: ScreenShareTarget, publishOptions?: TrackPublishOptions): VideoEncoding { - if (publishOptions?.screenShareEncoding) return clampScreenShareEncoding(publishOptions.screenShareEncoding); + if (publishOptions?.screenShareEncoding) { + return clampScreenShareEncoding(publishOptions.screenShareEncoding, target.delivery === true); + } return {maxBitrate: target.maxBitrate, maxFramerate: target.frameRate, priority: 'high'}; } @@ -308,14 +333,23 @@ export async function getEffectivePublishOptions( if (!enabled) { return publishOptions; } - const target = ensureCommittedScreenShareTarget(); + const committed = ensureCommittedScreenShareTarget(); await waitForGpuEncoderReportForPublish(options); + const target = recommitClampedScreenShareTarget(committed); const policy = resolveVideoPublishCodecPolicy(publishOptions?.videoCodec ?? getPreferredScreenShareCodec()); const preferredVideoCodec = policy.primary; const backupCodec = resolveBackupCodecWithinPolicy(publishOptions?.backupCodec, policy); const backupCodecPolicy = publishOptions?.backupCodecPolicy ?? (backupCodec ? BackupCodecPolicy.SIMULCAST : undefined); const layering = getScreenShareLayeringForCodec(preferredVideoCodec); + if (target.softwareEncoderClamped && VoiceSettings.getScreenShareEncoderMode() !== 'software') { + logger.warn('Screen share target clamped to the software H.264 budget', { + codec: preferredVideoCodec, + resolution: target.resolution, + frameRate: target.frameRate, + }); + SoftwareEncoderWarning.triggerWarning(preferredVideoCodec, UNKNOWN_ENCODER_IMPLEMENTATION); + } return { ...publishOptions, videoCodec: preferredVideoCodec, @@ -477,6 +511,11 @@ interface OutboundVideoStatsEntry { active?: boolean; framesEncoded?: number; framesSent?: number; + bytesSent?: number; + headerBytesSent?: number; + totalEncodeTime?: number; + targetBitrate?: number; + qualityLimitationReason?: string; encoderImplementation?: string; powerEfficientEncoder?: boolean; } @@ -652,6 +691,90 @@ export function findMissingExpectedVideoEncoder( }; } +interface ScreenShareSendSnapshot { + timestampMs: number; + framesEncoded: number; + encodeTimeMs: number; + bytesSent: number; + targetBitrateBps: number | null; + cpuLimited: boolean; + sourceFramesPerSecond: number | null; +} + +function collectScreenShareSendSnapshot(stats: RTCStatsReport): ScreenShareSendSnapshot { + const reportsById = new Map(); + const reports: Array = []; + for (const raw of stats.values()) { + const report = raw as CodecStatsEntry & VideoSourceStatsEntry & OutboundVideoStatsEntry; + if (typeof report.id === 'string') { + reportsById.set(report.id, report); + } + if (report.type === 'outbound-rtp') { + reports.push(report); + } + } + const snapshot: ScreenShareSendSnapshot = { + timestampMs: Date.now(), + framesEncoded: 0, + encodeTimeMs: 0, + bytesSent: 0, + targetBitrateBps: null, + cpuLimited: false, + sourceFramesPerSecond: null, + }; + for (const report of reports) { + if (getStatsKind(report, reportsById) !== 'video') continue; + if (report.active === false) continue; + snapshot.framesEncoded += finiteNumber(report.framesEncoded) ?? 0; + snapshot.encodeTimeMs += (finiteNumber(report.totalEncodeTime) ?? 0) * 1000; + snapshot.bytesSent += (finiteNumber(report.bytesSent) ?? 0) + (finiteNumber(report.headerBytesSent) ?? 0); + const targetBitrate = finiteNumber(report.targetBitrate); + if (targetBitrate !== null) { + snapshot.targetBitrateBps = (snapshot.targetBitrateBps ?? 0) + targetBitrate; + } + if (report.qualityLimitationReason === 'cpu') { + snapshot.cpuLimited = true; + } + const source = report.mediaSourceId ? reportsById.get(report.mediaSourceId) : undefined; + const sourceFramesPerSecond = finiteNumber(source?.framesPerSecond); + if (sourceFramesPerSecond !== null) { + snapshot.sourceFramesPerSecond = sourceFramesPerSecond; + } + } + return snapshot; +} + +function classifyScreenShareSendLimit( + previous: ScreenShareSendSnapshot | null, + current: ScreenShareSendSnapshot, + cpuLimitedTicks: number, +): ScreenShareLimitClass | null { + const target = ActiveScreenShareSource.getTarget(); + if (previous === null || target === null) return null; + return classifyScreenShareLimit({ + frameRate: target.frameRate, + maxBitrate: target.maxBitrate, + elapsedMs: current.timestampMs - previous.timestampMs, + framesEncoded: current.framesEncoded - previous.framesEncoded, + encodeTimeMs: current.encodeTimeMs - previous.encodeTimeMs, + bytesSent: current.bytesSent - previous.bytesSent, + targetBitrateBps: current.targetBitrateBps, + sourceFramesPerSecond: current.sourceFramesPerSecond, + cpuLimitedTicks, + }); +} + +function syncScreenShareCaptureSize(sender: RTCRtpSender): void { + if (ActiveScreenShareSource.getTarget() === null) return; + const capture = readScreenShareCaptureSize(sender); + if (capture === null) return; + const known = ActiveScreenShareSource.getSourceDimensions(); + if (known !== null && known.width === capture.width && known.height === capture.height) return; + ActiveScreenShareSource.setSourceDimensions(capture); + ActiveScreenShareSource.setTarget(resolveActiveScreenShareTarget()); + logger.info('Screen share capture size changed; re-resolved the publish target', capture); +} + function countEncodedVideoFrames(stats: RTCStatsReport): number | null { const reportsById = new Map(); const reports: Array = []; @@ -738,13 +861,29 @@ export function startScreenShareEncoderMonitor(options: ScreenShareEncoderMonito let timer: ReturnType | undefined; let verified = false; let framesEncoded: number | null = null; + let sendSnapshot: ScreenShareSendSnapshot | null = null; + let cpuLimitedTicks = 0; + const delivery = ActiveScreenShareSource.getTarget()?.delivery === true; const tick = async (): Promise => { const sender = options.track.sender; if (!sender) return; const stats = await sender.getStats(); + if (delivery) { + syncScreenShareCaptureSize(sender); + } const encoded = countEncodedVideoFrames(stats); ActiveScreenShareSource.setEncoding(encoded !== null && framesEncoded !== null && encoded > framesEncoded); framesEncoded = encoded; + if (delivery) { + const snapshot = collectScreenShareSendSnapshot(stats); + cpuLimitedTicks = snapshot.cpuLimited ? cpuLimitedTicks + 1 : 0; + const limit = classifyScreenShareSendLimit(sendSnapshot, snapshot, cpuLimitedTicks); + sendSnapshot = snapshot; + if (limit !== ActiveScreenShareSource.getLimit()) { + logger.info('Screen share send limit changed', {limit, codec: options.codec}); + } + ActiveScreenShareSource.setLimit(limit); + } if (!verified) { const verification = verifyScreenShareEncoderStart(stats, options.codec, options.onEncodeFailure); if (verification === 'failed') return; @@ -768,5 +907,8 @@ export function startScreenShareEncoderMonitor(options: ScreenShareEncoderMonito cancelled = true; clearTimeout(timer); ActiveScreenShareSource.setEncoding(false); + if (delivery) { + ActiveScreenShareSource.setLimit(null); + } }; } diff --git a/fluxer_app/src/features/voice/state/ActiveScreenShareSource.ts b/fluxer_app/src/features/voice/state/ActiveScreenShareSource.ts index 1cf0a8675..41ebf7b8e 100644 --- a/fluxer_app/src/features/voice/state/ActiveScreenShareSource.ts +++ b/fluxer_app/src/features/voice/state/ActiveScreenShareSource.ts @@ -1,10 +1,11 @@ // SPDX-License-Identifier: AGPL-3.0-or-later -import type {ScreenShareTarget} from '@app/features/voice/utils/ScreenShareOptions'; +import type {ScreenShareLimitClass, ScreenShareTarget} from '@app/features/voice/utils/ScreenShareOptions'; import type { StreamSettingsShareContext, WindowShareAudioScope, } from '@app/features/voice/utils/StreamSettingsUpdatePolicy'; +import type {TrackPublishOptions} from 'livekit-client'; import {makeAutoObservable} from 'mobx'; export interface ActiveScreenShareSourceOptions { @@ -21,6 +22,9 @@ class ActiveScreenShareSource { pendingWindowAudioScope: WindowShareAudioScope | null = null; sourceDimensions: {width: number; height: number} | null = null; target: ScreenShareTarget | null = null; + frozenDegradationPreference: NonNullable | null = null; + softwareEncoderClamped = false; + limit: ScreenShareLimitClass | null = null; encoding = false; constructor() { @@ -58,7 +62,23 @@ class ActiveScreenShareSource { } setTarget(target: ScreenShareTarget | null): void { - this.target = target; + if (target === null) { + this.target = null; + this.frozenDegradationPreference = null; + this.softwareEncoderClamped = false; + this.limit = null; + this.encoding = false; + return; + } + if (target.delivery !== true) { + this.target = target; + this.encoding = false; + return; + } + const degradationPreference = this.frozenDegradationPreference ?? target.degradationPreference; + this.frozenDegradationPreference = degradationPreference; + this.softwareEncoderClamped = this.softwareEncoderClamped || target.softwareEncoderClamped; + this.target = {...target, degradationPreference}; this.encoding = false; } @@ -66,6 +86,18 @@ class ActiveScreenShareSource { this.encoding = encoding; } + setLimit(limit: ScreenShareLimitClass | null): void { + this.limit = limit; + } + + getLimit(): ScreenShareLimitClass | null { + return this.limit; + } + + isSoftwareEncoderClamped(): boolean { + return this.softwareEncoderClamped; + } + getTarget(): ScreenShareTarget | null { return this.target; } @@ -105,6 +137,9 @@ class ActiveScreenShareSource { this.pendingWindowAudioScope = null; this.sourceDimensions = null; this.target = null; + this.frozenDegradationPreference = null; + this.softwareEncoderClamped = false; + this.limit = null; this.encoding = false; } } diff --git a/fluxer_app/src/features/voice/state/ScreenShareDeliveryRollout.ts b/fluxer_app/src/features/voice/state/ScreenShareDeliveryRollout.ts new file mode 100644 index 000000000..cb69a3529 --- /dev/null +++ b/fluxer_app/src/features/voice/state/ScreenShareDeliveryRollout.ts @@ -0,0 +1,22 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import ExperimentAssignments from '@app/features/experiment/state/ExperimentAssignments'; +import {Logger} from '@app/features/platform/utils/AppLogger'; +import {readScreenShareDeliveryAssignment} from '@fluxer/schema/src/domains/experiment/ExperimentSchemas'; + +const logger = new Logger('ScreenShareDeliveryRollout'); + +class ScreenShareDeliveryRolloutSelector { + get enabled(): boolean { + try { + return readScreenShareDeliveryAssignment(ExperimentAssignments.response).enabled; + } catch (err) { + logger.warn('Failed to resolve screen share delivery assignment:', err); + return false; + } + } +} + +export const ScreenShareDeliveryRollout = new ScreenShareDeliveryRolloutSelector(); + +export default ScreenShareDeliveryRollout; diff --git a/fluxer_app/src/features/voice/state/VoiceSettings.ts b/fluxer_app/src/features/voice/state/VoiceSettings.ts index b80ace491..b13aa7649 100644 --- a/fluxer_app/src/features/voice/state/VoiceSettings.ts +++ b/fluxer_app/src/features/voice/state/VoiceSettings.ts @@ -3,6 +3,7 @@ import AppStorage from '@app/features/platform/state/PersistentStorage'; import {Logger} from '@app/features/platform/utils/AppLogger'; import {makePersistent} from '@app/features/platform/utils/MobXPersistence'; +import ScreenShareDeliveryRollout from '@app/features/voice/state/ScreenShareDeliveryRollout'; import type { CodecPreference, ScreenShareContentHint, @@ -118,7 +119,6 @@ type VoiceSettingsUpdate = Partial<{ screenShareAudioIncludeSources: Array>; screenShareAudioExcludeSources: Array>; screenShareDeviceAudioUsesMicrophone: boolean; - openH264Enabled: boolean; lastScreenShareSource: LastScreenShareSource | null; }>; @@ -262,6 +262,20 @@ function applyStreamingModeDefaultMigrationV1(parsed: Record): return true; } +function applyScreenShareFrameRateFloorMigrationV1(parsed: Record): boolean { + if (!ScreenShareDeliveryRollout.enabled) { + return false; + } + if (parsed.screenShareFrameRateFloorMigratedV1 === true) { + return false; + } + if (parsed.streamingMode === 'custom' && parsed.videoFrameRate === VIDEO_FRAME_RATE_MIN) { + parsed.videoFrameRate = VIDEO_FRAME_RATE_DEFAULT; + } + parsed.screenShareFrameRateFloorMigratedV1 = true; + return true; +} + function applyScreenShareContentHintDefaultMigrationV1(parsed: Record): boolean { if (parsed.screenShareContentHintDefaultMigratedV1 === true) { return false; @@ -404,6 +418,7 @@ class VoiceSettings { videoFrameRate = 30; streamingMode: StreamingMode = 'screenshare'; streamingModeDefaultMigratedV1 = false; + screenShareFrameRateFloorMigratedV1 = false; hideStreamPreview = false; muteStreamAudio = false; shareAppAudio = true; @@ -453,7 +468,6 @@ class VoiceSettings { screenShareAudioIncludeSources: Array> = []; screenShareAudioExcludeSources: Array> = []; screenShareDeviceAudioUsesMicrophone = false; - openH264Enabled = true; lastScreenShareSource: LastScreenShareSource | null = null; prioritizeSpeakingParticipants = false; private listeners = new Set<() => void>(); @@ -526,7 +540,6 @@ class VoiceSettings { getScreenShareAudioIncludeSources: false, getScreenShareAudioExcludeSources: false, getScreenShareDeviceAudioUsesMicrophone: false, - getOpenH264Enabled: false, getLastScreenShareSource: false, getPrioritizeSpeakingParticipants: false, notifyListeners: false, @@ -550,6 +563,7 @@ class VoiceSettings { changed = applyScreenShareAudioConsentMigrationV1(parsed) || changed; changed = applyScreenShareAudioDefaultOnMigrationV1(parsed) || changed; changed = applyStreamingModeDefaultMigrationV1(parsed) || changed; + changed = applyScreenShareFrameRateFloorMigrationV1(parsed) || changed; changed = applyManualAudioSourcesOptOutResetMigrationV1(parsed) || changed; changed = applyScreenShareContentHintDefaultMigrationV1(parsed) || changed; changed = applyOutputVolumeRecalibrationMigrationV1(parsed) || changed; @@ -595,6 +609,7 @@ class VoiceSettings { 'videoFrameRate', 'streamingMode', 'streamingModeDefaultMigratedV1', + 'screenShareFrameRateFloorMigratedV1', 'hideStreamPreview', 'muteStreamAudio', 'shareAppAudio', @@ -643,7 +658,6 @@ class VoiceSettings { 'screenShareAudioIncludeSources', 'screenShareAudioExcludeSources', 'screenShareDeviceAudioUsesMicrophone', - 'openH264Enabled', 'lastScreenShareSource', 'prioritizeSpeakingParticipants', ]); @@ -1033,10 +1047,6 @@ class VoiceSettings { return this.getScreenShareAudioExcludeSources(); } - getOpenH264Enabled(): boolean { - return this.openH264Enabled; - } - getLastScreenShareSource(): LastScreenShareSource | null { return this.lastScreenShareSource; } @@ -1137,7 +1147,6 @@ class VoiceSettings { this.screenShareAudioExcludeSources = validated.screenShareAudioExcludeSources; if (validated.screenShareDeviceAudioUsesMicrophone !== undefined) this.screenShareDeviceAudioUsesMicrophone = validated.screenShareDeviceAudioUsesMicrophone; - if (validated.openH264Enabled !== undefined) this.openH264Enabled = validated.openH264Enabled; if (validated.lastScreenShareSource !== undefined) this.lastScreenShareSource = validated.lastScreenShareSource; this.notifyListeners(); } @@ -1262,7 +1271,6 @@ class VoiceSettings { validateSourceList(data.screenShareAudioExcludeSources) ?? this.screenShareAudioExcludeSources, screenShareDeviceAudioUsesMicrophone: data.screenShareDeviceAudioUsesMicrophone ?? this.screenShareDeviceAudioUsesMicrophone, - openH264Enabled: data.openH264Enabled ?? this.openH264Enabled, lastScreenShareSource: data.lastScreenShareSource === undefined ? this.lastScreenShareSource diff --git a/fluxer_app/src/features/voice/utils/AudioPublishOptions.ts b/fluxer_app/src/features/voice/utils/AudioPublishOptions.ts index 36d48b3ad..9fca376b1 100644 --- a/fluxer_app/src/features/voice/utils/AudioPublishOptions.ts +++ b/fluxer_app/src/features/voice/utils/AudioPublishOptions.ts @@ -1,11 +1,13 @@ // SPDX-License-Identifier: AGPL-3.0-or-later import {VoiceTrackSource} from '@app/features/voice/engine/VoiceTrackSource'; +import ScreenShareDeliveryRollout from '@app/features/voice/state/ScreenShareDeliveryRollout'; import type {TrackPublishOptions} from 'livekit-client'; export const OPUS_MAX_AUDIO_BITRATE_BPS = 510000; export const VOICE_CHANNEL_MIN_AUDIO_BITRATE_BPS = 8000; export const STEREO_VOICE_MIN_AUDIO_BITRATE_BPS = 128000; +export const SCREEN_SHARE_AUDIO_BITRATE_BPS = 128000; export function normaliseAudioBitrateBps(value: number | null | undefined): number | undefined { if (typeof value !== 'number' || !Number.isFinite(value) || value <= 0) return undefined; @@ -33,7 +35,9 @@ export function buildMicrophonePublishOptions( export const SCREEN_SHARE_AUDIO_PUBLISH_OPTIONS: TrackPublishOptions = { audioPreset: { - maxBitrate: OPUS_MAX_AUDIO_BITRATE_BPS, + get maxBitrate(): number { + return ScreenShareDeliveryRollout.enabled ? SCREEN_SHARE_AUDIO_BITRATE_BPS : OPUS_MAX_AUDIO_BITRATE_BPS; + }, priority: 'high', }, dtx: false, diff --git a/fluxer_app/src/features/voice/utils/CodecCapabilityDetector.ts b/fluxer_app/src/features/voice/utils/CodecCapabilityDetector.ts index 66b5d505c..72441df0b 100644 --- a/fluxer_app/src/features/voice/utils/CodecCapabilityDetector.ts +++ b/fluxer_app/src/features/voice/utils/CodecCapabilityDetector.ts @@ -9,6 +9,7 @@ import { isFirefoxBrowser, type NativePlatform, } from '@app/features/ui/utils/NativeUtils'; +import ScreenShareDeliveryRollout from '@app/features/voice/state/ScreenShareDeliveryRollout'; import VoiceSettings from '@app/features/voice/state/VoiceSettings'; import {getGpuEncoderReportSync, type HardwareEncodeAnswer} from '@app/features/voice/utils/GpuEncoderCapabilities'; import { @@ -16,7 +17,6 @@ import { hasNativeHardwareEncoder, resetNativeHardwareEncoderCapabilities, } from '@app/features/voice/utils/NativeHardwareEncoderCapabilities'; -import {getOpenH264StatusSync, resetOpenH264Status} from '@app/features/voice/utils/OpenH264Status'; import { LAST_RESORT_VIDEO_CODEC, rankScreenShareCodecs, @@ -26,7 +26,10 @@ import { type ScreenShareCodecRanking, } from '@app/features/voice/utils/ScreenShareCodecSelection'; import {normaliseStreamingModeForContext} from '@app/features/voice/utils/ScreenShareOptions'; -import {isVideoCodecDecodeExcluded} from '@app/features/voice/utils/VideoDecoderCapabilities'; +import { + getProbedVideoDecoderExclusionsSync, + getVideoDecoderExclusionsSync, +} from '@app/features/voice/utils/VideoDecoderCapabilities'; import type {TrackPublishDefaults, TrackPublishOptions} from 'livekit-client'; import {BackupCodecPolicy, supportsVideoCodec, type VideoCodec, type VideoEncoding} from 'livekit-client'; @@ -95,6 +98,7 @@ let cachedReportNativeHardwareEncoderKey: object | null | undefined; let cachedReportHardwareAccelerationDisabled: boolean | undefined; let cachedReportAv1OptIn: boolean | undefined; let cachedReportHevcOptIn: boolean | undefined; +let cachedReportDelivery: boolean | undefined; const runtimeEncodeFailureCodecs = new Set(); const observedSoftwareEncodeCodecs = new Set(); @@ -138,11 +142,6 @@ function probeRawCapabilities(): RawProbeResult { caps.vp8 = true; caps.h264 = true; } - const openH264 = getOpenH264StatusSync(); - if (openH264?.enabled && openH264.downloaded && !caps.h264) { - caps.h264 = true; - logger.info('H.264 force-enabled via OpenH264 software codec'); - } if (probedSuccessfully) { logger.info('Codec capabilities probed', {capabilities: caps}); } @@ -215,13 +214,21 @@ function getScreenShareCodecPolicyUnsupported( return null; } -function hasPublishPathNativeHardwareEncoder(codec: VideoCodec): boolean { +function hasPublishPathNativeHardwareEncoder( + codec: VideoCodec, + context: CodecPolicyContext, + delivery: boolean, +): boolean { if (!hasNativeHardwareEncoder(codec)) return false; const backend = getNativeHardwareEncoderCapabilitiesSync()?.backend; - return backend !== 'videotoolbox' && backend !== 'nvenc'; + if (!delivery) return backend !== 'videotoolbox' && backend !== 'nvenc'; + if (backend === 'videotoolbox') return true; + if (backend === 'nvenc') return context.platform !== 'linux'; + return false; } function buildReport(): CodecCapabilityReport { + const delivery = ScreenShareDeliveryRollout.enabled; const {caps, probedSuccessfully} = probeRawCapabilities(); const context = buildScreenShareCodecPolicyContext(); const gpuReport = getGpuEncoderReportSync(); @@ -236,10 +243,17 @@ function buildReport(): CodecCapabilityReport { if (observedSoftwareEncodeCodecs.has(codec)) { return 'software'; } - if (hasPublishPathNativeHardwareEncoder(codec)) { - return 'hardware'; + if (!delivery) { + if (hasPublishPathNativeHardwareEncoder(codec, context, delivery)) { + return 'hardware'; + } + return gpuReport ? gpuReport[codec] : 'unknown'; } - return gpuReport ? gpuReport[codec] : 'unknown'; + const measured = gpuReport ? gpuReport[codec] : 'unknown'; + if (measured !== 'unknown') { + return measured; + } + return hasPublishPathNativeHardwareEncoder(codec, context, delivery) ? 'hardware' : 'unknown'; } type DescribedUnsupported = Omit; function unsupported(codec: keyof CodecCapabilities, info: DescribedUnsupported): CodecSupportInfo { @@ -257,8 +271,8 @@ function buildReport(): CodecCapabilityReport { detail: 'This codec failed while publishing during the current session.', }); } - const supportedByNativeHardware = hasPublishPathNativeHardwareEncoder(codec); - if (caps[codec] || supportedByNativeHardware) { + const supportedByNativeHardware = hasPublishPathNativeHardwareEncoder(codec, context, delivery); + if (caps[codec] || (!delivery && supportedByNativeHardware)) { return { supported: true, reason: 'supported', @@ -334,8 +348,10 @@ export function getCodecCapabilityReport(): CodecCapabilityReport { const hardwareAccelerationDisabled = isDesktopHardwareAccelerationDisabled(); const av1OptIn = VoiceSettings.getScreenShareAv1OptIn(); const hevcOptIn = VoiceSettings.getScreenShareHevcOptIn(); + const delivery = ScreenShareDeliveryRollout.enabled; if ( cachedReport && + cachedReportDelivery === delivery && cachedReportGpuKey === currentGpu && cachedReportNativeHardwareEncoderKey === currentNativeHardwareEncoder && cachedReportHardwareAccelerationDisabled === hardwareAccelerationDisabled && @@ -349,6 +365,7 @@ export function getCodecCapabilityReport(): CodecCapabilityReport { cachedReportHardwareAccelerationDisabled = hardwareAccelerationDisabled; cachedReportAv1OptIn = av1OptIn; cachedReportHevcOptIn = hevcOptIn; + cachedReportDelivery = delivery; return cachedReport; } @@ -521,7 +538,10 @@ export function getVideoPublishCodecDenial(codec: VideoCodec): VideoPublishCodec if (!supportsVideoCodec(codec)) return 'sender-cannot-encode'; if (getScreenShareCodecPolicyUnsupported(codec, buildScreenShareCodecPolicyContext())) return 'policy'; if (runtimeEncodeFailureCodecs.has(codec)) return 'runtime-failed'; - if (isVideoCodecDecodeExcluded(codec)) return 'decoder-excluded'; + const decoderExclusions = ScreenShareDeliveryRollout.enabled + ? getProbedVideoDecoderExclusionsSync() + : getVideoDecoderExclusionsSync(); + if (decoderExclusions?.includes(codec) === true) return 'decoder-excluded'; return null; } @@ -681,8 +701,8 @@ export function resetCachedCodecCapabilities(): void { cachedReportHardwareAccelerationDisabled = undefined; cachedReportAv1OptIn = undefined; cachedReportHevcOptIn = undefined; + cachedReportDelivery = undefined; runtimeEncodeFailureCodecs.clear(); observedSoftwareEncodeCodecs.clear(); resetNativeHardwareEncoderCapabilities(); - resetOpenH264Status(); } diff --git a/fluxer_app/src/features/voice/utils/GpuEncoderCapabilities.ts b/fluxer_app/src/features/voice/utils/GpuEncoderCapabilities.ts index 7b54aacff..79edd62c9 100644 --- a/fluxer_app/src/features/voice/utils/GpuEncoderCapabilities.ts +++ b/fluxer_app/src/features/voice/utils/GpuEncoderCapabilities.ts @@ -2,6 +2,7 @@ import {Logger} from '@app/features/platform/utils/AppLogger'; import {getElectronAPI, isDesktop} from '@app/features/ui/utils/NativeUtils'; +import ScreenShareDeliveryRollout from '@app/features/voice/state/ScreenShareDeliveryRollout'; import type {GpuDeviceInfo, GpuInfo} from '@app/types/electron.d'; import type {VideoCodec} from 'livekit-client'; @@ -231,12 +232,18 @@ export function reportFromGpuInfo(info: GpuInfo): HardwareEncodeReport { }; } -export const H264_PROBE_PROFILE_LEVEL_IDS: ReadonlyArray = ['640028', '4d0028', '420028', '42e028']; +export const H264_PROBE_PROFILE_LEVEL_IDS: ReadonlyArray = ['640028', '640c28', '4d0028', '420028', '42e028']; export const H264_ENCODE_PROBE_CONTENT_TYPES: ReadonlyArray = H264_PROBE_PROFILE_LEVEL_IDS.map( (profileLevelId) => `video/H264;level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=${profileLevelId}`, ); +const CONTROL_H264_PROBE_PROFILE_LEVEL_IDS: ReadonlyArray = ['640028', '4d0028', '420028', '42e028']; + +const CONTROL_H264_ENCODE_PROBE_CONTENT_TYPES: ReadonlyArray = CONTROL_H264_PROBE_PROFILE_LEVEL_IDS.map( + (profileLevelId) => `video/H264;level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=${profileLevelId}`, +); + export const WEBRTC_ENCODE_PROBE_CONTENT_TYPES: Record> = { av1: ['video/AV1'], h265: ['video/H265'], @@ -245,7 +252,7 @@ export const WEBRTC_ENCODE_PROBE_CONTENT_TYPES: Record; + readonly probedWidth: number; + readonly probedHeight: number; + readonly probedFrameRate: number; +} + interface WebRtcEncodingInfoResult { supported?: boolean; powerEfficient?: boolean; @@ -268,43 +282,158 @@ interface MediaCapabilitiesLike { encodingInfo?: (config: unknown) => Promise; } -async function probeCodecEncodeEfficiency( +interface EncodeProbeAnswer { + supported: boolean; + powerEfficient: boolean; +} + +function getMediaCapabilities(): MediaCapabilitiesLike | null { + if (typeof navigator === 'undefined') return null; + const mediaCapabilities = (navigator as Navigator & {mediaCapabilities?: MediaCapabilitiesLike}).mediaCapabilities; + if (!mediaCapabilities?.encodingInfo) return null; + return mediaCapabilities; +} + +function resolveEncodeProbeValue(value: number | undefined, fallback: number): number { + return typeof value === 'number' && Number.isFinite(value) && value > 0 ? Math.round(value) : fallback; +} + +function resolveEncodeProbeVideoConfig(config: Partial | undefined): EncodeProbeVideoConfig { + if (!config) return ENCODE_PROBE_VIDEO_CONFIG; + return { + width: resolveEncodeProbeValue(config.width, ENCODE_PROBE_VIDEO_CONFIG.width), + height: resolveEncodeProbeValue(config.height, ENCODE_PROBE_VIDEO_CONFIG.height), + bitrate: resolveEncodeProbeValue(config.bitrate, ENCODE_PROBE_VIDEO_CONFIG.bitrate), + framerate: resolveEncodeProbeValue(config.framerate, ENCODE_PROBE_VIDEO_CONFIG.framerate), + }; +} + +function encodeProbeCacheKey(video: EncodeProbeVideoConfig): string { + return `${video.width}x${video.height}@${video.framerate}/${video.bitrate}`; +} + +async function probeContentTypeEncodeEfficiency( + mediaCapabilities: MediaCapabilitiesLike, + contentType: string, + video: EncodeProbeVideoConfig, +): Promise { + try { + const info = await mediaCapabilities.encodingInfo?.({type: 'webrtc', video: {contentType, ...video}}); + if (!info) return null; + return {supported: info.supported === true, powerEfficient: info.powerEfficient === true}; + } catch { + return null; + } +} + +function probeContentTypesEncodeEfficiency( mediaCapabilities: MediaCapabilitiesLike, contentTypes: ReadonlyArray, video: EncodeProbeVideoConfig, -): Promise { +): Promise> { + return Promise.all( + contentTypes.map((contentType) => probeContentTypeEncodeEfficiency(mediaCapabilities, contentType, video)), + ); +} + +function collapseEncodeProbeAnswers(answers: ReadonlyArray): HardwareEncodeAnswer { let sawSupported = false; - for (const contentType of contentTypes) { - try { - const info = await mediaCapabilities.encodingInfo?.({ - type: 'webrtc', - video: {contentType, ...video}, - }); - if (!info?.supported) continue; - sawSupported = true; - if (info.powerEfficient === true) return 'hardware'; - } catch {} + for (const answer of answers) { + if (!answer?.supported) continue; + sawSupported = true; + if (answer.powerEfficient) return 'hardware'; } return sawSupported ? 'software' : 'unknown'; } -export async function probeWebRtcEncodeEfficiency(): Promise | null> { - if (typeof navigator === 'undefined') return null; - const mediaCapabilities = (navigator as Navigator & {mediaCapabilities?: MediaCapabilitiesLike}).mediaCapabilities; - if (!mediaCapabilities?.encodingInfo) return null; +const h264HardwareProfileProbes = new Map(); +const pendingH264HardwareProfileProbes = new Map>(); +let latestH264HardwareProfileProbeKey: string | null = null; + +function recordH264HardwareProfileProbe( + answers: ReadonlyArray, + video: EncodeProbeVideoConfig, +): H264HardwareProfileProbe | null { + const profiles = new Set(); + let answered = 0; + answers.forEach((answer, index) => { + if (!answer) return; + answered += 1; + if (answer.supported && answer.powerEfficient) { + profiles.add(H264_PROBE_PROFILE_LEVEL_IDS[index].slice(0, 4)); + } + }); + if (answered === 0) return null; + const probe: H264HardwareProfileProbe = { + profiles, + probedWidth: video.width, + probedHeight: video.height, + probedFrameRate: video.framerate, + }; + const key = encodeProbeCacheKey(video); + h264HardwareProfileProbes.set(key, probe); + latestH264HardwareProfileProbeKey = key; + logger.info('Probed which H.264 profiles this host encodes in hardware', { + profiles: [...profiles], + width: video.width, + height: video.height, + framerate: video.framerate, + }); + return probe; +} + +export function getH264HardwareProfilesSync(): H264HardwareProfileProbe | null { + if (latestH264HardwareProfileProbeKey === null) return null; + return h264HardwareProfileProbes.get(latestH264HardwareProfileProbeKey) ?? null; +} + +export async function probeH264HardwareProfiles( + config?: Partial, +): Promise { + const video = resolveEncodeProbeVideoConfig(config); + const key = encodeProbeCacheKey(video); + const cached = h264HardwareProfileProbes.get(key); + if (cached) { + latestH264HardwareProfileProbeKey = key; + return cached; + } + const pending = pendingH264HardwareProfileProbes.get(key); + if (pending) return pending; + const mediaCapabilities = getMediaCapabilities(); + if (!mediaCapabilities) return null; + const promise = probeContentTypesEncodeEfficiency(mediaCapabilities, H264_ENCODE_PROBE_CONTENT_TYPES, video) + .then((answers) => recordH264HardwareProfileProbe(answers, video)) + .finally(() => { + pendingH264HardwareProfileProbes.delete(key); + }); + pendingH264HardwareProfileProbes.set(key, promise); + return promise; +} + +export async function probeWebRtcEncodeEfficiency( + config?: Partial, +): Promise | null> { + const mediaCapabilities = getMediaCapabilities(); + if (!mediaCapabilities) return null; + const delivery = ScreenShareDeliveryRollout.enabled; + const video = resolveEncodeProbeVideoConfig(config); const codecs: ReadonlyArray = ['av1', 'h265', 'h264', 'vp9', 'vp8']; const answers = await Promise.all( codecs.map((codec) => - probeCodecEncodeEfficiency( + probeContentTypesEncodeEfficiency( mediaCapabilities, - WEBRTC_ENCODE_PROBE_CONTENT_TYPES[codec], - ENCODE_PROBE_VIDEO_CONFIG, + codec === 'h264' && !delivery + ? CONTROL_H264_ENCODE_PROBE_CONTENT_TYPES + : WEBRTC_ENCODE_PROBE_CONTENT_TYPES[codec], + video, ), ), ); const result = {} as Record; codecs.forEach((codec, index) => { - result[codec] = answers[index] ?? 'unknown'; + const codecAnswers = answers[index] ?? []; + if (delivery && codec === 'h264') recordH264HardwareProfileProbe(codecAnswers, video); + result[codec] = collapseEncodeProbeAnswers(codecAnswers); }); return result; } @@ -330,7 +459,10 @@ let cachedReport: HardwareEncodeReport | null = null; let pendingPromise: Promise | null = null; function fetchReport(): Promise { - if (!isDesktop()) return Promise.resolve(null); + if (!isDesktop()) { + if (!ScreenShareDeliveryRollout.enabled) return Promise.resolve(null); + return probeH264HardwareProfiles().then(() => null); + } const electron = getElectronAPI(); if (!electron?.getGpuInfo) return Promise.resolve(null); return Promise.allSettled([electron.getGpuInfo(), probeWebRtcEncodeEfficiency()]).then(([gpuResult, probeResult]) => { @@ -371,6 +503,9 @@ export function getGpuEncoderReportSync(): HardwareEncodeReport | null { export function resetGpuEncoderReport(): void { cachedReport = null; pendingPromise = null; + h264HardwareProfileProbes.clear(); + pendingH264HardwareProfileProbes.clear(); + latestH264HardwareProfileProbeKey = null; } export function hasHardwareEncodeFor(codec: VideoCodec): HardwareEncodeAnswer { diff --git a/fluxer_app/src/features/voice/utils/OpenH264Status.ts b/fluxer_app/src/features/voice/utils/OpenH264Status.ts deleted file mode 100644 index 3b17dc0d6..000000000 --- a/fluxer_app/src/features/voice/utils/OpenH264Status.ts +++ /dev/null @@ -1,62 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later - -import {Logger} from '@app/features/platform/utils/AppLogger'; -import {getElectronAPI, isDesktop} from '@app/features/ui/utils/NativeUtils'; -import type {OpenH264Status} from '@app/types/electron.d'; - -const logger = new Logger('OpenH264Status'); - -let cachedStatus: OpenH264Status | null = null; -let pendingPromise: Promise | null = null; - -function fetchStatus(): Promise { - if (!isDesktop()) return Promise.resolve(null); - const electron = getElectronAPI(); - if (!electron?.getOpenH264Status) return Promise.resolve(null); - return electron - .getOpenH264Status() - .then((status) => { - cachedStatus = status; - return status; - }) - .catch((error) => { - logger.warn('Failed to fetch OpenH264 status', {error}); - return null; - }); -} - -export function loadOpenH264Status(): Promise { - if (cachedStatus) return Promise.resolve(cachedStatus); - if (pendingPromise) return pendingPromise; - pendingPromise = fetchStatus().finally(() => { - pendingPromise = null; - }); - return pendingPromise; -} - -export function getOpenH264StatusSync(): OpenH264Status | null { - return cachedStatus; -} - -export function resetOpenH264Status(): void { - cachedStatus = null; - pendingPromise = null; -} - -export async function setOpenH264Enabled(enabled: boolean): Promise { - if (!isDesktop()) return null; - const electron = getElectronAPI(); - if (!electron?.setOpenH264Enabled) return null; - try { - const status = await electron.setOpenH264Enabled(enabled); - cachedStatus = status; - return status; - } catch (error) { - logger.warn('Failed to set OpenH264 enabled state', {error}); - return null; - } -} - -if (typeof window !== 'undefined' && isDesktop()) { - void loadOpenH264Status(); -} diff --git a/fluxer_app/src/features/voice/utils/ScreenShareCodecDiagnostics.test.ts b/fluxer_app/src/features/voice/utils/ScreenShareCodecDiagnostics.test.ts new file mode 100644 index 000000000..4219e3866 --- /dev/null +++ b/fluxer_app/src/features/voice/utils/ScreenShareCodecDiagnostics.test.ts @@ -0,0 +1,89 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import { + computeInboundVideoDecodeHealth, + findInboundVideoDecodeSample, + findStalledVideoDecoder, +} from '@app/features/voice/utils/ScreenShareCodecDiagnostics'; +import { + markScreenShareDecodeFailure, + resetVideoDecoderExclusions, +} from '@app/features/voice/utils/VideoDecoderCapabilities'; +import {afterEach, describe, expect, it, vi} from 'vitest'; + +vi.mock('@app/features/voice/state/ScreenShareDeliveryRollout', () => ({ + ScreenShareDeliveryRollout: {enabled: true}, + default: {enabled: true}, +})); + +function buildStats(inbound: Record): RTCStatsReport { + return new Map([ + ['codec-1', {type: 'codec', id: 'codec-1', mimeType: 'video/H264'}], + ['inbound-1', {type: 'inbound-rtp', id: 'inbound-1', kind: 'video', codecId: 'codec-1', ...inbound}], + ]) as unknown as RTCStatsReport; +} + +function buildSample(inbound: Record) { + const sample = findInboundVideoDecodeSample(buildStats(inbound)); + if (!sample) throw new Error('expected an inbound video sample'); + return sample; +} + +describe('the screen share decode stall detector', () => { + it('calls a stream that never decoded a keyframe a stall', () => { + const stall = findStalledVideoDecoder( + buildSample({framesDecoded: 0, keyFramesDecoded: 0, framesReceived: 6, framesDropped: 6}), + ); + expect(stall?.codec).toBe('h264'); + }); + + it('refuses to call a stream that decoded and then froze a stall', () => { + expect( + findStalledVideoDecoder( + buildSample({framesDecoded: 240, keyFramesDecoded: 2, framesReceived: 260, framesDropped: 20}), + ), + ).toBeNull(); + }); + + it('refuses to call anything a stall when the stats report no keyframe counter', () => { + expect(findStalledVideoDecoder(buildSample({framesDecoded: 0, framesReceived: 6, framesDropped: 6}))).toBeNull(); + }); +}); + +describe('the baseline decode floor', () => { + afterEach(() => { + resetVideoDecoderExclusions(); + }); + + it('never withdraws a codec every WebRTC endpoint is required to decode', () => { + expect(markScreenShareDecodeFailure('h264', 'test')).toBe(false); + expect(markScreenShareDecodeFailure('vp8', 'test')).toBe(false); + }); + + it('still withdraws an optional codec', () => { + expect(markScreenShareDecodeFailure('av1', 'test')).toBe(true); + }); +}); + +describe('inbound video smoothness', () => { + it('reports decoded frame rate and mean inter-frame delay in milliseconds', () => { + const previous = buildSample({ + timestamp: 1000, + framesDecoded: 100, + totalInterFrameDelay: 2, + totalSquaredInterFrameDelay: 0.04, + freezeCount: 1, + }); + const current = buildSample({ + timestamp: 3000, + framesDecoded: 160, + totalInterFrameDelay: 4, + totalSquaredInterFrameDelay: 0.08, + freezeCount: 3, + }); + const health = computeInboundVideoDecodeHealth(previous, current); + expect(health?.decodedFps).toBe(30); + expect(health?.meanInterFrameDelayMs).toBe(33.3); + expect(health?.freezes).toBe(2); + }); +}); diff --git a/fluxer_app/src/features/voice/utils/ScreenShareCodecDiagnostics.ts b/fluxer_app/src/features/voice/utils/ScreenShareCodecDiagnostics.ts index a8a67070e..8f5d5d367 100644 --- a/fluxer_app/src/features/voice/utils/ScreenShareCodecDiagnostics.ts +++ b/fluxer_app/src/features/voice/utils/ScreenShareCodecDiagnostics.ts @@ -1,19 +1,16 @@ // SPDX-License-Identifier: AGPL-3.0-or-later import {Logger} from '@app/features/platform/utils/AppLogger'; +import ScreenShareDeliveryRollout from '@app/features/voice/state/ScreenShareDeliveryRollout'; import SoftwareEncoderWarning from '@app/features/voice/state/SoftwareEncoderWarning'; -import { - classifyVideoDecoderAcceleration, - isSoftwareVideoImplementation, -} from '@app/features/voice/utils/VideoAccelerationClassification'; +import {classifyVideoDecoderAcceleration} from '@app/features/voice/utils/VideoAccelerationClassification'; import type {VideoCodec} from 'livekit-client'; const logger = new Logger('ScreenShareCodecDiagnostics'); +const DECODE_SAMPLE_INTERVAL_MS = 5000; const DECODER_VERIFICATION_DELAY_MS = 5000; const UNKNOWN_DECODER_IMPLEMENTATION = 'software decoder'; -export {isSoftwareVideoImplementation}; - interface CodecStatsEntry { type: string; id: string; @@ -25,10 +22,16 @@ interface InboundVideoStatsEntry { kind?: string; mediaType?: string; codecId?: string; + timestamp?: number; packetsReceived?: number; bytesReceived?: number; framesDecoded?: number; + keyFramesDecoded?: number; framesReceived?: number; + framesDropped?: number; + freezeCount?: number; + totalInterFrameDelay?: number; + totalSquaredInterFrameDelay?: number; decoderImplementation?: string; powerEfficientDecoder?: boolean; } @@ -46,6 +49,38 @@ export interface StalledVideoDecoderInfo { bytesReceived: number; framesDecoded: number; framesReceived: number; + framesDropped: number | null; +} + +export interface InboundVideoDecodeSample { + codec: VideoCodec | null; + mimeType?: string; + atMs: number; + packetsReceived: number; + bytesReceived: number; + framesDecoded: number | null; + keyFramesDecoded: number | null; + framesReceived: number | null; + framesDropped: number | null; + freezeCount: number | null; + totalInterFrameDelay: number | null; + totalSquaredInterFrameDelay: number | null; + decoderImplementation: string | null; + powerEfficientDecoder: boolean | null; +} + +export interface InboundVideoDecodeHealth { + codec: VideoCodec | null; + intervalMs: number; + decodedFps: number | null; + framesDecodedDelta: number | null; + meanInterFrameDelayMs: number | null; + interFrameDelayStdDevMs: number | null; + freezes: number | null; + freezeCount: number | null; + framesDroppedDelta: number | null; + framesDecoded: number | null; + bytesReceivedDelta: number; } function isSoftwareVideoStats(implementation: string | null, powerEfficient: boolean | null): boolean { @@ -73,6 +108,17 @@ function finiteNumber(value: unknown): number | null { return typeof value === 'number' && Number.isFinite(value) ? value : null; } +function counterDelta(previous: number | null, current: number | null): number | null { + if (previous === null || current === null) return null; + if (current < previous) return null; + return current - previous; +} + +function roundTo(value: number, decimals: number): number { + const factor = 10 ** decimals; + return Math.round(value * factor) / factor; +} + function getStatsKind(report: InboundVideoStatsEntry, codecs: Map): string | undefined { if (report.kind || report.mediaType) return report.kind ?? report.mediaType; if (!report.codecId) return undefined; @@ -80,7 +126,10 @@ function getStatsKind(report: InboundVideoStatsEntry, codecs: Map; + reports: Array; +} { const codecs = new Map(); const reports: Array = []; for (const raw of stats.values()) { @@ -92,6 +141,11 @@ export function findSoftwareVideoDecoder(stats: RTCStatsReport): SoftwareVideoDe reports.push(report); } } + return {codecs, reports}; +} + +function findSoftwareVideoDecoderInStats(stats: RTCStatsReport): SoftwareVideoDecoderInfo | null { + const {codecs, reports} = collectInboundVideoStats(stats); for (const report of reports) { if (getStatsKind(report, codecs) !== 'video') continue; const implementation = @@ -110,41 +164,130 @@ export function findSoftwareVideoDecoder(stats: RTCStatsReport): SoftwareVideoDe return null; } -export function findStalledVideoDecoder(stats: RTCStatsReport): StalledVideoDecoderInfo | null { - const codecs = new Map(); - const reports: Array = []; - for (const raw of stats.values()) { - const report = raw as CodecStatsEntry & InboundVideoStatsEntry; - if (report.type === 'codec') { - codecs.set(report.id, report); - } - if (report.type === 'inbound-rtp') { - reports.push(report); - } - } +function findStalledVideoDecoderInStats(stats: RTCStatsReport): StalledVideoDecoderInfo | null { + const {codecs, reports} = collectInboundVideoStats(stats); for (const report of reports) { if (getStatsKind(report, codecs) !== 'video') continue; const framesDecoded = finiteNumber(report.framesDecoded); if (framesDecoded === null || framesDecoded > 0) continue; const framesReceived = finiteNumber(report.framesReceived); if (framesReceived === null || framesReceived < 1) continue; - const packetsReceived = finiteNumber(report.packetsReceived) ?? 0; - const bytesReceived = finiteNumber(report.bytesReceived) ?? 0; const mimeType = report.codecId ? codecs.get(report.codecId)?.mimeType : undefined; const codec = getVideoCodecFromMimeType(mimeType); if (!codec) continue; return { codec, mimeType, - packetsReceived, - bytesReceived, + packetsReceived: finiteNumber(report.packetsReceived) ?? 0, + bytesReceived: finiteNumber(report.bytesReceived) ?? 0, framesDecoded, framesReceived, + framesDropped: finiteNumber(report.framesDropped), }; } return null; } +function scheduleScreenShareDecoderVerification( + getStats: () => Promise, + onDecodeFailure?: (failure: StalledVideoDecoderInfo) => void, +): () => void { + let cancelled = false; + let timer: ReturnType | null = null; + const scheduleConfirmation = (first: StalledVideoDecoderInfo): void => { + timer = setTimeout(async () => { + timer = null; + try { + const stats = await getStats(); + const confirmed = confirmDecodeStall(first, stats ? findStalledVideoDecoderInStats(stats) : null); + if (cancelled || !confirmed) return; + logger.warn('Screen share video decode is stalled', confirmed); + onDecodeFailure?.(confirmed); + } catch (error) { + logger.debug('Failed to confirm the screen share decode stall', {error}); + } + }, DECODER_VERIFICATION_DELAY_MS); + }; + timer = setTimeout(async () => { + timer = null; + let firstStall: StalledVideoDecoderInfo | null = null; + try { + const stats = await getStats(); + if (!stats) return; + firstStall = findStalledVideoDecoderInStats(stats); + const decoder = findSoftwareVideoDecoderInStats(stats); + if (!decoder) return; + logger.warn('Screen share is using a software decoder', decoder); + SoftwareEncoderWarning.triggerDecoderWarning(decoder.codec, decoder.implementation); + } catch (error) { + logger.debug('Failed to verify screen share decoder', {error}); + } finally { + if (!cancelled && firstStall) { + scheduleConfirmation(firstStall); + } + } + }, DECODER_VERIFICATION_DELAY_MS); + return () => { + cancelled = true; + if (!timer) return; + clearTimeout(timer); + timer = null; + }; +} + +export function findInboundVideoDecodeSample(stats: RTCStatsReport): InboundVideoDecodeSample | null { + const {codecs, reports} = collectInboundVideoStats(stats); + for (const report of reports) { + if (getStatsKind(report, codecs) !== 'video') continue; + const mimeType = report.codecId ? codecs.get(report.codecId)?.mimeType : undefined; + return { + codec: getVideoCodecFromMimeType(mimeType), + mimeType, + atMs: finiteNumber(report.timestamp) ?? Date.now(), + packetsReceived: finiteNumber(report.packetsReceived) ?? 0, + bytesReceived: finiteNumber(report.bytesReceived) ?? 0, + framesDecoded: finiteNumber(report.framesDecoded), + keyFramesDecoded: finiteNumber(report.keyFramesDecoded), + framesReceived: finiteNumber(report.framesReceived), + framesDropped: finiteNumber(report.framesDropped), + freezeCount: finiteNumber(report.freezeCount), + totalInterFrameDelay: finiteNumber(report.totalInterFrameDelay), + totalSquaredInterFrameDelay: finiteNumber(report.totalSquaredInterFrameDelay), + decoderImplementation: + typeof report.decoderImplementation === 'string' && report.decoderImplementation.length > 0 + ? report.decoderImplementation + : null, + powerEfficientDecoder: typeof report.powerEfficientDecoder === 'boolean' ? report.powerEfficientDecoder : null, + }; + } + return null; +} + +export function findSoftwareVideoDecoder(sample: InboundVideoDecodeSample): SoftwareVideoDecoderInfo | null { + if (!isSoftwareVideoStats(sample.decoderImplementation, sample.powerEfficientDecoder)) return null; + return { + codec: getCodecLabel(sample.mimeType), + implementation: sample.decoderImplementation ?? UNKNOWN_DECODER_IMPLEMENTATION, + powerEfficientDecoder: sample.powerEfficientDecoder, + }; +} + +export function findStalledVideoDecoder(sample: InboundVideoDecodeSample): StalledVideoDecoderInfo | null { + if (sample.codec === null) return null; + if (sample.framesDecoded !== 0) return null; + if (sample.keyFramesDecoded !== 0) return null; + if (sample.framesReceived === null || sample.framesReceived < 1) return null; + return { + codec: sample.codec, + mimeType: sample.mimeType, + packetsReceived: sample.packetsReceived, + bytesReceived: sample.bytesReceived, + framesDecoded: sample.framesDecoded, + framesReceived: sample.framesReceived, + framesDropped: sample.framesDropped, + }; +} + export function confirmDecodeStall( first: StalledVideoDecoderInfo | null, second: StalledVideoDecoderInfo | null, @@ -156,57 +299,124 @@ export function confirmDecodeStall( return second; } -export function scheduleScreenShareDecoderVerification( +export function computeInboundVideoDecodeHealth( + previous: InboundVideoDecodeSample, + current: InboundVideoDecodeSample, +): InboundVideoDecodeHealth | null { + const intervalMs = current.atMs - previous.atMs; + if (intervalMs <= 0) return null; + const framesDecodedDelta = counterDelta(previous.framesDecoded, current.framesDecoded); + const interFrameDelayDelta = counterDelta(previous.totalInterFrameDelay, current.totalInterFrameDelay); + const squaredInterFrameDelayDelta = counterDelta( + previous.totalSquaredInterFrameDelay, + current.totalSquaredInterFrameDelay, + ); + const meanInterFrameDelay = + framesDecodedDelta === null || framesDecodedDelta === 0 || interFrameDelayDelta === null + ? null + : interFrameDelayDelta / framesDecodedDelta; + const variance = + meanInterFrameDelay === null || framesDecodedDelta === null || squaredInterFrameDelayDelta === null + ? null + : squaredInterFrameDelayDelta / framesDecodedDelta - meanInterFrameDelay ** 2; + return { + codec: current.codec, + intervalMs: Math.round(intervalMs), + decodedFps: framesDecodedDelta === null ? null : roundTo((framesDecodedDelta * 1000) / intervalMs, 1), + framesDecodedDelta, + meanInterFrameDelayMs: meanInterFrameDelay === null ? null : roundTo(meanInterFrameDelay * 1000, 1), + interFrameDelayStdDevMs: variance === null || variance < 0 ? null : roundTo(Math.sqrt(variance) * 1000, 1), + freezes: counterDelta(previous.freezeCount, current.freezeCount), + freezeCount: current.freezeCount, + framesDroppedDelta: counterDelta(previous.framesDropped, current.framesDropped), + framesDecoded: current.framesDecoded, + bytesReceivedDelta: Math.max(0, current.bytesReceived - previous.bytesReceived), + }; +} + +export function monitorScreenShareDecodeHealth( getStats: () => Promise, - onComplete?: () => void, - onDecodeFailure?: (failure: StalledVideoDecoderInfo) => void, + onDecodeStall?: (failure: StalledVideoDecoderInfo) => void, ): () => void { + if (!ScreenShareDeliveryRollout.enabled) return scheduleScreenShareDecoderVerification(getStats, onDecodeStall); let cancelled = false; let timer: ReturnType | null = null; - const scheduleConfirmation = (first: StalledVideoDecoderInfo): void => { - timer = setTimeout(async () => { - timer = null; - try { - const stats = await getStats(); - const confirmed = confirmDecodeStall(first, stats ? findStalledVideoDecoder(stats) : null); - if (cancelled || !confirmed) return; - logger.warn('Screen share video decode is stalled', confirmed); - onDecodeFailure?.(confirmed); - } catch (error) { - logger.debug('Failed to confirm the screen share decode stall', {error}); - } finally { - if (!cancelled) { - onComplete?.(); - } - } - }, DECODER_VERIFICATION_DELAY_MS); + let previousSample: InboundVideoDecodeSample | null = null; + let pendingStall: StalledVideoDecoderInfo | null = null; + let reportedStall = false; + let isSoftwareDecoder = false; + let warnedSoftwareDecoder = false; + let isFrozen = false; + + const noteSoftwareDecoder = (sample: InboundVideoDecodeSample): void => { + const decoder = findSoftwareVideoDecoder(sample); + if (!decoder) { + isSoftwareDecoder = false; + return; + } + if (isSoftwareDecoder) return; + isSoftwareDecoder = true; + logger.warn('Screen share is using a software decoder', decoder); + if (warnedSoftwareDecoder) return; + warnedSoftwareDecoder = true; + SoftwareEncoderWarning.triggerDecoderWarning(decoder.codec, decoder.implementation); }; - timer = setTimeout(async () => { - timer = null; - let firstStall: StalledVideoDecoderInfo | null = null; + + const noteDecodeStall = (sample: InboundVideoDecodeSample): void => { + const stall = findStalledVideoDecoder(sample); + const confirmed = confirmDecodeStall(pendingStall, stall); + pendingStall = stall; + if (!confirmed || reportedStall) return; + reportedStall = true; + logger.warn('Screen share video decode is stalled', confirmed); + onDecodeStall?.(confirmed); + }; + + const noteDecodeHealth = (sample: InboundVideoDecodeSample): void => { + const health = previousSample === null ? null : computeInboundVideoDecodeHealth(previousSample, sample); + if (!health) return; + if (health.framesDecodedDelta === 0 && health.bytesReceivedDelta > 0) { + if (isFrozen) return; + isFrozen = true; + logger.warn('Screen share video is receiving bytes but decoding no frames', health); + return; + } + if (isFrozen && health.framesDecodedDelta !== null && health.framesDecodedDelta > 0) { + isFrozen = false; + logger.info('Screen share video decoding resumed', health); + return; + } + logger.debug('Screen share video decode health', health); + }; + + const sampleOnce = async (): Promise => { try { const stats = await getStats(); - if (!stats) return; - firstStall = findStalledVideoDecoder(stats); - const decoder = findSoftwareVideoDecoder(stats); - if (!decoder) return; - logger.warn('Screen share is using a software decoder', decoder); - SoftwareEncoderWarning.triggerDecoderWarning(decoder.codec, decoder.implementation); + if (cancelled || !stats) return; + const sample = findInboundVideoDecodeSample(stats); + if (!sample) return; + noteSoftwareDecoder(sample); + noteDecodeStall(sample); + noteDecodeHealth(sample); + previousSample = sample; } catch (error) { - logger.debug('Failed to verify screen share decoder', {error}); - } finally { - if (!cancelled) { - if (firstStall) { - scheduleConfirmation(firstStall); - } else { - onComplete?.(); - } - } + logger.debug('Failed to sample the screen share decoder', {error}); } - }, DECODER_VERIFICATION_DELAY_MS); + }; + + const scheduleNextSample = (): void => { + timer = setTimeout(async () => { + timer = null; + await sampleOnce(); + if (cancelled) return; + scheduleNextSample(); + }, DECODE_SAMPLE_INTERVAL_MS); + }; + + scheduleNextSample(); return () => { cancelled = true; - if (!timer) return; + if (timer === null) return; clearTimeout(timer); timer = null; }; diff --git a/fluxer_app/src/features/voice/utils/ScreenShareCodecSelection.test.ts b/fluxer_app/src/features/voice/utils/ScreenShareCodecSelection.test.ts new file mode 100644 index 000000000..593fca763 --- /dev/null +++ b/fluxer_app/src/features/voice/utils/ScreenShareCodecSelection.test.ts @@ -0,0 +1,19 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {isScreenShareCodecUpgrade} from '@app/features/voice/utils/ScreenShareCodecSelection'; +import {describe, expect, it} from 'vitest'; + +describe('isScreenShareCodecUpgrade', () => { + it('treats an earlier ranked codec than the published one as an upgrade', () => { + expect(isScreenShareCodecUpgrade(['vp9', 'h264', 'vp8'], 'h264', 'vp9')).toBe(true); + }); + + it('treats a later ranked codec than the published one as a downgrade', () => { + expect(isScreenShareCodecUpgrade(['vp9', 'h264', 'vp8'], 'vp9', 'h264')).toBe(false); + }); + + it('treats a codec missing from the order as a downgrade', () => { + expect(isScreenShareCodecUpgrade(['vp9', 'vp8'], 'h264', 'vp9')).toBe(false); + expect(isScreenShareCodecUpgrade(['vp9', 'vp8'], 'vp9', 'h264')).toBe(false); + }); +}); diff --git a/fluxer_app/src/features/voice/utils/ScreenShareCodecSelection.ts b/fluxer_app/src/features/voice/utils/ScreenShareCodecSelection.ts index 62c00a249..86de682af 100644 --- a/fluxer_app/src/features/voice/utils/ScreenShareCodecSelection.ts +++ b/fluxer_app/src/features/voice/utils/ScreenShareCodecSelection.ts @@ -8,6 +8,7 @@ const COMPATIBILITY_CODECS: ReadonlySet = new Set(['h264', 'vp9', 'v export const LAST_RESORT_VIDEO_CODEC: VideoCodec = 'vp8'; const BASELINE_BROWSER_CODECS: ReadonlySet = new Set(['h264', 'vp8']); export const SCREEN_SHARE_CODEC_ADVERTISEMENT_GRACE_MS = 3_000; +export const SCREEN_SHARE_CODEC_CHANGE_SUPPRESSION_MS = 10_000; export const VIDEO_CODEC_NAMES: Record = { av1: 'AV1', h265: 'H265', @@ -114,6 +115,17 @@ export function rankScreenShareCodecs(input: ScreenShareCodecRankingInput): Scre }; } +export function isScreenShareCodecUpgrade( + order: ReadonlyArray, + publishedCodec: VideoCodec, + nextCodec: VideoCodec, +): boolean { + const publishedRank = order.indexOf(publishedCodec); + const nextRank = order.indexOf(nextCodec); + if (publishedRank < 0 || nextRank < 0) return false; + return nextRank < publishedRank; +} + export function buildScreenShareCodecAdvertisements( order: ReadonlyArray, decode: Record, diff --git a/fluxer_app/src/features/voice/utils/ScreenShareOptions.test.ts b/fluxer_app/src/features/voice/utils/ScreenShareOptions.test.ts new file mode 100644 index 000000000..816b656cb --- /dev/null +++ b/fluxer_app/src/features/voice/utils/ScreenShareOptions.test.ts @@ -0,0 +1,188 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import { + buildScreenShareOptions, + getScreenShareBitrateBps, + resolveScreenShareDegradationPreference, + resolveScreenShareFrameRate, + resolveScreenShareLayering, + resolveScreenShareTarget, +} from '@app/features/voice/utils/ScreenShareOptions'; +import {afterEach, describe, expect, it, vi} from 'vitest'; + +const rollout = vi.hoisted(() => ({enabled: false})); + +vi.mock('@app/features/voice/state/ScreenShareDeliveryRollout', () => ({ + ScreenShareDeliveryRollout: rollout, + default: rollout, +})); + +vi.mock('@app/features/voice/utils/NativeAudioCaptureBridge', () => ({ + rememberCapturedDisplayAudioTrack: () => undefined, +})); +vi.mock('@app/features/voice/engine/voice_screen_share_manager/shared', () => ({ + stopMediaTrack: () => undefined, + stopUnselectedStreamTracks: () => undefined, +})); + +const {getDisplayMediaOptions} = await import( + '@app/features/voice/engine/voice_screen_share_manager/DisplayMediaCapture' +); + +afterEach(() => { + rollout.enabled = false; +}); + +function collectKeys(value: unknown, keys: Set): Set { + if (typeof value !== 'object' || value === null) return keys; + for (const [key, entry] of Object.entries(value)) { + keys.add(key); + collectKeys(entry, keys); + } + return keys; +} + +function targetOf(overrides: {mode?: 'gaming' | 'screenshare' | 'custom'; softwareEncoderClamp?: boolean} = {}) { + return resolveScreenShareTarget({ + mode: overrides.mode ?? 'screenshare', + storedResolution: 'medium', + storedFrameRate: 30, + entitled: true, + context: 'display', + sourceDimensions: null, + hintSetting: 'auto', + ...(overrides.softwareEncoderClamp === undefined ? {} : {softwareEncoderClamp: overrides.softwareEncoderClamp}), + }); +} + +describe('screen share layering', () => { + it('never asks for temporal layers on the codecs livekit forwards without a dependency descriptor', () => { + for (const codec of ['h264', 'vp8'] as const) { + expect(resolveScreenShareLayering({codec, svcSetting: 'auto'}).scalabilityMode).toBeUndefined(); + expect(resolveScreenShareLayering({codec, svcSetting: 'temporal'}).scalabilityMode).toBeUndefined(); + } + }); + + it('keeps temporal layers for the SVC codecs that carry one', () => { + for (const codec of ['av1', 'vp9'] as const) { + expect(resolveScreenShareLayering({codec, svcSetting: 'auto'}).scalabilityMode).toBe('L1T3'); + } + }); +}); + +describe('display capture constraints', () => { + it('asks for no min and no exact, which getDisplayMedia rejects before the picker runs', () => { + const {captureOptions} = buildScreenShareOptions({ + resolution: 'high', + frameRate: 60, + context: 'display', + includeAudio: true, + contentHint: 'text', + sourceDimensions: {width: 3840, height: 2160}, + preferredDisplaySurface: 'monitor', + }); + const keys = collectKeys(getDisplayMediaOptions(captureOptions).video, new Set()); + expect(keys.has('min')).toBe(false); + expect(keys.has('exact')).toBe(false); + }); +}); + +describe('the screen share delivery experiment', () => { + it('keeps the source preset and the 90 and 120 FPS rungs off the experiment', () => { + expect(targetOf()).toMatchObject({resolution: 'source', frameRate: 15}); + expect(resolveScreenShareFrameRate(120)).toBe(120); + expect(resolveScreenShareFrameRate(90)).toBe(90); + expect(resolveScreenShareFrameRate(60)).toBe(60); + }); + + it('moves the preset to 1080p30 and lands the faster rungs on 60 FPS on the experiment', () => { + rollout.enabled = true; + expect(targetOf()).toMatchObject({resolution: 'high', frameRate: 30}); + expect(resolveScreenShareFrameRate(120)).toBe(60); + expect(resolveScreenShareFrameRate(90)).toBe(60); + expect(resolveScreenShareFrameRate(60)).toBe(60); + }); + + it('reads the rung table off the experiment and the pixel budget on it', () => { + expect(getScreenShareBitrateBps('source', 60)).toBe(6_000_000); + rollout.enabled = true; + expect(getScreenShareBitrateBps('source', 60)).toBe(9_000_000); + }); + + it('publishes the stored frame rate and the rung bitrate off the experiment', () => { + const {publishOptions} = buildScreenShareOptions({ + resolution: 'source', + frameRate: 90, + context: 'display', + includeAudio: false, + sourceDimensions: {width: 3840, height: 2160}, + }); + expect(publishOptions.screenShareEncoding).toEqual({ + maxBitrate: 6_000_000, + maxFramerate: 90, + priority: 'high', + }); + expect(publishOptions.degradationPreference).toBe('maintain-resolution'); + }); + + it('holds the motion hint for every surface off the experiment and only for a camera on it', () => { + expect(targetOf({mode: 'gaming'}).contentHint).toBe('motion'); + rollout.enabled = true; + expect(targetOf({mode: 'gaming'}).contentHint).toBeUndefined(); + }); + + it('ignores the software H.264 clamp off the experiment', () => { + expect(targetOf({mode: 'gaming', softwareEncoderClamp: true})).toMatchObject({ + resolution: 'ultra', + frameRate: 60, + softwareEncoderClamped: false, + }); + rollout.enabled = true; + expect(targetOf({mode: 'gaming', softwareEncoderClamp: true})).toMatchObject({ + resolution: 'medium', + frameRate: 30, + softwareEncoderClamped: true, + }); + }); +}); + +describe('screen share degradation preference', () => { + it('holds the resolution for every share off the experiment', () => { + expect( + resolveScreenShareDegradationPreference({ + context: 'display', + rung: 'medium', + contentHint: undefined, + maxBitrate: 3_000_000, + }), + ).toBe('maintain-resolution'); + expect( + resolveScreenShareDegradationPreference({ + context: 'device', + rung: 'medium', + contentHint: undefined, + maxBitrate: 3_000_000, + }), + ).toBe('balanced'); + }); + + it('refuses maintain-framerate below the initial frame dropper cliff', () => { + rollout.enabled = true; + expect( + resolveScreenShareDegradationPreference({ + context: 'display', + rung: 'low_240p', + contentHint: undefined, + maxBitrate: 300_000, + }), + ).toBe('maintain-resolution'); + expect( + resolveScreenShareDegradationPreference({ + context: 'display', + rung: 'medium', + contentHint: undefined, + maxBitrate: 3_000_000, + }), + ).toBe('maintain-framerate'); + }); +}); diff --git a/fluxer_app/src/features/voice/utils/ScreenShareOptions.ts b/fluxer_app/src/features/voice/utils/ScreenShareOptions.ts index 07dc5e195..189691b84 100644 --- a/fluxer_app/src/features/voice/utils/ScreenShareOptions.ts +++ b/fluxer_app/src/features/voice/utils/ScreenShareOptions.ts @@ -1,11 +1,13 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +import ScreenShareDeliveryRollout from '@app/features/voice/state/ScreenShareDeliveryRollout'; import type {ScreenshareResolution, StreamingMode} from '@app/features/voice/state/VoiceSettings'; import type { ScreenShareContentHint, ScreenShareScalabilityModePreference, } from '@app/features/voice/utils/CodecCapabilityDetector'; -import type {ScreenShareCaptureOptions, TrackPublishOptions, VideoCodec, VideoEncoding} from 'livekit-client'; +import {getH264HardwareProfilesSync} from '@app/features/voice/utils/GpuEncoderCapabilities'; +import type {ScreenShareCaptureOptions, TrackPublishOptions, VideoCodec} from 'livekit-client'; const DIMENSIONS: Record< ScreenshareResolution, @@ -22,10 +24,16 @@ const DIMENSIONS: Record< source: {width: 3840, height: 2160}, }; export const SCREEN_SHARE_MAX_VIDEO_BITRATE_BPS = 6_000_000; +export const SCREEN_SHARE_DELIVERY_MAX_VIDEO_BITRATE_BPS = 9_000_000; export const SUPPORTED_SCREEN_SHARE_FRAME_RATES = [15, 30, 60, 90, 120] as const; export type SupportedScreenShareFrameRate = (typeof SUPPORTED_SCREEN_SHARE_FRAME_RATES)[number]; +const SCREEN_SHARE_BITS_PER_PIXEL_PER_FRAME = 0.02; +const SCREEN_SHARE_MIN_MAINTAIN_FRAMERATE_BITRATE_BPS = 500_000; +const SOFTWARE_H264_MAX_RESOLUTION: ScreenshareResolution = 'medium'; +const SOFTWARE_H264_MAX_FRAME_RATE: SupportedScreenShareFrameRate = 30; + const BITRATE_KBPS: Record> = { low_240p: {15: 300, 30: 500, 60: 700, 90: 700, 120: 700}, low_480p: {15: 1200, 30: 2000, 60: 3000, 90: 3000, 120: 3000}, @@ -44,9 +52,15 @@ const BITRATE_RUNGS = [ 'source', ] as const satisfies ReadonlyArray; -export function resolveScreenShareFrameRate(frameRate: number): SupportedScreenShareFrameRate { - if (frameRate >= 120) return 120; - if (frameRate >= 90) return 90; +function isScreenShareDeliveryEnabled(delivery: boolean | undefined): boolean { + return delivery ?? ScreenShareDeliveryRollout.enabled; +} + +export function resolveScreenShareFrameRate(frameRate: number, delivery?: boolean): SupportedScreenShareFrameRate { + if (!isScreenShareDeliveryEnabled(delivery)) { + if (frameRate >= 120) return 120; + if (frameRate >= 90) return 90; + } if (frameRate >= 60) return 60; if (frameRate >= 30) return 30; return 15; @@ -65,14 +79,16 @@ function resolveBitrateRungForPixels(pixels: number): ScreenshareResolution { return rung; } -function resolveBitrateRung( - resolution: ScreenshareResolution, - sourceDimensions?: { - width: number; - height: number; - } | null, -): ScreenshareResolution { - return resolveEffectiveScreenShareDimensions(resolution, sourceDimensions).rung; +function computeScreenShareBitrateBps( + pixels: number, + rung: ScreenshareResolution, + frameRate: SupportedScreenShareFrameRate, + delivery: boolean, +): number { + const rungFloor = BITRATE_KBPS[rung][frameRate] * 1000; + if (!delivery) return rungFloor; + const computed = Math.round(SCREEN_SHARE_BITS_PER_PIXEL_PER_FRAME * pixels * frameRate); + return Math.min(SCREEN_SHARE_DELIVERY_MAX_VIDEO_BITRATE_BPS, Math.max(rungFloor, computed)); } export function getScreenShareBitrateBps( @@ -82,24 +98,15 @@ export function getScreenShareBitrateBps( width: number; height: number; } | null, + delivery?: boolean, ): number { - return BITRATE_KBPS[resolveBitrateRung(resolution, sourceDimensions)][frameRate] * 1000; -} - -export function getScreenShareEncoding( - resolution: ScreenshareResolution, - frameRate: number, - sourceDimensions?: { - width: number; - height: number; - } | null, -): VideoEncoding { - const resolvedFrameRate = resolveScreenShareFrameRate(frameRate); - return { - maxBitrate: getScreenShareBitrateBps(resolution, resolvedFrameRate, sourceDimensions), - maxFramerate: resolvedFrameRate, - priority: 'high', - }; + const fit = resolveEffectiveScreenShareDimensions(resolution, sourceDimensions); + return computeScreenShareBitrateBps( + fit.width * fit.height, + fit.rung, + frameRate, + isScreenShareDeliveryEnabled(delivery), + ); } export const STREAMING_MODE_PRESETS: Record< @@ -112,6 +119,16 @@ export const STREAMING_MODE_PRESETS: Record< gaming: {resolution: 'ultra', frameRate: 60}, screenshare: {resolution: 'source', frameRate: 15}, }; +const SCREEN_SHARE_DELIVERY_STREAMING_MODE_PRESETS: Record< + Exclude, + { + resolution: ScreenshareResolution; + frameRate: SupportedScreenShareFrameRate; + } +> = { + gaming: {resolution: 'ultra', frameRate: 60}, + screenshare: {resolution: 'high', frameRate: 30}, +}; const FREE_STREAMING_MODE_PRESETS: Record< Exclude, { @@ -134,6 +151,8 @@ export interface ScreenShareBuildConfig { context: ScreenShareContext; includeAudio: boolean; contentHint?: ScreenShareCaptureOptions['contentHint']; + degradationPreference?: NonNullable; + delivery?: boolean; sourceDimensions?: { width: number; height: number; @@ -189,8 +208,10 @@ export function resolveEffectiveScreenShareDimensions( } export function buildScreenShareOptions(config: ScreenShareBuildConfig): BuiltScreenShareOptions { - const {width, height} = resolveEffectiveScreenShareDimensions(config.resolution, config.sourceDimensions); - const resolvedFrameRate = resolveScreenShareFrameRate(config.frameRate); + const delivery = isScreenShareDeliveryEnabled(config.delivery); + const {width, height, rung} = resolveEffectiveScreenShareDimensions(config.resolution, config.sourceDimensions); + const resolvedFrameRate = resolveScreenShareFrameRate(config.frameRate, delivery); + const maxBitrate = computeScreenShareBitrateBps(width * height, rung, resolvedFrameRate, delivery); const video: ScreenShareVideoOptions = { cursor: resolveScreenShareCursorCapture(config.preferredDisplaySurface), ...(config.preferredDisplaySurface ? {displaySurface: config.preferredDisplaySurface} : {}), @@ -208,8 +229,15 @@ export function buildScreenShareOptions(config: ScreenShareBuildConfig): BuiltSc video, }, publishOptions: { - degradationPreference: resolveScreenShareDegradationPreference(config), - screenShareEncoding: getScreenShareEncoding(config.resolution, resolvedFrameRate, config.sourceDimensions), + degradationPreference: resolveScreenShareDegradationPreference({ + context: config.context, + rung, + contentHint: config.contentHint, + maxBitrate, + degradationPreference: config.degradationPreference, + delivery, + }), + screenShareEncoding: {maxBitrate, maxFramerate: resolvedFrameRate, priority: 'high'}, }, }; } @@ -242,14 +270,17 @@ export function resolveStreamingModeSettings( customResolution: ScreenshareResolution, customFrameRate: number, hasHigherQuality: boolean, + delivery?: boolean, ): { resolution: ScreenshareResolution; frameRate: SupportedScreenShareFrameRate; } { + const enabled = isScreenShareDeliveryEnabled(delivery); + const presets = enabled ? SCREEN_SHARE_DELIVERY_STREAMING_MODE_PRESETS : STREAMING_MODE_PRESETS; const resolved = mode === 'custom' - ? {resolution: customResolution, frameRate: resolveScreenShareFrameRate(customFrameRate)} - : (hasHigherQuality ? STREAMING_MODE_PRESETS : FREE_STREAMING_MODE_PRESETS)[mode]; + ? {resolution: customResolution, frameRate: resolveScreenShareFrameRate(customFrameRate, enabled)} + : (hasHigherQuality ? presets : FREE_STREAMING_MODE_PRESETS)[mode]; if (hasHigherQuality) { return resolved; } @@ -288,11 +319,14 @@ export interface ScreenShareQualityInput { storedFrameRate: number; entitled: boolean; context: ScreenShareContext; + delivery?: boolean; } export interface ScreenShareTargetInput extends ScreenShareQualityInput { sourceDimensions: {width: number; height: number} | null; hintSetting: ScreenShareContentHint; + codec?: VideoCodec; + softwareEncoderClamp?: boolean; } export interface ScreenShareTarget { @@ -305,25 +339,71 @@ export interface ScreenShareTarget { rung: ScreenshareResolution; maxBitrate: number; contentHint: ScreenShareCaptureOptions['contentHint']; + degradationPreference: NonNullable; + softwareEncoderClamped: boolean; + delivery?: boolean; presetOwned: boolean; tierLimited: boolean; deviceMapped: boolean; } -export function resolveScreenShareDegradationPreference(target: { +export interface ScreenShareDegradationInput { context: ScreenShareContext; -}): NonNullable { - return target.context === 'device' ? 'balanced' : 'maintain-resolution'; + rung: ScreenshareResolution; + contentHint: ScreenShareCaptureOptions['contentHint']; + maxBitrate: number; + degradationPreference?: NonNullable; + delivery?: boolean; } -function resolveEffectiveScreenShareQuality(input: ScreenShareQualityInput): { +export function resolveScreenShareDegradationPreference( + target: ScreenShareDegradationInput, +): NonNullable { + if (!isScreenShareDeliveryEnabled(target.delivery)) { + return target.context === 'device' ? 'balanced' : 'maintain-resolution'; + } + if (target.degradationPreference) return target.degradationPreference; + if (target.context === 'device') return 'balanced'; + if (target.rung === 'source') return 'maintain-resolution'; + if (target.contentHint === 'text' || target.contentHint === 'detail') return 'maintain-resolution'; + if (target.maxBitrate < SCREEN_SHARE_MIN_MAINTAIN_FRAMERATE_BITRATE_BPS) return 'maintain-resolution'; + return 'maintain-framerate'; +} + +function shouldClampToSoftwareH264(codec: VideoCodec | undefined): boolean { + if (codec !== 'h264') return false; + return getH264HardwareProfilesSync()?.profiles.size === 0; +} + +function clampToSoftwareH264Budget(quality: { + mode: StreamingMode; + resolution: ScreenshareResolution; + frameRate: SupportedScreenShareFrameRate; +}): { + mode: StreamingMode; + resolution: ScreenshareResolution; + frameRate: SupportedScreenShareFrameRate; +} { + const cappedResolution = + BITRATE_RUNGS.indexOf(quality.resolution) > BITRATE_RUNGS.indexOf(SOFTWARE_H264_MAX_RESOLUTION) + ? SOFTWARE_H264_MAX_RESOLUTION + : quality.resolution; + const cappedFrameRate = + quality.frameRate > SOFTWARE_H264_MAX_FRAME_RATE ? SOFTWARE_H264_MAX_FRAME_RATE : quality.frameRate; + return {mode: quality.mode, resolution: cappedResolution, frameRate: cappedFrameRate}; +} + +function resolveEffectiveScreenShareQuality( + input: ScreenShareQualityInput, + delivery: boolean, +): { mode: StreamingMode; resolution: ScreenshareResolution; frameRate: SupportedScreenShareFrameRate; } { const mode = normaliseStreamingModeForContext(input.mode, input.context); const resolution = normaliseResolutionForContext(input.storedResolution, input.context, input.entitled); - const settings = resolveStreamingModeSettings(mode, resolution, input.storedFrameRate, input.entitled); + const settings = resolveStreamingModeSettings(mode, resolution, input.storedFrameRate, input.entitled, delivery); return {mode, resolution: settings.resolution, frameRate: settings.frameRate}; } @@ -336,10 +416,27 @@ function resolveScreenShareContentHintForMode( return hintSetting === 'auto' ? undefined : hintSetting; } +function resolveScreenShareContentHint( + mode: StreamingMode, + hintSetting: ScreenShareContentHint, + context: ScreenShareContext, + delivery: boolean, +): ScreenShareCaptureOptions['contentHint'] { + const hint = resolveScreenShareContentHintForMode(mode, hintSetting); + if (!delivery) return hint; + return hint === 'motion' && context !== 'device' ? undefined : hint; +} + export function resolveScreenShareTarget(input: ScreenShareTargetInput): ScreenShareTarget { - const effective = resolveEffectiveScreenShareQuality(input); - const onDisplay = resolveEffectiveScreenShareQuality({...input, context: 'display'}); + const delivery = isScreenShareDeliveryEnabled(input.delivery); + const clamped = delivery && (input.softwareEncoderClamp === true || shouldClampToSoftwareH264(input.codec)); + const configured = resolveEffectiveScreenShareQuality(input, delivery); + const effective = clamped ? clampToSoftwareH264Budget(configured) : configured; + const configuredOnDisplay = resolveEffectiveScreenShareQuality({...input, context: 'display'}, delivery); + const onDisplay = clamped ? clampToSoftwareH264Budget(configuredOnDisplay) : configuredOnDisplay; const fit = resolveEffectiveScreenShareDimensions(effective.resolution, input.sourceDimensions); + const maxBitrate = computeScreenShareBitrateBps(fit.width * fit.height, fit.rung, effective.frameRate, delivery); + const contentHint = resolveScreenShareContentHint(effective.mode, input.hintSetting, input.context, delivery); return { mode: effective.mode, resolution: effective.resolution, @@ -348,14 +445,23 @@ export function resolveScreenShareTarget(input: ScreenShareTargetInput): ScreenS width: fit.width, height: fit.height, rung: fit.rung, - maxBitrate: BITRATE_KBPS[fit.rung][effective.frameRate] * 1000, - contentHint: resolveScreenShareContentHintForMode(effective.mode, input.hintSetting), + maxBitrate, + contentHint, + degradationPreference: resolveScreenShareDegradationPreference({ + context: input.context, + rung: fit.rung, + contentHint, + maxBitrate, + delivery, + }), + softwareEncoderClamped: clamped, + delivery, presetOwned: effective.mode !== 'custom', tierLimited: !input.entitled && input.mode === 'custom' && (PREMIUM_SCREEN_SHARE_RESOLUTIONS.includes(input.storedResolution) || - resolveScreenShareFrameRate(input.storedFrameRate) > FREE_TIER_MAX_FRAME_RATE), + resolveScreenShareFrameRate(input.storedFrameRate, delivery) > FREE_TIER_MAX_FRAME_RATE), deviceMapped: effective.mode !== onDisplay.mode || effective.resolution !== onDisplay.resolution || @@ -383,6 +489,51 @@ export function resolveScreenShareLayering(input: ScreenShareLayeringInput): Scr }; } +export type ScreenShareLimitClass = 'device' | 'link' | 'capture'; + +export interface ScreenShareLimitSample { + frameRate: SupportedScreenShareFrameRate; + maxBitrate: number; + elapsedMs: number; + framesEncoded: number; + encodeTimeMs: number; + bytesSent: number; + targetBitrateBps: number | null; + sourceFramesPerSecond: number | null; + cpuLimitedTicks: number; +} + +const ENCODE_DUTY_SATURATION = 1; +const LINK_LIMITED_CPU_TICKS = 3; +const LINK_LIMITED_TARGET_RATIO = 0.85; +const LINK_LIMITED_FILL_RATIO = 0.65; +const CAPTURE_SHORTFALL_RATIO = 0.6; + +export function classifyScreenShareLimit(sample: ScreenShareLimitSample): ScreenShareLimitClass | null { + if (sample.elapsedMs <= 0 || sample.framesEncoded < 0 || sample.bytesSent < 0) return null; + if (sample.framesEncoded === 0 && sample.sourceFramesPerSecond === null) return null; + const duty = + sample.framesEncoded > 0 ? (sample.encodeTimeMs / sample.framesEncoded) * (sample.frameRate / 1000) : null; + if (duty !== null && duty >= ENCODE_DUTY_SATURATION) return 'device'; + if ( + sample.sourceFramesPerSecond !== null && + sample.sourceFramesPerSecond < sample.frameRate * CAPTURE_SHORTFALL_RATIO + ) { + return 'capture'; + } + if (sample.maxBitrate <= 0) return 'device'; + const fill = (sample.bytesSent * 8000) / sample.elapsedMs / sample.maxBitrate; + const targetRatio = sample.targetBitrateBps === null ? 1 : sample.targetBitrateBps / sample.maxBitrate; + if ( + sample.cpuLimitedTicks < LINK_LIMITED_CPU_TICKS && + targetRatio < LINK_LIMITED_TARGET_RATIO && + fill >= LINK_LIMITED_FILL_RATIO + ) { + return 'link'; + } + return 'device'; +} + export interface ScreenShareSenderParametersInput { encodings: ReadonlyArray; target: ScreenShareTarget; @@ -419,21 +570,31 @@ export function resolveScreenShareSenderCodec( } export function buildScreenShareSenderParameters(input: ScreenShareSenderParametersInput): ScreenShareSenderParameters { + const delivery = input.target.delivery === true; + const degradationPreference = resolveScreenShareDegradationPreference(input.target); const targetPixels = input.target.width * input.target.height; const capturePixels = input.capture ? input.capture.width * input.capture.height : null; const baseScale = Math.min(...input.encodings.map((encoding) => encoding.scaleResolutionDownBy ?? 1)); - const targetScale = capturePixels === null ? 1 : Math.max(1, Math.sqrt(capturePixels / targetPixels)); + const targetScale = + capturePixels === null || (delivery && degradationPreference === 'maintain-framerate') + ? 1 + : Math.max(1, Math.sqrt(capturePixels / targetPixels)); const sentPixels = capturePixels === null ? null : capturePixels / (targetScale * targetScale); const maxBitrate = sentPixels !== null && sentPixels < targetPixels * SENT_PIXEL_FILL_RATIO ? Math.min( input.target.maxBitrate, - BITRATE_KBPS[resolveBitrateRungForPixels(sentPixels)][input.target.frameRate] * 1000, + computeScreenShareBitrateBps( + sentPixels, + resolveBitrateRungForPixels(sentPixels), + input.target.frameRate, + delivery, + ), ) : input.target.maxBitrate; const bitrates = distributeScreenShareBitrate(input.encodings, maxBitrate); return { - degradationPreference: resolveScreenShareDegradationPreference(input.target), + degradationPreference, encodings: input.encodings.map((encoding, index) => { const applied: RTCRtpEncodingParameters = { ...encoding, @@ -467,8 +628,9 @@ export function resolveScreenShareQualityPick( input: ScreenShareQualityInput, pick: ScreenShareQualityPick, ): ScreenShareQualityPatch | null { - const effective = resolveEffectiveScreenShareQuality(input); - const stored = resolveEffectiveScreenShareQuality({...input, mode: 'custom'}); + const delivery = isScreenShareDeliveryEnabled(input.delivery); + const effective = resolveEffectiveScreenShareQuality(input, delivery); + const stored = resolveEffectiveScreenShareQuality({...input, mode: 'custom'}, delivery); if (pick.axis === 'resolution') { if (normaliseResolutionForContext(pick.resolution, input.context, input.entitled) !== pick.resolution) return null; if (pick.resolution === effective.resolution) return null; diff --git a/fluxer_app/src/features/voice/utils/ScreenShareStartFlow.ts b/fluxer_app/src/features/voice/utils/ScreenShareStartFlow.ts index e05785373..b1bc68911 100644 --- a/fluxer_app/src/features/voice/utils/ScreenShareStartFlow.ts +++ b/fluxer_app/src/features/voice/utils/ScreenShareStartFlow.ts @@ -8,6 +8,7 @@ import {resolveConfiguredScreenShareTarget} from '@app/features/voice/engine/voi import ActiveScreenShareSource from '@app/features/voice/state/ActiveScreenShareSource'; import {clearDesktopSourceIntent, setDesktopSourceIntent} from '@app/features/voice/state/DesktopSourceIntent'; import LocalVoiceState from '@app/features/voice/state/LocalVoiceState'; +import ScreenShareDeliveryRollout from '@app/features/voice/state/ScreenShareDeliveryRollout'; import VoiceSettings from '@app/features/voice/state/VoiceSettings'; import { filterRoutableLinuxAudioSources, @@ -44,7 +45,8 @@ import { isScreenSharePortalUnavailableError, ScreenSharePortalUnavailableError, } from '@app/features/voice/utils/ScreenSharePortalUnavailableError'; -import {executeScreenShareOperation} from '@app/features/voice/utils/ScreenShareUtils'; +import {isScreenShareRollbackIncompleteError} from '@app/features/voice/utils/ScreenShareRollbackIncompleteError'; +import {executeScreenShareOperation, handleScreenShareError} from '@app/features/voice/utils/ScreenShareUtils'; import { type AppShareAudioRoute, resolveWindowShareAudioScope, @@ -803,6 +805,38 @@ export async function switchConfiguredDisplayScreenShare( }); } +export async function restartActiveScreenShareCapture(): Promise { + if (!ScreenShareDeliveryRollout.enabled) return false; + if (!didScreenShareStart()) return false; + const publishedSource = ActiveScreenShareSource.getPublishedSource(); + const sourceId = ActiveScreenShareSource.getSourceId(); + if ((publishedSource !== 'app' && publishedSource !== 'display') || sourceId == null) { + logger.warn('The live capture cannot take a new geometry, and restarting it would re-open the source picker', { + publishedSource, + }); + return false; + } + logger.info('Restarting the live screen share capture because its geometry did not take', { + publishedSource, + sourceId, + }); + try { + return await runConfiguredDisplayScreenShare( + sourceId, + { + sourceDimensions: ActiveScreenShareSource.getSourceDimensions() ?? undefined, + preferredDisplaySurface: publishedSource === 'app' ? 'window' : 'monitor', + isOwnWindow: ActiveScreenShareSource.isOwnWindow(), + }, + 'switch', + ); + } catch (error) { + if (isScreenShareRollbackIncompleteError(error)) handleScreenShareError(error); + logger.warn('Failed to restart the live screen share capture for a settings change', error); + return false; + } +} + async function linkManualAudioSourcesForDeviceShare(mode: 'start' | 'switch'): Promise { const linked = await reconfigureActiveLinuxScreenShareAudioLink().catch((error) => { logger.warn('Failed to link the selected application audio to the device share', {mode, error}); diff --git a/fluxer_app/src/features/voice/utils/StatsForNerdsCopy.ts b/fluxer_app/src/features/voice/utils/StatsForNerdsCopy.ts index d3f8cf0fb..3e6138c4c 100644 --- a/fluxer_app/src/features/voice/utils/StatsForNerdsCopy.ts +++ b/fluxer_app/src/features/voice/utils/StatsForNerdsCopy.ts @@ -304,7 +304,6 @@ async function collectVoiceSettingsMetadata(): Promise> screenShareScalabilityMode: VoiceSettings.getScreenShareScalabilityMode(), screenShareMaxBitrateMbps: getScreenShareBitrateBps(configuredScreenShare.resolution, configuredScreenShare.frameRate) / 1000000, - openH264Enabled: VoiceSettings.getOpenH264Enabled(), linuxAudioCapture: { workaround: VoiceSettings.getLinuxAudioCaptureWorkaround(), onlySpeakers: VoiceSettings.getLinuxAudioCaptureOnlySpeakers(), @@ -524,7 +523,6 @@ export function collectStatsForNerdsSnapshot(): StatsForNerdsData { shareDesktopAudio: VoiceSettings.getShareDesktopAudio(), shareAppAudio: VoiceSettings.getShareAppAudio(), muteStreamAudio: VoiceSettings.getMuteStreamAudio(), - openH264Enabled: VoiceSettings.getOpenH264Enabled(), }, screenShareAudioCapture: { nativeCapture: getNativeAudioCaptureDiagnosticState(), diff --git a/fluxer_app/src/features/voice/utils/VideoDecoderCapabilities.ts b/fluxer_app/src/features/voice/utils/VideoDecoderCapabilities.ts index e39724870..2b1429b5f 100644 --- a/fluxer_app/src/features/voice/utils/VideoDecoderCapabilities.ts +++ b/fluxer_app/src/features/voice/utils/VideoDecoderCapabilities.ts @@ -1,6 +1,7 @@ // SPDX-License-Identifier: AGPL-3.0-or-later import {Logger} from '@app/features/platform/utils/AppLogger'; +import ScreenShareDeliveryRollout from '@app/features/voice/state/ScreenShareDeliveryRollout'; import type {VideoCodec} from 'livekit-client'; const logger = new Logger('VideoDecoderCapabilities'); @@ -74,25 +75,10 @@ function hasRtcReceiverCapability(mimeType: string): boolean { }); } -function shouldExcludeByPlatformPolicy(_codec: VideoCodec): boolean { - return false; -} - function isBaselineWebRtcDecodeCodec(codec: VideoCodec): boolean { return codec === 'h264' || codec === 'vp8'; } -function getPlatformPolicyExclusions(): Array | null { - if ((globalThis as Record).RTCRtpReceiver === undefined) return null; - const excluded: Array = []; - for (const probe of CODEC_PROBES) { - if (hasRtcReceiverCapability(`video/${probe.codec}`) && shouldExcludeByPlatformPolicy(probe.codec)) { - excluded.push(probe.codec); - } - } - return excluded.length > 0 ? excluded : null; -} - async function probeCodecDecode(probe: CodecProbe): Promise { if (!hasRtcReceiverCapability(`video/${probe.codec}`)) { return true; @@ -100,9 +86,6 @@ async function probeCodecDecode(probe: CodecProbe): Promise { if (isBaselineWebRtcDecodeCodec(probe.codec)) { return true; } - if (shouldExcludeByPlatformPolicy(probe.codec)) { - return false; - } const api = getVideoDecoderApi(); if (!api) { return true; @@ -156,17 +139,21 @@ export function loadVideoDecoderExclusions(): Promise> { return pendingProbe; } +export function getProbedVideoDecoderExclusionsSync(): Array | null { + return cachedExclusions; +} + export function getVideoDecoderExclusionsSync(): Array | null { - const probed = cachedExclusions ?? getPlatformPolicyExclusions(); + const probed = getProbedVideoDecoderExclusionsSync(); if (probed === null && screenShareDecodeFailures.size === 0) return null; return [...new Set([...(probed ?? []), ...screenShareDecodeFailures])]; } -export function isVideoCodecDecodeExcluded(codec: VideoCodec): boolean { - return getVideoDecoderExclusionsSync()?.includes(codec) === true; -} - export function markScreenShareDecodeFailure(codec: VideoCodec, reason: string): boolean { + if (ScreenShareDeliveryRollout.enabled && isBaselineWebRtcDecodeCodec(codec)) { + logger.warn('Keeping a baseline codec advertised despite a local screen share decode stall', {codec, reason}); + return false; + } if (screenShareDecodeFailures.has(codec)) return false; if (screenShareDecodeFailures.size >= SCREEN_SHARE_DECODE_FAILURES_MAX) return false; screenShareDecodeFailures.add(codec); diff --git a/fluxer_app/src/features/voice/utils/VoiceMessageDescriptors.test.ts b/fluxer_app/src/features/voice/utils/VoiceMessageDescriptors.test.ts index c389b6c82..5a14565c4 100644 --- a/fluxer_app/src/features/voice/utils/VoiceMessageDescriptors.test.ts +++ b/fluxer_app/src/features/voice/utils/VoiceMessageDescriptors.test.ts @@ -59,6 +59,8 @@ const FIXED_TARGET: ScreenShareTarget = { rung: 'ultra', maxBitrate: 4_000_000, contentHint: 'text', + degradationPreference: 'maintain-resolution', + softwareEncoderClamped: false, presetOwned: true, tierLimited: false, deviceMapped: false, @@ -169,9 +171,10 @@ afterEach(() => { describe('WebRTC hardware encode probe', () => { it('asks H.264 about the profiles a hardware encoder advertises, not only constrained baseline', () => { - expect(H264_PROBE_PROFILE_LEVEL_IDS).toEqual(['640028', '4d0028', '420028', '42e028']); + expect(H264_PROBE_PROFILE_LEVEL_IDS).toEqual(['640028', '640c28', '4d0028', '420028', '42e028']); expect(H264_ENCODE_PROBE_CONTENT_TYPES.map((contentType) => h264ProfileLevelId(contentType).slice(0, 4))).toEqual([ '6400', + '640c', '4d00', '4200', '42e0', diff --git a/fluxer_app/src/features/voice/utils/VoiceStatsForNerdsPresenter.ts b/fluxer_app/src/features/voice/utils/VoiceStatsForNerdsPresenter.ts index 4f20ed151..ade43612b 100644 --- a/fluxer_app/src/features/voice/utils/VoiceStatsForNerdsPresenter.ts +++ b/fluxer_app/src/features/voice/utils/VoiceStatsForNerdsPresenter.ts @@ -91,7 +91,6 @@ export interface StatsForNerdsData { shareDesktopAudio: boolean; shareAppAudio: boolean; muteStreamAudio: boolean; - openH264Enabled: boolean; }; screenShareAudioCapture: { nativeCapture: Record; diff --git a/fluxer_app/src/types/electron.d.ts b/fluxer_app/src/types/electron.d.ts index 97409dcac..690ba10fa 100644 --- a/fluxer_app/src/types/electron.d.ts +++ b/fluxer_app/src/types/electron.d.ts @@ -72,14 +72,6 @@ export interface GpuInfo { export type StreamingPriorityDiagnostics = Record; -export interface OpenH264Status { - enabled: boolean; - downloaded: boolean; - downloading: boolean; - version: string | null; - error: string | null; -} - export interface DesktopWindowBehaviorSettings { showTrayIcon: boolean; minimizeToTray: boolean; @@ -484,8 +476,6 @@ export interface ElectronAPI { passkeyIsSupported?(): Promise; passkeyRegister?(options: unknown, requestContext?: {pin?: string}): Promise; passkeyAuthenticate?(options: unknown, requestContext?: {pin?: string}): Promise; - getOpenH264Status?(): Promise; - setOpenH264Enabled?(enabled: boolean): Promise; virtmic?: VirtmicApi; nativeAudio?: NativeAudioApi; nativeScreenCapture?: NativeScreenCaptureApi; diff --git a/fluxer_desktop/src/common/Types.ts b/fluxer_desktop/src/common/Types.ts index 4f8a16e9b..0fd36c471 100644 --- a/fluxer_desktop/src/common/Types.ts +++ b/fluxer_desktop/src/common/Types.ts @@ -71,14 +71,6 @@ export interface GpuInfo { export type StreamingPriorityDiagnostics = Record; -export interface OpenH264Status { - enabled: boolean; - downloaded: boolean; - downloading: boolean; - version: string | null; - error: string | null; -} - export interface CpuInfo { model: string; speed: number; @@ -640,8 +632,6 @@ export interface ElectronAPI { buildChannel: 'stable' | 'canary'; getDesktopInfo: () => Promise; getGpuInfo: () => Promise; - getOpenH264Status: () => Promise; - setOpenH264Enabled: (enabled: boolean) => Promise; getDesktopWindowBehaviorSettings: () => Promise; setDesktopWindowBehaviorSettings: ( settings: Partial, diff --git a/fluxer_desktop/src/main/ChromiumRuntime.test.mjs b/fluxer_desktop/src/main/ChromiumRuntime.test.mjs index 95a4e2177..8fa6f82f1 100644 --- a/fluxer_desktop/src/main/ChromiumRuntime.test.mjs +++ b/fluxer_desktop/src/main/ChromiumRuntime.test.mjs @@ -57,6 +57,17 @@ function loadChromiumRuntime(platform = 'win32') { return {appendedSwitches, module: module.exports}; } +function collectChromiumFeatureNames(platform) { + const {module} = loadChromiumRuntime(platform); + const features = new Set(module.BASE_DISABLED_CHROMIUM_FEATURES); + for (const [name, value] of Object.entries(module)) { + if (typeof value !== 'function') continue; + if (!name.startsWith('add') || !name.endsWith('Features')) continue; + value(features); + } + return [...features]; +} + describe('ChromiumRuntime Windows capture policy', () => { test('leaves the choice of Windows graphics capture to Chromium', () => { const {module} = loadChromiumRuntime('win32'); @@ -75,6 +86,35 @@ describe('ChromiumRuntime Windows capture policy', () => { }); }); +describe('ChromiumRuntime macOS capture policy', () => { + test('leaves the choice of macOS screen capture device to Chromium', () => { + assert.deepEqual( + collectChromiumFeatureNames('darwin').filter( + (feature) => feature.includes('ScreenCaptureKit') || feature.includes('SCContentSharingPicker'), + ), + [], + ); + }); + + test('exposes no macOS release-gated screen capture override', () => { + const {module} = loadChromiumRuntime('darwin'); + + assert.deepEqual( + Object.keys(module).filter((name) => name.includes('ScreenCapture')), + [], + ); + }); +}); + +describe('ChromiumRuntime Linux capture policy', () => { + test('leaves the choice of PipeWire screen capture to Chromium', () => { + assert.deepEqual( + collectChromiumFeatureNames('linux').filter((feature) => feature.includes('PipeWire')), + [], + ); + }); +}); + describe('ChromiumRuntime configured switch allowlist', () => { test('rejects settings-supplied switches that would disable or shrink the HTTP cache', () => { const {appendedSwitches, module} = loadChromiumRuntime('win32'); diff --git a/fluxer_desktop/src/main/ChromiumRuntime.ts b/fluxer_desktop/src/main/ChromiumRuntime.ts index 073c031a6..5d76a9783 100644 --- a/fluxer_desktop/src/main/ChromiumRuntime.ts +++ b/fluxer_desktop/src/main/ChromiumRuntime.ts @@ -27,15 +27,6 @@ const RUNTIME_CACHE_DIRECTORIES = [ 'Service Worker/ScriptCache', 'Default/Service Worker/ScriptCache', ]; -const MACOS_PRE_SEQUOIA_SCREEN_CAPTURE_DISABLED_FEATURES = [ - 'ScreenCaptureKitMac', - 'ScreenCaptureKitMacWindow', - 'ScreenCaptureKitMacScreen', - 'ScreenCaptureKitPickerScreen', - 'ScreenCaptureKitStreamPickerSonoma', - 'WarmScreenCaptureSonoma', - 'UseSCContentSharingPicker', -]; const WINDOWS_NVIDIA_HEVC_DECODE_WORKAROUND_DEVICE_IDS = new Set([ 4928, 4929, 4932, 4934, 4935, 4936, 4937, 4939, 4941, 4942, 4943, 4986, 4987, 4992, 4993, 4994, 5008, 5009, 5010, 5011, 5016, 5017, 5018, 5019, 5020, 5021, 5040, 5041, 5042, 5043, 5044, 5046, 5049, 5050, 5051, 5052, 5056, 5058, @@ -296,15 +287,6 @@ export function appendLinuxChromiumFlagsConfig(channel: 'stable' | 'canary'): vo } } -export function addMacosPreSequoiaScreenCaptureDisabledFeatures(features: Set): void { - if (process.platform !== 'darwin') return; - const majorRelease = Number.parseInt(os.release().split('.')[0] ?? '', 10); - if (!Number.isFinite(majorRelease) || majorRelease >= 24) return; - for (const feature of MACOS_PRE_SEQUOIA_SCREEN_CAPTURE_DISABLED_FEATURES) { - features.add(feature); - } -} - export function addLinuxHardwareVideoEncodeFeatures(features: Set): void { if (process.platform !== 'linux') return; features.add('AcceleratedVideoEncoder'); @@ -316,11 +298,6 @@ export interface ChromiumCommandLine { hasSwitch(name: string): boolean; } -export function addLinuxScreenCapturePipeWireFeature(features: Set): void { - if (process.platform !== 'linux') return; - features.add('WebRTCPipeWireCapturer'); -} - export function hasConfiguredOzonePlatformSwitch(commandLine: ChromiumCommandLine = app.commandLine): boolean { return commandLine.hasSwitch('ozone-platform') || commandLine.getSwitchValue('ozone-platform').length > 0; } diff --git a/fluxer_desktop/src/main/DisplayMedia.ts b/fluxer_desktop/src/main/DisplayMedia.ts index 1197daee5..09bb5e858 100644 --- a/fluxer_desktop/src/main/DisplayMedia.ts +++ b/fluxer_desktop/src/main/DisplayMedia.ts @@ -461,7 +461,7 @@ export function registerDisplayMediaHandlers(): void { name: selectedSource.name, withAudio: withAudio === true, }); - startWindowsScreenCaptureGuardForSource(selectedSource); + startWindowsScreenCaptureGuardForSource(selectedSource, event.sender); const _attachAudio = shouldHonorSelectedAudio(pending.audioRequested, withAudio); const streams: Electron.Streams = { video: selectedSource, diff --git a/fluxer_desktop/src/main/IpcHandlers.ts b/fluxer_desktop/src/main/IpcHandlers.ts index 8d47a83ff..3d7e06ac9 100644 --- a/fluxer_desktop/src/main/IpcHandlers.ts +++ b/fluxer_desktop/src/main/IpcHandlers.ts @@ -32,7 +32,6 @@ import {setNativeStrings} from '@electron/main/MainI18n'; import {copyRemoteFileToClipboard, parseClipboardWriteFileOptions} from '@electron/main/MediaClipboard'; import {registerNotificationIpcHandlers} from '@electron/main/NotificationsIpc'; import {openExternalDeduped} from '@electron/main/OpenExternal'; -import {getStatus as getOpenH264Status, setEnabled as setOpenH264Enabled} from '@electron/main/OpenH264Manager'; import {registerPasskeyHandlers} from '@electron/main/Passkeys'; import {getAppMetricsSnapshot, getDesktopInfo, getGpuInfo} from '@electron/main/PlatformInfo'; import {requirePrivilegedRendererDocumentSender} from '@electron/main/PrivilegedRendererDocuments'; @@ -140,8 +139,6 @@ export function registerIpcHandlers(): void { ipcMain.handle('get-desktop-info', () => getDesktopInfo()); ipcMain.handle('get-gpu-info', () => getGpuInfo()); ipcMain.handle('get-app-metrics', () => getAppMetricsSnapshot()); - ipcMain.handle('get-openh264-status', () => getOpenH264Status()); - ipcMain.handle('set-openh264-enabled', (_event, enabled: unknown) => setOpenH264Enabled(Boolean(enabled))); ipcMain.handle('streamer-mode:get-capture-app-status', () => getStreamerModeCaptureAppStatus()); ipcMain.handle('system-idle-time-ms', (): number => { return Math.max(0, powerMonitor.getSystemIdleTime() * 1000); diff --git a/fluxer_desktop/src/main/OpenH264Manager.ts b/fluxer_desktop/src/main/OpenH264Manager.ts deleted file mode 100644 index 824791ce5..000000000 --- a/fluxer_desktop/src/main/OpenH264Manager.ts +++ /dev/null @@ -1,236 +0,0 @@ -// SPDX-License-Identifier: AGPL-3.0-or-later - -import {execFile} from 'node:child_process'; -import fs from 'node:fs'; -import path from 'node:path'; -import type {OpenH264Status} from '@electron/common/Types'; -import {downloadFile} from '@electron/main/FileDownloads'; -import {app} from 'electron'; -import log from 'electron-log'; - -const OPENH264_VERSION = '2.5.1'; -const CISCO_CDN_BASE = 'https://ciscobinary.openh264.org'; -const PREFERENCES_FILE = 'preferences.json'; -const STATUS_FILE = 'status.json'; -const DECOMPRESS_TIMEOUT_MS = 30_000; - -interface PersistedPreferences { - enabled?: boolean; -} - -interface PersistedStatus { - version: string; - binaryPath: string; - downloadedAt: string; -} - -function getOpenH264Dir(): string { - return path.join(app.getPath('userData'), 'openh264'); -} - -function getStatusFilePath(): string { - return path.join(getOpenH264Dir(), STATUS_FILE); -} - -function getPreferencesFilePath(): string { - return path.join(getOpenH264Dir(), PREFERENCES_FILE); -} - -function getBinaryFilename(): string | null { - if (process.platform !== 'linux') return null; - return `libopenh264-${OPENH264_VERSION}-linux64.7.so`; -} - -function getDownloadUrl(): string | null { - const filename = getBinaryFilename(); - if (!filename) return null; - return `${CISCO_CDN_BASE}/${filename}.bz2`; -} - -function _getBinaryPath(): string | null { - const filename = getBinaryFilename(); - if (!filename) return null; - return path.join(getOpenH264Dir(), filename); -} - -function readPersistedStatus(): PersistedStatus | null { - try { - const data = JSON.parse(fs.readFileSync(getStatusFilePath(), 'utf8')) as Partial; - if (typeof data.version === 'string' && typeof data.binaryPath === 'string') { - return data as PersistedStatus; - } - return null; - } catch { - return null; - } -} - -function readPersistedEnabled(): boolean { - try { - const data = JSON.parse(fs.readFileSync(getPreferencesFilePath(), 'utf8')) as PersistedPreferences; - return typeof data.enabled === 'boolean' ? data.enabled : true; - } catch { - return true; - } -} - -function writePersistedEnabled(value: boolean): void { - try { - fs.mkdirSync(getOpenH264Dir(), {recursive: true}); - fs.writeFileSync(getPreferencesFilePath(), JSON.stringify({enabled: value}, null, 2), 'utf8'); - } catch (error) { - log.warn('[OpenH264] Failed to write preferences file', {error}); - } -} - -function writePersistedStatus(status: PersistedStatus): void { - try { - fs.mkdirSync(getOpenH264Dir(), {recursive: true}); - fs.writeFileSync(getStatusFilePath(), JSON.stringify(status, null, 2), 'utf8'); - } catch (error) { - log.warn('[OpenH264] Failed to write status file', {error}); - } -} - -function binaryExists(): boolean { - const persisted = readPersistedStatus(); - if (!persisted) return false; - if (persisted.version !== OPENH264_VERSION) return false; - try { - fs.accessSync(persisted.binaryPath, fs.constants.R_OK); - return true; - } catch { - return false; - } -} - -function getBinaryPathIfReady(): string | null { - const persisted = readPersistedStatus(); - if (!persisted) return null; - if (persisted.version !== OPENH264_VERSION) return null; - try { - fs.accessSync(persisted.binaryPath, fs.constants.R_OK); - return persisted.binaryPath; - } catch { - return null; - } -} - -function decompressBz2(compressedPath: string): Promise { - return new Promise((resolve, reject) => { - execFile('bunzip2', ['--keep', '--force', compressedPath], {timeout: DECOMPRESS_TIMEOUT_MS}, (error) => { - if (error) { - reject(new Error(`bunzip2 failed: ${error.message}`)); - return; - } - resolve(); - }); - }); -} - -let enabled: boolean | null = null; -let downloading = false; -let lastError: string | null = null; - -function getEnabled(): boolean { - if (enabled === null) { - enabled = readPersistedEnabled(); - } - return enabled; -} - -async function downloadOpenH264(): Promise { - const url = getDownloadUrl(); - const filename = getBinaryFilename(); - if (!url || !filename) { - lastError = 'Unsupported platform'; - return; - } - - const dir = getOpenH264Dir(); - const compressedPath = path.join(dir, `${filename}.bz2`); - const binaryPath = path.join(dir, filename); - - downloading = true; - lastError = null; - - try { - fs.mkdirSync(dir, {recursive: true}); - - log.info('[OpenH264] Downloading from Cisco CDN', {url, version: OPENH264_VERSION}); - await downloadFile(url, compressedPath); - - log.info('[OpenH264] Decompressing', {compressedPath}); - await decompressBz2(compressedPath); - - if (fs.existsSync(binaryPath)) { - writePersistedStatus({ - version: OPENH264_VERSION, - binaryPath, - downloadedAt: new Date().toISOString(), - }); - log.info('[OpenH264] Binary ready', {binaryPath, version: OPENH264_VERSION}); - } else { - lastError = 'Decompression produced no output file'; - log.warn('[OpenH264] Binary not found after decompression', {binaryPath}); - } - - try { - fs.unlinkSync(compressedPath); - } catch {} - } catch (error) { - lastError = error instanceof Error ? error.message : String(error); - log.warn('[OpenH264] Download failed', {error: lastError}); - } finally { - downloading = false; - } -} - -export function getStatus(): OpenH264Status { - if (process.platform !== 'linux') { - return { - enabled: false, - downloaded: false, - downloading: false, - version: null, - error: null, - }; - } - const binaryPath = getBinaryPathIfReady(); - return { - enabled: getEnabled(), - downloaded: binaryPath !== null, - downloading, - version: binaryPath !== null ? OPENH264_VERSION : null, - error: lastError, - }; -} - -export async function setEnabled(value: boolean): Promise { - if (process.platform !== 'linux') { - enabled = false; - return getStatus(); - } - enabled = value; - writePersistedEnabled(value); - if (getEnabled() && !binaryExists() && !downloading) { - void downloadOpenH264(); - } - return getStatus(); -} - -export function initOpenH264(): void { - if (process.platform !== 'linux') return; - if (getEnabled() && !binaryExists()) { - void downloadOpenH264(); - } -} - -export function appendOpenH264Switches(): void { - if (process.platform !== 'linux' || !getEnabled()) return; - const binaryPath = getBinaryPathIfReady(); - if (!binaryPath) return; - app.commandLine.appendSwitch('enable-libopenh264'); - app.commandLine.appendSwitch('openh264-library-path', binaryPath); - log.info('[OpenH264] Chromium OpenH264 library path configured', {binaryPath, version: OPENH264_VERSION}); -} diff --git a/fluxer_desktop/src/main/PlatformInfo.test.mjs b/fluxer_desktop/src/main/PlatformInfo.test.mjs index 3559967a4..a362db588 100644 --- a/fluxer_desktop/src/main/PlatformInfo.test.mjs +++ b/fluxer_desktop/src/main/PlatformInfo.test.mjs @@ -87,7 +87,7 @@ describe('PlatformInfo Chromium runtime diagnostics', () => { switches.filter((name) => name.startsWith('enable-h264-mf')), [], ); - assert.equal(switches.includes('enable-libopenh264'), true); + assert.equal(switches.includes('disable_accelerated_h264_encode'), true); }); }); diff --git a/fluxer_desktop/src/main/PlatformInfo.ts b/fluxer_desktop/src/main/PlatformInfo.ts index 4c91de509..226b1c4b8 100644 --- a/fluxer_desktop/src/main/PlatformInfo.ts +++ b/fluxer_desktop/src/main/PlatformInfo.ts @@ -52,10 +52,8 @@ const CHROMIUM_RUNTIME_SWITCHES = [ 'disable_metal', 'disable-renderer-backgrounding', 'disable_nv12_dxgi_video', - 'enable-libopenh264', 'force_high_performance_gpu', 'force_low_power_gpu', - 'openh264-library-path', ]; interface DesktopInfoOptions { diff --git a/fluxer_desktop/src/main/StreamingPriority.test.mjs b/fluxer_desktop/src/main/StreamingPriority.test.mjs index 266e08617..dd6e75213 100644 --- a/fluxer_desktop/src/main/StreamingPriority.test.mjs +++ b/fluxer_desktop/src/main/StreamingPriority.test.mjs @@ -53,7 +53,6 @@ function loadStreamingPriority({ clearedIntervals: [], powerStart: [], powerStop: [], - guardRetain: 0, guardStop: [], setPriority: [], nativeModuleImports: [], @@ -84,8 +83,8 @@ function loadStreamingPriority({ const osModule = { constants: {priority: {PRIORITY_ABOVE_NORMAL: -7}}, getPriority: () => currentPriority, - setPriority(priority) { - calls.setPriority.push(priority); + setPriority(pid, priority) { + calls.setPriority.push({processId: pid, priority}); }, }; const log = { @@ -94,9 +93,6 @@ function loadStreamingPriority({ warn: (...args) => calls.logs.warn.push(args), }; const guard = { - retainWindowsScreenCaptureGuard() { - calls.guardRetain += 1; - }, stopWindowsScreenCaptureGuard(reason) { calls.guardStop.push(reason); }, @@ -167,7 +163,10 @@ describe('StreamingPriority GPU scheduling priority', () => { {processId: 3002, priorityClass: 'high'}, {processId: 3003, priorityClass: 'high'}, ]); - assert.deepEqual(calls.setPriority, [-7]); + assert.deepEqual(calls.setPriority, [ + {processId: 1000, priority: -7}, + {processId: 2001, priority: -7}, + ]); assert.deepEqual(webContents.backgroundThrottlingAllowed, [false]); assert.equal(calls.intervals.length, 1); assert.equal(calls.intervals[0].delay, 20000); @@ -180,6 +179,10 @@ describe('StreamingPriority GPU scheduling priority', () => { streamingPriority: -7, savedPriority: 0, elevated: true, + elevatedProcesses: [ + {processId: 1000, savedPriority: 0}, + {processId: 2001, savedPriority: 0}, + ], }, gpuScheduling: { supported: true, @@ -234,7 +237,12 @@ describe('StreamingPriority GPU scheduling priority', () => { {processId: 3002}, {processId: 3003}, ]); - assert.deepEqual(calls.setPriority, [-7, 0]); + assert.deepEqual(calls.setPriority, [ + {processId: 1000, priority: -7}, + {processId: 2001, priority: -7}, + {processId: 1000, priority: 0}, + {processId: 2001, priority: 0}, + ]); assert.deepEqual(normalize(module.getStreamingPriorityDiagnostics().gpuScheduling.elevatedProcesses), []); assert.deepEqual(normalize(module.getStreamingPriorityDiagnostics().gpuScheduling.lastRestore), { status: 'succeeded', @@ -332,6 +340,28 @@ describe('StreamingPriority GPU scheduling priority', () => { assert.equal(module.getStreamingPriorityDiagnostics().processPriority.savedPriority, null); }); + test('forgets a renderer whose process is gone instead of rewriting a dead pid', () => { + const webContents = makeWebContents(2001); + const {calls, module} = loadStreamingPriority(); + + module.acquireStreamingPriority(webContents); + + assert.deepEqual(calls.setPriority, [ + {processId: 1000, priority: -7}, + {processId: 2001, priority: -7}, + ]); + + webContents.emit('render-process-gone'); + module.releaseStreamingPriority(); + + assert.deepEqual(calls.setPriority, [ + {processId: 1000, priority: -7}, + {processId: 2001, priority: -7}, + {processId: 1000, priority: 0}, + ]); + assert.deepEqual(calls.restore, [{processId: 1000}]); + }); + test('records the real native module load failure detail', () => { const webContents = makeWebContents(2001); const {calls, module} = loadStreamingPriority({ diff --git a/fluxer_desktop/src/main/StreamingPriority.ts b/fluxer_desktop/src/main/StreamingPriority.ts index 3ee64f463..13cf975c6 100644 --- a/fluxer_desktop/src/main/StreamingPriority.ts +++ b/fluxer_desktop/src/main/StreamingPriority.ts @@ -2,7 +2,7 @@ import {createRequire} from 'node:module'; import os from 'node:os'; -import {retainWindowsScreenCaptureGuard, stopWindowsScreenCaptureGuard} from '@electron/main/WindowsScreenCaptureGuard'; +import {stopWindowsScreenCaptureGuard} from '@electron/main/WindowsScreenCaptureGuard'; import {app, powerSaveBlocker} from 'electron'; import log from 'electron-log'; @@ -24,6 +24,12 @@ type WindowsGpuPriorityTargetReason = | 'chromium-video-encode' | 'chromium-media-utility'; +const PROCESS_PRIORITY_TARGET_REASONS: ReadonlySet = new Set([ + 'browser-main', + 'renderer', + 'tracked-renderer', +]); + type GpuPriorityModuleStatus = 'disabled' | 'unsupported-platform' | 'not-loaded' | 'loaded' | 'unavailable'; type GpuPriorityAttemptStatus = | 'disabled' @@ -80,6 +86,7 @@ export interface StreamingPriorityDiagnostics { streamingPriority: number; savedPriority: number | null; elevated: boolean; + elevatedProcesses: Array<{processId: number; savedPriority: number}>; }; gpuScheduling: { supported: boolean; @@ -98,7 +105,7 @@ export interface StreamingPriorityDiagnostics { let refCount = 0; let powerBlockerId: number | null = null; -let savedPriority: number | null = null; +const savedProcessPriorities = new Map(); let gpuPriorityModule: WindowsGpuPriorityModule | null | undefined; let gpuPriorityModuleLoadErrorDetail: string | null = null; const gpuPriorityElevatedProcessIds = new Map(); @@ -165,29 +172,37 @@ function stopPowerSaveBlocker(): void { powerBlockerId = null; } -function elevateProcessPriority(): void { - if (!CAN_ELEVATE_PROCESS_PRIORITY) return; +function elevateProcessPriority(processId: number): void { + if (!CAN_ELEVATE_PROCESS_PRIORITY || savedProcessPriorities.has(processId)) return; try { - savedPriority = os.getPriority(); - if (savedPriority > STREAMING_PRIORITY) { - os.setPriority(STREAMING_PRIORITY); - } else { - savedPriority = null; - } + const currentPriority = os.getPriority(processId); + if (currentPriority <= STREAMING_PRIORITY) return; + os.setPriority(processId, STREAMING_PRIORITY); + savedProcessPriorities.set(processId, currentPriority); } catch (error) { - log.debug('[StreamingPriority] Failed to elevate process priority', {error}); - savedPriority = null; + log.debug('[StreamingPriority] Failed to elevate process priority', {processId, error}); + } +} + +function elevateProcessPriorityTargets(targets: Array): void { + if (!CAN_ELEVATE_PROCESS_PRIORITY) return; + for (const target of targets) { + if (!target.reasons.some((reason) => PROCESS_PRIORITY_TARGET_REASONS.has(reason))) continue; + elevateProcessPriority(target.processId); } } function restoreProcessPriority(): void { - if (savedPriority === null) return; - try { - os.setPriority(savedPriority); - } catch (error) { - log.debug('[StreamingPriority] Failed to restore process priority', {error}); + if (savedProcessPriorities.size === 0) return; + const entries = [...savedProcessPriorities.entries()]; + savedProcessPriorities.clear(); + for (const [processId, priority] of entries) { + try { + os.setPriority(processId, priority); + } catch (error) { + log.debug('[StreamingPriority] Failed to restore process priority', {processId, error}); + } } - savedPriority = null; } function loadWindowsGpuPriorityModule(): WindowsGpuPriorityModule | null { @@ -263,19 +278,30 @@ function restoreBackgroundThrottling(): void { function rememberStreamingPriorityWebContents(webContents?: Electron.WebContents): void { if (!webContents || webContents.isDestroyed() || streamingPriorityWebContents.has(webContents)) return; streamingPriorityWebContents.add(webContents); + const processId = getRendererProcessId(webContents); + const forgetProcessPriority = (): void => { + if (processId === undefined) return; + savedProcessPriorities.delete(processId); + gpuPriorityElevatedProcessIds.delete(processId); + }; const cleanup = (): void => { streamingPriorityWebContents.delete(webContents); streamingPriorityWebContentsCleanup.delete(webContents); backgroundThrottlingBypassedWebContents.delete(webContents); + forgetProcessPriority(); }; - streamingPriorityWebContentsCleanup.set(webContents, cleanup); + streamingPriorityWebContentsCleanup.set(webContents, () => { + webContents.removeListener('destroyed', cleanup); + webContents.removeListener('render-process-gone', forgetProcessPriority); + }); webContents.once('destroyed', cleanup); + webContents.once('render-process-gone', forgetProcessPriority); } function clearStreamingPriorityWebContents(): void { - for (const [webContents, cleanup] of streamingPriorityWebContentsCleanup) { + for (const [webContents, detachListeners] of streamingPriorityWebContentsCleanup) { if (webContents && !webContents.isDestroyed()) { - webContents.removeListener('destroyed', cleanup); + detachListeners(); } } streamingPriorityWebContents.clear(); @@ -367,7 +393,7 @@ function cloneGpuPriorityRestoreDiagnostics( }; } -function elevateGpuSchedulingPriority(webContents?: Electron.WebContents): void { +function elevateGpuSchedulingPriority(targets: Array): void { if (GPU_SCHEDULING_PRIORITY === null) { lastGpuPriorityAcquire = { status: 'disabled', @@ -380,7 +406,6 @@ function elevateGpuSchedulingPriority(webContents?: Electron.WebContents): void }; return; } - const targets = collectGpuSchedulingPriorityTargets(webContents); if (process.platform !== 'win32') { lastGpuPriorityAcquire = { status: 'unsupported-platform', @@ -467,7 +492,9 @@ function elevateGpuSchedulingPriority(webContents?: Electron.WebContents): void function refreshGpuSchedulingPriority(): void { if (refCount <= 0) return; - elevateGpuSchedulingPriority(); + const targets = collectGpuSchedulingPriorityTargets(); + elevateProcessPriorityTargets(targets); + elevateGpuSchedulingPriority(targets); } function startGpuPriorityRefresh(): void { @@ -551,8 +578,12 @@ export function getStreamingPriorityDiagnostics(): StreamingPriorityDiagnostics processPriority: { supported: CAN_ELEVATE_PROCESS_PRIORITY, streamingPriority: STREAMING_PRIORITY, - savedPriority, - elevated: savedPriority !== null, + savedPriority: savedProcessPriorities.get(process.pid) ?? null, + elevated: savedProcessPriorities.size > 0, + elevatedProcesses: [...savedProcessPriorities.entries()].map(([processId, savedPriority]) => ({ + processId, + savedPriority, + })), }, gpuScheduling: { supported: process.platform === 'win32' && GPU_SCHEDULING_PRIORITY !== null, @@ -581,12 +612,12 @@ export function acquireStreamingPriority(webContents?: Electron.WebContents): vo refCount++; if (refCount === 1) { startPowerSaveBlocker(); - elevateProcessPriority(); - retainWindowsScreenCaptureGuard(); startGpuPriorityRefresh(); log.info('[StreamingPriority] Acquired', {refCount}); } - elevateGpuSchedulingPriority(webContents); + const targets = collectGpuSchedulingPriorityTargets(webContents); + elevateProcessPriorityTargets(targets); + elevateGpuSchedulingPriority(targets); } export function releaseStreamingPriority(): void { diff --git a/fluxer_desktop/src/main/WindowsScreenCaptureGuard.ts b/fluxer_desktop/src/main/WindowsScreenCaptureGuard.ts index fd2514d49..4dfbb4b28 100644 --- a/fluxer_desktop/src/main/WindowsScreenCaptureGuard.ts +++ b/fluxer_desktop/src/main/WindowsScreenCaptureGuard.ts @@ -1,26 +1,36 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +import os from 'node:os'; import {BrowserWindow, screen} from 'electron'; import log from 'electron-log'; -const PENDING_GUARD_TTL_MS = 120000; const GUARD_SIZE_DIP = 2; +const WGC_SCREEN_CAPTURE_MIN_WINDOWS_BUILD = 26100; -interface ActiveWindowsScreenCaptureGuard { +interface ActiveMonitorCompositionGuard { window: BrowserWindow; sourceId: string; displayId?: string; - retained: boolean; - timeout: NodeJS.Timeout | null; + owner: Electron.WebContents; + onOwnerDestroyed: () => void; } -let activeGuard: ActiveWindowsScreenCaptureGuard | null = null; -let guardRetentionRequested = false; +let activeGuard: ActiveMonitorCompositionGuard | null = null; function isScreenSource(source: Electron.DesktopCapturerSource): boolean { return source.id.startsWith('screen:'); } +function getWindowsBuildNumber(): number | null { + const build = Number.parseInt(os.release().split('.')[2] ?? '', 10); + return Number.isSafeInteger(build) && build > 0 ? build : null; +} + +function monitorCaptureUsesDxgiDuplication(): boolean { + const build = getWindowsBuildNumber(); + return build === null || build < WGC_SCREEN_CAPTURE_MIN_WINDOWS_BUILD; +} + function parseScreenSourceOrdinal(sourceId: string): number | null { const match = /^screen:([0-9]+):(?:0|1)$/.exec(sourceId); if (!match) return null; @@ -41,31 +51,15 @@ function resolveDisplayForSource(source: Electron.DesktopCapturerSource): Electr return screen.getPrimaryDisplay(); } -function clearGuardTimeout(guard: ActiveWindowsScreenCaptureGuard): void { - if (guard.timeout) { - clearTimeout(guard.timeout); - guard.timeout = null; +function detachOwnerListener(guard: ActiveMonitorCompositionGuard): void { + try { + guard.owner.removeListener('destroyed', guard.onOwnerDestroyed); + } catch (error) { + log.debug('[WindowsScreenCaptureGuard] Failed to detach capturer listener', {error}); } } -function armPendingGuardTimeout(guard: ActiveWindowsScreenCaptureGuard): void { - clearGuardTimeout(guard); - guard.timeout = setTimeout(() => { - if (activeGuard !== guard || guard.retained) return; - destroyActiveGuard('pending-timeout'); - }, PENDING_GUARD_TTL_MS); -} - -function retainGuardIfRequested(guard: ActiveWindowsScreenCaptureGuard): void { - guard.retained = guardRetentionRequested; - if (guard.retained) { - clearGuardTimeout(guard); - } else { - armPendingGuardTimeout(guard); - } -} - -function createGuardWindow(display: Electron.Display): BrowserWindow { +function createCompositionGuardWindow(display: Electron.Display): BrowserWindow { const {x, y, width, height} = display.bounds; const guardWindow = new BrowserWindow({ x: x + Math.max(0, width - GUARD_SIZE_DIP), @@ -118,57 +112,67 @@ function createGuardWindow(display: Electron.Display): BrowserWindow { return guardWindow; } -export function startWindowsScreenCaptureGuardForSource(source: Electron.DesktopCapturerSource): void { +export function startWindowsScreenCaptureGuardForSource( + source: Electron.DesktopCapturerSource, + owner: Electron.WebContents, +): void { if (process.platform !== 'win32') return; if (!isScreenSource(source)) return; - if (activeGuard?.sourceId === source.id && !activeGuard.window.isDestroyed()) { - retainGuardIfRequested(activeGuard); + if (owner.isDestroyed()) return; + if (!monitorCaptureUsesDxgiDuplication()) { + log.info('[WindowsScreenCaptureGuard] Not forcing DWM composition; Chromium captures monitors with WGC here', { + sourceId: source.id, + windowsBuild: getWindowsBuildNumber(), + }); + return; + } + if (activeGuard?.sourceId === source.id && activeGuard.owner === owner && !activeGuard.window.isDestroyed()) { return; } destroyActiveGuard('replace'); const display = resolveDisplayForSource(source); if (!display) return; try { - const guardWindow = createGuardWindow(display); - const guard: ActiveWindowsScreenCaptureGuard = { + const guardWindow = createCompositionGuardWindow(display); + const onOwnerDestroyed = (): void => { + if (activeGuard?.window === guardWindow) { + destroyActiveGuard('capturer-destroyed'); + } + }; + const guard: ActiveMonitorCompositionGuard = { window: guardWindow, sourceId: source.id, displayId: source.display_id, - retained: guardRetentionRequested, - timeout: null, + owner, + onOwnerDestroyed, }; guardWindow.once('closed', () => { if (activeGuard === guard) { - clearGuardTimeout(guard); + detachOwnerListener(guard); activeGuard = null; } }); + owner.once('destroyed', onOwnerDestroyed); activeGuard = guard; - retainGuardIfRequested(guard); - log.info('[WindowsScreenCaptureGuard] Armed monitor composition guard', { + log.info('[WindowsScreenCaptureGuard] Forcing DWM composition on the captured monitor for DXGI duplication', { sourceId: source.id, displayId: source.display_id, - retained: guard.retained, + windowsBuild: getWindowsBuildNumber(), bounds: display.bounds, }); } catch (error) { - log.warn('[WindowsScreenCaptureGuard] Failed to arm monitor composition guard', {sourceId: source.id, error}); + log.warn('[WindowsScreenCaptureGuard] Failed to force DWM composition on the captured monitor', { + sourceId: source.id, + error, + }); } } -export function retainWindowsScreenCaptureGuard(): void { - if (process.platform !== 'win32') return; - guardRetentionRequested = true; - if (!activeGuard) return; - activeGuard.retained = true; - clearGuardTimeout(activeGuard); -} - function destroyActiveGuard(reason: string): void { const guard = activeGuard; if (!guard) return; activeGuard = null; - clearGuardTimeout(guard); + detachOwnerListener(guard); if (!guard.window.isDestroyed()) { try { guard.window.destroy(); @@ -176,7 +180,7 @@ function destroyActiveGuard(reason: string): void { log.debug('[WindowsScreenCaptureGuard] Failed to destroy guard window', {reason, error}); } } - log.info('[WindowsScreenCaptureGuard] Stopped monitor composition guard', { + log.info('[WindowsScreenCaptureGuard] Stopped forcing DWM composition on the captured monitor', { reason, sourceId: guard.sourceId, displayId: guard.displayId, @@ -184,6 +188,5 @@ function destroyActiveGuard(reason: string): void { } export function stopWindowsScreenCaptureGuard(reason: string): void { - guardRetentionRequested = false; destroyActiveGuard(reason); } diff --git a/fluxer_desktop/src/main/index.ts b/fluxer_desktop/src/main/index.ts index dfa2d6669..2d9831a4e 100644 --- a/fluxer_desktop/src/main/index.ts +++ b/fluxer_desktop/src/main/index.ts @@ -19,8 +19,6 @@ import {configureUserDataPath} from '@electron/common/UserDataPath'; import {registerAutostartHandlers} from '@electron/main/Autostart'; import { addLinuxHardwareVideoEncodeFeatures, - addLinuxScreenCapturePipeWireFeature, - addMacosPreSequoiaScreenCaptureDisabledFeatures, addWindowsHardwareVideoEncodeFeatures, appendConfiguredChromiumSwitches, appendDisabledChromiumFeatures, @@ -67,7 +65,6 @@ import { } from '@electron/main/NativeHardwareEncoder'; import {runNativeModulePreflight} from '@electron/main/NativeModulePreflight'; import {cleanupNativeScreenCapture, registerNativeScreenCaptureHandlers} from '@electron/main/NativeScreenCapture'; -import {appendOpenH264Switches} from '@electron/main/OpenH264Manager'; import {cleanupLinuxChromiumSpellcheckDictionaries} from '@electron/main/Spellcheck'; import {registerUpdater} from '@electron/main/Updater'; import { @@ -265,10 +262,6 @@ if (launchConfigurationError) { addLinuxHardwareVideoEncodeFeatures(enabledChromiumFeatures); addWindowsHardwareVideoEncodeFeatures(enabledChromiumFeatures); } - addLinuxScreenCapturePipeWireFeature(enabledChromiumFeatures); - if (process.platform === 'darwin') { - addMacosPreSequoiaScreenCaptureDisabledFeatures(disabledChromiumFeatures); - } appendDisabledChromiumFeatures(disabledChromiumFeatures); if (enabledChromiumFeatures.size > 0) { appendEnabledChromiumFeatures(enabledChromiumFeatures); @@ -282,7 +275,6 @@ if (launchConfigurationError) { app.setToastActivatorCLSID(WINDOWS_TOAST_ACTIVATOR_CLSID); app.setAppUserModelId(WINDOWS_APP_USER_MODEL_ID); } - appendOpenH264Switches(); const gotTheLock = app.requestSingleInstanceLock(); if (!gotTheLock) { app.quit(); @@ -339,12 +331,6 @@ if (launchConfigurationError) { } catch (error) { log.error('[Init] Failed to register IPC handlers:', error); } - try { - const {initOpenH264} = await import('@electron/main/OpenH264Manager'); - initOpenH264(); - } catch (error) { - log.warn('[Init] OpenH264 initialization skipped:', error); - } try { runStartupPhase('autostart-handlers', registerAutostartHandlers); } catch (error) { diff --git a/fluxer_desktop/src/preload/index.ts b/fluxer_desktop/src/preload/index.ts index c67954eff..2c75ee470 100644 --- a/fluxer_desktop/src/preload/index.ts +++ b/fluxer_desktop/src/preload/index.ts @@ -42,7 +42,6 @@ import type { NativeScreenCaptureStartResult, NotificationOptions, NotificationResult, - OpenH264Status, SetDesktopTroubleshootingDisableHardwareAccelerationOptions, SpellcheckBundledDictionary, SpellcheckResolvedEngineInfo, @@ -340,9 +339,6 @@ const api: ElectronAPI = { getDesktopInfo: (): Promise => ipcRenderer.invoke('get-desktop-info'), getGpuInfo: (): Promise => ipcRenderer.invoke('get-gpu-info'), getAppMetrics: (): Promise => ipcRenderer.invoke('get-app-metrics'), - getOpenH264Status: (): Promise => ipcRenderer.invoke('get-openh264-status'), - setOpenH264Enabled: (enabled: boolean): Promise => - ipcRenderer.invoke('set-openh264-enabled', enabled), getSystemIdleTimeMs: (): Promise => ipcRenderer.invoke('system-idle-time-ms'), getDesktopWindowBehaviorSettings: (): Promise => ipcRenderer.invoke('desktop-window-behavior-get'), diff --git a/fluxer_docs/src/content/docs/admin-api/instance.mdx b/fluxer_docs/src/content/docs/admin-api/instance.mdx index 35fbdf763..1cfb3aa59 100644 --- a/fluxer_docs/src/content/docs/admin-api/instance.mdx +++ b/fluxer_docs/src/content/docs/admin-api/instance.mdx @@ -35,6 +35,7 @@ Missing settings use the defaults documented below. Invalid stored configuration | sso | [SSO configuration](#sso-configuration-object) object | Single sign-on settings | | gateway_rollout | [Gateway rollout configuration](#gateway-rollout-configuration-object) object | Gateway admission and dispatch tuning | | voice_noise_suppression | [voice noise suppression configuration](#voice-noise-suppression-configuration-object) object | Client-side noise suppression rollout | +| screen_share_delivery | [screen share delivery configuration](#screen-share-delivery-configuration-object) object | Reworked screen share delivery rollout | | experiment_delivery | [experiment delivery configuration](#experiment-delivery-configuration-object) object | Cadence every client polls the experiments route on | | registration | [registration configuration](#registration-configuration-object) object | Registration policy, issued URLs, and pending registrations | | self_hosted | boolean | Whether the deployment runs in self-hosted mode | @@ -120,6 +121,27 @@ Every field is present on read. An absent document or missing field uses the def How often a client revalidates this rollout is not set here. It is set once for every experiment in the [experiment delivery configuration](#experiment-delivery-configuration-object) below. +## Screen share delivery configuration object + +The instance rollout of the reworked screen share delivery path. [Experiments](/http-api/experiments/) defines what a client resolves from it. + +### Structure + +| Field | Type | Description | +| --- | --- | --- | +| enabled | boolean | Whether the rollout runs at all (default false) | +| config_version | integer | Revision counter, raised by Fluxer and never accepted from a request | +| rollout_basis_points | integer | Share of accounts the rollout selects, in basis points (0-10000, default 0) | +| rollout_salt | string | Salt of the sampling hash (1-64 characters, default `screen-share-delivery-v1`) | +| included_user_ids | array[snowflake] | Accounts the rollout always selects, up to 1000 entries (default empty) | +| excluded_user_ids | array[snowflake] | Accounts the rollout never selects, up to 1000 entries (default empty) | + +Every field is present on read. An absent document or missing field uses the defaults above. + +`excluded_user_ids` is applied before `included_user_ids`, so the rollout never selects an account in both. + +How often a client revalidates this rollout is not set here. It is set once for every experiment in the [experiment delivery configuration](#experiment-delivery-configuration-object) below. + ## Experiment delivery configuration object How often a client polls [Get experiment assignments](/http-api/experiments/#get-experiment-assignments), and how widely those polls are spread. The setting is instance-wide and applies to every experiment at once, so adding an experiment adds no second cadence to tune. @@ -528,6 +550,7 @@ The body has one optional object for each section. Fluxer leaves an absent secti | sso?1 | 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 | +| screen_share_delivery? | object | Any subset of the [screen share delivery](#screen-share-delivery-configuration-object) fields | | experiment_delivery? | object | Any subset of the [experiment delivery](#experiment-delivery-configuration-object) fields | | registration? | object | `mode` and `admin_registration_urls_enabled` | | app_public?2 | object | `branding`, `setup`, `legal`, and `registration` sub-objects, each merged field by field | @@ -541,6 +564,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. +`screen_share_delivery` works the same way, over the [screen share delivery configuration](#screen-share-delivery-configuration-object) fields and its own `config_version`. + `experiment_delivery` takes both [experiment delivery configuration](#experiment-delivery-configuration-object) fields, each bound as documented there. It is a section of its own, so a write to it changes no `config_version` and changes no assignment, only the cadence on which clients ask for one. 3 A secret such as `klipy_api_key`, `api_key`, `hcaptcha_secret_key`, `turnstile_secret_key`, or the SMTP `password` is written when supplied and left alone when absent. `integrations.bluesky.keys` is the only way to write the Bluesky signing keys counted as `bluesky.key_count`. It takes up to 8 entries of `kid` (1-255 characters) and nullable `private_key` (up to 10000 characters), and replaces the stored key set outright @@ -577,7 +602,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`, `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`, `screen_share_delivery`, `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/http-api/experiments.mdx b/fluxer_docs/src/content/docs/http-api/experiments.mdx index 2c40d0c25..a950c6abf 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. +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, and `screen_share_delivery`. 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. @@ -33,6 +33,7 @@ One entry per experiment. The envelope reports this object even when it is empty | Field | Type | Description | | --- | --- | --- | | voice_noise_suppression? | [noise suppression assignment](#noise-suppression-assignment-object) object | The caller's noise suppression assignment | +| screen_share_delivery? | [screen share delivery assignment](#screen-share-delivery-assignment-object) object | The caller's screen share delivery assignment | Ignore unknown experiments and treat a missing experiment as off. @@ -101,6 +102,18 @@ One backend replacement scoped to one guild. While the caller is connected to a An override naming a backend that is absent from `enabled_backends` is dropped before the response is written, so every entry is runnable. +## Screen share delivery assignment object + +One resolution of the instance screen share delivery rollout against one account. The field is present whenever the key is written. + +### Structure + +| Field | Type | Description | +| --- | --- | --- | +| enabled | boolean | Whether the caller runs the reworked screen share delivery path | + +A caller is drawn either by the operator's allowlist or by the sampled share of the account population. `enabled` is false in every other case, the rollout being off included. + ## Get experiment assignments diff --git a/knip.json b/knip.json index f774864c9..a6073ff18 100644 --- a/knip.json +++ b/knip.json @@ -30,6 +30,7 @@ "fluxer_desktop/src/main/LinuxDesktopEntry.ts": ["exports"], "fluxer_desktop/src/main/NotificationState.ts": ["exports", "types"], "packages/schema/src/domains/admin/AdminUserSchemas.ts": ["exports"], + "packages/schema/src/domains/admin/ScreenShareDeliverySchemas.ts": ["exports"], "packages/schema/src/domains/admin/VoiceNoiseSuppressionSchemas.ts": ["exports"], "packages/schema/src/domains/download/DownloadSchemas.ts": ["exports"], "packages/schema/src/domains/geolocation/GeolocationSchemas.ts": ["exports"], @@ -72,7 +73,7 @@ "native/*/test/**/*.mjs" ], "project": ["src/**/*.{ts,tsx,mjs,js}", "scripts/**/*.mjs", "native/**/*.{js,mjs,cjs,d.ts}"], - "ignoreBinaries": ["bunzip2", "reg.exe", "update-desktop-database"], + "ignoreBinaries": ["reg.exe", "update-desktop-database"], "ignoreDependencies": ["electron-builder", "electron-builder-squirrel-windows"] }, "fluxer_docs": { diff --git a/packages/schema/src/domains/admin/AdminSchemas.ts b/packages/schema/src/domains/admin/AdminSchemas.ts index 649ddd251..59cf581eb 100644 --- a/packages/schema/src/domains/admin/AdminSchemas.ts +++ b/packages/schema/src/domains/admin/AdminSchemas.ts @@ -15,6 +15,10 @@ import { GatewayRolloutConfigResponse, GatewayRolloutConfigUpdateRequest, } from '@fluxer/schema/src/domains/admin/GatewayRolloutSchemas'; +import { + ScreenShareDeliveryConfigResponse, + ScreenShareDeliveryConfigUpdateRequest, +} from '@fluxer/schema/src/domains/admin/ScreenShareDeliverySchemas'; import { VoiceNoiseSuppressionConfigResponse, VoiceNoiseSuppressionConfigUpdateRequest, @@ -644,6 +648,7 @@ export const InstanceConfigResponse = z.object({ sso: SsoConfigResponse, gateway_rollout: GatewayRolloutConfigResponse, voice_noise_suppression: VoiceNoiseSuppressionConfigResponse, + screen_share_delivery: ScreenShareDeliveryConfigResponse, experiment_delivery: ExperimentDeliveryConfigResponse, registration: InstanceRegistrationResponse, self_hosted: z.boolean(), @@ -680,6 +685,7 @@ const InstancePolicyUpdateSchema = z.object({ export const InstanceConfigUpdateRequest = z.object({ gateway_rollout: GatewayRolloutConfigUpdateRequest.nullish(), voice_noise_suppression: VoiceNoiseSuppressionConfigUpdateRequest.nullish(), + screen_share_delivery: ScreenShareDeliveryConfigUpdateRequest.nullish(), experiment_delivery: ExperimentDeliveryConfigUpdateRequest.nullish(), registration: z .object({ diff --git a/packages/schema/src/domains/admin/ScreenShareDeliverySchemas.test.ts b/packages/schema/src/domains/admin/ScreenShareDeliverySchemas.test.ts new file mode 100644 index 000000000..a6840b519 --- /dev/null +++ b/packages/schema/src/domains/admin/ScreenShareDeliverySchemas.test.ts @@ -0,0 +1,194 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import { + DEFAULT_SCREEN_SHARE_DELIVERY_CONFIG, + INERT_SCREEN_SHARE_DELIVERY_ASSIGNMENT, + resolveScreenShareDeliveryAssignment, + type ScreenShareDeliveryConfig, + ScreenShareDeliveryConfigSchema, + ScreenShareDeliveryConfigUpdateRequest, +} from '@fluxer/schema/src/domains/admin/ScreenShareDeliverySchemas'; +import {experimentBucket} from '@fluxer/schema/src/domains/experiment/ExperimentBucket'; +import {describe, expect, test} from 'vitest'; + +const TARGETED_USER_ID = '1000000000000000001'; +const OTHER_USER_ID = '1000000000000000002'; + +function createConfig(overrides: Partial = {}): ScreenShareDeliveryConfig { + return { + ...DEFAULT_SCREEN_SHARE_DELIVERY_CONFIG, + included_user_ids: [], + excluded_user_ids: [], + ...overrides, + }; +} + +function syntheticUserIds(count: number): Array { + const ids: Array = []; + for (let index = 0; index < count; index++) { + ids.push((1400000000000000000n + BigInt(index)).toString()); + } + return ids; +} + +function targetedUserIds(config: ScreenShareDeliveryConfig, userIds: ReadonlyArray): Set { + const targeted = new Set(); + for (const userId of userIds) { + if (resolveScreenShareDeliveryAssignment(config, userId).enabled) { + targeted.add(userId); + } + } + return targeted; +} + +describe('screen share delivery configuration', () => { + test('derives defaults from the schema with independently owned arrays', () => { + const first = ScreenShareDeliveryConfigSchema.parse({}); + const second = ScreenShareDeliveryConfigSchema.parse({}); + expect(first).toEqual(DEFAULT_SCREEN_SHARE_DELIVERY_CONFIG); + first.included_user_ids.push(TARGETED_USER_ID); + first.excluded_user_ids.push(OTHER_USER_ID); + expect(second).toEqual(DEFAULT_SCREEN_SHARE_DELIVERY_CONFIG); + }); + + test('defaults to disabled with an empty rollout', () => { + expect(DEFAULT_SCREEN_SHARE_DELIVERY_CONFIG.enabled).toBe(false); + expect(DEFAULT_SCREEN_SHARE_DELIVERY_CONFIG.rollout_basis_points).toBe(0); + }); + + test.each([{}, {enabled: false}, {enabled: undefined}, {rollout_basis_points: 2500}])( + 'keeps partial updates free of configuration defaults: %j', + (patch) => { + expect(ScreenShareDeliveryConfigUpdateRequest.parse(patch)).toEqual(patch); + }, + ); + + test('does not accept a client-provided configuration version', () => { + expect(ScreenShareDeliveryConfigUpdateRequest.parse({config_version: 12})).toEqual({}); + }); + + test.each([ + {rollout_basis_points: -1}, + {rollout_basis_points: 10001}, + {rollout_salt: ' '}, + {included_user_ids: ['not-an-id']}, + {excluded_user_ids: ['not-an-id']}, + ])('applies the same validation to stored configuration and updates: %j', (value) => { + expect(ScreenShareDeliveryConfigSchema.safeParse(value).success).toBe(false); + expect(ScreenShareDeliveryConfigUpdateRequest.safeParse(value).success).toBe(false); + }); + + test('rejects more than a thousand targeted user ids', () => { + const ids = syntheticUserIds(1001); + expect(ScreenShareDeliveryConfigSchema.safeParse({included_user_ids: ids}).success).toBe(false); + expect(ScreenShareDeliveryConfigSchema.safeParse({included_user_ids: ids.slice(0, 1000)}).success).toBe(true); + }); +}); + +describe('resolveScreenShareDeliveryAssignment', () => { + test('the inert assignment is disabled', () => { + expect(INERT_SCREEN_SHARE_DELIVERY_ASSIGNMENT.enabled).toBe(false); + }); + + test('returns the inert assignment when the master switch is off', () => { + const config = createConfig({ + enabled: false, + rollout_basis_points: 10000, + included_user_ids: [TARGETED_USER_ID], + }); + expect(resolveScreenShareDeliveryAssignment(config, TARGETED_USER_ID)).toEqual( + INERT_SCREEN_SHARE_DELIVERY_ASSIGNMENT, + ); + }); + + test('returns the inert assignment for the default config', () => { + expect(resolveScreenShareDeliveryAssignment(createConfig(), TARGETED_USER_ID)).toEqual( + INERT_SCREEN_SHARE_DELIVERY_ASSIGNMENT, + ); + }); + + test('never hands back the shared inert object', () => { + const assignment = resolveScreenShareDeliveryAssignment(createConfig(), TARGETED_USER_ID); + expect(assignment).not.toBe(INERT_SCREEN_SHARE_DELIVERY_ASSIGNMENT); + }); + + test('denylist beats allowlist', () => { + const config = createConfig({ + enabled: true, + included_user_ids: [TARGETED_USER_ID], + excluded_user_ids: [TARGETED_USER_ID], + }); + expect(resolveScreenShareDeliveryAssignment(config, TARGETED_USER_ID).enabled).toBe(false); + }); + + test('denylist beats the bucket', () => { + const config = createConfig({ + enabled: true, + rollout_basis_points: 10000, + excluded_user_ids: [TARGETED_USER_ID], + }); + expect(resolveScreenShareDeliveryAssignment(config, TARGETED_USER_ID).enabled).toBe(false); + expect(resolveScreenShareDeliveryAssignment(config, OTHER_USER_ID).enabled).toBe(true); + }); + + test('allowlist beats the bucket', () => { + const config = createConfig({ + enabled: true, + rollout_basis_points: 0, + included_user_ids: [TARGETED_USER_ID], + }); + expect(resolveScreenShareDeliveryAssignment(config, TARGETED_USER_ID).enabled).toBe(true); + expect(resolveScreenShareDeliveryAssignment(config, OTHER_USER_ID).enabled).toBe(false); + }); + + test.each([ + {basisPoints: 0, enabled: false}, + {basisPoints: 10000, enabled: true}, + ])('a rollout of $basisPoints basis points targets $enabled', ({basisPoints, enabled}) => { + const config = createConfig({enabled: true, rollout_basis_points: basisPoints}); + for (const userId of syntheticUserIds(200)) { + expect(resolveScreenShareDeliveryAssignment(config, userId).enabled).toBe(enabled); + } + }); + + test('the bucket boundary is exclusive at the low end and inclusive one point above', () => { + const salt = DEFAULT_SCREEN_SHARE_DELIVERY_CONFIG.rollout_salt; + const bucket = experimentBucket(TARGETED_USER_ID, salt); + expect( + resolveScreenShareDeliveryAssignment( + createConfig({enabled: true, rollout_basis_points: bucket}), + TARGETED_USER_ID, + ).enabled, + ).toBe(false); + expect( + resolveScreenShareDeliveryAssignment( + createConfig({enabled: true, rollout_basis_points: bucket + 1}), + TARGETED_USER_ID, + ).enabled, + ).toBe(true); + }); + + test('raising the rollout basis points only ever adds users', () => { + const userIds = syntheticUserIds(2000); + const atOneThousand = targetedUserIds(createConfig({enabled: true, rollout_basis_points: 1000}), userIds); + const atTwoThousand = targetedUserIds(createConfig({enabled: true, rollout_basis_points: 2000}), userIds); + expect(atOneThousand.size).toBeGreaterThan(0); + for (const userId of atOneThousand) { + expect(atTwoThousand.has(userId)).toBe(true); + } + expect(atTwoThousand.size).toBeGreaterThan(atOneThousand.size); + }); + + test('the targeted set follows the salt', () => { + const userIds = syntheticUserIds(2000); + const first = targetedUserIds( + createConfig({enabled: true, rollout_basis_points: 5000, rollout_salt: 'screen-share-delivery-v1'}), + userIds, + ); + const second = targetedUserIds( + createConfig({enabled: true, rollout_basis_points: 5000, rollout_salt: 'screen-share-delivery-v2'}), + userIds, + ); + expect(first).not.toEqual(second); + }); +}); diff --git a/packages/schema/src/domains/admin/ScreenShareDeliverySchemas.ts b/packages/schema/src/domains/admin/ScreenShareDeliverySchemas.ts new file mode 100644 index 000000000..5c0103cdf --- /dev/null +++ b/packages/schema/src/domains/admin/ScreenShareDeliverySchemas.ts @@ -0,0 +1,68 @@ +// SPDX-License-Identifier: AGPL-3.0-or-later + +import {EXPERIMENT_BUCKET_RESOLUTION, experimentBucket} from '@fluxer/schema/src/domains/experiment/ExperimentBucket'; +import {z} from 'zod'; + +const SCREEN_SHARE_DELIVERY_ROLLOUT_BASIS_POINTS_MAX = EXPERIMENT_BUCKET_RESOLUTION; +const SCREEN_SHARE_DELIVERY_MAX_TARGETED_USERS = 1000; +const DEFAULT_SCREEN_SHARE_DELIVERY_SALT = 'screen-share-delivery-v1'; + +const ScreenShareDeliveryTargetIdSchema = z.string().regex(/^\d{1,20}$/u); +const ScreenShareDeliveryTargetedUserIdsSchema = z + .array(ScreenShareDeliveryTargetIdSchema) + .max(SCREEN_SHARE_DELIVERY_MAX_TARGETED_USERS); + +const screenShareDeliveryConfigFields = { + enabled: z.boolean(), + config_version: z.number().int().min(0), + rollout_basis_points: z.number().int().min(0).max(SCREEN_SHARE_DELIVERY_ROLLOUT_BASIS_POINTS_MAX), + rollout_salt: z.string().trim().min(1).max(64), + included_user_ids: ScreenShareDeliveryTargetedUserIdsSchema, + excluded_user_ids: ScreenShareDeliveryTargetedUserIdsSchema, +}; + +export const ScreenShareDeliveryConfigSchema = z.object({ + enabled: screenShareDeliveryConfigFields.enabled.default(false), + config_version: screenShareDeliveryConfigFields.config_version.default(0), + rollout_basis_points: screenShareDeliveryConfigFields.rollout_basis_points.default(0), + rollout_salt: screenShareDeliveryConfigFields.rollout_salt.default(DEFAULT_SCREEN_SHARE_DELIVERY_SALT), + included_user_ids: screenShareDeliveryConfigFields.included_user_ids.default([]), + excluded_user_ids: screenShareDeliveryConfigFields.excluded_user_ids.default([]), +}); + +export type ScreenShareDeliveryConfig = z.infer; + +export const DEFAULT_SCREEN_SHARE_DELIVERY_CONFIG: ScreenShareDeliveryConfig = ScreenShareDeliveryConfigSchema.parse( + {}, +); + +export const ScreenShareDeliveryConfigUpdateRequest = z + .object(screenShareDeliveryConfigFields) + .omit({config_version: true}) + .partial(); + +export type ScreenShareDeliveryConfigUpdateRequest = z.infer; + +export const ScreenShareDeliveryConfigResponse = ScreenShareDeliveryConfigSchema; + +export type ScreenShareDeliveryConfigResponse = z.infer; + +export const ScreenShareDeliveryAssignmentResponse = z.object({ + enabled: screenShareDeliveryConfigFields.enabled, +}); + +export type ScreenShareDeliveryAssignmentResponse = z.infer; + +export const INERT_SCREEN_SHARE_DELIVERY_ASSIGNMENT: ScreenShareDeliveryAssignmentResponse = { + enabled: false, +}; + +export function resolveScreenShareDeliveryAssignment( + config: ScreenShareDeliveryConfig, + userId: string, +): ScreenShareDeliveryAssignmentResponse { + if (!config.enabled) return {...INERT_SCREEN_SHARE_DELIVERY_ASSIGNMENT}; + if (config.excluded_user_ids.includes(userId)) return {...INERT_SCREEN_SHARE_DELIVERY_ASSIGNMENT}; + if (config.included_user_ids.includes(userId)) return {enabled: true}; + return {enabled: experimentBucket(userId, config.rollout_salt) < config.rollout_basis_points}; +} diff --git a/packages/schema/src/domains/experiment/ExperimentSchemas.ts b/packages/schema/src/domains/experiment/ExperimentSchemas.ts index 73c36f9cc..d260e5789 100644 --- a/packages/schema/src/domains/experiment/ExperimentSchemas.ts +++ b/packages/schema/src/domains/experiment/ExperimentSchemas.ts @@ -1,5 +1,9 @@ // SPDX-License-Identifier: AGPL-3.0-or-later +import { + INERT_SCREEN_SHARE_DELIVERY_ASSIGNMENT, + ScreenShareDeliveryAssignmentResponse, +} from '@fluxer/schema/src/domains/admin/ScreenShareDeliverySchemas'; import { INERT_VOICE_NOISE_SUPPRESSION_ASSIGNMENT, VoiceNoiseSuppressionAssignmentResponse, @@ -42,6 +46,7 @@ export type ExperimentDeliveryConfigResponse = z.infer