From ac96cee8ea80f4c02bc0fe0c36bd2ff9d8e5f830 Mon Sep 17 00:00:00 2001 From: leesam Date: Mon, 31 Aug 2026 23:03:40 +0900 Subject: [PATCH] fix: add missing Speak/Type/Swap languages to all locales "Speak", "Type" and "Swap languages" were already referenced in the UI but had no entry in any Localizable.strings file, so every locale fell back to the English key. The Type/Speak mode selector is visible text, not just an accessibility label, so non-English users have been seeing English toggle labels. Adds all three keys to all 13 locales. No code change. Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01FkRuJrdYaxQVeLiKNhLmgf --- .../App/Resources/Strings/Base.lproj/Localizable.strings | 5 +++++ Projects/App/Resources/Strings/de.lproj/Localizable.strings | 5 +++++ Projects/App/Resources/Strings/es.lproj/Localizable.strings | 5 +++++ Projects/App/Resources/Strings/fr.lproj/Localizable.strings | 5 +++++ Projects/App/Resources/Strings/id.lproj/Localizable.strings | 5 +++++ Projects/App/Resources/Strings/it.lproj/Localizable.strings | 5 +++++ Projects/App/Resources/Strings/ja.lproj/Localizable.strings | 5 +++++ Projects/App/Resources/Strings/ko.lproj/Localizable.strings | 5 +++++ Projects/App/Resources/Strings/ru.lproj/Localizable.strings | 5 +++++ Projects/App/Resources/Strings/th.lproj/Localizable.strings | 5 +++++ Projects/App/Resources/Strings/vi.lproj/Localizable.strings | 5 +++++ .../App/Resources/Strings/zh-Hans.lproj/Localizable.strings | 5 +++++ .../Resources/Strings/zh-Hant-TW.lproj/Localizable.strings | 5 +++++ 13 files changed, 65 insertions(+) diff --git a/Projects/App/Resources/Strings/Base.lproj/Localizable.strings b/Projects/App/Resources/Strings/Base.lproj/Localizable.strings index 8a377fc..58ad46c 100644 --- a/Projects/App/Resources/Strings/Base.lproj/Localizable.strings +++ b/Projects/App/Resources/Strings/Base.lproj/Localizable.strings @@ -44,6 +44,11 @@ Translate="Translate"; "Please rate '%@' or recommend it to your friends."="Please rate '%@' or recommend it to your friends."; "Translated Language:"="Translated Language:"; "Font Size"="Font Size"; + +// MARK: - Mode selector & accessibility labels +"Speak"="Speak"; +"Type"="Type"; +"Swap languages"="Swap languages"; "Remove ads for 1 hour?"="Remove ads for 1 hour?"; "Watch Ad"="Watch Ad"; "Watch a short ad to enjoy 1 hour ad-free."="Watch a short ad to enjoy 1 hour ad-free."; diff --git a/Projects/App/Resources/Strings/de.lproj/Localizable.strings b/Projects/App/Resources/Strings/de.lproj/Localizable.strings index 2c48fc8..4be5d7d 100644 --- a/Projects/App/Resources/Strings/de.lproj/Localizable.strings +++ b/Projects/App/Resources/Strings/de.lproj/Localizable.strings @@ -44,6 +44,11 @@ Translate="Übersetzen"; "Please rate '%@' or recommend it to your friends."="Bitte bewerten Sie '%@' oder empfehlen Sie es Ihren Freunden."; "Translated Language:"="Translated Language:"; "Font Size"="Schriftgröße"; + +// MARK: - Mode selector & accessibility labels +"Speak"="Sprechen"; +"Type"="Tippen"; +"Swap languages"="Sprachen tauschen"; "Remove ads for 1 hour?"="Werbung für 1 Stunde entfernen?"; "Watch Ad"="Werbung ansehen"; "Watch a short ad to enjoy 1 hour ad-free."="Schau dir eine kurze Werbung an und genieße 1 Stunde ohne Werbung."; diff --git a/Projects/App/Resources/Strings/es.lproj/Localizable.strings b/Projects/App/Resources/Strings/es.lproj/Localizable.strings index 481f927..ef1b7aa 100644 --- a/Projects/App/Resources/Strings/es.lproj/Localizable.strings +++ b/Projects/App/Resources/Strings/es.lproj/Localizable.strings @@ -44,6 +44,11 @@ Translate="Traducir"; "Please rate '%@' or recommend it to your friends."="Califique '% @' o recomiéndelo a sus amigos."; "Translated Language:"="Lenguaje de traducción:"; "Font Size"="Tamaño de fuente"; + +// MARK: - Mode selector & accessibility labels +"Speak"="Hablar"; +"Type"="Escribir"; +"Swap languages"="Intercambiar idiomas"; "Remove ads for 1 hour?"="¿Eliminar anuncios por 1 hora?"; "Watch Ad"="Ver anuncio"; "Watch a short ad to enjoy 1 hour ad-free."="Mira un anuncio corto para disfrutar 1 hora sin anuncios."; diff --git a/Projects/App/Resources/Strings/fr.lproj/Localizable.strings b/Projects/App/Resources/Strings/fr.lproj/Localizable.strings index 6ed771a..6bc8e78 100644 --- a/Projects/App/Resources/Strings/fr.lproj/Localizable.strings +++ b/Projects/App/Resources/Strings/fr.lproj/Localizable.strings @@ -44,6 +44,11 @@ Translate="Traduire"; "Please rate '%@' or recommend it to your friends."="S'il vous plaît noter '%@' ou le recommander à vos amis."; "Translated Language:"="Langue de traduction:"; "Font Size"="Taille de police"; + +// MARK: - Mode selector & accessibility labels +"Speak"="Parler"; +"Type"="Saisir"; +"Swap languages"="Inverser les langues"; "Remove ads for 1 hour?"="Supprimer les publicités pendant 1 heure ?"; "Watch Ad"="Voir la pub"; "Watch a short ad to enjoy 1 hour ad-free."="Regardez une courte publicité pour profiter d'1 heure sans pub."; diff --git a/Projects/App/Resources/Strings/id.lproj/Localizable.strings b/Projects/App/Resources/Strings/id.lproj/Localizable.strings index a4dc65e..0e1e2b0 100644 --- a/Projects/App/Resources/Strings/id.lproj/Localizable.strings +++ b/Projects/App/Resources/Strings/id.lproj/Localizable.strings @@ -44,6 +44,11 @@ Translate="Menterjemahkan"; "Please rate '%@' or recommend it to your friends."="Silakan beri nilai '%@' atau merekomendasikannya kepada teman-teman Anda."; "Translated Language:"="Bahasa terjemahan:"; "Font Size"="Ukuran font"; + +// MARK: - Mode selector & accessibility labels +"Speak"="Bicara"; +"Type"="Ketik"; +"Swap languages"="Tukar bahasa"; "Remove ads for 1 hour?"="Hapus iklan selama 1 jam?"; "Watch Ad"="Tonton Iklan"; "Watch a short ad to enjoy 1 hour ad-free."="Tonton iklan singkat untuk menikmati 1 jam tanpa iklan."; diff --git a/Projects/App/Resources/Strings/it.lproj/Localizable.strings b/Projects/App/Resources/Strings/it.lproj/Localizable.strings index 3e5ed54..f1b8c28 100644 --- a/Projects/App/Resources/Strings/it.lproj/Localizable.strings +++ b/Projects/App/Resources/Strings/it.lproj/Localizable.strings @@ -44,6 +44,11 @@ Translate="Tradurre"; "Please rate '%@' or recommend it to your friends."="Valuta '%@' o raccomandalo ai tuoi amici."; "Translated Language:"="Translated Language:"; "Font Size"="Dimensione carattere"; + +// MARK: - Mode selector & accessibility labels +"Speak"="Parla"; +"Type"="Scrivi"; +"Swap languages"="Scambia lingue"; "Remove ads for 1 hour?"="Rimuovere le pubblicità per 1 ora?"; "Watch Ad"="Guarda pubblicità"; "Watch a short ad to enjoy 1 hour ad-free."="Guarda una breve pubblicità per goderti 1 ora senza pubblicità."; diff --git a/Projects/App/Resources/Strings/ja.lproj/Localizable.strings b/Projects/App/Resources/Strings/ja.lproj/Localizable.strings index 33e8750..1ec8b83 100644 --- a/Projects/App/Resources/Strings/ja.lproj/Localizable.strings +++ b/Projects/App/Resources/Strings/ja.lproj/Localizable.strings @@ -44,6 +44,11 @@ Translate="翻訳"; "Please rate '%@' or recommend it to your friends."="'%@'を評価するか、お友達に推薦してください."; "Translated Language:"="翻訳された言語:"; "Font Size"="フォントサイズ"; + +// MARK: - Mode selector & accessibility labels +"Speak"="話す"; +"Type"="入力"; +"Swap languages"="言語を入れ替える"; "Remove ads for 1 hour?"="1時間広告を削除しますか?"; "Watch Ad"="広告を見る"; "Watch a short ad to enjoy 1 hour ad-free."="短い広告を見て、1時間広告なしでお楽しみください。"; diff --git a/Projects/App/Resources/Strings/ko.lproj/Localizable.strings b/Projects/App/Resources/Strings/ko.lproj/Localizable.strings index f4a5e60..f209a98 100644 --- a/Projects/App/Resources/Strings/ko.lproj/Localizable.strings +++ b/Projects/App/Resources/Strings/ko.lproj/Localizable.strings @@ -45,6 +45,11 @@ Translate="번역"; "Native Language:"="원문 언어:"; "Translated Language:"="번역 언어:"; "Font Size"="글자 크기"; + +// MARK: - Mode selector & accessibility labels +"Speak"="말하기"; +"Type"="입력"; +"Swap languages"="언어 바꾸기"; "Remove ads for 1 hour?"="1시간 동안 광고를 제거할까요?"; "Watch Ad"="광고 보기"; "Watch a short ad to enjoy 1 hour ad-free."="짧은 광고를 시청하고 1시간 동안 광고 없이 이용하세요."; diff --git a/Projects/App/Resources/Strings/ru.lproj/Localizable.strings b/Projects/App/Resources/Strings/ru.lproj/Localizable.strings index 65b0fae..9b1c1cb 100644 --- a/Projects/App/Resources/Strings/ru.lproj/Localizable.strings +++ b/Projects/App/Resources/Strings/ru.lproj/Localizable.strings @@ -44,6 +44,11 @@ Translate="Переведите"; "Please rate '%@' or recommend it to your friends."="Пожалуйста, оцените '% @' или порекомендуйте его своим друзьям."; "Translated Language:"="Translated Language:"; "Font Size"="Размер шрифта"; + +// MARK: - Mode selector & accessibility labels +"Speak"="Голос"; +"Type"="Ввод"; +"Swap languages"="Поменять языки местами"; "Remove ads for 1 hour?"="Убрать рекламу на 1 час?"; "Watch Ad"="Смотреть рекламу"; "Watch a short ad to enjoy 1 hour ad-free."="Посмотрите короткую рекламу и пользуйтесь приложением без рекламы 1 час."; diff --git a/Projects/App/Resources/Strings/th.lproj/Localizable.strings b/Projects/App/Resources/Strings/th.lproj/Localizable.strings index 29f88db..de00452 100644 --- a/Projects/App/Resources/Strings/th.lproj/Localizable.strings +++ b/Projects/App/Resources/Strings/th.lproj/Localizable.strings @@ -44,6 +44,11 @@ Translate="แปลความ"; "Please rate '%@' or recommend it to your friends."="โปรดให้คะแนน '%@' หรือแนะนำให้เพื่อนของคุณ"; "Translated Language:"="ภาษาการแปล:"; "Font Size"="ขนาดตัวอักษร"; + +// MARK: - Mode selector & accessibility labels +"Speak"="พูด"; +"Type"="พิมพ์"; +"Swap languages"="สลับภาษา"; "Remove ads for 1 hour?"="ลบโฆษณาเป็นเวลา 1 ชั่วโมง?"; "Watch Ad"="ดูโฆษณา"; "Watch a short ad to enjoy 1 hour ad-free."="ดูโฆษณาสั้นๆ เพื่อใช้งานโดยไม่มีโฆษณา 1 ชั่วโมง"; diff --git a/Projects/App/Resources/Strings/vi.lproj/Localizable.strings b/Projects/App/Resources/Strings/vi.lproj/Localizable.strings index d34f6fd..37338c7 100644 --- a/Projects/App/Resources/Strings/vi.lproj/Localizable.strings +++ b/Projects/App/Resources/Strings/vi.lproj/Localizable.strings @@ -44,6 +44,11 @@ Translate="Dịch"; "Please rate '%@' or recommend it to your friends."="Hãy đánh giá '%@' hoặc giới thiệu nó cho bạn bè của bạn."; "Translated Language:"="Ngôn ngữ dịch:"; "Font Size"="Cỡ chữ"; + +// MARK: - Mode selector & accessibility labels +"Speak"="Nói"; +"Type"="Nhập"; +"Swap languages"="Hoán đổi ngôn ngữ"; "Remove ads for 1 hour?"="Xóa quảng cáo trong 1 giờ?"; "Watch Ad"="Xem quảng cáo"; "Watch a short ad to enjoy 1 hour ad-free."="Xem một quảng cáo ngắn để trải nghiệm 1 giờ không có quảng cáo."; diff --git a/Projects/App/Resources/Strings/zh-Hans.lproj/Localizable.strings b/Projects/App/Resources/Strings/zh-Hans.lproj/Localizable.strings index 38bd11c..2ba494a 100644 --- a/Projects/App/Resources/Strings/zh-Hans.lproj/Localizable.strings +++ b/Projects/App/Resources/Strings/zh-Hans.lproj/Localizable.strings @@ -44,6 +44,11 @@ Translate="翻译"; "Please rate '%@' or recommend it to your friends."="请评价'%@'或推荐给你的朋友"; "Translated Language:"="翻译语言:"; "Font Size"="字体大小"; + +// MARK: - Mode selector & accessibility labels +"Speak"="语音"; +"Type"="输入"; +"Swap languages"="交换语言"; "Remove ads for 1 hour?"="移除1小时广告?"; "Watch Ad"="观看广告"; "Watch a short ad to enjoy 1 hour ad-free."="观看短广告,享受1小时无广告体验。"; diff --git a/Projects/App/Resources/Strings/zh-Hant-TW.lproj/Localizable.strings b/Projects/App/Resources/Strings/zh-Hant-TW.lproj/Localizable.strings index 63f3cc3..2df176f 100644 --- a/Projects/App/Resources/Strings/zh-Hant-TW.lproj/Localizable.strings +++ b/Projects/App/Resources/Strings/zh-Hant-TW.lproj/Localizable.strings @@ -44,6 +44,11 @@ Translate="翻譯"; "Please rate '%@' or recommend it to your friends."="請評價'%@'或推薦給你的朋友"; "Translated Language:"="翻譯語言:"; "Font Size"="字體大小"; + +// MARK: - Mode selector & accessibility labels +"Speak"="語音"; +"Type"="輸入"; +"Swap languages"="交換語言"; "Remove ads for 1 hour?"="移除1小時廣告?"; "Watch Ad"="觀看廣告"; "Watch a short ad to enjoy 1 hour ad-free."="觀看短廣告,享受1小時無廣告體驗。";