mirror of
https://github.com/rangermix/TwitchDropsMiner.git
synced 2026-05-31 17:39:37 +00:00
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>
177 lines
8.9 KiB
JSON
177 lines
8.9 KiB
JSON
{
|
||
"language_name": "Dansk",
|
||
"english_name": "Danish",
|
||
"status": {
|
||
"terminated": "\nProgram Afsluttet.\nLuk vinduet for at afslutte programmet.",
|
||
"watching": "Ser på: {channel}",
|
||
"goes_online": "{channel} går ONLINE, skifter...",
|
||
"goes_offline": "{channel} går OFFLINE, skifter...",
|
||
"claimed_drop": "Hentet belønning: {drop}",
|
||
"no_channel": "Ingen tilgængelige kanaler at se. Venter på en ONLINE kanal...",
|
||
"no_campaign": "Der er ingen aktive kampagner at hente. Venter på en aktiv kampagne..."
|
||
},
|
||
"login": {
|
||
"unexpected_content": "Uventet indholdstype returneres, normalt på grund af at blive omdirigeret. Skal du logge ind for internetadgang?",
|
||
"error_code": "Login fejlkode: {error_code}",
|
||
"incorrect_login_pass": "Forkert brugernavn eller kodeord.",
|
||
"incorrect_email_code": "Forkert email kode.",
|
||
"incorrect_twofa_code": "Forkert 2FA-kode.",
|
||
"email_code_required": "Email kode påkrævet. Tjek din email.",
|
||
"twofa_code_required": "2FA token påkrævet.",
|
||
"status": {
|
||
"logged_in": "Logget ind",
|
||
"logged_out": "Logget ud",
|
||
"logging_in": "Logger ind...",
|
||
"required": "Login påkrævet",
|
||
"waiting_auth": "Waiting for authentication..."
|
||
}
|
||
},
|
||
"error": {
|
||
"captcha": "Dit loginforsøg blev afvist af CAPTCHA.\nPrøv venligst igen om 12+ timer",
|
||
"site_down": "Twitch er nede, prøver igen om {seconds} sekunder...",
|
||
"no_connection": "Kan ikke oprette forbindelse til Twitch, prøver igen om {seconds} sekunder..."
|
||
},
|
||
"gui": {
|
||
"output": "Resultat",
|
||
"status": {
|
||
"name": "Status",
|
||
"idle": "Ledig",
|
||
"exiting": "Afslutter...",
|
||
"terminated": "Afsluttet",
|
||
"cleanup": "Oprydning af kanaler...",
|
||
"gathering": "Indsamling af kanaler...",
|
||
"switching": "Skifter kanal...",
|
||
"fetching_inventory": "Henter beholdning...",
|
||
"fetching_campaigns": "Henter kampagner...",
|
||
"adding_campaigns": "Tilføjer kampagner til beholdning... {counter}"
|
||
},
|
||
"tabs": {
|
||
"main": "Main",
|
||
"inventory": "Beholdning",
|
||
"settings": "Indstillinger",
|
||
"help": "Hjælp"
|
||
},
|
||
"login": {
|
||
"name": "Login formular",
|
||
"labels": "Status:\nBruger ID:",
|
||
"request": "Log venligst ind for at fortsætte.",
|
||
"username": "Brugernavn",
|
||
"password": "Kodeord",
|
||
"twofa_code": "2FA code (valgfrit)",
|
||
"button": "Login",
|
||
"oauth_prompt": "Enter this code at:",
|
||
"oauth_activate": "Twitch Activate",
|
||
"oauth_confirm": "I've entered the code"
|
||
},
|
||
"websocket": {
|
||
"name": "Websocket Status",
|
||
"websocket": "Websocket #{id}:",
|
||
"initializing": "Initialiserer...",
|
||
"connected": "Forbundet",
|
||
"disconnected": "Afbrudt",
|
||
"connecting": "Tilslutning...",
|
||
"disconnecting": "Afbryder forbindelsen...",
|
||
"reconnecting": "Genopretter forbindelse..."
|
||
},
|
||
"progress": {
|
||
"name": "Kampagnefremskridt",
|
||
"drop": "Belønning:",
|
||
"game": "Spil:",
|
||
"campaign": "Kampagne:",
|
||
"remaining": "{time} tilbage",
|
||
"drop_progress": "Fremskridt:",
|
||
"campaign_progress": "Fremskridt:",
|
||
"no_drop": "No active drop",
|
||
"return_to_auto": "Return to Auto Mode",
|
||
"manual_mode_info": "Manual Mode: Mining"
|
||
},
|
||
"channels": {
|
||
"name": "Kanaler",
|
||
"online": "ONLINE ✔",
|
||
"pending": "OFFLINE ⏳",
|
||
"offline": "OFFLINE ❌",
|
||
"no_channels": "No channels tracked yet...",
|
||
"no_channels_for_games": "No channels found for selected games...",
|
||
"channel_count": "channel",
|
||
"channel_count_plural": "channels",
|
||
"viewers": "viewers"
|
||
},
|
||
"inventory": {
|
||
"status": {
|
||
"active": "Aktiv ✔",
|
||
"upcoming": "Kommende ⏳",
|
||
"expired": "Udløbet ❌",
|
||
"claimed": "Hentet ✔"
|
||
},
|
||
"starts": "Starter: {time}",
|
||
"ends": "Slutter: {time}",
|
||
"no_campaigns": "No campaigns loaded yet...",
|
||
"claimed_drops": "claimed"
|
||
},
|
||
"settings": {
|
||
"general": {
|
||
"name": "General",
|
||
"dark_mode": "Mørk tilstand: "
|
||
},
|
||
"reload": "Genindlæs",
|
||
"games_to_watch": "Spil at se",
|
||
"games_help": "Vælg spil at se. Rækkefølgen er vigtig - træk for at ændre prioritet (top = højeste prioritet).",
|
||
"search_games": "Søg spil...",
|
||
"select_all": "Vælg alle",
|
||
"deselect_all": "Fravælg alle",
|
||
"selected_games": "Valgte spil (træk for at ændre rækkefølge)",
|
||
"available_games": "Tilgængelige spil",
|
||
"no_games_selected": "Ingen spil valgt. Marker spil nedenfor for at tilføje dem.",
|
||
"no_games_match": "Ingen spil matcher din søgning.",
|
||
"all_games_selected": "Alle spil er valgt eller ingen tilgængelige spil.",
|
||
"actions": "Handlinger",
|
||
"connection_quality": "Forbindelseskvalitet:",
|
||
"minimum_refresh": "Minimum opdateringsinterval (minutter):",
|
||
"dark_mode": "Dark Mode",
|
||
"reload_campaigns": "Reload Campaigns"
|
||
},
|
||
"help": {
|
||
"links": {
|
||
"name": "Nyttige Links"
|
||
},
|
||
"how_it_works": "Hvordan virker det?",
|
||
"how_it_works_text": "Hvert ~60. sekund sender applikationen en \"set minut\"-begivenhed til den kanal, der i øjeblikket bliver set - dette er nok til at øge faldet. Bemærk, at dette helt omgår behovet for at downloade enhver faktisk stream video og lyd. For at holde status (ONLINE eller OFFLINE) for kanalerne opdateret, er der etableret en websocket-forbindelse, der modtager begivenheder om streams, der går op eller ned, eller opdateringer vedrørende det aktuelle antal seere.",
|
||
"getting_started": "Kom igang",
|
||
"getting_started_text": "1. Log ind på applikationen.\n2. Sørg for, at din Twitch-konto er linket til alle kampagner, du er interesseret i at mine.\n3. Hvis du bare er interesseret i at mine alt, skal du fjerne markeringen i \"Kun prioritet\" og trykke på \"Genindlæs\".\n4. Hvis du ønsker at mine specifikke spil først, skal du bruge listen \"Prioritet\" til at opsætte en ordnet liste over spil efter eget valg. Spil fra toppen af listen vil blive forsøgt at blive minet først, før dem nederst på listen.\n5. Hold indstillingen \"Kun prioritet\" markeret for at undgå at mine spil, der ikke er på prioritetslisten. Eller ej - det er op til dig.\n6. Brug listen \"Ekskluder\" til at fortælle applikationen, hvilke spil der aldrig bør mines.\n7. Ændring af indholdet af en af listerne eller ændring af tilstanden for \"Kun prioritet\"-indstillingen kræver, at du trykker på \"Genindlæs\" for at ændringerne træder i kraft.",
|
||
"about": "About Twitch Drops Miner",
|
||
"about_text": "This application automatically mines timed Twitch drops without downloading stream data.",
|
||
"how_to_use": "How to Use",
|
||
"features": "Features",
|
||
"important_notes": "Important Notes",
|
||
"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",
|
||
"connected": "Connected",
|
||
"disconnected": "Disconnected"
|
||
}
|
||
}
|
||
} |