diff --git a/static/i18n.js b/static/i18n.js index 84643cab..c4d03526 100644 --- a/static/i18n.js +++ b/static/i18n.js @@ -8947,6 +8947,13 @@ const LOCALES = { session_deleted_worktree: 'Conversa excluída. O worktree permanece no disco.', session_batch_delete_worktree_confirm: 'Excluir {0} conversas? {1} conversa(s) com worktree manterão seus diretórios de worktree no disco.', session_batch_archive_worktree_confirm: 'Arquivar {0} conversas? {1} conversa(s) com worktree manterão seus diretórios de worktree no disco.', + session_batch_delete_confirm: 'Excluir {0} conversas?', + session_batch_archive_confirm: 'Arquivar {0} conversas?', + session_select_mode: 'Selecionar', + session_select_mode_desc: 'Selecionar conversas para gerenciamento em lote', + session_select_all: 'Selecionar todas', + session_selected_count: '{0} selecionadas', + session_no_selection: 'Nenhuma conversa selecionada', // settings panel settings_heading_title: 'Control Center', settings_heading_subtitle: 'Preferências, ferramentas de conversa e controles do sistema.', diff --git a/tests/test_login_locale_parity.py b/tests/test_login_locale_parity.py index ff4a4b2b..77392f96 100644 --- a/tests/test_login_locale_parity.py +++ b/tests/test_login_locale_parity.py @@ -328,3 +328,33 @@ def test_login_flow_keys_are_translated(loc_key: str): f"Locale {loc_key!r} leaks English for login-flow keys: {leaks}. " f"Translate these in static/i18n.js (issue #1442)." ) + + +# ── Session-management key parity ───────────────────────────────────────────── +# +# Keys added for session batch operations and multi-select (#2112). +# Every locale block must have these keys; missing them falls back to English +# which is a regression for non-English users. + +SESSION_MANAGEMENT_KEYS = ( + "session_batch_delete_confirm", + "session_batch_archive_confirm", + "session_batch_delete_worktree_confirm", + "session_batch_archive_worktree_confirm", + "session_select_mode", + "session_select_mode_desc", + "session_select_all", + "session_selected_count", + "session_no_selection", +) + + +@pytest.mark.parametrize("loc_key", ["en", "es", "de", "ru", "zh", "zh-Hant", "ja", "pt", "ko"]) +def test_session_management_keys_present(loc_key: str): + """Every locale block must define all session-management keys (no fallback to English).""" + seg = _i18n_locale_block(loc_key) + missing = [k for k in SESSION_MANAGEMENT_KEYS if _value_of(seg, k) is None] + assert not missing, ( + f"Locale {loc_key!r} is missing session-management keys: {missing}. " + f"Add translations in static/i18n.js (issue #2112)." + )