Skip to content

Commit 2ea3c63

Browse files
committed
feat(details): Implement translation for "About" and "What's New" sections
This commit introduces a translation feature leveraging the Google Translate API to allow users to translate repository descriptions (README) and release notes within the app. It includes a language picker and state management for toggling between original and translated content. - **feat(details)**: Added `TranslationRepository` and its implementation using Ktor to interface with the Google Translate API, including text chunking for large documents and a simple LRU cache. - **feat(details)**: Introduced `LanguagePicker` and `TranslationControls` UI components to manage language selection and translation states. - **feat(details)**: Updated `DetailsViewModel` and `DetailsState` to handle translation logic, including support for automatic device language detection. - **feat(details)**: Integrated translation controls into the `About` and `WhatsNew` UI sections. - **domain**: Added `SupportedLanguage`, `TranslationResult`, and `TranslationState` models. - **i18n**: Added translation-related string resources for multiple languages (English, Bengali, Spanish, French, Hindi, Italian, Japanese, Korean, Polish, Russian, Turkish, and Chinese). - **chore(di)**: Registered `TranslationRepository` in the Koin `detailsModule`.
1 parent 9e419a7 commit 2ea3c63

27 files changed

Lines changed: 891 additions & 21 deletions

File tree

core/presentation/src/commonMain/composeResources/values-bn/strings-bn.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -428,4 +428,14 @@
428428
<string name="failed_to_share_link">লিংক শেয়ার করতে ব্যর্থ হয়েছে</string>
429429
<string name="link_copied_to_clipboard">লিংক ক্লিপবোর্ডে কপি করা হয়েছে</string>
430430

431+
<!-- Translation feature -->
432+
<string name="translate">অনুবাদ করুন</string>
433+
<string name="translating">অনুবাদ হচ্ছে…</string>
434+
<string name="show_original">মূল দেখান</string>
435+
<string name="translated_to">%1$s এ অনুবাদিত</string>
436+
<string name="translate_to">অনুবাদ করুন…</string>
437+
<string name="search_language">ভাষা খুঁজুন</string>
438+
<string name="change_language">ভাষা পরিবর্তন করুন</string>
439+
<string name="translation_failed">অনুবাদ ব্যর্থ হয়েছে। আবার চেষ্টা করুন।</string>
440+
431441
</resources>

core/presentation/src/commonMain/composeResources/values-es/strings-es.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,4 +393,14 @@
393393
<string name="failed_to_share_link">No se pudo compartir el enlace</string>
394394
<string name="link_copied_to_clipboard">Enlace copiado al portapapeles</string>
395395

396+
<!-- Translation feature -->
397+
<string name="translate">Traducir</string>
398+
<string name="translating">Traduciendo…</string>
399+
<string name="show_original">Mostrar original</string>
400+
<string name="translated_to">Traducido a %1$s</string>
401+
<string name="translate_to">Traducir a…</string>
402+
<string name="search_language">Buscar idioma</string>
403+
<string name="change_language">Cambiar idioma</string>
404+
<string name="translation_failed">Error de traducción. Inténtalo de nuevo.</string>
405+
396406
</resources>

core/presentation/src/commonMain/composeResources/values-fr/strings-fr.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,4 +393,14 @@
393393
<string name="failed_to_share_link">Échec du partage du lien</string>
394394
<string name="link_copied_to_clipboard">Lien copié dans le presse-papiers</string>
395395

396+
<!-- Translation feature -->
397+
<string name="translate">Traduire</string>
398+
<string name="translating">Traduction…</string>
399+
<string name="show_original">Afficher l\'original</string>
400+
<string name="translated_to">Traduit en %1$s</string>
401+
<string name="translate_to">Traduire en…</string>
402+
<string name="search_language">Rechercher une langue</string>
403+
<string name="change_language">Changer de langue</string>
404+
<string name="translation_failed">Échec de la traduction. Veuillez réessayer.</string>
405+
396406
</resources>

core/presentation/src/commonMain/composeResources/values-hi/strings-hi.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -428,4 +428,14 @@
428428
<string name="failed_to_share_link">लिंक साझा करने में विफल</string>
429429
<string name="link_copied_to_clipboard">लिंक क्लिपबोर्ड में कॉपी किया गया</string>
430430

431+
<!-- Translation feature -->
432+
<string name="translate">अनुवाद करें</string>
433+
<string name="translating">अनुवाद हो रहा है…</string>
434+
<string name="show_original">मूल दिखाएं</string>
435+
<string name="translated_to">%1$s में अनुवादित</string>
436+
<string name="translate_to">अनुवाद करें…</string>
437+
<string name="search_language">भाषा खोजें</string>
438+
<string name="change_language">भाषा बदलें</string>
439+
<string name="translation_failed">अनुवाद विफल। कृपया पुनः प्रयास करें।</string>
440+
431441
</resources>

