Update CLAUDE.md with comprehensive translation system documentation

This commit documents the current state of the translation system architecture
and consolidates the recent i18n refactoring work.

Documentation updates:
- Add detailed Translation System section describing architecture
- Document all 19 supported languages with native names
- Include TypedDict schema structure and usage examples
- Update project structure to show lang/ directory
- Expand Key Files section with i18n/ package details
- Document language persistence and dynamic switching

Translation system changes:
- Migrate English translations from hardcoded to lang/English.json
- Add English.json as single source of truth for fallback translations
- Update all language files with comprehensive GUI translations
- Refactor translator.py to load English from JSON file
- Add language_name and english_name fields to all translations

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Fengqing Liu
2025-10-24 21:48:30 +11:00
parent 3dbd4e6c1f
commit 46291e83d8
30 changed files with 1273 additions and 426 deletions

View File

@@ -1,4 +1,5 @@
{
"language_name": "Українська",
"english_name": "Ukrainian",
"status": {
"terminated": "\nЗастосунок зупинено.\nЗакрийте вікно для виходу з програми.",
@@ -16,7 +17,14 @@
"incorrect_email_code": "Неправильний код електронної пошти.",
"incorrect_twofa_code": "Неправильний код двофакторної аутентифікації.",
"email_code_required": "Потрібен код електронної пошти.",
"twofa_code_required": "Потрібен жетон двофакторної аутентифікації."
"twofa_code_required": "Потрібен жетон двофакторної аутентифікації.",
"status": {
"logged_in": "Увійдено",
"logged_out": "Вийдено",
"logging_in": "Вхід...",
"required": "Потрібен вхід",
"waiting_auth": "Waiting for authentication..."
}
},
"error": {
"captcha": "Ваша спроба входу була відхилена через капчу.\nБудь ласка, спробуйте ще раз через 12 або більше годин.",
@@ -46,10 +54,6 @@
"login": {
"name": "Форма для входу",
"labels": "Стан:\nІдентифікатор користувача:",
"logged_in": "Увійдено",
"logged_out": "Вийдено",
"logging_in": "Вхід...",
"required": "Потрібен вхід",
"request": "Будь ласка, увійдіть, щоб продовжити.",
"username": "Ім'я користувача",
"password": "Пароль",
@@ -122,7 +126,9 @@
"all_games_selected": "Всі ігри вибрано або немає доступних ігор.",
"actions": "Дії",
"connection_quality": "Якість з'єднання:",
"minimum_refresh": "Мінімальний інтервал оновлення (хвилини):"
"minimum_refresh": "Мінімальний інтервал оновлення (хвилини):",
"dark_mode": "Dark Mode",
"reload_campaigns": "Reload Campaigns"
},
"help": {
"links": {
@@ -137,14 +143,35 @@
"how_to_use": "How to Use",
"features": "Features",
"important_notes": "Important Notes",
"github_repo": "GitHub Repository"
"github_repo": "GitHub Repository",
"how_to_use_items": [
"Login using your Twitch account (OAuth device code flow)",
"Link your accounts at <a href=\"https://www.twitch.tv/drops/campaigns\" target=\"_blank\">twitch.tv/drops/campaigns</a>",
"The miner will automatically discover campaigns and start mining",
"Configure priority games in Settings to focus on what you want",
"Monitor progress in the Main and Inventory tabs"
],
"features_items": [
"Stream-less drop mining - saves bandwidth",
"Game priority and exclusion lists",
"Tracks up to 199 channels simultaneously",
"Automatic channel switching",
"Real-time progress tracking"
],
"important_notes_items": [
"Do not watch streams on the same account while mining",
"Keep your cookies.jar file secure",
"Requires linked game accounts for drops"
]
},
"header": {
"title": "Twitch Drops Miner",
"language": "Language:",
"initializing": "Initializing...",
"auto_mode": "AUTO",
"manual_mode": "MANUAL"
"manual_mode": "MANUAL",
"connected": "Connected",
"disconnected": "Disconnected"
}
}
}