core/presentation/src/commonMain/composeResources/values-it/strings-it.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -429,4 +429,14 @@
429429
<string name="failed_to_share_link">Impossibile condividere il link</string>
430430
<string name="link_copied_to_clipboard">Link copiato negli appunti</string>
431431

432+
<!-- Translation feature -->
433+
<string name="translate">Traduci</string>
434+
<string name="translating">Traduzione…</string>
435+
<string name="show_original">Mostra originale</string>
436+
<string name="translated_to">Tradotto in %1$s</string>
437+
<string name="translate_to">Traduci in…</string>
438+
<string name="search_language">Cerca lingua</string>
439+
<string name="change_language">Cambia lingua</string>
440+
<string name="translation_failed">Traduzione fallita. Riprova.</string>
441+
432442
</resources>

core/presentation/src/commonMain/composeResources/values-ja/strings-ja.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,4 +392,14 @@
392392
<string name="failed_to_share_link">リンクの共有に失敗しました</string>
393393
<string name="link_copied_to_clipboard">リンクをクリップボードにコピーしました</string>
394394

395+
<!-- Translation feature -->
396+
<string name="translate">翻訳</string>
397+
<string name="translating">翻訳中…</string>
398+
<string name="show_original">原文を表示</string>
399+
<string name="translated_to">%1$sに翻訳済み</string>
400+
<string name="translate_to">翻訳先…</string>
401+
<string name="search_language">言語を検索</string>
402+
<string name="change_language">言語を変更</string>
403+
<string name="translation_failed">翻訳に失敗しました。もう一度お試しください。</string>
404+
395405
</resources>

core/presentation/src/commonMain/composeResources/values-kr/strings-kr.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,4 +425,14 @@
425425
<string name="failed_to_share_link">링크 공유에 실패했습니다</string>
426426
<string name="link_copied_to_clipboard">링크가 클립보드에 복사되었습니다</string>
427427

428+
<!-- Translation feature -->
429+
<string name="translate">번역</string>
430+
<string name="translating">번역 중…</string>
431+
<string name="show_original">원문 보기</string>
432+
<string name="translated_to">%1$s로 번역됨</string>
433+
<string name="translate_to">번역 대상…</string>
434+
<string name="search_language">언어 검색</string>
435+
<string name="change_language">언어 변경</string>
436+
<string name="translation_failed">번역 실패. 다시 시도해주세요.</string>
437+
428438
</resources>

core/presentation/src/commonMain/composeResources/values-pl/strings-pl.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -391,4 +391,14 @@
391391
<string name="failed_to_share_link">Nie udało się udostępnić linku</string>
392392
<string name="link_copied_to_clipboard">Link skopiowany do schowka</string>
393393

394+
<!-- Translation feature -->
395+
<string name="translate">Tłumacz</string>
396+
<string name="translating">Tłumaczenie…</string>
397+
<string name="show_original">Pokaż oryginał</string>
398+
<string name="translated_to">Przetłumaczono na %1$s</string>
399+
<string name="translate_to">Tłumacz na…</string>
400+
<string name="search_language">Szukaj języka</string>
401+
<string name="change_language">Zmień język</string>
402+
<string name="translation_failed">Tłumaczenie nie powiodło się. Spróbuj ponownie.</string>
403+
394404
</resources>

core/presentation/src/commonMain/composeResources/values-ru/strings-ru.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,4 +393,14 @@
393393
<string name="failed_to_share_link">Не удалось поделиться ссылкой</string>
394394
<string name="link_copied_to_clipboard">Ссылка скопирована в буфер обмена</string>
395395

396+
<!-- Translation feature -->
397+
<string name="translate">Перевести</string>
398+
<string name="translating">Перевод…</string>
399+
<string name="show_original">Показать оригинал</string>
400+
<string name="translated_to">Переведено на %1$s</string>
401+
<string name="translate_to">Перевести на…</string>
402+
<string name="search_language">Поиск языка</string>
403+
<string name="change_language">Изменить язык</string>
404+
<string name="translation_failed">Ошибка перевода. Попробуйте ещё раз.</string>
405+
396406
</resources>

core/presentation/src/commonMain/composeResources/values-tr/strings-tr.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,4 +425,14 @@
425425
<string name="failed_to_share_link">Bağlantı paylaşılamadı</string>
426426
<string name="link_copied_to_clipboard">Bağlantı panoya kopyalandı</string>
427427

428+
<!-- Translation feature -->
429+
<string name="translate">Çevir</string>
430+
<string name="translating">Çevriliyor…</string>
431+
<string name="show_original">Orijinali göster</string>
432+
<string name="translated_to">%1$s diline çevrildi</string>
433+
<string name="translate_to">Şuna çevir…</string>
434+
<string name="search_language">Dil ara</string>
435+
<string name="change_language">Dili değiştir</string>
436+
<string name="translation_failed">Çeviri başarısız. Lütfen tekrar deneyin.</string>
437+
428438
</resources>

0 commit comments

Comments
 (0)