From 286f3551237a908246958dbbfb68718fc6650ebb Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 09:24:11 +0200 Subject: [PATCH 001/237] New translations game.json (German) [ci skip] --- src/locales/de_DE/game.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/locales/de_DE/game.json b/src/locales/de_DE/game.json index 0676c35a..1a705de8 100644 --- a/src/locales/de_DE/game.json +++ b/src/locales/de_DE/game.json @@ -52,10 +52,10 @@ "WORKFORCE_SCIENTISTS": "WISS" }, "upkeep": { - "safety": "Safety", - "health": "Health", - "comfort": "Comfort", - "culture": "Culture", - "education": "Education" + "safety": "Sicherheit", + "health": "Gesundheit", + "comfort": "Komfort", + "culture": "Kultur", + "education": "Bildung" } } From 774ac8f8baf858e8bec0671b294981f6b3228bd7 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 09:24:20 +0200 Subject: [PATCH 002/237] New translations terms.json (German) [ci skip] --- src/locales/de_DE/terms.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/locales/de_DE/terms.json b/src/locales/de_DE/terms.json index caa22ff7..f417a145 100644 --- a/src/locales/de_DE/terms.json +++ b/src/locales/de_DE/terms.json @@ -2,10 +2,10 @@ "30d": "30T", "7d": "7T", "api_key": "API Schlüssel", - "ask": "Ask", - "bid": "Bid", + "ask": "Ankauf", + "bid": "Verkauf", "buffer": "Fenster", - "buildings": "Building | Buildings", + "buildings": "Gebäude | Gebäude", "cogc": "COGC", "cogm": "COGM", "consumption": "Verbrauch", @@ -16,7 +16,7 @@ "delta": "Delta", "demand": "Nachfrage", "empire": "Imperium | Imperien", - "exchanges": "Exchange | Exchanges", + "exchanges": "Marktplatz | Marktplätze", "faction": "Fraktion", "fertility": "Bodenfruchtbarkeit", "filter": "Filter", @@ -29,7 +29,7 @@ "material_ticker": "Ticker", "materials_plural": "Materialien", "materials": "Material | Materialien", - "permits_plural": "Permits", + "permits_plural": "Genehmigung", "permits": "Fläche | Fläche", "plan": "Plan | Pläne", "planet_plural": "Planeten", @@ -40,9 +40,9 @@ "production": "Produktion", "profit_per_area": "Profit / Fläche", "profit": "Profit", - "recipes": "Recipe | Recipes", - "resources_plural": "Resources", - "resources": "Resource | Resources", + "recipes": "Auftrag | Aufträge", + "resources_plural": "Ressourcen", + "resources": "Ressource | Ressourcen", "revenue": "Umsatz", "rocky": "Erdähnlich", "spread": "Spread", @@ -52,7 +52,7 @@ "trend": "Trend", "volume": "Volumen", "vwap": "VWAP", - "weight": "Weight", - "amount": "Amount", - "storage": "Storage" + "weight": "Gewicht", + "amount": "Anzahl", + "storage": "Lager" } From 7938cbc6185d789632698406752f632c3f45d55a Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 09:24:36 +0200 Subject: [PATCH 003/237] New translations profile.json (German) [ci skip] --- src/locales/de_DE/profile.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/de_DE/profile.json b/src/locales/de_DE/profile.json index d9566770..c2ec693b 100644 --- a/src/locales/de_DE/profile.json +++ b/src/locales/de_DE/profile.json @@ -82,7 +82,7 @@ "plan_specific": "Plan-Specific Settings", "plan_specific_description": "These settings are managed within individual plans. This section provides an overview of the preferences you've customized so far - to modify them, navigate to the corresponding plan.", "plan": "Plan", - "preferences": "Preferences" + "preferences": "Einstellungen" } } } From fbff3bcee2fde6cd5b09218de125382cc81b6192 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 09:25:11 +0200 Subject: [PATCH 004/237] New translations hq_upgrade_calculator.json (German) [ci skip] --- src/locales/de_DE/hq_upgrade_calculator.json | 28 ++++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/locales/de_DE/hq_upgrade_calculator.json b/src/locales/de_DE/hq_upgrade_calculator.json index 542176e9..8085de5d 100644 --- a/src/locales/de_DE/hq_upgrade_calculator.json +++ b/src/locales/de_DE/hq_upgrade_calculator.json @@ -1,25 +1,25 @@ { - "view_title": "HQ", - "title": "HQ Upgrade Calculator", + "view_title": "Firmensitz", + "title": "Firmensitz Kalkulator", "form": { - "from_level": "From HQ Level", - "to_level": "To HQ Level", - "cx_preference": "@:terms.cx Preference", - "show_locations": "Show Locations" + "from_level": "Von Level", + "to_level": "Zu Level", + "cx_preference": "@:terms.cx Präferenz", + "show_locations": "Standorte anzeigen" }, "cost": { - "total_cost": "Total @:terms.cost", - "total_weight": "Total @:terms.weight", - "total_volume": "Total @:terms.volume" + "total_cost": "Gesamt @:terms.cost", + "total_weight": "Gesamt @:terms.weight", + "total_volume": "Gesamt @:terms.volume" }, "table": { "material": "@:terms.materials", "amount": "@:terms.amount", "storage": "@:terms.storage", - "override_stock": "Override Stock", - "required": "Required", - "cost_unit": "Cost / Unit", - "cost_total": "Total Cost", - "storage_locations": "@:terms.storage Locations" + "override_stock": "Bestand überschreiben", + "required": "Benötigt", + "cost_unit": "Kosten / Einheit", + "cost_total": "Gesamtkosten", + "storage_locations": "@:terms.storage Standorte" } } From 5ac2be2dd9d39a0a89b8a89acba774228a785cb1 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:13 +0200 Subject: [PATCH 005/237] New translations empire.json (German) [ci skip] --- src/locales/de_DE/empire.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/locales/de_DE/empire.json b/src/locales/de_DE/empire.json index 5f37dc8c..626f864f 100644 --- a/src/locales/de_DE/empire.json +++ b/src/locales/de_DE/empire.json @@ -1,6 +1,6 @@ { "view_title": "Empire", - "switch_empire": "Switch Empire", + "switch_empire": "Imperium wechseln", "views": { "material_io": "Material I/O", "analysis": "Analyse", @@ -11,8 +11,8 @@ "form": { "name": "Name", "faction": "Fraktion", - "permits_total": "@:terms.permits_plural Total", - "permits_used": "@:terms.permits_plural Used" + "permits_total": "@:terms.permits_plural gesamt", + "permits_used": "@:terms.permits_plural benutzt" }, "sync_warning": { "title": "Unstimmigkeit erkannt:", @@ -36,7 +36,7 @@ "display": "Anzeige", "consumables": "Verbrauchsmaterialien", "all": "Alle", - "loadbalance": "Loadbalance" + "loadbalance": "Ladeausgleich" }, "analysis": { "profitable_plans": "Profitable Pläne", From 5824726a09902dad9a5cd9969c42b1866654d385 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:15 +0200 Subject: [PATCH 006/237] New translations homepage.json (French) [ci skip] --- src/locales/fr_FR/homepage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/fr_FR/homepage.json b/src/locales/fr_FR/homepage.json index dbdb94e7..5c8aa103 100644 --- a/src/locales/fr_FR/homepage.json +++ b/src/locales/fr_FR/homepage.json @@ -62,7 +62,7 @@ "section_title": "Powered by tools we love to use" }, "open_source": { - "section_title": "Free & Open Source", + "section_title": "Free & Open Source", "section_lead": "PRUNplanner is completely free to use, and its frontend is fully {link}.", "prompt": "Love it? We'd be thrilled if you contributed!", "link_open_source": "Open Source" From b959c35bf8c1d634819baa553498fff360227116 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:16 +0200 Subject: [PATCH 007/237] New translations homepage.json (Spanish) [ci skip] --- src/locales/es_ES/homepage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/es_ES/homepage.json b/src/locales/es_ES/homepage.json index dbdb94e7..5c8aa103 100644 --- a/src/locales/es_ES/homepage.json +++ b/src/locales/es_ES/homepage.json @@ -62,7 +62,7 @@ "section_title": "Powered by tools we love to use" }, "open_source": { - "section_title": "Free & Open Source", + "section_title": "Free & Open Source", "section_lead": "PRUNplanner is completely free to use, and its frontend is fully {link}.", "prompt": "Love it? We'd be thrilled if you contributed!", "link_open_source": "Open Source" From 3a8cc5cd59a1a0bf0eb07d5daf4711cb041f0d1c Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:18 +0200 Subject: [PATCH 008/237] New translations homepage.json (German) [ci skip] --- src/locales/de_DE/homepage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/de_DE/homepage.json b/src/locales/de_DE/homepage.json index 8255ec55..a7ceca8d 100644 --- a/src/locales/de_DE/homepage.json +++ b/src/locales/de_DE/homepage.json @@ -62,7 +62,7 @@ "section_title": "Unterstützt von Tools, die wir gerne verwenden" }, "open_source": { - "section_title": "Kostenlos & Open Source", + "section_title": "Free & Open Source", "section_lead": "PRUNplanner ist völlig frei zu verwenden und {link}.", "prompt": "Du magst es? Wir würden uns freuen, wenn du mitmachst!", "link_open_source": "Open Source" From 2161766884b843bc182afd37557b074fa6332f62 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:19 +0200 Subject: [PATCH 009/237] New translations homepage.json (Italian) [ci skip] --- src/locales/it_IT/homepage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/it_IT/homepage.json b/src/locales/it_IT/homepage.json index dbdb94e7..5c8aa103 100644 --- a/src/locales/it_IT/homepage.json +++ b/src/locales/it_IT/homepage.json @@ -62,7 +62,7 @@ "section_title": "Powered by tools we love to use" }, "open_source": { - "section_title": "Free & Open Source", + "section_title": "Free & Open Source", "section_lead": "PRUNplanner is completely free to use, and its frontend is fully {link}.", "prompt": "Love it? We'd be thrilled if you contributed!", "link_open_source": "Open Source" From ed4d6889022b65d5e66ba6735dad4ec0e325290d Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:21 +0200 Subject: [PATCH 010/237] New translations homepage.json (Japanese) [ci skip] --- src/locales/ja_JP/homepage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/ja_JP/homepage.json b/src/locales/ja_JP/homepage.json index dbdb94e7..5c8aa103 100644 --- a/src/locales/ja_JP/homepage.json +++ b/src/locales/ja_JP/homepage.json @@ -62,7 +62,7 @@ "section_title": "Powered by tools we love to use" }, "open_source": { - "section_title": "Free & Open Source", + "section_title": "Free & Open Source", "section_lead": "PRUNplanner is completely free to use, and its frontend is fully {link}.", "prompt": "Love it? We'd be thrilled if you contributed!", "link_open_source": "Open Source" From 4b0d665bf354af254e4dedf1ef07f2c65c15764e Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:22 +0200 Subject: [PATCH 011/237] New translations homepage.json (Korean) [ci skip] --- src/locales/ko_KR/homepage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/ko_KR/homepage.json b/src/locales/ko_KR/homepage.json index dbdb94e7..5c8aa103 100644 --- a/src/locales/ko_KR/homepage.json +++ b/src/locales/ko_KR/homepage.json @@ -62,7 +62,7 @@ "section_title": "Powered by tools we love to use" }, "open_source": { - "section_title": "Free & Open Source", + "section_title": "Free & Open Source", "section_lead": "PRUNplanner is completely free to use, and its frontend is fully {link}.", "prompt": "Love it? We'd be thrilled if you contributed!", "link_open_source": "Open Source" From 8f8d9781b3a64972b8c09b2127d863e53e6ffa74 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:24 +0200 Subject: [PATCH 012/237] New translations homepage.json (Dutch) [ci skip] --- src/locales/nl_NL/homepage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/nl_NL/homepage.json b/src/locales/nl_NL/homepage.json index dbdb94e7..5c8aa103 100644 --- a/src/locales/nl_NL/homepage.json +++ b/src/locales/nl_NL/homepage.json @@ -62,7 +62,7 @@ "section_title": "Powered by tools we love to use" }, "open_source": { - "section_title": "Free & Open Source", + "section_title": "Free & Open Source", "section_lead": "PRUNplanner is completely free to use, and its frontend is fully {link}.", "prompt": "Love it? We'd be thrilled if you contributed!", "link_open_source": "Open Source" From ce17fd808445b95f656e02e1bb7e42defc40e6ca Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:25 +0200 Subject: [PATCH 013/237] New translations homepage.json (Portuguese) [ci skip] --- src/locales/pt_PT/homepage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/pt_PT/homepage.json b/src/locales/pt_PT/homepage.json index dbdb94e7..5c8aa103 100644 --- a/src/locales/pt_PT/homepage.json +++ b/src/locales/pt_PT/homepage.json @@ -62,7 +62,7 @@ "section_title": "Powered by tools we love to use" }, "open_source": { - "section_title": "Free & Open Source", + "section_title": "Free & Open Source", "section_lead": "PRUNplanner is completely free to use, and its frontend is fully {link}.", "prompt": "Love it? We'd be thrilled if you contributed!", "link_open_source": "Open Source" From 075220990dccc2f4fdf52d037341520411d9bccd Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:27 +0200 Subject: [PATCH 014/237] New translations homepage.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/homepage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/zh_CN/homepage.json b/src/locales/zh_CN/homepage.json index dbdb94e7..5c8aa103 100644 --- a/src/locales/zh_CN/homepage.json +++ b/src/locales/zh_CN/homepage.json @@ -62,7 +62,7 @@ "section_title": "Powered by tools we love to use" }, "open_source": { - "section_title": "Free & Open Source", + "section_title": "Free & Open Source", "section_lead": "PRUNplanner is completely free to use, and its frontend is fully {link}.", "prompt": "Love it? We'd be thrilled if you contributed!", "link_open_source": "Open Source" From 4b6e625c76685473a0056a5fea5e048f4581059b Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:28 +0200 Subject: [PATCH 015/237] New translations planet_search.json (German) [ci skip] --- src/locales/de_DE/planet_search.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/locales/de_DE/planet_search.json b/src/locales/de_DE/planet_search.json index f5e8316e..68cd37db 100644 --- a/src/locales/de_DE/planet_search.json +++ b/src/locales/de_DE/planet_search.json @@ -2,7 +2,7 @@ "view_title": "Planetensuche", "title": "Planetensuche", "basic": { - "title": "Planet Name or ID", + "title": "Planetenname oder ID", "description": "Suche muss mindestens 3 Zeichen enthalten. Beispiel: \"OT-580b\", \"Montem\", \"OT-\" oder \"580\".", "form_id": "ID" }, @@ -24,7 +24,7 @@ "fertility": "@:terms.fertility", "resources": "Ressourcen", "popr": "@:terms.popr", - "cogc_program": "COGC Program", + "cogc_program": "COGC-Programm", "environment": "Umwelt", "infrastructure": "Infrastruktur", "distance": "Entfernung" From ba584b4dc8b923b33183ee7b8267c1541a3ab21e Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:29 +0200 Subject: [PATCH 016/237] New translations homepage.json (Russian) [ci skip] --- src/locales/ru_RU/homepage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/ru_RU/homepage.json b/src/locales/ru_RU/homepage.json index dbdb94e7..5c8aa103 100644 --- a/src/locales/ru_RU/homepage.json +++ b/src/locales/ru_RU/homepage.json @@ -62,7 +62,7 @@ "section_title": "Powered by tools we love to use" }, "open_source": { - "section_title": "Free & Open Source", + "section_title": "Free & Open Source", "section_lead": "PRUNplanner is completely free to use, and its frontend is fully {link}.", "prompt": "Love it? We'd be thrilled if you contributed!", "link_open_source": "Open Source" From 05daf61f5dc14d9c1942e0e72d3168c4100d961c Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:31 +0200 Subject: [PATCH 017/237] New translations profile.json (French) [ci skip] --- src/locales/fr_FR/profile.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/locales/fr_FR/profile.json b/src/locales/fr_FR/profile.json index 4bf31dae..cdc413fb 100644 --- a/src/locales/fr_FR/profile.json +++ b/src/locales/fr_FR/profile.json @@ -42,7 +42,7 @@ "title": "What is FIO & Why should you use it?", "help": { "title": "5 Easy Steps to Integrate FIO and PRUNplanner", - "p1": "FIO is a community developed {link} that collects your game data, makes it available outside of @:terms.prosperous_universe and is completely free to use.", + "p1": "FIO is a community developed {link} that collects your game data, makes it available outside of Prosperous Universe and is completely free to use.", "p2": "Just go ahead and install the Chrome or Firefox extension, reload your browser with APEX open and click the extension button in the upper-right in your browser to create an account. FIO will automatically collect (only) your game data while you keep playing.", "p3": "You can now login to the {link} to see your data and create an API-Key PRUNplanner will use to import your storage (materials you have somewhere) and sites (planets, ships, warehouses) data.", "p4": "Creating the key is easy, if you head to the {link} page and click the \"Create API Key\" button. Enter a name for your key (e.g., \"PRUNplanner\") and your FIO password. You don't need to \"Allow Writes\" as PRUNplanner will not manipulate any of your data, the tool just reads and uses it.", @@ -71,6 +71,7 @@ "form": { "tool_preferences": "Tool Preferences", "language": "Language", + "language_note": "We want to make PRUNplanner accessible to everyone. If you'd like to see the tool in your native language - or help us polish an existing translation - join our localization project on {link}.", "default_empire": "Default Empire", "default_cx": "Default CX", "fio_burn": "FIO Burn", From d28d609a9ab34221215cbe9fac6270a0998da71e Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:32 +0200 Subject: [PATCH 018/237] New translations profile.json (Spanish) [ci skip] --- src/locales/es_ES/profile.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/locales/es_ES/profile.json b/src/locales/es_ES/profile.json index 4bf31dae..cdc413fb 100644 --- a/src/locales/es_ES/profile.json +++ b/src/locales/es_ES/profile.json @@ -42,7 +42,7 @@ "title": "What is FIO & Why should you use it?", "help": { "title": "5 Easy Steps to Integrate FIO and PRUNplanner", - "p1": "FIO is a community developed {link} that collects your game data, makes it available outside of @:terms.prosperous_universe and is completely free to use.", + "p1": "FIO is a community developed {link} that collects your game data, makes it available outside of Prosperous Universe and is completely free to use.", "p2": "Just go ahead and install the Chrome or Firefox extension, reload your browser with APEX open and click the extension button in the upper-right in your browser to create an account. FIO will automatically collect (only) your game data while you keep playing.", "p3": "You can now login to the {link} to see your data and create an API-Key PRUNplanner will use to import your storage (materials you have somewhere) and sites (planets, ships, warehouses) data.", "p4": "Creating the key is easy, if you head to the {link} page and click the \"Create API Key\" button. Enter a name for your key (e.g., \"PRUNplanner\") and your FIO password. You don't need to \"Allow Writes\" as PRUNplanner will not manipulate any of your data, the tool just reads and uses it.", @@ -71,6 +71,7 @@ "form": { "tool_preferences": "Tool Preferences", "language": "Language", + "language_note": "We want to make PRUNplanner accessible to everyone. If you'd like to see the tool in your native language - or help us polish an existing translation - join our localization project on {link}.", "default_empire": "Default Empire", "default_cx": "Default CX", "fio_burn": "FIO Burn", From 605872d66cb085a559d94b021fab520ac075995b Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:34 +0200 Subject: [PATCH 019/237] New translations profile.json (German) [ci skip] --- src/locales/de_DE/profile.json | 57 +++++++++++++++++----------------- 1 file changed, 29 insertions(+), 28 deletions(-) diff --git a/src/locales/de_DE/profile.json b/src/locales/de_DE/profile.json index c2ec693b..6c882b80 100644 --- a/src/locales/de_DE/profile.json +++ b/src/locales/de_DE/profile.json @@ -39,48 +39,49 @@ } }, "fio_information": { - "title": "What is FIO & Why should you use it?", + "title": "Was ist FIO & Warum solltest du es benutzen?", "help": { - "title": "5 Easy Steps to Integrate FIO and PRUNplanner", - "p1": "FIO is a community developed {link} that collects your game data, makes it available outside of @:terms.prosperous_universe and is completely free to use.", - "p2": "Just go ahead and install the Chrome or Firefox extension, reload your browser with APEX open and click the extension button in the upper-right in your browser to create an account. FIO will automatically collect (only) your game data while you keep playing.", - "p3": "You can now login to the {link} to see your data and create an API-Key PRUNplanner will use to import your storage (materials you have somewhere) and sites (planets, ships, warehouses) data.", - "p4": "Creating the key is easy, if you head to the {link} page and click the \"Create API Key\" button. Enter a name for your key (e.g., \"PRUNplanner\") and your FIO password. You don't need to \"Allow Writes\" as PRUNplanner will not manipulate any of your data, the tool just reads and uses it.", - "p5": "Give PRUNplanner a couple of minutes and your game data will appear, allowing you to see when to repair ships, what buildings you have already constructed when creating or modifying plans or when to resupply your bases.", + "title": "5 einfache Schritte zur Integration von FIO und PRUNplanner", + "p1": "FIO is a community developed {link} that collects your game data, makes it available outside of Prosperous Universe and is completely free to use.", + "p2": "Einfach die Chrome- oder Firefox-Erweiterung installiere. Aktualisiere dein Browser-Fenster mit APEX und klicke auf die Erweiterungsschaltfläche oben rechts in deinem Browser, um ein Konto zu erstellen. FIO sammelt automatisch (nur) deine Spieldaten, während du weiterspielst.", + "p3": "Du kannst dich jetzt in den {link} einloggen, um deine Daten zu sehen und einen API-Schlüssel für PRUNplanner zu erstellen, der deine Lagerbestände und Standorte (Planeten, Schiffe, Lager) importiert.", + "p4": "Das Erstellen des API-Schlüssels ist einfach, wenn du auf {link} Seite gehst und \"Create API Key\" klickst. Gib einen Namen für deinen Key (z.B. \"PRUNplanner\") und dein FIO Passwort ein. Du musst \"Allow Writes\" (\"Schreiben erlauben\") nicht auswählen, da PRUNplanner deine Daten manipulieren, sondern nur lesen möchte.", + "p5": "Warte einige Minuten, damit PRUNplanner deine Daten von FIO synchronisieren kann und freue dich auf noch mehr Planungsmöglichkeiten. Deine Daten werden regelmäßig, automatisch im Hintergrund aktualisiert.", "steps": { - "1": "Download and install the {link}", - "2": "Open your game, click the extensions button and register your FIO account", - "3": "Head to the FIO website, open your {link} and create an API-Key for PRUNplanner", - "4": "Copy and enter your API Key as well as your Prosperous Universe username to your profile above and press the \"Update Profile\" button", - "5": "Wait a few minutes for PRUNplanner to get your data and enjoy additional planning capabilities. Your data will be updated automatically in the background, no need to do anything." + "1": "Lade und installiere die {link}", + "2": "Öffne dein Spiel, klicke den Button der Browser-Erweiterung und erstelle deinen FIO Account", + "3": "Gehe zur FIO Webseite, öffne deine {link} und erstelle einen API-Schlüssel für PRUNplanner", + "4": "Kopiere den API-Schlüssel und füge ihn auf dieser Seite ein. Fülle außerdem das Feld mit deinem Prosperous Universe Benutzernamen aus und drücke den \"Profil aktualisieren\" Button", + "5": "Warte einige Minuten, damit PRUNplanner deine Daten von FIO synchronisieren kann und freue dich auf noch mehr Planungsmöglichkeiten. Deine Daten werden regelmäßig, automatisch im Hintergrund aktualisiert." }, - "refined_prun": "While you're enhancing your gameplay, also check out {link}: Another browser extension greatly simplifying the user interface and adding tons of features." + "refined_prun": "Während du gerade sowieso dein Spielerlebnis verbessert, schaue dir auch {link} an: Eine weitere Browser-Erweiterung, die die Benutzeroberfläche im Spiel verbessert und viele weitere Möglichkeiten mitbringt." }, "links": { - "browser_extension": "Browser Extension", + "browser_extension": "Browser Erweiterung", "fio_website": "FIO Website", "fio_settings": "FIO Settings", - "fio_extension": "FIO Browser Extension", - "settings_short": "Settings", + "fio_extension": "FIO Browser-Erweiterung", + "settings_short": "Einstellungen", "refined_prun": "Refined PrUn" } }, "preferences": { - "title": "Preferences", - "description": "Your preferences are saved locally in your browser and aren't synced with the backend yet. Use this panel to review and customize your PRUNplanner settings.", + "title": "Einstellungen", + "description": "Deine Einstellungen werden lokal in deinem Browser gespeichert und noch nicht vollständig mit dem Backend synchronisiert. Hier kannst du sie anpassen und überprüfen.", "form": { - "tool_preferences": "Tool Preferences", - "language": "Language", - "default_empire": "Default Empire", - "default_cx": "Default CX", - "fio_burn": "FIO Burn", - "red_threshold": "Red Threshold", - "yellow_threshold": "Yellow Threshold", - "resupply_days": "Resupply Days", + "tool_preferences": "PRUNplanner Einstellungen", + "language": "Sprache", + "language_note": "We want to make PRUNplanner accessible to everyone. If you'd like to see the tool in your native language - or help us polish an existing translation - join our localization project on {link}.", + "default_empire": "Standard-Imperium", + "default_cx": "Standard CX", + "fio_burn": "FIO Verbrauch", + "red_threshold": "Roter Grenzwert", + "yellow_threshold": "Gelber Grenzwert", + "resupply_days": "Nachschub-Tage", "xit_origin": "XIT Origin", "buy_from_cx": "XIT Buy from CX", - "plan_specific": "Plan-Specific Settings", - "plan_specific_description": "These settings are managed within individual plans. This section provides an overview of the preferences you've customized so far - to modify them, navigate to the corresponding plan.", + "plan_specific": "Planspezifische Einstellungen", + "plan_specific_description": "Diese Einstellungen werden in einzelnen Plänen verwaltet. Dieser Abschnitt bietet eine Übersicht über die Einstellungen, die du bisher angepasst hast - um sie zu ändern, wähle den entsprechenden Plan.", "plan": "Plan", "preferences": "Einstellungen" } From 1c7f021e6f85d9c4d232267ec8ef85de2eb130a2 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:35 +0200 Subject: [PATCH 020/237] New translations profile.json (Italian) [ci skip] --- src/locales/it_IT/profile.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/locales/it_IT/profile.json b/src/locales/it_IT/profile.json index 4bf31dae..cdc413fb 100644 --- a/src/locales/it_IT/profile.json +++ b/src/locales/it_IT/profile.json @@ -42,7 +42,7 @@ "title": "What is FIO & Why should you use it?", "help": { "title": "5 Easy Steps to Integrate FIO and PRUNplanner", - "p1": "FIO is a community developed {link} that collects your game data, makes it available outside of @:terms.prosperous_universe and is completely free to use.", + "p1": "FIO is a community developed {link} that collects your game data, makes it available outside of Prosperous Universe and is completely free to use.", "p2": "Just go ahead and install the Chrome or Firefox extension, reload your browser with APEX open and click the extension button in the upper-right in your browser to create an account. FIO will automatically collect (only) your game data while you keep playing.", "p3": "You can now login to the {link} to see your data and create an API-Key PRUNplanner will use to import your storage (materials you have somewhere) and sites (planets, ships, warehouses) data.", "p4": "Creating the key is easy, if you head to the {link} page and click the \"Create API Key\" button. Enter a name for your key (e.g., \"PRUNplanner\") and your FIO password. You don't need to \"Allow Writes\" as PRUNplanner will not manipulate any of your data, the tool just reads and uses it.", @@ -71,6 +71,7 @@ "form": { "tool_preferences": "Tool Preferences", "language": "Language", + "language_note": "We want to make PRUNplanner accessible to everyone. If you'd like to see the tool in your native language - or help us polish an existing translation - join our localization project on {link}.", "default_empire": "Default Empire", "default_cx": "Default CX", "fio_burn": "FIO Burn", From 18e2eba3436bba2d05cab435d208a5b4f1ecc764 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:37 +0200 Subject: [PATCH 021/237] New translations profile.json (Japanese) [ci skip] --- src/locales/ja_JP/profile.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/locales/ja_JP/profile.json b/src/locales/ja_JP/profile.json index 4bf31dae..cdc413fb 100644 --- a/src/locales/ja_JP/profile.json +++ b/src/locales/ja_JP/profile.json @@ -42,7 +42,7 @@ "title": "What is FIO & Why should you use it?", "help": { "title": "5 Easy Steps to Integrate FIO and PRUNplanner", - "p1": "FIO is a community developed {link} that collects your game data, makes it available outside of @:terms.prosperous_universe and is completely free to use.", + "p1": "FIO is a community developed {link} that collects your game data, makes it available outside of Prosperous Universe and is completely free to use.", "p2": "Just go ahead and install the Chrome or Firefox extension, reload your browser with APEX open and click the extension button in the upper-right in your browser to create an account. FIO will automatically collect (only) your game data while you keep playing.", "p3": "You can now login to the {link} to see your data and create an API-Key PRUNplanner will use to import your storage (materials you have somewhere) and sites (planets, ships, warehouses) data.", "p4": "Creating the key is easy, if you head to the {link} page and click the \"Create API Key\" button. Enter a name for your key (e.g., \"PRUNplanner\") and your FIO password. You don't need to \"Allow Writes\" as PRUNplanner will not manipulate any of your data, the tool just reads and uses it.", @@ -71,6 +71,7 @@ "form": { "tool_preferences": "Tool Preferences", "language": "Language", + "language_note": "We want to make PRUNplanner accessible to everyone. If you'd like to see the tool in your native language - or help us polish an existing translation - join our localization project on {link}.", "default_empire": "Default Empire", "default_cx": "Default CX", "fio_burn": "FIO Burn", From d7007159da420528cc40c620f45497e3ee7e1c39 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:38 +0200 Subject: [PATCH 022/237] New translations profile.json (Korean) [ci skip] --- src/locales/ko_KR/profile.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/locales/ko_KR/profile.json b/src/locales/ko_KR/profile.json index 4bf31dae..cdc413fb 100644 --- a/src/locales/ko_KR/profile.json +++ b/src/locales/ko_KR/profile.json @@ -42,7 +42,7 @@ "title": "What is FIO & Why should you use it?", "help": { "title": "5 Easy Steps to Integrate FIO and PRUNplanner", - "p1": "FIO is a community developed {link} that collects your game data, makes it available outside of @:terms.prosperous_universe and is completely free to use.", + "p1": "FIO is a community developed {link} that collects your game data, makes it available outside of Prosperous Universe and is completely free to use.", "p2": "Just go ahead and install the Chrome or Firefox extension, reload your browser with APEX open and click the extension button in the upper-right in your browser to create an account. FIO will automatically collect (only) your game data while you keep playing.", "p3": "You can now login to the {link} to see your data and create an API-Key PRUNplanner will use to import your storage (materials you have somewhere) and sites (planets, ships, warehouses) data.", "p4": "Creating the key is easy, if you head to the {link} page and click the \"Create API Key\" button. Enter a name for your key (e.g., \"PRUNplanner\") and your FIO password. You don't need to \"Allow Writes\" as PRUNplanner will not manipulate any of your data, the tool just reads and uses it.", @@ -71,6 +71,7 @@ "form": { "tool_preferences": "Tool Preferences", "language": "Language", + "language_note": "We want to make PRUNplanner accessible to everyone. If you'd like to see the tool in your native language - or help us polish an existing translation - join our localization project on {link}.", "default_empire": "Default Empire", "default_cx": "Default CX", "fio_burn": "FIO Burn", From caeab6922dffd29cf651a8c44e83d434c9ba6159 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:40 +0200 Subject: [PATCH 023/237] New translations profile.json (Dutch) [ci skip] --- src/locales/nl_NL/profile.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/locales/nl_NL/profile.json b/src/locales/nl_NL/profile.json index 4bf31dae..cdc413fb 100644 --- a/src/locales/nl_NL/profile.json +++ b/src/locales/nl_NL/profile.json @@ -42,7 +42,7 @@ "title": "What is FIO & Why should you use it?", "help": { "title": "5 Easy Steps to Integrate FIO and PRUNplanner", - "p1": "FIO is a community developed {link} that collects your game data, makes it available outside of @:terms.prosperous_universe and is completely free to use.", + "p1": "FIO is a community developed {link} that collects your game data, makes it available outside of Prosperous Universe and is completely free to use.", "p2": "Just go ahead and install the Chrome or Firefox extension, reload your browser with APEX open and click the extension button in the upper-right in your browser to create an account. FIO will automatically collect (only) your game data while you keep playing.", "p3": "You can now login to the {link} to see your data and create an API-Key PRUNplanner will use to import your storage (materials you have somewhere) and sites (planets, ships, warehouses) data.", "p4": "Creating the key is easy, if you head to the {link} page and click the \"Create API Key\" button. Enter a name for your key (e.g., \"PRUNplanner\") and your FIO password. You don't need to \"Allow Writes\" as PRUNplanner will not manipulate any of your data, the tool just reads and uses it.", @@ -71,6 +71,7 @@ "form": { "tool_preferences": "Tool Preferences", "language": "Language", + "language_note": "We want to make PRUNplanner accessible to everyone. If you'd like to see the tool in your native language - or help us polish an existing translation - join our localization project on {link}.", "default_empire": "Default Empire", "default_cx": "Default CX", "fio_burn": "FIO Burn", From d80850cd7cb193207161bc6df1e3e4b5ec18f891 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:41 +0200 Subject: [PATCH 024/237] New translations profile.json (Portuguese) [ci skip] --- src/locales/pt_PT/profile.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/locales/pt_PT/profile.json b/src/locales/pt_PT/profile.json index 4bf31dae..cdc413fb 100644 --- a/src/locales/pt_PT/profile.json +++ b/src/locales/pt_PT/profile.json @@ -42,7 +42,7 @@ "title": "What is FIO & Why should you use it?", "help": { "title": "5 Easy Steps to Integrate FIO and PRUNplanner", - "p1": "FIO is a community developed {link} that collects your game data, makes it available outside of @:terms.prosperous_universe and is completely free to use.", + "p1": "FIO is a community developed {link} that collects your game data, makes it available outside of Prosperous Universe and is completely free to use.", "p2": "Just go ahead and install the Chrome or Firefox extension, reload your browser with APEX open and click the extension button in the upper-right in your browser to create an account. FIO will automatically collect (only) your game data while you keep playing.", "p3": "You can now login to the {link} to see your data and create an API-Key PRUNplanner will use to import your storage (materials you have somewhere) and sites (planets, ships, warehouses) data.", "p4": "Creating the key is easy, if you head to the {link} page and click the \"Create API Key\" button. Enter a name for your key (e.g., \"PRUNplanner\") and your FIO password. You don't need to \"Allow Writes\" as PRUNplanner will not manipulate any of your data, the tool just reads and uses it.", @@ -71,6 +71,7 @@ "form": { "tool_preferences": "Tool Preferences", "language": "Language", + "language_note": "We want to make PRUNplanner accessible to everyone. If you'd like to see the tool in your native language - or help us polish an existing translation - join our localization project on {link}.", "default_empire": "Default Empire", "default_cx": "Default CX", "fio_burn": "FIO Burn", From 95acbd1805085e408979f4caa3548ab6990a8b25 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:42 +0200 Subject: [PATCH 025/237] New translations profile.json (Russian) [ci skip] --- src/locales/ru_RU/profile.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/locales/ru_RU/profile.json b/src/locales/ru_RU/profile.json index 4bf31dae..cdc413fb 100644 --- a/src/locales/ru_RU/profile.json +++ b/src/locales/ru_RU/profile.json @@ -42,7 +42,7 @@ "title": "What is FIO & Why should you use it?", "help": { "title": "5 Easy Steps to Integrate FIO and PRUNplanner", - "p1": "FIO is a community developed {link} that collects your game data, makes it available outside of @:terms.prosperous_universe and is completely free to use.", + "p1": "FIO is a community developed {link} that collects your game data, makes it available outside of Prosperous Universe and is completely free to use.", "p2": "Just go ahead and install the Chrome or Firefox extension, reload your browser with APEX open and click the extension button in the upper-right in your browser to create an account. FIO will automatically collect (only) your game data while you keep playing.", "p3": "You can now login to the {link} to see your data and create an API-Key PRUNplanner will use to import your storage (materials you have somewhere) and sites (planets, ships, warehouses) data.", "p4": "Creating the key is easy, if you head to the {link} page and click the \"Create API Key\" button. Enter a name for your key (e.g., \"PRUNplanner\") and your FIO password. You don't need to \"Allow Writes\" as PRUNplanner will not manipulate any of your data, the tool just reads and uses it.", @@ -71,6 +71,7 @@ "form": { "tool_preferences": "Tool Preferences", "language": "Language", + "language_note": "We want to make PRUNplanner accessible to everyone. If you'd like to see the tool in your native language - or help us polish an existing translation - join our localization project on {link}.", "default_empire": "Default Empire", "default_cx": "Default CX", "fio_burn": "FIO Burn", From 965f3aa23f60c623b513b40009f1e30752d2a475 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:44 +0200 Subject: [PATCH 026/237] New translations profile.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/profile.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/locales/zh_CN/profile.json b/src/locales/zh_CN/profile.json index 4bf31dae..cdc413fb 100644 --- a/src/locales/zh_CN/profile.json +++ b/src/locales/zh_CN/profile.json @@ -42,7 +42,7 @@ "title": "What is FIO & Why should you use it?", "help": { "title": "5 Easy Steps to Integrate FIO and PRUNplanner", - "p1": "FIO is a community developed {link} that collects your game data, makes it available outside of @:terms.prosperous_universe and is completely free to use.", + "p1": "FIO is a community developed {link} that collects your game data, makes it available outside of Prosperous Universe and is completely free to use.", "p2": "Just go ahead and install the Chrome or Firefox extension, reload your browser with APEX open and click the extension button in the upper-right in your browser to create an account. FIO will automatically collect (only) your game data while you keep playing.", "p3": "You can now login to the {link} to see your data and create an API-Key PRUNplanner will use to import your storage (materials you have somewhere) and sites (planets, ships, warehouses) data.", "p4": "Creating the key is easy, if you head to the {link} page and click the \"Create API Key\" button. Enter a name for your key (e.g., \"PRUNplanner\") and your FIO password. You don't need to \"Allow Writes\" as PRUNplanner will not manipulate any of your data, the tool just reads and uses it.", @@ -71,6 +71,7 @@ "form": { "tool_preferences": "Tool Preferences", "language": "Language", + "language_note": "We want to make PRUNplanner accessible to everyone. If you'd like to see the tool in your native language - or help us polish an existing translation - join our localization project on {link}.", "default_empire": "Default Empire", "default_cx": "Default CX", "fio_burn": "FIO Burn", From 8af6ec3f1fabb1ed30c9e4a03a817920104090c7 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:45 +0200 Subject: [PATCH 027/237] New translations api_keys.json (German) [ci skip] --- src/locales/de_DE/api_keys.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/locales/de_DE/api_keys.json b/src/locales/de_DE/api_keys.json index 9d83a352..283517bb 100644 --- a/src/locales/de_DE/api_keys.json +++ b/src/locales/de_DE/api_keys.json @@ -3,10 +3,10 @@ "title": "API Schlüssel", "info": { "description": { - "p1": "The {link} provides programmatic access to all your planning data, ingame metadata (buildings, recipes, materials) and calculated market metrics like VWAP. While public endpoints remain open for community use, access to private planning data - including your plan configurations - require secure authentication.", - "p2": "By utilizing these endpoints, you can synchronize your planning operations with external spreadsheets, custom dashboards, or even optimization algorithms.", + "p1": "Der {link} bietet programmatischen Zugriff auf alle deine Planungsdaten, Spiel-Metadaten (Gebäude, Aufträge, Materialien) und berechnete Marktmetriken wie VWAP. Während öffentliche Endpunkte für die Community offen bleiben, erfordert der Zugriff auf private Planungsdaten - einschließlich deiner Plankonfigurationen - eine sichere Authentifizierung.", + "p2": "Mithilfe dieser Endpunkte kannst du deine Planungsdaten mit externen Tabellen, eigenen Dashboards oder sogar Optimierungsalgorithmen synchronisieren.", "link": "PRUNplanner REST API", - "warning": "API keys grant full access to your account data and remain valid indefinitely. Treat these credentials as sensitive as your password. Never commit keys to public repositories or share them with unverified third-party services. If a key is compromised, revoke it immediately and generate a replacement." + "warning": "API-Schlüssel gewähren vollen Zugriff auf deine Daten und bleiben unbegrenzt gültig. Diese Zugangsdaten sollten so sensibel wie dein Passwort behandelt werden. Übertrage niemals Schlüssel in öffentliche Repositories oder teile sie mit nicht überprüften Drittanbieterdiensten. Wenn ein Schlüssel kompromittiert ist, widerrufe ihn sofort und erzeuge einen Ersatz." } }, "manage": { @@ -23,7 +23,7 @@ } }, "implementation": { - "title": "Autorisierungs-Implementierung", + "title": "Autorisierung-Implementierung", "link": "REST API Referenz anzeigen →" }, "create": { From e8b69de7e5729c9f25673f290d3081fff22f62b3 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:47 +0200 Subject: [PATCH 028/237] New translations recipe_roi.json (German) [ci skip] --- src/locales/de_DE/recipe_roi.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/locales/de_DE/recipe_roi.json b/src/locales/de_DE/recipe_roi.json index aab2c7f9..ef151d72 100644 --- a/src/locales/de_DE/recipe_roi.json +++ b/src/locales/de_DE/recipe_roi.json @@ -1,26 +1,26 @@ { - "view_title": "ROI Overview", - "title": "ROI Overview", - "calculating": "Calculating Building Recipe ROI", - "cx_select": "@:terms.cx Preference", + "view_title": "ROI-Übersicht", + "title": "ROI-Übersicht", + "calculating": "Berechne alle Gebäude-Auftrage und ihr ROI", + "cx_select": "@:terms.cx Präferenz", "filters": { "title": "@:terms.filter", "building": "@:terms.buildings", "cogc": "@:terms.cogc", - "output": "Output", - "input": "Input", - "positive_roi": "Positive ROI" + "output": "Ausgang", + "input": "Eingang", + "positive_roi": "Positiver ROI" }, "table": { "building": "@:terms.buildings", - "optimal_setup": "Optimal Setup", - "recipe_output": "@:terms.recipes Output", - "recipe_input": "@:terms.recipes Input", + "optimal_setup": "Optimale Konfiguration", + "recipe_output": "@:terms.recipes Ausgang", + "recipe_input": "@:terms.recipes Eingang", "cogc": "@:terms.cogc", "cogm": "@:terms.cogm", - "plan_cost": "@:terms.plan Cost", - "daily_profit": "Daily Profit", - "profit_area": "Profit/Area", + "plan_cost": "@:terms.plan Kosten", + "daily_profit": "Täglicher Gewinn", + "profit_area": "Profit / Fläche", "plan_roi": "@:terms.plan ROI" } } From 8721a78c1aa2d665110cfd28a28f5482fc4581cb Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 11:04:48 +0200 Subject: [PATCH 029/237] New translations production_chains.json (German) [ci skip] --- src/locales/de_DE/production_chains.json | 28 ++++++++++++------------ 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/locales/de_DE/production_chains.json b/src/locales/de_DE/production_chains.json index fdcac235..7e64ca3d 100644 --- a/src/locales/de_DE/production_chains.json +++ b/src/locales/de_DE/production_chains.json @@ -1,35 +1,35 @@ { - "view_title": "Production Chains", - "title": "Production Chains", + "view_title": "Produktionsketten", + "title": "Produktionsketten", "configuration": { - "title": "Configuration", + "title": "Konfiguration", "material": "@:terms.materials", - "recipe_runs": "Recipe Runs", - "node_color": "Node Color", - "terminals": "Terminals", - "terminals_placeholder": "Comma-separated material tickers", - "terminals_info": "Terminals are materials whose inputs are excluded from the graph, useful if you buy them on the CX or locally and don't need to produce them.", - "recipe_selection": "Recipe Selection" + "recipe_runs": "Aufträge-Anzahl", + "node_color": "Knotenfarbe", + "terminals": "Enden", + "terminals_placeholder": "Durch Kommas getrennte Materialien-Ticker", + "terminals_info": "Terminals sind Materialien, deren Eingänge vom Diagramm ausgeschlossen sind. Nützlich, wenn Sie sie auf dem Marktplatz oder vor Ort gekauft und nicht produziert werden.", + "recipe_selection": "Auftrags-Auswahl" }, "analysis_materials": { - "title": "Materials", + "title": "Materialien", "table": { "material": "@:terms.materials", "amount": "@:terms.amount" } }, "analysis_expertise": { - "title": "Building Expertises", + "title": "Gebäude-Expertise", "table": { "expertise": "Expertise", "materials": "@:terms.materials_plural" } }, "analysis_workforce": { - "title": "Workforce", + "title": "Belegschaft", "table": { - "workforce": "Workforce", - "required": "Required" + "workforce": "Belegschaft", + "required": "Benötigt" } } } From bed8e3f69e163fac068450aff07467a265a7a7ca Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 12:11:30 +0200 Subject: [PATCH 030/237] New translations empire.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/empire.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/zh_CN/empire.json b/src/locales/zh_CN/empire.json index 42fdc1c2..5b771e55 100644 --- a/src/locales/zh_CN/empire.json +++ b/src/locales/zh_CN/empire.json @@ -34,7 +34,7 @@ }, "filters": { "display": "显示", - "consumables": "消费品", + "consumables": "消耗品", "all": "全部", "loadbalance": "负载平衡" }, From 2e8346da9766fffaea5ba339841a8de1697e341a Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 12:11:31 +0200 Subject: [PATCH 031/237] New translations terms.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/terms.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/locales/zh_CN/terms.json b/src/locales/zh_CN/terms.json index 611271cb..c1125667 100644 --- a/src/locales/zh_CN/terms.json +++ b/src/locales/zh_CN/terms.json @@ -8,12 +8,12 @@ "buildings": "Building | Buildings", "cogc": "COGC", "cogm": "COGM", - "consumption": "Consumption", + "consumption": "消耗量", "cost": "成本", "cx_plural": "CXs", "cx": "CX | CXs", - "delta_price": "ȼ Delta", - "delta": "Delta", + "delta_price": "利润差值", + "delta": "差值", "demand": "Demand", "empire": "帝国 | 帝国", "exchanges": "Exchange | Exchanges", @@ -27,9 +27,9 @@ "hq": "总部", "low": "Low", "material_ticker": "Ticker", - "materials_plural": "Materials", - "materials": "Material | Materials", - "permits_plural": "Permits", + "materials_plural": "物料", + "materials": "物料 | 物料", + "permits_plural": "许可", "permits": "许可证 | 许可证", "plan": "Plan | Plans", "planet_plural": "Planets", @@ -37,7 +37,7 @@ "plans_plural": "Plans", "popr": "POPR", "pressure": "Pressure", - "production": "Production", + "production": "产量", "profit_per_area": "利润 / 区域", "profit": "利润", "recipes": "Recipe | Recipes", From e1057f59b1869a8906f4ec0a26410ad58230c15b Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 12:11:33 +0200 Subject: [PATCH 032/237] New translations production_chains.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/production_chains.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/zh_CN/production_chains.json b/src/locales/zh_CN/production_chains.json index fdcac235..273dcb56 100644 --- a/src/locales/zh_CN/production_chains.json +++ b/src/locales/zh_CN/production_chains.json @@ -12,7 +12,7 @@ "recipe_selection": "Recipe Selection" }, "analysis_materials": { - "title": "Materials", + "title": "物料", "table": { "material": "@:terms.materials", "amount": "@:terms.amount" From afe9615e4f00da050c122555e53e9326d4624167 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 13:07:57 +0200 Subject: [PATCH 033/237] New translations homepage.json (German) [ci skip] --- src/locales/de_DE/homepage.json | 52 ++++++++++++++++----------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/locales/de_DE/homepage.json b/src/locales/de_DE/homepage.json index a7ceca8d..a01aa8e0 100644 --- a/src/locales/de_DE/homepage.json +++ b/src/locales/de_DE/homepage.json @@ -1,7 +1,7 @@ { "images": { - "section_title": "Command Your Empire from Anywhere", - "section_lead": "Monitor bases, manage production, and control your plans effortlessly. With intuitive, powerful tools, you can strategize, expand, and outsmart your rivals wherever you are.", + "section_title": "Verwalte dein Imperium von Überall", + "section_lead": "Überwache deine Basen, verwalte Produktionen und steuere deine Pläne mühelos. Mit intuitiven und leistungsstarken Tools kannst du Strategien finden, Erweiterungen planen und deine Rivalen mühelos ausspielen.", "empire": "Empire: Track production, supply chains, and growth across all your planets.", "plan": "Plan: Strategize and analyze without spending in-game resources.", "management": "Management: Coordinate plans, expansions, and your next moves effortlessly.", @@ -10,59 +10,59 @@ "planet_search": "Search: Find the exact planets and resources you need instantly." }, "hero": { - "title": "Plan your empire", - "subtitle": "Rule Prosperous Universe", - "lead": "Say goodbye to cumbersome spreadsheets and hello to seamless management of your in-game assets." + "title": "Plane dein Imperium", + "subtitle": "Beherrsche Prosperous Universe", + "lead": "Verabschiede dich von nervigen Tabellen und erlebe, wie einfach die Verwaltung deines Spiel-Vermögens sein kann." }, "features": { - "section_title": "Powerful Features, Free For Everyone", - "section_lead": "Streamline your planning and resource management, ensure you stay ahead in the galaxy.", + "section_title": "Mächtige Funktionen, Kostenlos für alle", + "section_lead": "Vereinfache deine Pläne und ihre Verwaltung, bleibe der Galaxie einen Schritt voraus.", "simulation": { - "label": "Base Simulation", - "text": "PRUNplanner lets you design and try new bases without spending in-game resources. It mirrors all aspects of a base, from habitation and production buildings to COGC programs and planet resources." + "label": "Plan-Simulation", + "text": "PRUNplanner erlaubt dir neue Basen zu planen ohne Ressourcen im Spiel verwenden zu müssen. Es spiegelt alle Aspekte von Gebäuden für deine Belegschaft, Produktionsstätten, COGC-Programmen und Planeten." }, "planning": { - "label": "Empire Planning", - "text": "Effortlessly organize and manage your entire empire. With PRUNplanner, you can plan across multiple bases and complex supply chains, ensuring your material flows remain on schedule and your empire runs smoothly." + "label": "Imperiale Planung", + "text": "Organisiere und verwalte dein Imperium so einfach wie noch nie. Mit PRUNplanner kannst du Pläne für mehrere Planeten erstellen, komplizierte Lieferketten plane und sicherstellen, dass deine Materialströme effizient bleiben." }, "gamedata": { - "label": "Game Data", - "text": "Stay ahead with up-to-date market information integrated directly from the game's community API (FIO). Make informed planning and expansion decisions based on actual markets and the best ROI." + "label": "Spieldaten", + "text": "Sei Dank der Community-Schnittstelle (FIO) mit aktuellen Marktinformationen der Warenbörsen anderen einen Schritt voraus. Du kannst Entscheidungen direkt auf Basis der aktuellen Marktlage und dem besten ROI treffen." }, "burn_repair": { - "label": "Burn & Repair", - "text": "Prevent shortages and bottlenecks with detailed management tools. PRUNplanner tracks your resources and consumables, ensuring you have everything you need right when you need it, keeping your operations seamless." + "label": "Verbrauch & Instandhaltung", + "text": "Verhindere Engpässe mit detaillierten Verwaltungsmöglichkeiten. PRUNplanner verfolgt deine Produktionsressourcen und die Belegschaftsversorgung, um sicherzugehen, dass du immer alles vorhanden hast, was du benötigst." }, "market_exploration": { "label": "Marktübersicht", - "text": "Explore historic market trends from past years and uncover how markets truly behave. Spot exciting opportunities, and effortlessly calculate Return on Investment for every recipe and resource — giving you the strategic edge you need for smarter planning." + "text": "Entdecke historische Markttrends der vergangenen Jahre und erfahre, wie Märkte sich wirklich bewegen. Dadurch findest du neue Chancen und kannst ganz einfach ausrechnen, ob sich Investitionen einen Auftrag oder die Produktion eines neuen Materials lohnt. Vorsprung durch intelligente Planung." }, "tools": { - "label": "A Wealth of Additional Tools", - "text": "Explore material prices from now to years past, know the optimal times for repairing production buildings, monitor expert spawn times, and optimize habitation buildings for minimal area or cost. PRUNplanner offers these features and many more." + "label": "So viele weitere Werkzeuge", + "text": "Entdecke Materialpreise von heute bis Jahre zurück, finde die optimalen Zeitpunkte um Gebäude zu reparieren, wann Produktionsexperten verfügbar werden und optimiere Unterkünfte automatisch für minimale Flächennutzung oder geringste Kosten. PRUNplanner bietet all das und noch viel mehr." } }, "concepts": { - "section_title": "Core Concepts", - "section_lead": "PRUNplanner consists of three main components that allow you to plan and manage your Prosperous Universe empire.", + "section_title": "Grundkonzepte", + "section_lead": "PRUNplanner besteht aus drei Hauptkomponenten, mit denen du dein Prosperous Universe Imperium planen und verwalten kannst.", "plans": { - "label": "Plans", - "text": "Plans are the backbone of what you do in PRUNplanner. They consist of all buildings, productions and bonuses of a base you can put down in Prosperous Universe. You can create new plans by searching for the planet you would like to create a base for. Also, a plan should be assigned a CX Exchange preference, as well as be assigned to an Empire." + "label": "Pläne", + "text": "Pläne sind das Rückgrat dessen, was du in PRUNplanner tust. Sie bestehen aus allen Unterkünften, Produktionsgebäuden und Bonus-Kalkulationen aus Proserous Universe. Du kannst neue Pläne einfach erstellen, indem du nach Planeten suchst, auf denen du eine neue Basis bauen möchtest. Jeder Plan sollte einer Warenbörse zugeordnet sein, damit deine Präferenz für Preisberechnungen genutzt wird." }, "empires": { - "label": "Empires", - "text": "An Empire is a collection of plans (e.g. all the bases you currently have settled in Prosperous Universe, or that you would like to settle, all interconnected together). Each empire is like a container that consists of multiple plans. Additionally, an exchange preference can be assigned to each Empire." + "label": "Imperien", + "text": "Ein Imperium ist die Sammlung aller Pläne (z.B. aller Basen, die du aktuell in Prosperous Universe besitzt oder noch bauen möchtest). Jedes Imperium funktioniert wie ein Container für eine Vielzahl an Plänen. Zusätzlich kannst du deine präferierte Warenbörse hinterlegen." }, "exchanges": { "label": "Marktplätze", - "text": "The Exchange Settings allow you to define market preferences for the pricing of materials. Each preference can be used in multiple Empires. However, each Empire can only have a single Exchange preference assigned to it. This ensures that prices are properly calculated for all individual plans that are part of the Empire." + "text": "Die Warenbörsen-Einstellungen erlauben dir zu definieren, welcher Marktplatz für die Preisberechnung von Materialien genutzt werden soll. Jede Einstellung kann in mehreren Imperien verwendet werden, aber jedes Imperium ist einem Marktplatz zugeordnet. Dies stellt sicher, dass alle Preise für jeden Plan korrekt berechnet werden." } }, "tools": { "section_title": "Unterstützt von Tools, die wir gerne verwenden" }, "open_source": { - "section_title": "Free & Open Source", + "section_title": "Kostenlos & Open Source", "section_lead": "PRUNplanner ist völlig frei zu verwenden und {link}.", "prompt": "Du magst es? Wir würden uns freuen, wenn du mitmachst!", "link_open_source": "Open Source" From bb1ae583bf13b394eb3244d671bf82fc700fdf10 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 14:15:02 +0200 Subject: [PATCH 034/237] New translations homepage.json (German) [ci skip] --- src/locales/de_DE/homepage.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/locales/de_DE/homepage.json b/src/locales/de_DE/homepage.json index a01aa8e0..ceeea09f 100644 --- a/src/locales/de_DE/homepage.json +++ b/src/locales/de_DE/homepage.json @@ -2,12 +2,12 @@ "images": { "section_title": "Verwalte dein Imperium von Überall", "section_lead": "Überwache deine Basen, verwalte Produktionen und steuere deine Pläne mühelos. Mit intuitiven und leistungsstarken Tools kannst du Strategien finden, Erweiterungen planen und deine Rivalen mühelos ausspielen.", - "empire": "Empire: Track production, supply chains, and growth across all your planets.", - "plan": "Plan: Strategize and analyze without spending in-game resources.", - "management": "Management: Coordinate plans, expansions, and your next moves effortlessly.", - "exchanges": "Exchanges: Optimize in-game pricing and trading strategies.", - "market_exploration": "Exploration: Analyze years of market data for smarter insights.", - "planet_search": "Search: Find the exact planets and resources you need instantly." + "empire": "Imperium: Verfolge Produktionen, Lieferketten und dein Wachstum über alle Planeten hinweg.", + "plan": "Pläne: Plane und analysiere ohne im Spiel Geld ausgeben zu müssen.", + "management": "Verwaltung: Koordiniere Pläne, Erweiterungen und deinen nächsten Schritt mühelos.", + "exchanges": "Warenbörsen: Optimiere deine Preis- und Handelsstrategien.", + "market_exploration": "Entdecken: Analysiere jahrelange Marktdaten und gewinne intelligente Erkenntnisse.", + "planet_search": "Planeten Suche: Finde den besten Planeten für deinen Bedarf." }, "hero": { "title": "Plane dein Imperium", From 5a9217a9ad8181b8b9c6428269034a4577d7d936 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 14:15:04 +0200 Subject: [PATCH 035/237] New translations terms.json (German) [ci skip] --- src/locales/de_DE/terms.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/locales/de_DE/terms.json b/src/locales/de_DE/terms.json index f417a145..e961de31 100644 --- a/src/locales/de_DE/terms.json +++ b/src/locales/de_DE/terms.json @@ -10,8 +10,8 @@ "cogm": "COGM", "consumption": "Verbrauch", "cost": "Kosten", - "cx_plural": "CXs", - "cx": "CX | CXs", + "cx_plural": "Handelskammern", + "cx": "Handelskammer | Handelskammern", "delta_price": "ȼ Delta", "delta": "Delta", "demand": "Nachfrage", From 690c5a3788a9cba8ebf29e5724b9f5d6f62521bf Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 14:15:06 +0200 Subject: [PATCH 036/237] New translations management.json (German) [ci skip] --- src/locales/de_DE/management.json | 36 +++++++++++++++---------------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/locales/de_DE/management.json b/src/locales/de_DE/management.json index 1952ec07..41767fcd 100644 --- a/src/locales/de_DE/management.json +++ b/src/locales/de_DE/management.json @@ -2,11 +2,11 @@ "view_title": "Verwaltung", "title": "Verwaltung", "empire": { - "title": "Empire Configuration", - "description": "Removing empires will not delete any associated plans — they will simply become unassigned. You can create edit existing empires in the Empire View. To ensure correct plan efficiency calculations, make sure each empire has your Faction and the appropriate Permits.", + "title": "Imperium-Konfiguration", + "description": "Das Entfernen eines Imperiums löscht keine zugehörigen Pläne - sie sind diesem Imperium einfach nicht mehr zugewiesen. Du kannst bestehende Imperium auf der Imperium-Seite verwalten. Um die korrekte Plan-Kalkulation sicherzustellen, muss jedes Imperium die korrekte Fraktion und Flächen zugewiesen bekommen.", "buttons": { - "update_cx": "Update CX Assignments", - "new_empire": "New Empire" + "update_cx": "Handelskammer-Zuweisungen aktualisieren", + "new_empire": "Neues Imperium" }, "form": { "empire_name": "@:terms.empire Name", @@ -19,38 +19,38 @@ "faction": "@:terms.faction", "permits": "@:terms.permits", "plans": "@:terms.plans_plural", - "cx": "CX", - "nodata_title": "No Empires available", - "nodata_label": "Create your first Empire" + "cx": "Handelskammern", + "nodata_title": "Keine Imperien verfügbar", + "nodata_label": "Erstelle dein erstes Imperium" } }, "cx": { - "title": "CX Configuration", - "description": "Removing a CX preference will delete all its exchange and material settings. Assigned empires will remain unaffected, but they will no longer use the removed preferences. Make sure to assign a new CX preference.", + "title": "Handelskammer-Konfiguration", + "description": "Das Entfernen einer Handelskammer-Konfiguration löscht alle Warenbörsen- und Materialeinstellungen. Zugewiesene Imperien bleiben davon unberührt, aber verlieren ihre Preisberechnungen. Stelle sicher, dass du dem Imperium eine neue Handelskammer zuweist.", "buttons": { - "new_cx": "New @:terms.cx" + "new_cx": "Neue @:terms.cx" }, "form": { "cx_name": "@:terms.cx Name", - "cx_placeholder": "CX Name (max. 100 characters)" + "cx_placeholder": "Handelskammer-Name (max. 100 Zeichen)" }, "table": { "cx_name": "@:terms.cx Name", - "assigned_to_empire": "Assigned to Empire?", - "nodata_title": "No @:terms.cx available.", - "nodata_label": "Create your first Exchange Preference." + "assigned_to_empire": "Imperium zugewiesen?", + "nodata_title": "Keine @:terms.cx verfügbar.", + "nodata_label": "Erstelle deine erste Handelskammer-Konfiguration." } }, "filter": { "title": "Filter", "plan": "@:terms.plan", - "active_empire": "Active @:terms.empire" + "active_empire": "Aktive Imperien" }, "assignments": { - "title": "Plan ↔ Empire Assignments", - "description": "Every planned base can be assigned to multiple empires. This allows you to simultaneously keep track of your existing Prosperous Universe empire, corporation production chains or future expansion plans.", + "title": "Plan ↔ Imperium Zuweisung", + "description": "Jede geplante Basis kann mehreren Imperien zugewiesen werden. Das erlaubt dir, gleichzeitig den Überblick über dein existierendes Prosperous Universe Imperium, Allianz Produktionsketten und Erweiterungspläne zu behalten.", "buttons": { - "update_assignments": "Update Plan Assignments", + "update_assignments": "Plan-Zuweisungen aktualisieren", "reload": "@:common.buttons.reload" }, "deletion": { From a256d8ca74430e25fa8e7fd5ed36035d798a2b05 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 14:15:07 +0200 Subject: [PATCH 037/237] New translations profile.json (German) [ci skip] --- src/locales/de_DE/profile.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/locales/de_DE/profile.json b/src/locales/de_DE/profile.json index 6c882b80..121997e4 100644 --- a/src/locales/de_DE/profile.json +++ b/src/locales/de_DE/profile.json @@ -42,7 +42,7 @@ "title": "Was ist FIO & Warum solltest du es benutzen?", "help": { "title": "5 einfache Schritte zur Integration von FIO und PRUNplanner", - "p1": "FIO is a community developed {link} that collects your game data, makes it available outside of Prosperous Universe and is completely free to use.", + "p1": "FIO ist eine von der Community entwickelte {link}, die Spieldaten sammelt und sie außerhalb von Prosperous Universe verfügbar macht. FIO ist kostenlos benutzbar.", "p2": "Einfach die Chrome- oder Firefox-Erweiterung installiere. Aktualisiere dein Browser-Fenster mit APEX und klicke auf die Erweiterungsschaltfläche oben rechts in deinem Browser, um ein Konto zu erstellen. FIO sammelt automatisch (nur) deine Spieldaten, während du weiterspielst.", "p3": "Du kannst dich jetzt in den {link} einloggen, um deine Daten zu sehen und einen API-Schlüssel für PRUNplanner zu erstellen, der deine Lagerbestände und Standorte (Planeten, Schiffe, Lager) importiert.", "p4": "Das Erstellen des API-Schlüssels ist einfach, wenn du auf {link} Seite gehst und \"Create API Key\" klickst. Gib einen Namen für deinen Key (z.B. \"PRUNplanner\") und dein FIO Passwort ein. Du musst \"Allow Writes\" (\"Schreiben erlauben\") nicht auswählen, da PRUNplanner deine Daten manipulieren, sondern nur lesen möchte.", @@ -71,7 +71,7 @@ "form": { "tool_preferences": "PRUNplanner Einstellungen", "language": "Sprache", - "language_note": "We want to make PRUNplanner accessible to everyone. If you'd like to see the tool in your native language - or help us polish an existing translation - join our localization project on {link}.", + "language_note": "Wir wollen PRUNplanner für alle zugänglich machen. Wenn du das Tool in deiner Muttersprache sehen oder uns helfen möchtest, eine vorhandene Übersetzung zu verbessern, tritt unserem Lokalisierungsprojekt auf {link} bei.", "default_empire": "Standard-Imperium", "default_cx": "Standard CX", "fio_burn": "FIO Verbrauch", From a764190b0579a3bd6ac6897a9f353ef9c2420e94 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 14:15:09 +0200 Subject: [PATCH 038/237] New translations help.json (German) [ci skip] --- src/locales/de_DE/help.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/locales/de_DE/help.json b/src/locales/de_DE/help.json index 449b9f71..cf1004c5 100644 --- a/src/locales/de_DE/help.json +++ b/src/locales/de_DE/help.json @@ -9,10 +9,10 @@ }, "getting_started": { "title": "Erste Schritte", - "image_label": "Management", + "image_label": "Verwaltung", "l1": { - "title": "Create an Empire in {link}:", - "link": "Management", + "title": "Erstelle ein Imperium in {link}:", + "link": "Verwaltung", "p": "By default, you'll already have one. But you can add more for different factions or regions. Assign a name and faction, and save." }, "l2": { From 74b0eae609adb17537e93fbb65ace5ca1edf3994 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 14:15:11 +0200 Subject: [PATCH 039/237] New translations resource_roi.json (German) [ci skip] --- src/locales/de_DE/resource_roi.json | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/locales/de_DE/resource_roi.json b/src/locales/de_DE/resource_roi.json index 4f1ddc57..d18fe6fe 100644 --- a/src/locales/de_DE/resource_roi.json +++ b/src/locales/de_DE/resource_roi.json @@ -1,26 +1,26 @@ { - "view_title": "Resource ROI", - "title": "Resource ROI Overview", - "info": "Select a Resource and press 'Search & Calculate'", - "calculating": "Calculating resource ROI for planets.", - "searching": "Searching for @:terms.planet_plural with '{resource}'. Awaiting backend response", - "resource_select": "Select @:terms.resources", - "cx_select": "@:terms.cx Preference", - "button_calculate": "Search & Calculate", + "view_title": "Ressourcen ROI", + "title": "Ressourcen-ROI-Übersicht", + "info": "Wähle eine Ressource und drücke 'Suchen & Berechnen'", + "calculating": "Kalkuliere Ressourcen ROI für gefundene Planeten.", + "searching": "Suche nach '{resource}' auf @:terms.planet_plural und warte auf Antwort vom Backend", + "resource_select": "@:terms.resources auswählen", + "cx_select": "@:terms.cx Präferenz", + "button_calculate": "Suche & Berechnen", "table": { "planet": "@:terms.planets", "production": "@:terms.production", "building": "@:terms.buildings", - "daily": "Daily", + "daily": "Täglich", "percent_max": "% Max.", "popr": "@:terms.popr", "cogc": "@:terms.cogc", - "environment": "Environment", - "infrastructure": "Infrastructure", - "cost_profit": "Cost / Profit", + "environment": "Umwelt", + "infrastructure": "Infrastruktur", + "cost_profit": "Kosten / Gewinn", "plan_cost": "@:terms.plan @:terms.cost", - "daily_profit": "Daily @:terms.profit", + "daily_profit": "Täglicher @:terms.profit", "plan_roi": "@:terms.plan ROI", - "distances": "Distances" + "distances": "Entfernungen" } } From b17931249f408ccf38d6c1b5ac57a6df37be9512 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 14:15:13 +0200 Subject: [PATCH 040/237] New translations upkeep_price_calculator.json (German) [ci skip] --- src/locales/de_DE/upkeep_price_calculator.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/locales/de_DE/upkeep_price_calculator.json b/src/locales/de_DE/upkeep_price_calculator.json index 1b873678..05c775e9 100644 --- a/src/locales/de_DE/upkeep_price_calculator.json +++ b/src/locales/de_DE/upkeep_price_calculator.json @@ -1,11 +1,11 @@ { - "view_title": "Upkeep Price Calculator", - "title": "Upkeep Price Calculator", + "view_title": "Infrastruktur-Rechner", + "title": "Infrakstrukture-Beitrag-Rechner", "form": { - "cx_preference": "CX Preference" + "cx_preference": "@:terms.cx Präferenz" }, "calculator": { - "calculating": "Calculating Upkeep Material Prices", + "calculating": "Berechne Preise der Infrastruktur Materialien", "needs": { "safety": "@:game.upkeep.safety", "health": "@:game.upkeep.health", @@ -14,13 +14,13 @@ "education": "@:game.upkeep.education" }, "details": { - "title": "Material Details", + "title": "Materialdetails", "table": { "material": "@:terms.materials", "building": "@:terms.buildings", - "price_need": "ȼ/Need", - "cx_price": "@:terms.cx Price", - "qty_day": "Qty/Day" + "price_need": "ȼ/Bedarf", + "cx_price": "@:terms.cx Preis", + "qty_day": "Menge/Tag" } } } From 295960694b55d6f19f10f05bf4badf3db58267b3 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 14:15:15 +0200 Subject: [PATCH 041/237] New translations planet_search.md (German) [ci skip] --- src/assets/help/de_DE/planet_search.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/assets/help/de_DE/planet_search.md b/src/assets/help/de_DE/planet_search.md index a9d410f6..999ebf17 100644 --- a/src/assets/help/de_DE/planet_search.md +++ b/src/assets/help/de_DE/planet_search.md @@ -1,5 +1,5 @@ -The **Planet Search** lets you quickly find planets by name or ID, or use the Advanced Search to narrow results with multiple parameters. +Mit der **Planeten-Suche** kannst du Planeten schnell mit Namen oder ID suchen. Außerdem erlaubt die Erweiterte Suche das Finden von Planeten mit vielfältigen Parametern. -With Advanced Search, you can look for up to four specific materials, filter by COGC programs, or select planets with certain features such as fertility or a warehouse. You can also search by distance from a chosen system or by environment parameters like surface type, gravity, temperature, or pressure. +Mit der erweiterten Suche suchst du nach speziellen Materialien, dem COGC-Programm oder bestimmte Umgebungskriterien der Planeten wie Fruchtbarkeit oder einem Warenhaus. Du kannst außerdem unter Berücksichtigung der Distanz zu einem gewählten System oder Umgebungsparametern wie Oberfläche, Gravitation, Temperatur und Druck suchen. -Planet Search is also the starting point for creating a new plan: simply find the planet you’re interested in and begin your plan from there. +Die Planeten-Suche ist der Startpunkt um neue Pläne zu erstellen. Suche einfach nach dem Plan, der dich interessiert und starte von dort. From 0313c390d1a51b3e793eb80bd9031a898a41003e Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:22:43 +0200 Subject: [PATCH 042/237] New translations common.json (French) [ci skip] --- src/locales/fr_FR/common.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/locales/fr_FR/common.json b/src/locales/fr_FR/common.json index e80606df..b7436a4e 100644 --- a/src/locales/fr_FR/common.json +++ b/src/locales/fr_FR/common.json @@ -33,6 +33,7 @@ "buttons": { "create": "Create", "save": "Save", + "save_as": "Save As", "reload": "Reload", "show": "Show", "hide": "Hide", @@ -43,6 +44,8 @@ "yes": "Yes", "no": "No", "delete": "Delete", - "cancel": "Cancel" + "cancel": "Cancel", + "clone_plan": "Clone Plan", + "clone_complete": "Cloning Complete" } } From 0348c29823bfe66f7c5a133e316498968a8cb357 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:22:45 +0200 Subject: [PATCH 043/237] New translations common.json (Spanish) [ci skip] --- src/locales/es_ES/common.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/locales/es_ES/common.json b/src/locales/es_ES/common.json index e80606df..b7436a4e 100644 --- a/src/locales/es_ES/common.json +++ b/src/locales/es_ES/common.json @@ -33,6 +33,7 @@ "buttons": { "create": "Create", "save": "Save", + "save_as": "Save As", "reload": "Reload", "show": "Show", "hide": "Hide", @@ -43,6 +44,8 @@ "yes": "Yes", "no": "No", "delete": "Delete", - "cancel": "Cancel" + "cancel": "Cancel", + "clone_plan": "Clone Plan", + "clone_complete": "Cloning Complete" } } From bd24c28d70a495f3f791eb9f971a7fd6d40002b3 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:22:46 +0200 Subject: [PATCH 044/237] New translations common.json (German) [ci skip] --- src/locales/de_DE/common.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/locales/de_DE/common.json b/src/locales/de_DE/common.json index 1bace41c..37b0206e 100644 --- a/src/locales/de_DE/common.json +++ b/src/locales/de_DE/common.json @@ -33,6 +33,7 @@ "buttons": { "create": "Erstellen", "save": "Speichern", + "save_as": "Save As", "reload": "Aktualisieren", "show": "Anzeigen", "hide": "Verstecken", @@ -43,6 +44,8 @@ "yes": "Ja", "no": "Nein", "delete": "Löschen", - "cancel": "Abbrechen" + "cancel": "Abbrechen", + "clone_plan": "Clone Plan", + "clone_complete": "Cloning Complete" } } From 51c356d1895ec242e98b5ebaee2b5722664c405e Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:22:48 +0200 Subject: [PATCH 045/237] New translations common.json (Italian) [ci skip] --- src/locales/it_IT/common.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/locales/it_IT/common.json b/src/locales/it_IT/common.json index e80606df..b7436a4e 100644 --- a/src/locales/it_IT/common.json +++ b/src/locales/it_IT/common.json @@ -33,6 +33,7 @@ "buttons": { "create": "Create", "save": "Save", + "save_as": "Save As", "reload": "Reload", "show": "Show", "hide": "Hide", @@ -43,6 +44,8 @@ "yes": "Yes", "no": "No", "delete": "Delete", - "cancel": "Cancel" + "cancel": "Cancel", + "clone_plan": "Clone Plan", + "clone_complete": "Cloning Complete" } } From 3c42dc4b34b0254cb9648bc1b61bc5e16a096a02 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:22:49 +0200 Subject: [PATCH 046/237] New translations common.json (Japanese) [ci skip] --- src/locales/ja_JP/common.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/locales/ja_JP/common.json b/src/locales/ja_JP/common.json index e80606df..b7436a4e 100644 --- a/src/locales/ja_JP/common.json +++ b/src/locales/ja_JP/common.json @@ -33,6 +33,7 @@ "buttons": { "create": "Create", "save": "Save", + "save_as": "Save As", "reload": "Reload", "show": "Show", "hide": "Hide", @@ -43,6 +44,8 @@ "yes": "Yes", "no": "No", "delete": "Delete", - "cancel": "Cancel" + "cancel": "Cancel", + "clone_plan": "Clone Plan", + "clone_complete": "Cloning Complete" } } From 140f742d6d4968dc3c3d9d22d5003fe6af7e5abb Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:22:51 +0200 Subject: [PATCH 047/237] New translations common.json (Korean) [ci skip] --- src/locales/ko_KR/common.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/locales/ko_KR/common.json b/src/locales/ko_KR/common.json index e80606df..b7436a4e 100644 --- a/src/locales/ko_KR/common.json +++ b/src/locales/ko_KR/common.json @@ -33,6 +33,7 @@ "buttons": { "create": "Create", "save": "Save", + "save_as": "Save As", "reload": "Reload", "show": "Show", "hide": "Hide", @@ -43,6 +44,8 @@ "yes": "Yes", "no": "No", "delete": "Delete", - "cancel": "Cancel" + "cancel": "Cancel", + "clone_plan": "Clone Plan", + "clone_complete": "Cloning Complete" } } From 6822fe0dacd954562c8b7724182f541aad9e7f7a Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:22:52 +0200 Subject: [PATCH 048/237] New translations common.json (Dutch) [ci skip] --- src/locales/nl_NL/common.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/locales/nl_NL/common.json b/src/locales/nl_NL/common.json index 47cd7e26..436a817d 100644 --- a/src/locales/nl_NL/common.json +++ b/src/locales/nl_NL/common.json @@ -33,6 +33,7 @@ "buttons": { "create": "Maken", "save": "Opslaan", + "save_as": "Save As", "reload": "Herladen", "show": "Tonen", "hide": "Verbergen", @@ -43,6 +44,8 @@ "yes": "Ja", "no": "Nee", "delete": "Verwijderen", - "cancel": "Annuleren" + "cancel": "Annuleren", + "clone_plan": "Clone Plan", + "clone_complete": "Cloning Complete" } } From 52a4ec5306758577bd049af3aef0a446fde036bb Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:22:54 +0200 Subject: [PATCH 049/237] New translations common.json (Portuguese) [ci skip] --- src/locales/pt_PT/common.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/locales/pt_PT/common.json b/src/locales/pt_PT/common.json index e80606df..b7436a4e 100644 --- a/src/locales/pt_PT/common.json +++ b/src/locales/pt_PT/common.json @@ -33,6 +33,7 @@ "buttons": { "create": "Create", "save": "Save", + "save_as": "Save As", "reload": "Reload", "show": "Show", "hide": "Hide", @@ -43,6 +44,8 @@ "yes": "Yes", "no": "No", "delete": "Delete", - "cancel": "Cancel" + "cancel": "Cancel", + "clone_plan": "Clone Plan", + "clone_complete": "Cloning Complete" } } From 29ba851966e8121639735a97d117bd6b42a229ba Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:22:55 +0200 Subject: [PATCH 050/237] New translations common.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/common.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/locales/zh_CN/common.json b/src/locales/zh_CN/common.json index 6bb42bfc..769af31b 100644 --- a/src/locales/zh_CN/common.json +++ b/src/locales/zh_CN/common.json @@ -33,6 +33,7 @@ "buttons": { "create": "Create", "save": "保存", + "save_as": "Save As", "reload": "刷新", "show": "显示", "hide": "隐藏", @@ -43,6 +44,8 @@ "yes": "Yes", "no": "No", "delete": "Delete", - "cancel": "Cancel" + "cancel": "Cancel", + "clone_plan": "Clone Plan", + "clone_complete": "Cloning Complete" } } From e9d0f6e3bafee4105de11a2f8e56f08e4204280d Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:23:03 +0200 Subject: [PATCH 051/237] New translations game.json (French) [ci skip] --- src/locales/fr_FR/game.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/locales/fr_FR/game.json b/src/locales/fr_FR/game.json index 8351bc83..b602cdb7 100644 --- a/src/locales/fr_FR/game.json +++ b/src/locales/fr_FR/game.json @@ -4,6 +4,21 @@ "PLANETARY": "Planetary", "PRODUCTION": "Production" }, + "workforce_type": { + "pioneer": "Pioneer", + "settler": "Settler", + "technician": "Technician", + "engineer": "Engineer", + "scientist": "Scientist" + }, + "efficiency_type": { + "WORKFORCE": "Workforce", + "HQ": "HQ", + "EXPERT": "Experts", + "COGC": "COGC", + "FERTILITY": "Fertility", + "FACTION": "Faction" + }, "expertise": { "AGRICULTURE": "Agriculture", "CHEMISTRY": "Chemistry", From 139a6d3e5483305067d358f3830ce1d264ea3033 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:23:04 +0200 Subject: [PATCH 052/237] New translations game.json (Spanish) [ci skip] --- src/locales/es_ES/game.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/locales/es_ES/game.json b/src/locales/es_ES/game.json index 8351bc83..b602cdb7 100644 --- a/src/locales/es_ES/game.json +++ b/src/locales/es_ES/game.json @@ -4,6 +4,21 @@ "PLANETARY": "Planetary", "PRODUCTION": "Production" }, + "workforce_type": { + "pioneer": "Pioneer", + "settler": "Settler", + "technician": "Technician", + "engineer": "Engineer", + "scientist": "Scientist" + }, + "efficiency_type": { + "WORKFORCE": "Workforce", + "HQ": "HQ", + "EXPERT": "Experts", + "COGC": "COGC", + "FERTILITY": "Fertility", + "FACTION": "Faction" + }, "expertise": { "AGRICULTURE": "Agriculture", "CHEMISTRY": "Chemistry", From 9c669168c7421c598dc35c8f593ef57517f1f4cf Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:23:05 +0200 Subject: [PATCH 053/237] New translations game.json (German) [ci skip] --- src/locales/de_DE/game.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/locales/de_DE/game.json b/src/locales/de_DE/game.json index 1a705de8..5ef5f2ef 100644 --- a/src/locales/de_DE/game.json +++ b/src/locales/de_DE/game.json @@ -4,6 +4,21 @@ "PLANETARY": "Planetar", "PRODUCTION": "Produktion" }, + "workforce_type": { + "pioneer": "Pioneer", + "settler": "Settler", + "technician": "Technician", + "engineer": "Engineer", + "scientist": "Scientist" + }, + "efficiency_type": { + "WORKFORCE": "Workforce", + "HQ": "HQ", + "EXPERT": "Experts", + "COGC": "COGC", + "FERTILITY": "Fertility", + "FACTION": "Faction" + }, "expertise": { "AGRICULTURE": "Landwirtschaft", "CHEMISTRY": "Chemie", From 5d52181094b2643f4eff2ab5b6fc034db9dba0aa Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:23:07 +0200 Subject: [PATCH 054/237] New translations game.json (Italian) [ci skip] --- src/locales/it_IT/game.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/locales/it_IT/game.json b/src/locales/it_IT/game.json index 8351bc83..b602cdb7 100644 --- a/src/locales/it_IT/game.json +++ b/src/locales/it_IT/game.json @@ -4,6 +4,21 @@ "PLANETARY": "Planetary", "PRODUCTION": "Production" }, + "workforce_type": { + "pioneer": "Pioneer", + "settler": "Settler", + "technician": "Technician", + "engineer": "Engineer", + "scientist": "Scientist" + }, + "efficiency_type": { + "WORKFORCE": "Workforce", + "HQ": "HQ", + "EXPERT": "Experts", + "COGC": "COGC", + "FERTILITY": "Fertility", + "FACTION": "Faction" + }, "expertise": { "AGRICULTURE": "Agriculture", "CHEMISTRY": "Chemistry", From b77fcc074619738d3b4bfc7870a07e06cdc23cb1 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:23:08 +0200 Subject: [PATCH 055/237] New translations game.json (Japanese) [ci skip] --- src/locales/ja_JP/game.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/locales/ja_JP/game.json b/src/locales/ja_JP/game.json index 8351bc83..b602cdb7 100644 --- a/src/locales/ja_JP/game.json +++ b/src/locales/ja_JP/game.json @@ -4,6 +4,21 @@ "PLANETARY": "Planetary", "PRODUCTION": "Production" }, + "workforce_type": { + "pioneer": "Pioneer", + "settler": "Settler", + "technician": "Technician", + "engineer": "Engineer", + "scientist": "Scientist" + }, + "efficiency_type": { + "WORKFORCE": "Workforce", + "HQ": "HQ", + "EXPERT": "Experts", + "COGC": "COGC", + "FERTILITY": "Fertility", + "FACTION": "Faction" + }, "expertise": { "AGRICULTURE": "Agriculture", "CHEMISTRY": "Chemistry", From 93e6c0a1e262b0615fd724cd896d26e07bddc469 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:23:10 +0200 Subject: [PATCH 056/237] New translations game.json (Korean) [ci skip] --- src/locales/ko_KR/game.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/locales/ko_KR/game.json b/src/locales/ko_KR/game.json index 8351bc83..b602cdb7 100644 --- a/src/locales/ko_KR/game.json +++ b/src/locales/ko_KR/game.json @@ -4,6 +4,21 @@ "PLANETARY": "Planetary", "PRODUCTION": "Production" }, + "workforce_type": { + "pioneer": "Pioneer", + "settler": "Settler", + "technician": "Technician", + "engineer": "Engineer", + "scientist": "Scientist" + }, + "efficiency_type": { + "WORKFORCE": "Workforce", + "HQ": "HQ", + "EXPERT": "Experts", + "COGC": "COGC", + "FERTILITY": "Fertility", + "FACTION": "Faction" + }, "expertise": { "AGRICULTURE": "Agriculture", "CHEMISTRY": "Chemistry", From dcd48fd164d28d547f8540e273d726054b216f26 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:23:12 +0200 Subject: [PATCH 057/237] New translations game.json (Dutch) [ci skip] --- src/locales/nl_NL/game.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/locales/nl_NL/game.json b/src/locales/nl_NL/game.json index 8351bc83..b602cdb7 100644 --- a/src/locales/nl_NL/game.json +++ b/src/locales/nl_NL/game.json @@ -4,6 +4,21 @@ "PLANETARY": "Planetary", "PRODUCTION": "Production" }, + "workforce_type": { + "pioneer": "Pioneer", + "settler": "Settler", + "technician": "Technician", + "engineer": "Engineer", + "scientist": "Scientist" + }, + "efficiency_type": { + "WORKFORCE": "Workforce", + "HQ": "HQ", + "EXPERT": "Experts", + "COGC": "COGC", + "FERTILITY": "Fertility", + "FACTION": "Faction" + }, "expertise": { "AGRICULTURE": "Agriculture", "CHEMISTRY": "Chemistry", From e217829b81a1095513db7e37da9051e407bc43b6 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:23:14 +0200 Subject: [PATCH 058/237] New translations game.json (Portuguese) [ci skip] --- src/locales/pt_PT/game.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/locales/pt_PT/game.json b/src/locales/pt_PT/game.json index 8351bc83..b602cdb7 100644 --- a/src/locales/pt_PT/game.json +++ b/src/locales/pt_PT/game.json @@ -4,6 +4,21 @@ "PLANETARY": "Planetary", "PRODUCTION": "Production" }, + "workforce_type": { + "pioneer": "Pioneer", + "settler": "Settler", + "technician": "Technician", + "engineer": "Engineer", + "scientist": "Scientist" + }, + "efficiency_type": { + "WORKFORCE": "Workforce", + "HQ": "HQ", + "EXPERT": "Experts", + "COGC": "COGC", + "FERTILITY": "Fertility", + "FACTION": "Faction" + }, "expertise": { "AGRICULTURE": "Agriculture", "CHEMISTRY": "Chemistry", From d115b3d391624a350cde1553073a4a5eb68d8837 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:23:16 +0200 Subject: [PATCH 059/237] New translations game.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/game.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/locales/zh_CN/game.json b/src/locales/zh_CN/game.json index 03dd6fa9..b1049103 100644 --- a/src/locales/zh_CN/game.json +++ b/src/locales/zh_CN/game.json @@ -4,6 +4,21 @@ "PLANETARY": "Planetary", "PRODUCTION": "Production" }, + "workforce_type": { + "pioneer": "Pioneer", + "settler": "Settler", + "technician": "Technician", + "engineer": "Engineer", + "scientist": "Scientist" + }, + "efficiency_type": { + "WORKFORCE": "Workforce", + "HQ": "HQ", + "EXPERT": "Experts", + "COGC": "COGC", + "FERTILITY": "Fertility", + "FACTION": "Faction" + }, "expertise": { "AGRICULTURE": "农业", "CHEMISTRY": "化工", From 226d37d62509707a25e0a90dc54018e46fa78ae1 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:23:23 +0200 Subject: [PATCH 060/237] New translations terms.json (French) [ci skip] --- src/locales/fr_FR/terms.json | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/locales/fr_FR/terms.json b/src/locales/fr_FR/terms.json index b7ead843..5ee0ed83 100644 --- a/src/locales/fr_FR/terms.json +++ b/src/locales/fr_FR/terms.json @@ -1,7 +1,9 @@ { "30d": "30D", "7d": "7D", + "amount": "Amount", "api_key": "API Key", + "area": "Area", "ask": "Ask", "bid": "Bid", "buffer": "Buffer", @@ -17,6 +19,8 @@ "demand": "Demand", "empire": "Empire | Empires", "exchanges": "Exchange | Exchanges", + "experts_plural": "Experts", + "experts": "Expert | Experts", "faction": "Faction", "fertility": "Fertility", "filter": "Filter", @@ -40,19 +44,24 @@ "production": "Production", "profit_per_area": "Profit / Area", "profit": "Profit", + "recipes_plural": "Recipes", "recipes": "Recipe | Recipes", "resources_plural": "Resources", "resources": "Resource | Resources", "revenue": "Revenue", "rocky": "Rocky", "spread": "Spread", + "storage": "Storage", "supply": "Supply", "surface": "Surface", "temperature": "Temperature", + "total_volume": "Total Volume", + "total_weight": "Total Weight", "trend": "Trend", "volume": "Volume", "vwap": "VWAP", "weight": "Weight", - "amount": "Amount", - "storage": "Storage" + "import": "Import", + "export": "Export", + "sum": "∑" } From e76e53f0b8df726ed6d576c1646a3f1d77661ff5 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:23:24 +0200 Subject: [PATCH 061/237] New translations terms.json (Spanish) [ci skip] --- src/locales/es_ES/terms.json | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/locales/es_ES/terms.json b/src/locales/es_ES/terms.json index b7ead843..5ee0ed83 100644 --- a/src/locales/es_ES/terms.json +++ b/src/locales/es_ES/terms.json @@ -1,7 +1,9 @@ { "30d": "30D", "7d": "7D", + "amount": "Amount", "api_key": "API Key", + "area": "Area", "ask": "Ask", "bid": "Bid", "buffer": "Buffer", @@ -17,6 +19,8 @@ "demand": "Demand", "empire": "Empire | Empires", "exchanges": "Exchange | Exchanges", + "experts_plural": "Experts", + "experts": "Expert | Experts", "faction": "Faction", "fertility": "Fertility", "filter": "Filter", @@ -40,19 +44,24 @@ "production": "Production", "profit_per_area": "Profit / Area", "profit": "Profit", + "recipes_plural": "Recipes", "recipes": "Recipe | Recipes", "resources_plural": "Resources", "resources": "Resource | Resources", "revenue": "Revenue", "rocky": "Rocky", "spread": "Spread", + "storage": "Storage", "supply": "Supply", "surface": "Surface", "temperature": "Temperature", + "total_volume": "Total Volume", + "total_weight": "Total Weight", "trend": "Trend", "volume": "Volume", "vwap": "VWAP", "weight": "Weight", - "amount": "Amount", - "storage": "Storage" + "import": "Import", + "export": "Export", + "sum": "∑" } From 0bbb195ba758a43d7b1a7b70bac9e4914e8709ad Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:23:26 +0200 Subject: [PATCH 062/237] New translations terms.json (German) [ci skip] --- src/locales/de_DE/terms.json | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/locales/de_DE/terms.json b/src/locales/de_DE/terms.json index e961de31..30365f1a 100644 --- a/src/locales/de_DE/terms.json +++ b/src/locales/de_DE/terms.json @@ -1,7 +1,9 @@ { "30d": "30T", "7d": "7T", + "amount": "Anzahl", "api_key": "API Schlüssel", + "area": "Area", "ask": "Ankauf", "bid": "Verkauf", "buffer": "Fenster", @@ -17,6 +19,8 @@ "demand": "Nachfrage", "empire": "Imperium | Imperien", "exchanges": "Marktplatz | Marktplätze", + "experts_plural": "Experts", + "experts": "Expert | Experts", "faction": "Fraktion", "fertility": "Bodenfruchtbarkeit", "filter": "Filter", @@ -40,19 +44,24 @@ "production": "Produktion", "profit_per_area": "Profit / Fläche", "profit": "Profit", + "recipes_plural": "Recipes", "recipes": "Auftrag | Aufträge", "resources_plural": "Ressourcen", "resources": "Ressource | Ressourcen", "revenue": "Umsatz", "rocky": "Erdähnlich", "spread": "Spread", + "storage": "Lager", "supply": "Angebot", "surface": "Oberfläche", "temperature": "Temperatur", + "total_volume": "Total Volume", + "total_weight": "Total Weight", "trend": "Trend", "volume": "Volumen", "vwap": "VWAP", "weight": "Gewicht", - "amount": "Anzahl", - "storage": "Lager" + "import": "Import", + "export": "Export", + "sum": "∑" } From 8404b428dcc6fcf78aaa754585fb700d6cebdc5a Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:23:27 +0200 Subject: [PATCH 063/237] New translations terms.json (Italian) [ci skip] --- src/locales/it_IT/terms.json | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/locales/it_IT/terms.json b/src/locales/it_IT/terms.json index b7ead843..5ee0ed83 100644 --- a/src/locales/it_IT/terms.json +++ b/src/locales/it_IT/terms.json @@ -1,7 +1,9 @@ { "30d": "30D", "7d": "7D", + "amount": "Amount", "api_key": "API Key", + "area": "Area", "ask": "Ask", "bid": "Bid", "buffer": "Buffer", @@ -17,6 +19,8 @@ "demand": "Demand", "empire": "Empire | Empires", "exchanges": "Exchange | Exchanges", + "experts_plural": "Experts", + "experts": "Expert | Experts", "faction": "Faction", "fertility": "Fertility", "filter": "Filter", @@ -40,19 +44,24 @@ "production": "Production", "profit_per_area": "Profit / Area", "profit": "Profit", + "recipes_plural": "Recipes", "recipes": "Recipe | Recipes", "resources_plural": "Resources", "resources": "Resource | Resources", "revenue": "Revenue", "rocky": "Rocky", "spread": "Spread", + "storage": "Storage", "supply": "Supply", "surface": "Surface", "temperature": "Temperature", + "total_volume": "Total Volume", + "total_weight": "Total Weight", "trend": "Trend", "volume": "Volume", "vwap": "VWAP", "weight": "Weight", - "amount": "Amount", - "storage": "Storage" + "import": "Import", + "export": "Export", + "sum": "∑" } From 52cf69daadd885389304af63d13f3adb5bf68bbd Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:23:29 +0200 Subject: [PATCH 064/237] New translations terms.json (Japanese) [ci skip] --- src/locales/ja_JP/terms.json | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/locales/ja_JP/terms.json b/src/locales/ja_JP/terms.json index b7ead843..5ee0ed83 100644 --- a/src/locales/ja_JP/terms.json +++ b/src/locales/ja_JP/terms.json @@ -1,7 +1,9 @@ { "30d": "30D", "7d": "7D", + "amount": "Amount", "api_key": "API Key", + "area": "Area", "ask": "Ask", "bid": "Bid", "buffer": "Buffer", @@ -17,6 +19,8 @@ "demand": "Demand", "empire": "Empire | Empires", "exchanges": "Exchange | Exchanges", + "experts_plural": "Experts", + "experts": "Expert | Experts", "faction": "Faction", "fertility": "Fertility", "filter": "Filter", @@ -40,19 +44,24 @@ "production": "Production", "profit_per_area": "Profit / Area", "profit": "Profit", + "recipes_plural": "Recipes", "recipes": "Recipe | Recipes", "resources_plural": "Resources", "resources": "Resource | Resources", "revenue": "Revenue", "rocky": "Rocky", "spread": "Spread", + "storage": "Storage", "supply": "Supply", "surface": "Surface", "temperature": "Temperature", + "total_volume": "Total Volume", + "total_weight": "Total Weight", "trend": "Trend", "volume": "Volume", "vwap": "VWAP", "weight": "Weight", - "amount": "Amount", - "storage": "Storage" + "import": "Import", + "export": "Export", + "sum": "∑" } From 3c8b2a17c2bfdd2cead9110a6cf3d5c9e1084b72 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:23:30 +0200 Subject: [PATCH 065/237] New translations terms.json (Korean) [ci skip] --- src/locales/ko_KR/terms.json | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/locales/ko_KR/terms.json b/src/locales/ko_KR/terms.json index b7ead843..5ee0ed83 100644 --- a/src/locales/ko_KR/terms.json +++ b/src/locales/ko_KR/terms.json @@ -1,7 +1,9 @@ { "30d": "30D", "7d": "7D", + "amount": "Amount", "api_key": "API Key", + "area": "Area", "ask": "Ask", "bid": "Bid", "buffer": "Buffer", @@ -17,6 +19,8 @@ "demand": "Demand", "empire": "Empire | Empires", "exchanges": "Exchange | Exchanges", + "experts_plural": "Experts", + "experts": "Expert | Experts", "faction": "Faction", "fertility": "Fertility", "filter": "Filter", @@ -40,19 +44,24 @@ "production": "Production", "profit_per_area": "Profit / Area", "profit": "Profit", + "recipes_plural": "Recipes", "recipes": "Recipe | Recipes", "resources_plural": "Resources", "resources": "Resource | Resources", "revenue": "Revenue", "rocky": "Rocky", "spread": "Spread", + "storage": "Storage", "supply": "Supply", "surface": "Surface", "temperature": "Temperature", + "total_volume": "Total Volume", + "total_weight": "Total Weight", "trend": "Trend", "volume": "Volume", "vwap": "VWAP", "weight": "Weight", - "amount": "Amount", - "storage": "Storage" + "import": "Import", + "export": "Export", + "sum": "∑" } From 4823e29e73f0477b3849480ea832eb25bcc1bf37 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:23:32 +0200 Subject: [PATCH 066/237] New translations terms.json (Dutch) [ci skip] --- src/locales/nl_NL/terms.json | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/locales/nl_NL/terms.json b/src/locales/nl_NL/terms.json index b7ead843..5ee0ed83 100644 --- a/src/locales/nl_NL/terms.json +++ b/src/locales/nl_NL/terms.json @@ -1,7 +1,9 @@ { "30d": "30D", "7d": "7D", + "amount": "Amount", "api_key": "API Key", + "area": "Area", "ask": "Ask", "bid": "Bid", "buffer": "Buffer", @@ -17,6 +19,8 @@ "demand": "Demand", "empire": "Empire | Empires", "exchanges": "Exchange | Exchanges", + "experts_plural": "Experts", + "experts": "Expert | Experts", "faction": "Faction", "fertility": "Fertility", "filter": "Filter", @@ -40,19 +44,24 @@ "production": "Production", "profit_per_area": "Profit / Area", "profit": "Profit", + "recipes_plural": "Recipes", "recipes": "Recipe | Recipes", "resources_plural": "Resources", "resources": "Resource | Resources", "revenue": "Revenue", "rocky": "Rocky", "spread": "Spread", + "storage": "Storage", "supply": "Supply", "surface": "Surface", "temperature": "Temperature", + "total_volume": "Total Volume", + "total_weight": "Total Weight", "trend": "Trend", "volume": "Volume", "vwap": "VWAP", "weight": "Weight", - "amount": "Amount", - "storage": "Storage" + "import": "Import", + "export": "Export", + "sum": "∑" } From 926c2e23eb895da4af34bc959a3477658806cff8 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:23:34 +0200 Subject: [PATCH 067/237] New translations terms.json (Portuguese) [ci skip] --- src/locales/pt_PT/terms.json | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/locales/pt_PT/terms.json b/src/locales/pt_PT/terms.json index b7ead843..5ee0ed83 100644 --- a/src/locales/pt_PT/terms.json +++ b/src/locales/pt_PT/terms.json @@ -1,7 +1,9 @@ { "30d": "30D", "7d": "7D", + "amount": "Amount", "api_key": "API Key", + "area": "Area", "ask": "Ask", "bid": "Bid", "buffer": "Buffer", @@ -17,6 +19,8 @@ "demand": "Demand", "empire": "Empire | Empires", "exchanges": "Exchange | Exchanges", + "experts_plural": "Experts", + "experts": "Expert | Experts", "faction": "Faction", "fertility": "Fertility", "filter": "Filter", @@ -40,19 +44,24 @@ "production": "Production", "profit_per_area": "Profit / Area", "profit": "Profit", + "recipes_plural": "Recipes", "recipes": "Recipe | Recipes", "resources_plural": "Resources", "resources": "Resource | Resources", "revenue": "Revenue", "rocky": "Rocky", "spread": "Spread", + "storage": "Storage", "supply": "Supply", "surface": "Surface", "temperature": "Temperature", + "total_volume": "Total Volume", + "total_weight": "Total Weight", "trend": "Trend", "volume": "Volume", "vwap": "VWAP", "weight": "Weight", - "amount": "Amount", - "storage": "Storage" + "import": "Import", + "export": "Export", + "sum": "∑" } From b3bc5d6448e673c2c33b37f6d0defceafbbfbc4b Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:23:35 +0200 Subject: [PATCH 068/237] New translations terms.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/terms.json | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/locales/zh_CN/terms.json b/src/locales/zh_CN/terms.json index c1125667..6c95f300 100644 --- a/src/locales/zh_CN/terms.json +++ b/src/locales/zh_CN/terms.json @@ -1,7 +1,9 @@ { "30d": "30D", "7d": "7D", + "amount": "Amount", "api_key": "API Key", + "area": "Area", "ask": "Ask", "bid": "Bid", "buffer": "缓冲", @@ -17,6 +19,8 @@ "demand": "Demand", "empire": "帝国 | 帝国", "exchanges": "Exchange | Exchanges", + "experts_plural": "Experts", + "experts": "Expert | Experts", "faction": "Faction", "fertility": "Fertility", "filter": "Filter", @@ -40,19 +44,24 @@ "production": "产量", "profit_per_area": "利润 / 区域", "profit": "利润", + "recipes_plural": "Recipes", "recipes": "Recipe | Recipes", "resources_plural": "Resources", "resources": "Resource | Resources", "revenue": "收入", "rocky": "Rocky", "spread": "Spread", + "storage": "Storage", "supply": "Supply", "surface": "Surface", "temperature": "Temperature", + "total_volume": "Total Volume", + "total_weight": "Total Weight", "trend": "Trend", "volume": "Volume", "vwap": "VWAP", "weight": "Weight", - "amount": "Amount", - "storage": "Storage" + "import": "Import", + "export": "Export", + "sum": "∑" } From ba2ddc1791fc1314c908c06dd8ebdb50d8a862b3 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:23:47 +0200 Subject: [PATCH 069/237] New translations common.json (Russian) [ci skip] --- src/locales/ru_RU/common.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/locales/ru_RU/common.json b/src/locales/ru_RU/common.json index e80606df..b7436a4e 100644 --- a/src/locales/ru_RU/common.json +++ b/src/locales/ru_RU/common.json @@ -33,6 +33,7 @@ "buttons": { "create": "Create", "save": "Save", + "save_as": "Save As", "reload": "Reload", "show": "Show", "hide": "Hide", @@ -43,6 +44,8 @@ "yes": "Yes", "no": "No", "delete": "Delete", - "cancel": "Cancel" + "cancel": "Cancel", + "clone_plan": "Clone Plan", + "clone_complete": "Cloning Complete" } } From 8c8e3f08295c48e000e2809153b00c6727a6f18d Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:23:49 +0200 Subject: [PATCH 070/237] New translations game.json (Russian) [ci skip] --- src/locales/ru_RU/game.json | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/locales/ru_RU/game.json b/src/locales/ru_RU/game.json index 8351bc83..b602cdb7 100644 --- a/src/locales/ru_RU/game.json +++ b/src/locales/ru_RU/game.json @@ -4,6 +4,21 @@ "PLANETARY": "Planetary", "PRODUCTION": "Production" }, + "workforce_type": { + "pioneer": "Pioneer", + "settler": "Settler", + "technician": "Technician", + "engineer": "Engineer", + "scientist": "Scientist" + }, + "efficiency_type": { + "WORKFORCE": "Workforce", + "HQ": "HQ", + "EXPERT": "Experts", + "COGC": "COGC", + "FERTILITY": "Fertility", + "FACTION": "Faction" + }, "expertise": { "AGRICULTURE": "Agriculture", "CHEMISTRY": "Chemistry", From a83409c60f7e4469b83690dfc082d3bd834360f4 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:23:52 +0200 Subject: [PATCH 071/237] New translations terms.json (Russian) [ci skip] --- src/locales/ru_RU/terms.json | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/locales/ru_RU/terms.json b/src/locales/ru_RU/terms.json index b7ead843..5ee0ed83 100644 --- a/src/locales/ru_RU/terms.json +++ b/src/locales/ru_RU/terms.json @@ -1,7 +1,9 @@ { "30d": "30D", "7d": "7D", + "amount": "Amount", "api_key": "API Key", + "area": "Area", "ask": "Ask", "bid": "Bid", "buffer": "Buffer", @@ -17,6 +19,8 @@ "demand": "Demand", "empire": "Empire | Empires", "exchanges": "Exchange | Exchanges", + "experts_plural": "Experts", + "experts": "Expert | Experts", "faction": "Faction", "fertility": "Fertility", "filter": "Filter", @@ -40,19 +44,24 @@ "production": "Production", "profit_per_area": "Profit / Area", "profit": "Profit", + "recipes_plural": "Recipes", "recipes": "Recipe | Recipes", "resources_plural": "Resources", "resources": "Resource | Resources", "revenue": "Revenue", "rocky": "Rocky", "spread": "Spread", + "storage": "Storage", "supply": "Supply", "surface": "Surface", "temperature": "Temperature", + "total_volume": "Total Volume", + "total_weight": "Total Weight", "trend": "Trend", "volume": "Volume", "vwap": "VWAP", "weight": "Weight", - "amount": "Amount", - "storage": "Storage" + "import": "Import", + "export": "Export", + "sum": "∑" } From cb699537b2c1931a3300876ddf112f63f814f301 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:26:50 +0200 Subject: [PATCH 072/237] New translations government.json (French) [ci skip] --- src/locales/fr_FR/government.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/locales/fr_FR/government.json diff --git a/src/locales/fr_FR/government.json b/src/locales/fr_FR/government.json new file mode 100644 index 00000000..2a00d90b --- /dev/null +++ b/src/locales/fr_FR/government.json @@ -0,0 +1,16 @@ +{ + "popr_button": { + "no_data": "Planet {planet_id} has no population data", + "buttons": { + "no_popr": "No POPR" + }, + "table": { + "total_population": "Total Population", + "free_population": "Free Population", + "free_population_pct": "Free Population %", + "unfilled_jobs": "Unfilled Jobs", + "plan_need": "@:terms.plan Need", + "plan_check": "@:terms.plan Check" + } + } +} From d9a9e30b3fe6e962b5db4ffd9c14630ae4a1277e Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:26:52 +0200 Subject: [PATCH 073/237] New translations government.json (Spanish) [ci skip] --- src/locales/es_ES/government.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/locales/es_ES/government.json diff --git a/src/locales/es_ES/government.json b/src/locales/es_ES/government.json new file mode 100644 index 00000000..2a00d90b --- /dev/null +++ b/src/locales/es_ES/government.json @@ -0,0 +1,16 @@ +{ + "popr_button": { + "no_data": "Planet {planet_id} has no population data", + "buttons": { + "no_popr": "No POPR" + }, + "table": { + "total_population": "Total Population", + "free_population": "Free Population", + "free_population_pct": "Free Population %", + "unfilled_jobs": "Unfilled Jobs", + "plan_need": "@:terms.plan Need", + "plan_check": "@:terms.plan Check" + } + } +} From 6d86280fdad07abcbd69d5f2c78f4b865f2acabb Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:26:53 +0200 Subject: [PATCH 074/237] New translations government.json (German) [ci skip] --- src/locales/de_DE/government.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/locales/de_DE/government.json diff --git a/src/locales/de_DE/government.json b/src/locales/de_DE/government.json new file mode 100644 index 00000000..2a00d90b --- /dev/null +++ b/src/locales/de_DE/government.json @@ -0,0 +1,16 @@ +{ + "popr_button": { + "no_data": "Planet {planet_id} has no population data", + "buttons": { + "no_popr": "No POPR" + }, + "table": { + "total_population": "Total Population", + "free_population": "Free Population", + "free_population_pct": "Free Population %", + "unfilled_jobs": "Unfilled Jobs", + "plan_need": "@:terms.plan Need", + "plan_check": "@:terms.plan Check" + } + } +} From 496edaae6644a57f8504ce7d4d03aad09798b63d Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:26:55 +0200 Subject: [PATCH 075/237] New translations government.json (Italian) [ci skip] --- src/locales/it_IT/government.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/locales/it_IT/government.json diff --git a/src/locales/it_IT/government.json b/src/locales/it_IT/government.json new file mode 100644 index 00000000..2a00d90b --- /dev/null +++ b/src/locales/it_IT/government.json @@ -0,0 +1,16 @@ +{ + "popr_button": { + "no_data": "Planet {planet_id} has no population data", + "buttons": { + "no_popr": "No POPR" + }, + "table": { + "total_population": "Total Population", + "free_population": "Free Population", + "free_population_pct": "Free Population %", + "unfilled_jobs": "Unfilled Jobs", + "plan_need": "@:terms.plan Need", + "plan_check": "@:terms.plan Check" + } + } +} From 71b862fa0f140c104ee46f00647ab89a70bfa65b Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:26:56 +0200 Subject: [PATCH 076/237] New translations government.json (Japanese) [ci skip] --- src/locales/ja_JP/government.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/locales/ja_JP/government.json diff --git a/src/locales/ja_JP/government.json b/src/locales/ja_JP/government.json new file mode 100644 index 00000000..2a00d90b --- /dev/null +++ b/src/locales/ja_JP/government.json @@ -0,0 +1,16 @@ +{ + "popr_button": { + "no_data": "Planet {planet_id} has no population data", + "buttons": { + "no_popr": "No POPR" + }, + "table": { + "total_population": "Total Population", + "free_population": "Free Population", + "free_population_pct": "Free Population %", + "unfilled_jobs": "Unfilled Jobs", + "plan_need": "@:terms.plan Need", + "plan_check": "@:terms.plan Check" + } + } +} From f0844577b3118b1f3ad39b29ab13549926e611ca Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:26:58 +0200 Subject: [PATCH 077/237] New translations government.json (Korean) [ci skip] --- src/locales/ko_KR/government.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/locales/ko_KR/government.json diff --git a/src/locales/ko_KR/government.json b/src/locales/ko_KR/government.json new file mode 100644 index 00000000..2a00d90b --- /dev/null +++ b/src/locales/ko_KR/government.json @@ -0,0 +1,16 @@ +{ + "popr_button": { + "no_data": "Planet {planet_id} has no population data", + "buttons": { + "no_popr": "No POPR" + }, + "table": { + "total_population": "Total Population", + "free_population": "Free Population", + "free_population_pct": "Free Population %", + "unfilled_jobs": "Unfilled Jobs", + "plan_need": "@:terms.plan Need", + "plan_check": "@:terms.plan Check" + } + } +} From 3ea4705bbeeba681fd067884c57fd933050ed828 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:26:59 +0200 Subject: [PATCH 078/237] New translations government.json (Dutch) [ci skip] --- src/locales/nl_NL/government.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/locales/nl_NL/government.json diff --git a/src/locales/nl_NL/government.json b/src/locales/nl_NL/government.json new file mode 100644 index 00000000..2a00d90b --- /dev/null +++ b/src/locales/nl_NL/government.json @@ -0,0 +1,16 @@ +{ + "popr_button": { + "no_data": "Planet {planet_id} has no population data", + "buttons": { + "no_popr": "No POPR" + }, + "table": { + "total_population": "Total Population", + "free_population": "Free Population", + "free_population_pct": "Free Population %", + "unfilled_jobs": "Unfilled Jobs", + "plan_need": "@:terms.plan Need", + "plan_check": "@:terms.plan Check" + } + } +} From 431f97b13626c8a757434e5559136162598e7deb Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:27:01 +0200 Subject: [PATCH 079/237] New translations government.json (Portuguese) [ci skip] --- src/locales/pt_PT/government.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/locales/pt_PT/government.json diff --git a/src/locales/pt_PT/government.json b/src/locales/pt_PT/government.json new file mode 100644 index 00000000..2a00d90b --- /dev/null +++ b/src/locales/pt_PT/government.json @@ -0,0 +1,16 @@ +{ + "popr_button": { + "no_data": "Planet {planet_id} has no population data", + "buttons": { + "no_popr": "No POPR" + }, + "table": { + "total_population": "Total Population", + "free_population": "Free Population", + "free_population_pct": "Free Population %", + "unfilled_jobs": "Unfilled Jobs", + "plan_need": "@:terms.plan Need", + "plan_check": "@:terms.plan Check" + } + } +} From d3d384de250fa5ea056104aff1c55c6e39a33989 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:27:02 +0200 Subject: [PATCH 080/237] New translations government.json (Russian) [ci skip] --- src/locales/ru_RU/government.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/locales/ru_RU/government.json diff --git a/src/locales/ru_RU/government.json b/src/locales/ru_RU/government.json new file mode 100644 index 00000000..2a00d90b --- /dev/null +++ b/src/locales/ru_RU/government.json @@ -0,0 +1,16 @@ +{ + "popr_button": { + "no_data": "Planet {planet_id} has no population data", + "buttons": { + "no_popr": "No POPR" + }, + "table": { + "total_population": "Total Population", + "free_population": "Free Population", + "free_population_pct": "Free Population %", + "unfilled_jobs": "Unfilled Jobs", + "plan_need": "@:terms.plan Need", + "plan_check": "@:terms.plan Check" + } + } +} From eeacfaf68eda8f1622c452cf1f6a8998b9401173 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:27:03 +0200 Subject: [PATCH 081/237] New translations government.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/government.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 src/locales/zh_CN/government.json diff --git a/src/locales/zh_CN/government.json b/src/locales/zh_CN/government.json new file mode 100644 index 00000000..2a00d90b --- /dev/null +++ b/src/locales/zh_CN/government.json @@ -0,0 +1,16 @@ +{ + "popr_button": { + "no_data": "Planet {planet_id} has no population data", + "buttons": { + "no_popr": "No POPR" + }, + "table": { + "total_population": "Total Population", + "free_population": "Free Population", + "free_population_pct": "Free Population %", + "unfilled_jobs": "Unfilled Jobs", + "plan_need": "@:terms.plan Need", + "plan_check": "@:terms.plan Check" + } + } +} From f64b6ce4852dfc8b819c817ad5fcc47fb71b6751 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:27:05 +0200 Subject: [PATCH 082/237] New translations plan.json (French) [ci skip] --- src/locales/fr_FR/plan.json | 289 ++++++++++++++++++++++++++++++++++++ 1 file changed, 289 insertions(+) create mode 100644 src/locales/fr_FR/plan.json diff --git a/src/locales/fr_FR/plan.json b/src/locales/fr_FR/plan.json new file mode 100644 index 00000000..c45b530b --- /dev/null +++ b/src/locales/fr_FR/plan.json @@ -0,0 +1,289 @@ +{ + "notifications": { + "must_have_name": "Must set a plan name in Configuration to save" + }, + "tools": { + "labels": { + "popr": "POPR", + "visitation_frequency": "Visitation Frequency", + "construction_cart": "Construction Cart", + "supply_cart": "Supply Cart", + "repair_analysis": "Repair Analysis", + "workforce": "Workforce" + }, + "popr": { + "title": "Latest Population Report", + "error": "Error loading latest population report. The planet might not have population.", + "loading": "Loading Population Report" + }, + "visitation_frequency": { + "title": "Visitation Frequency", + "storage": { + "label": "Storage", + "info": "Your plan involves adding {storages} giving you a total storage capacity of {total_weight} t and {total_volume} m³.", + "info_no_storage": "Your plan has a total storage capacity of {total_weight} t and {total_volume} m³.", + "table": { + "weight": "t", + "volume": "m³", + "import": "@:terms.import", + "export": "@:terms.export", + "sum": "@:terms.sum", + "storage_filled": "Storage Filled", + "filled_unit": "days" + }, + "exclusion_info": "Exclude local materials from visitation frequency calculation for items handled exclusively planet-side, like local market sales, purchases or contracts." + }, + "shipping": { + "label": "Shipping", + "table": { + "ship_weight": "Ship t", + "ship_volume": "Ship m³", + "visitation_days": "Visitation (days)", + "limit": "Limit", + "export_frequency": "@:terms.export Frequency", + "import_frequency": "@:terms.import Frequency" + } + } + }, + "construction_cart": { + "title": "Construction Cart", + "unplanned_info": "Base has unplanned {buildings} (FIO: {fio_updated}). Demolish to ensure area, habitation and materials are accurate.", + "table": { + "building": "@:terms.buildings", + "built": "Built", + "amount": "Amount", + "habitation_info": "Insufficient habitation will reduce production efficiency.", + "planned": "Planned", + "materials_sum": "Materials Sum", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume", + "material": "Material", + "storage": "Storage", + "stock": "Stock", + "stock_override": "Stock Override", + "need": "Need" + } + }, + "supply_cart": { + "title": "Supply Cart", + "info": { + "p": "The Supply Cart provides updates on your plans needs combined with existing inventory sourced from FIO. You have the flexibility to opt for alternative storage locations to replenish your base. Tailor your selection based on whether you wish to restock workforce and production supplies or focus on a specific category, and specify the duration for which the supplied stock should sustain. Use the {link} tool for more advanced supply cart options.", + "link": "FIO Burn" + }, + "buttons": { + "all": "All", + "workforce": "Workforce", + "production": "Production" + }, + "table": { + "stock_duration": "Stock Duration (days)", + "storage": "Storage", + "xit_name": "Supply Cart", + "ticker": "Ticker", + "daily_need": "Daily Need", + "daily_cost": "Daily Cost", + "stock": "Stock", + "full_need": "Full Need", + "final_need": "Final Need", + "weight": "t", + "volume": "m³", + "workforce": "Workforce", + "production": "Production", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume" + } + }, + "repair_analysis": { + "title": "Repair Analysis", + "plan": "@:terms.plan", + "table": { + "select_day": "Select Day", + "material": "Material", + "amount": "Amount", + "cost": "Cost", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume" + }, + "graph": { + "select_building": "Select @:terms.buildings", + "individual_building": "Individual @:terms.buildings", + "repair_cost_breakdown": "Repair Cost Breakdown" + } + }, + "cogm": { + "title": "Cost of Goods Manufactured", + "cogm": "@:terms.cogm", + "info": "The cost of goods manufactured is calculated using plan settings that factor in production efficiency, recipe runtime, building degradation, input material costs, labor requirements, and associated labor costs. The final cost is shown per unit of output, based on quantity or full cost allocation.", + "cx_preferences": "@:terms.cx_plural Preferences", + "empire_ticker": "@:terms.empire Ticker", + "planet_ticker": "@:terms.planet Ticker", + "table": { + "parameters": "Parameters", + "recipe_runtime": "@:terms.recipes Runtime", + "percent_day": "% / day", + "efficiency": "Efficiency", + "degradation": "Degradation", + "cost": "@:terms.cost", + "materials": "@:terms.materials_plural", + "input_total": "Input Total", + "material": "@:terms.materials", + "cost_unit": "ȼ / Unit", + "cost_total": "Cost Total", + "cost_total_unit": "ȼ Total", + "workforce": "Workforce", + "total_cost": "Total Cost", + "recipe_profit": "@:terms.recipes Profit", + "cost_split": "Cost Split" + } + } + }, + "components": { + "status": { + "hq": "HQ", + "cogc": "@:{'terms.cogc'}:", + "area": "@:{'terms.area'}:", + "profit": "@:{'terms.profit'}:", + "experts": "@:{'terms.experts_plural'}:" + }, + "configuration": { + "label": "Configuration", + "name": "Name", + "empire": "@:terms.empire" + }, + "area": { + "permits": "@:terms.permits_plural", + "area": "@:terms.area", + "free": "Free" + }, + "bonuses": { + "corp_hq": "Corp. HQ", + "corp_hq_tooltip": "The corporation you belong to has its headquarters on this planet (not your individual company).", + "cogc": "@:terms.cogc" + }, + "infrastructure": { + "label": "Infrastructure", + "auto_optimize": "Auto-Optimize Habs", + "auto_optimize_tooltip": "Automatically optimize habitations to meet workforce needs as buildings are added.", + "buttons": { + "optimize_cost": "Optimize Cost", + "optimize_area": "Optimize Area" + } + }, + "experts": { + "label": "Experts", + "warning": "Maximum number of experts on a base is 6. You currently have {expert_number} experts assigned." + }, + "workforce": { + "label": "Workforce", + "table": { + "type": "Type", + "need": "Need", + "supply": "Supply", + "open": "Open", + "luxuries": "Luxuries", + "pct_eff": "Eff. %" + } + }, + "overview": { + "label": "Overview", + "table": { + "daily_cost": "Daily Cost", + "degradation": "Degradation", + "plan_cost": "Plan Cost", + "daily_profit": "Daily Profit", + "roi": "ROI", + "profit_area": "@:terms.profit_per_area" + } + }, + "storage": { + "label": "Storage", + "table": { + "weight": "t", + "volume": "m³", + "import": "@:terms.import", + "export": "@:terms.export", + "sum": "@:terms.sum", + "filled": "Filled" + } + }, + "materialio": { + "label": "Material I/O", + "label_production": "Production", + "label_workforce": "Workforce", + "buttons": { + "toggle_weight_volume": "Toggle Weight & Volume", + "toggle_production_workforce": "Toggle Production & Workforce Split" + }, + "table": { + "input": "In", + "output": "Out", + "delta": "Δ", + "cost_day": "ȼ / day", + "total_weight": "Δ t", + "total_volume": "Δ m³" + } + }, + "save_as": { + "title": "Save As", + "form": { + "plan_name": "Name", + "plan_name_placeholder": "New @:terms.plan Name", + "empire": "@:terms.empire" + } + }, + "production": { + "label": "Production", + "planet_resources": "@:terms.planets @:terms.resources_plural", + "form": { + "match_cogc": "Match @:terms.cogc", + "select_placeholder": "Select @:terms.buildings & Add to @:terms.plan" + }, + "table": { + "building_recipe": "@:terms.buildings / @:terms.recipes", + "runtime": "Runtime", + "share": "Share", + "tools": "Tools" + } + }, + "production_building": { + "no_recipe": "No Active @:terms.recipes_plural", + "qty": "Qty", + "buttons": { + "add_recipe": "@:terms.recipes" + }, + "table": { + "expertise": "Expertise", + "efficiency": "Efficiency", + "revenue": "@:terms.revenue", + "area": "@:terms.area", + "construction": "Construction" + } + }, + "production_recipe": { + "cogm_title": "Cost Of Goods Manufactured", + "cogm_error": "COGM Calculation not possible. Check your Management View if your Empire has a CX assigned.", + "buttons": { + "cogm": "@:terms.cogm" + }, + "table": { + "input": "Input", + "time": "Time", + "output": "Output", + "daily_revenue": "ȼ / Day", + "profit_area": "ȼ / Area", + "roi": "ROI" + }, + "info": { + "p1_strong": "Revenue / Day", + "p1": "is calculated by taking the daily income generated from a recipe and subtracting both the daily workforce cost (all luxuries provided) and the daily building degradation cost (1/180th of the construction cost). The income from the recipe is based on the difference between the input material costs and the output material values.", + "p2_strong": "ȼ / Area", + "p2": "is the daily revenue divided by the area for one production building and its proportionate share of the area for a CM and habs required for an optimal base of such buildings in Recipe ROI.", + "p3_strong": "ROI", + "p3": "is the time required for a continuously operating recipe to generate enough revenue to offset the building's construction cost. This considers daily degradation and workforce costs as well." + } + } + } +} From 0292871b771bed74c666e28e118bf6c2bc208173 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:27:07 +0200 Subject: [PATCH 083/237] New translations plan.json (Spanish) [ci skip] --- src/locales/es_ES/plan.json | 289 ++++++++++++++++++++++++++++++++++++ 1 file changed, 289 insertions(+) create mode 100644 src/locales/es_ES/plan.json diff --git a/src/locales/es_ES/plan.json b/src/locales/es_ES/plan.json new file mode 100644 index 00000000..c45b530b --- /dev/null +++ b/src/locales/es_ES/plan.json @@ -0,0 +1,289 @@ +{ + "notifications": { + "must_have_name": "Must set a plan name in Configuration to save" + }, + "tools": { + "labels": { + "popr": "POPR", + "visitation_frequency": "Visitation Frequency", + "construction_cart": "Construction Cart", + "supply_cart": "Supply Cart", + "repair_analysis": "Repair Analysis", + "workforce": "Workforce" + }, + "popr": { + "title": "Latest Population Report", + "error": "Error loading latest population report. The planet might not have population.", + "loading": "Loading Population Report" + }, + "visitation_frequency": { + "title": "Visitation Frequency", + "storage": { + "label": "Storage", + "info": "Your plan involves adding {storages} giving you a total storage capacity of {total_weight} t and {total_volume} m³.", + "info_no_storage": "Your plan has a total storage capacity of {total_weight} t and {total_volume} m³.", + "table": { + "weight": "t", + "volume": "m³", + "import": "@:terms.import", + "export": "@:terms.export", + "sum": "@:terms.sum", + "storage_filled": "Storage Filled", + "filled_unit": "days" + }, + "exclusion_info": "Exclude local materials from visitation frequency calculation for items handled exclusively planet-side, like local market sales, purchases or contracts." + }, + "shipping": { + "label": "Shipping", + "table": { + "ship_weight": "Ship t", + "ship_volume": "Ship m³", + "visitation_days": "Visitation (days)", + "limit": "Limit", + "export_frequency": "@:terms.export Frequency", + "import_frequency": "@:terms.import Frequency" + } + } + }, + "construction_cart": { + "title": "Construction Cart", + "unplanned_info": "Base has unplanned {buildings} (FIO: {fio_updated}). Demolish to ensure area, habitation and materials are accurate.", + "table": { + "building": "@:terms.buildings", + "built": "Built", + "amount": "Amount", + "habitation_info": "Insufficient habitation will reduce production efficiency.", + "planned": "Planned", + "materials_sum": "Materials Sum", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume", + "material": "Material", + "storage": "Storage", + "stock": "Stock", + "stock_override": "Stock Override", + "need": "Need" + } + }, + "supply_cart": { + "title": "Supply Cart", + "info": { + "p": "The Supply Cart provides updates on your plans needs combined with existing inventory sourced from FIO. You have the flexibility to opt for alternative storage locations to replenish your base. Tailor your selection based on whether you wish to restock workforce and production supplies or focus on a specific category, and specify the duration for which the supplied stock should sustain. Use the {link} tool for more advanced supply cart options.", + "link": "FIO Burn" + }, + "buttons": { + "all": "All", + "workforce": "Workforce", + "production": "Production" + }, + "table": { + "stock_duration": "Stock Duration (days)", + "storage": "Storage", + "xit_name": "Supply Cart", + "ticker": "Ticker", + "daily_need": "Daily Need", + "daily_cost": "Daily Cost", + "stock": "Stock", + "full_need": "Full Need", + "final_need": "Final Need", + "weight": "t", + "volume": "m³", + "workforce": "Workforce", + "production": "Production", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume" + } + }, + "repair_analysis": { + "title": "Repair Analysis", + "plan": "@:terms.plan", + "table": { + "select_day": "Select Day", + "material": "Material", + "amount": "Amount", + "cost": "Cost", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume" + }, + "graph": { + "select_building": "Select @:terms.buildings", + "individual_building": "Individual @:terms.buildings", + "repair_cost_breakdown": "Repair Cost Breakdown" + } + }, + "cogm": { + "title": "Cost of Goods Manufactured", + "cogm": "@:terms.cogm", + "info": "The cost of goods manufactured is calculated using plan settings that factor in production efficiency, recipe runtime, building degradation, input material costs, labor requirements, and associated labor costs. The final cost is shown per unit of output, based on quantity or full cost allocation.", + "cx_preferences": "@:terms.cx_plural Preferences", + "empire_ticker": "@:terms.empire Ticker", + "planet_ticker": "@:terms.planet Ticker", + "table": { + "parameters": "Parameters", + "recipe_runtime": "@:terms.recipes Runtime", + "percent_day": "% / day", + "efficiency": "Efficiency", + "degradation": "Degradation", + "cost": "@:terms.cost", + "materials": "@:terms.materials_plural", + "input_total": "Input Total", + "material": "@:terms.materials", + "cost_unit": "ȼ / Unit", + "cost_total": "Cost Total", + "cost_total_unit": "ȼ Total", + "workforce": "Workforce", + "total_cost": "Total Cost", + "recipe_profit": "@:terms.recipes Profit", + "cost_split": "Cost Split" + } + } + }, + "components": { + "status": { + "hq": "HQ", + "cogc": "@:{'terms.cogc'}:", + "area": "@:{'terms.area'}:", + "profit": "@:{'terms.profit'}:", + "experts": "@:{'terms.experts_plural'}:" + }, + "configuration": { + "label": "Configuration", + "name": "Name", + "empire": "@:terms.empire" + }, + "area": { + "permits": "@:terms.permits_plural", + "area": "@:terms.area", + "free": "Free" + }, + "bonuses": { + "corp_hq": "Corp. HQ", + "corp_hq_tooltip": "The corporation you belong to has its headquarters on this planet (not your individual company).", + "cogc": "@:terms.cogc" + }, + "infrastructure": { + "label": "Infrastructure", + "auto_optimize": "Auto-Optimize Habs", + "auto_optimize_tooltip": "Automatically optimize habitations to meet workforce needs as buildings are added.", + "buttons": { + "optimize_cost": "Optimize Cost", + "optimize_area": "Optimize Area" + } + }, + "experts": { + "label": "Experts", + "warning": "Maximum number of experts on a base is 6. You currently have {expert_number} experts assigned." + }, + "workforce": { + "label": "Workforce", + "table": { + "type": "Type", + "need": "Need", + "supply": "Supply", + "open": "Open", + "luxuries": "Luxuries", + "pct_eff": "Eff. %" + } + }, + "overview": { + "label": "Overview", + "table": { + "daily_cost": "Daily Cost", + "degradation": "Degradation", + "plan_cost": "Plan Cost", + "daily_profit": "Daily Profit", + "roi": "ROI", + "profit_area": "@:terms.profit_per_area" + } + }, + "storage": { + "label": "Storage", + "table": { + "weight": "t", + "volume": "m³", + "import": "@:terms.import", + "export": "@:terms.export", + "sum": "@:terms.sum", + "filled": "Filled" + } + }, + "materialio": { + "label": "Material I/O", + "label_production": "Production", + "label_workforce": "Workforce", + "buttons": { + "toggle_weight_volume": "Toggle Weight & Volume", + "toggle_production_workforce": "Toggle Production & Workforce Split" + }, + "table": { + "input": "In", + "output": "Out", + "delta": "Δ", + "cost_day": "ȼ / day", + "total_weight": "Δ t", + "total_volume": "Δ m³" + } + }, + "save_as": { + "title": "Save As", + "form": { + "plan_name": "Name", + "plan_name_placeholder": "New @:terms.plan Name", + "empire": "@:terms.empire" + } + }, + "production": { + "label": "Production", + "planet_resources": "@:terms.planets @:terms.resources_plural", + "form": { + "match_cogc": "Match @:terms.cogc", + "select_placeholder": "Select @:terms.buildings & Add to @:terms.plan" + }, + "table": { + "building_recipe": "@:terms.buildings / @:terms.recipes", + "runtime": "Runtime", + "share": "Share", + "tools": "Tools" + } + }, + "production_building": { + "no_recipe": "No Active @:terms.recipes_plural", + "qty": "Qty", + "buttons": { + "add_recipe": "@:terms.recipes" + }, + "table": { + "expertise": "Expertise", + "efficiency": "Efficiency", + "revenue": "@:terms.revenue", + "area": "@:terms.area", + "construction": "Construction" + } + }, + "production_recipe": { + "cogm_title": "Cost Of Goods Manufactured", + "cogm_error": "COGM Calculation not possible. Check your Management View if your Empire has a CX assigned.", + "buttons": { + "cogm": "@:terms.cogm" + }, + "table": { + "input": "Input", + "time": "Time", + "output": "Output", + "daily_revenue": "ȼ / Day", + "profit_area": "ȼ / Area", + "roi": "ROI" + }, + "info": { + "p1_strong": "Revenue / Day", + "p1": "is calculated by taking the daily income generated from a recipe and subtracting both the daily workforce cost (all luxuries provided) and the daily building degradation cost (1/180th of the construction cost). The income from the recipe is based on the difference between the input material costs and the output material values.", + "p2_strong": "ȼ / Area", + "p2": "is the daily revenue divided by the area for one production building and its proportionate share of the area for a CM and habs required for an optimal base of such buildings in Recipe ROI.", + "p3_strong": "ROI", + "p3": "is the time required for a continuously operating recipe to generate enough revenue to offset the building's construction cost. This considers daily degradation and workforce costs as well." + } + } + } +} From 9ca820d4d1e5c6de3b232ad81d5aa1bf9808dd83 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:27:08 +0200 Subject: [PATCH 084/237] New translations plan.json (German) [ci skip] --- src/locales/de_DE/plan.json | 289 ++++++++++++++++++++++++++++++++++++ 1 file changed, 289 insertions(+) create mode 100644 src/locales/de_DE/plan.json diff --git a/src/locales/de_DE/plan.json b/src/locales/de_DE/plan.json new file mode 100644 index 00000000..c45b530b --- /dev/null +++ b/src/locales/de_DE/plan.json @@ -0,0 +1,289 @@ +{ + "notifications": { + "must_have_name": "Must set a plan name in Configuration to save" + }, + "tools": { + "labels": { + "popr": "POPR", + "visitation_frequency": "Visitation Frequency", + "construction_cart": "Construction Cart", + "supply_cart": "Supply Cart", + "repair_analysis": "Repair Analysis", + "workforce": "Workforce" + }, + "popr": { + "title": "Latest Population Report", + "error": "Error loading latest population report. The planet might not have population.", + "loading": "Loading Population Report" + }, + "visitation_frequency": { + "title": "Visitation Frequency", + "storage": { + "label": "Storage", + "info": "Your plan involves adding {storages} giving you a total storage capacity of {total_weight} t and {total_volume} m³.", + "info_no_storage": "Your plan has a total storage capacity of {total_weight} t and {total_volume} m³.", + "table": { + "weight": "t", + "volume": "m³", + "import": "@:terms.import", + "export": "@:terms.export", + "sum": "@:terms.sum", + "storage_filled": "Storage Filled", + "filled_unit": "days" + }, + "exclusion_info": "Exclude local materials from visitation frequency calculation for items handled exclusively planet-side, like local market sales, purchases or contracts." + }, + "shipping": { + "label": "Shipping", + "table": { + "ship_weight": "Ship t", + "ship_volume": "Ship m³", + "visitation_days": "Visitation (days)", + "limit": "Limit", + "export_frequency": "@:terms.export Frequency", + "import_frequency": "@:terms.import Frequency" + } + } + }, + "construction_cart": { + "title": "Construction Cart", + "unplanned_info": "Base has unplanned {buildings} (FIO: {fio_updated}). Demolish to ensure area, habitation and materials are accurate.", + "table": { + "building": "@:terms.buildings", + "built": "Built", + "amount": "Amount", + "habitation_info": "Insufficient habitation will reduce production efficiency.", + "planned": "Planned", + "materials_sum": "Materials Sum", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume", + "material": "Material", + "storage": "Storage", + "stock": "Stock", + "stock_override": "Stock Override", + "need": "Need" + } + }, + "supply_cart": { + "title": "Supply Cart", + "info": { + "p": "The Supply Cart provides updates on your plans needs combined with existing inventory sourced from FIO. You have the flexibility to opt for alternative storage locations to replenish your base. Tailor your selection based on whether you wish to restock workforce and production supplies or focus on a specific category, and specify the duration for which the supplied stock should sustain. Use the {link} tool for more advanced supply cart options.", + "link": "FIO Burn" + }, + "buttons": { + "all": "All", + "workforce": "Workforce", + "production": "Production" + }, + "table": { + "stock_duration": "Stock Duration (days)", + "storage": "Storage", + "xit_name": "Supply Cart", + "ticker": "Ticker", + "daily_need": "Daily Need", + "daily_cost": "Daily Cost", + "stock": "Stock", + "full_need": "Full Need", + "final_need": "Final Need", + "weight": "t", + "volume": "m³", + "workforce": "Workforce", + "production": "Production", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume" + } + }, + "repair_analysis": { + "title": "Repair Analysis", + "plan": "@:terms.plan", + "table": { + "select_day": "Select Day", + "material": "Material", + "amount": "Amount", + "cost": "Cost", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume" + }, + "graph": { + "select_building": "Select @:terms.buildings", + "individual_building": "Individual @:terms.buildings", + "repair_cost_breakdown": "Repair Cost Breakdown" + } + }, + "cogm": { + "title": "Cost of Goods Manufactured", + "cogm": "@:terms.cogm", + "info": "The cost of goods manufactured is calculated using plan settings that factor in production efficiency, recipe runtime, building degradation, input material costs, labor requirements, and associated labor costs. The final cost is shown per unit of output, based on quantity or full cost allocation.", + "cx_preferences": "@:terms.cx_plural Preferences", + "empire_ticker": "@:terms.empire Ticker", + "planet_ticker": "@:terms.planet Ticker", + "table": { + "parameters": "Parameters", + "recipe_runtime": "@:terms.recipes Runtime", + "percent_day": "% / day", + "efficiency": "Efficiency", + "degradation": "Degradation", + "cost": "@:terms.cost", + "materials": "@:terms.materials_plural", + "input_total": "Input Total", + "material": "@:terms.materials", + "cost_unit": "ȼ / Unit", + "cost_total": "Cost Total", + "cost_total_unit": "ȼ Total", + "workforce": "Workforce", + "total_cost": "Total Cost", + "recipe_profit": "@:terms.recipes Profit", + "cost_split": "Cost Split" + } + } + }, + "components": { + "status": { + "hq": "HQ", + "cogc": "@:{'terms.cogc'}:", + "area": "@:{'terms.area'}:", + "profit": "@:{'terms.profit'}:", + "experts": "@:{'terms.experts_plural'}:" + }, + "configuration": { + "label": "Configuration", + "name": "Name", + "empire": "@:terms.empire" + }, + "area": { + "permits": "@:terms.permits_plural", + "area": "@:terms.area", + "free": "Free" + }, + "bonuses": { + "corp_hq": "Corp. HQ", + "corp_hq_tooltip": "The corporation you belong to has its headquarters on this planet (not your individual company).", + "cogc": "@:terms.cogc" + }, + "infrastructure": { + "label": "Infrastructure", + "auto_optimize": "Auto-Optimize Habs", + "auto_optimize_tooltip": "Automatically optimize habitations to meet workforce needs as buildings are added.", + "buttons": { + "optimize_cost": "Optimize Cost", + "optimize_area": "Optimize Area" + } + }, + "experts": { + "label": "Experts", + "warning": "Maximum number of experts on a base is 6. You currently have {expert_number} experts assigned." + }, + "workforce": { + "label": "Workforce", + "table": { + "type": "Type", + "need": "Need", + "supply": "Supply", + "open": "Open", + "luxuries": "Luxuries", + "pct_eff": "Eff. %" + } + }, + "overview": { + "label": "Overview", + "table": { + "daily_cost": "Daily Cost", + "degradation": "Degradation", + "plan_cost": "Plan Cost", + "daily_profit": "Daily Profit", + "roi": "ROI", + "profit_area": "@:terms.profit_per_area" + } + }, + "storage": { + "label": "Storage", + "table": { + "weight": "t", + "volume": "m³", + "import": "@:terms.import", + "export": "@:terms.export", + "sum": "@:terms.sum", + "filled": "Filled" + } + }, + "materialio": { + "label": "Material I/O", + "label_production": "Production", + "label_workforce": "Workforce", + "buttons": { + "toggle_weight_volume": "Toggle Weight & Volume", + "toggle_production_workforce": "Toggle Production & Workforce Split" + }, + "table": { + "input": "In", + "output": "Out", + "delta": "Δ", + "cost_day": "ȼ / day", + "total_weight": "Δ t", + "total_volume": "Δ m³" + } + }, + "save_as": { + "title": "Save As", + "form": { + "plan_name": "Name", + "plan_name_placeholder": "New @:terms.plan Name", + "empire": "@:terms.empire" + } + }, + "production": { + "label": "Production", + "planet_resources": "@:terms.planets @:terms.resources_plural", + "form": { + "match_cogc": "Match @:terms.cogc", + "select_placeholder": "Select @:terms.buildings & Add to @:terms.plan" + }, + "table": { + "building_recipe": "@:terms.buildings / @:terms.recipes", + "runtime": "Runtime", + "share": "Share", + "tools": "Tools" + } + }, + "production_building": { + "no_recipe": "No Active @:terms.recipes_plural", + "qty": "Qty", + "buttons": { + "add_recipe": "@:terms.recipes" + }, + "table": { + "expertise": "Expertise", + "efficiency": "Efficiency", + "revenue": "@:terms.revenue", + "area": "@:terms.area", + "construction": "Construction" + } + }, + "production_recipe": { + "cogm_title": "Cost Of Goods Manufactured", + "cogm_error": "COGM Calculation not possible. Check your Management View if your Empire has a CX assigned.", + "buttons": { + "cogm": "@:terms.cogm" + }, + "table": { + "input": "Input", + "time": "Time", + "output": "Output", + "daily_revenue": "ȼ / Day", + "profit_area": "ȼ / Area", + "roi": "ROI" + }, + "info": { + "p1_strong": "Revenue / Day", + "p1": "is calculated by taking the daily income generated from a recipe and subtracting both the daily workforce cost (all luxuries provided) and the daily building degradation cost (1/180th of the construction cost). The income from the recipe is based on the difference between the input material costs and the output material values.", + "p2_strong": "ȼ / Area", + "p2": "is the daily revenue divided by the area for one production building and its proportionate share of the area for a CM and habs required for an optimal base of such buildings in Recipe ROI.", + "p3_strong": "ROI", + "p3": "is the time required for a continuously operating recipe to generate enough revenue to offset the building's construction cost. This considers daily degradation and workforce costs as well." + } + } + } +} From e1d5df35440a415a13b398d1000b9f2117ddfccb Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:27:10 +0200 Subject: [PATCH 085/237] New translations plan.json (Italian) [ci skip] --- src/locales/it_IT/plan.json | 289 ++++++++++++++++++++++++++++++++++++ 1 file changed, 289 insertions(+) create mode 100644 src/locales/it_IT/plan.json diff --git a/src/locales/it_IT/plan.json b/src/locales/it_IT/plan.json new file mode 100644 index 00000000..c45b530b --- /dev/null +++ b/src/locales/it_IT/plan.json @@ -0,0 +1,289 @@ +{ + "notifications": { + "must_have_name": "Must set a plan name in Configuration to save" + }, + "tools": { + "labels": { + "popr": "POPR", + "visitation_frequency": "Visitation Frequency", + "construction_cart": "Construction Cart", + "supply_cart": "Supply Cart", + "repair_analysis": "Repair Analysis", + "workforce": "Workforce" + }, + "popr": { + "title": "Latest Population Report", + "error": "Error loading latest population report. The planet might not have population.", + "loading": "Loading Population Report" + }, + "visitation_frequency": { + "title": "Visitation Frequency", + "storage": { + "label": "Storage", + "info": "Your plan involves adding {storages} giving you a total storage capacity of {total_weight} t and {total_volume} m³.", + "info_no_storage": "Your plan has a total storage capacity of {total_weight} t and {total_volume} m³.", + "table": { + "weight": "t", + "volume": "m³", + "import": "@:terms.import", + "export": "@:terms.export", + "sum": "@:terms.sum", + "storage_filled": "Storage Filled", + "filled_unit": "days" + }, + "exclusion_info": "Exclude local materials from visitation frequency calculation for items handled exclusively planet-side, like local market sales, purchases or contracts." + }, + "shipping": { + "label": "Shipping", + "table": { + "ship_weight": "Ship t", + "ship_volume": "Ship m³", + "visitation_days": "Visitation (days)", + "limit": "Limit", + "export_frequency": "@:terms.export Frequency", + "import_frequency": "@:terms.import Frequency" + } + } + }, + "construction_cart": { + "title": "Construction Cart", + "unplanned_info": "Base has unplanned {buildings} (FIO: {fio_updated}). Demolish to ensure area, habitation and materials are accurate.", + "table": { + "building": "@:terms.buildings", + "built": "Built", + "amount": "Amount", + "habitation_info": "Insufficient habitation will reduce production efficiency.", + "planned": "Planned", + "materials_sum": "Materials Sum", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume", + "material": "Material", + "storage": "Storage", + "stock": "Stock", + "stock_override": "Stock Override", + "need": "Need" + } + }, + "supply_cart": { + "title": "Supply Cart", + "info": { + "p": "The Supply Cart provides updates on your plans needs combined with existing inventory sourced from FIO. You have the flexibility to opt for alternative storage locations to replenish your base. Tailor your selection based on whether you wish to restock workforce and production supplies or focus on a specific category, and specify the duration for which the supplied stock should sustain. Use the {link} tool for more advanced supply cart options.", + "link": "FIO Burn" + }, + "buttons": { + "all": "All", + "workforce": "Workforce", + "production": "Production" + }, + "table": { + "stock_duration": "Stock Duration (days)", + "storage": "Storage", + "xit_name": "Supply Cart", + "ticker": "Ticker", + "daily_need": "Daily Need", + "daily_cost": "Daily Cost", + "stock": "Stock", + "full_need": "Full Need", + "final_need": "Final Need", + "weight": "t", + "volume": "m³", + "workforce": "Workforce", + "production": "Production", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume" + } + }, + "repair_analysis": { + "title": "Repair Analysis", + "plan": "@:terms.plan", + "table": { + "select_day": "Select Day", + "material": "Material", + "amount": "Amount", + "cost": "Cost", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume" + }, + "graph": { + "select_building": "Select @:terms.buildings", + "individual_building": "Individual @:terms.buildings", + "repair_cost_breakdown": "Repair Cost Breakdown" + } + }, + "cogm": { + "title": "Cost of Goods Manufactured", + "cogm": "@:terms.cogm", + "info": "The cost of goods manufactured is calculated using plan settings that factor in production efficiency, recipe runtime, building degradation, input material costs, labor requirements, and associated labor costs. The final cost is shown per unit of output, based on quantity or full cost allocation.", + "cx_preferences": "@:terms.cx_plural Preferences", + "empire_ticker": "@:terms.empire Ticker", + "planet_ticker": "@:terms.planet Ticker", + "table": { + "parameters": "Parameters", + "recipe_runtime": "@:terms.recipes Runtime", + "percent_day": "% / day", + "efficiency": "Efficiency", + "degradation": "Degradation", + "cost": "@:terms.cost", + "materials": "@:terms.materials_plural", + "input_total": "Input Total", + "material": "@:terms.materials", + "cost_unit": "ȼ / Unit", + "cost_total": "Cost Total", + "cost_total_unit": "ȼ Total", + "workforce": "Workforce", + "total_cost": "Total Cost", + "recipe_profit": "@:terms.recipes Profit", + "cost_split": "Cost Split" + } + } + }, + "components": { + "status": { + "hq": "HQ", + "cogc": "@:{'terms.cogc'}:", + "area": "@:{'terms.area'}:", + "profit": "@:{'terms.profit'}:", + "experts": "@:{'terms.experts_plural'}:" + }, + "configuration": { + "label": "Configuration", + "name": "Name", + "empire": "@:terms.empire" + }, + "area": { + "permits": "@:terms.permits_plural", + "area": "@:terms.area", + "free": "Free" + }, + "bonuses": { + "corp_hq": "Corp. HQ", + "corp_hq_tooltip": "The corporation you belong to has its headquarters on this planet (not your individual company).", + "cogc": "@:terms.cogc" + }, + "infrastructure": { + "label": "Infrastructure", + "auto_optimize": "Auto-Optimize Habs", + "auto_optimize_tooltip": "Automatically optimize habitations to meet workforce needs as buildings are added.", + "buttons": { + "optimize_cost": "Optimize Cost", + "optimize_area": "Optimize Area" + } + }, + "experts": { + "label": "Experts", + "warning": "Maximum number of experts on a base is 6. You currently have {expert_number} experts assigned." + }, + "workforce": { + "label": "Workforce", + "table": { + "type": "Type", + "need": "Need", + "supply": "Supply", + "open": "Open", + "luxuries": "Luxuries", + "pct_eff": "Eff. %" + } + }, + "overview": { + "label": "Overview", + "table": { + "daily_cost": "Daily Cost", + "degradation": "Degradation", + "plan_cost": "Plan Cost", + "daily_profit": "Daily Profit", + "roi": "ROI", + "profit_area": "@:terms.profit_per_area" + } + }, + "storage": { + "label": "Storage", + "table": { + "weight": "t", + "volume": "m³", + "import": "@:terms.import", + "export": "@:terms.export", + "sum": "@:terms.sum", + "filled": "Filled" + } + }, + "materialio": { + "label": "Material I/O", + "label_production": "Production", + "label_workforce": "Workforce", + "buttons": { + "toggle_weight_volume": "Toggle Weight & Volume", + "toggle_production_workforce": "Toggle Production & Workforce Split" + }, + "table": { + "input": "In", + "output": "Out", + "delta": "Δ", + "cost_day": "ȼ / day", + "total_weight": "Δ t", + "total_volume": "Δ m³" + } + }, + "save_as": { + "title": "Save As", + "form": { + "plan_name": "Name", + "plan_name_placeholder": "New @:terms.plan Name", + "empire": "@:terms.empire" + } + }, + "production": { + "label": "Production", + "planet_resources": "@:terms.planets @:terms.resources_plural", + "form": { + "match_cogc": "Match @:terms.cogc", + "select_placeholder": "Select @:terms.buildings & Add to @:terms.plan" + }, + "table": { + "building_recipe": "@:terms.buildings / @:terms.recipes", + "runtime": "Runtime", + "share": "Share", + "tools": "Tools" + } + }, + "production_building": { + "no_recipe": "No Active @:terms.recipes_plural", + "qty": "Qty", + "buttons": { + "add_recipe": "@:terms.recipes" + }, + "table": { + "expertise": "Expertise", + "efficiency": "Efficiency", + "revenue": "@:terms.revenue", + "area": "@:terms.area", + "construction": "Construction" + } + }, + "production_recipe": { + "cogm_title": "Cost Of Goods Manufactured", + "cogm_error": "COGM Calculation not possible. Check your Management View if your Empire has a CX assigned.", + "buttons": { + "cogm": "@:terms.cogm" + }, + "table": { + "input": "Input", + "time": "Time", + "output": "Output", + "daily_revenue": "ȼ / Day", + "profit_area": "ȼ / Area", + "roi": "ROI" + }, + "info": { + "p1_strong": "Revenue / Day", + "p1": "is calculated by taking the daily income generated from a recipe and subtracting both the daily workforce cost (all luxuries provided) and the daily building degradation cost (1/180th of the construction cost). The income from the recipe is based on the difference between the input material costs and the output material values.", + "p2_strong": "ȼ / Area", + "p2": "is the daily revenue divided by the area for one production building and its proportionate share of the area for a CM and habs required for an optimal base of such buildings in Recipe ROI.", + "p3_strong": "ROI", + "p3": "is the time required for a continuously operating recipe to generate enough revenue to offset the building's construction cost. This considers daily degradation and workforce costs as well." + } + } + } +} From 725112d7d2200e4f5641677464f74895f3ba7968 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:27:11 +0200 Subject: [PATCH 086/237] New translations plan.json (Japanese) [ci skip] --- src/locales/ja_JP/plan.json | 289 ++++++++++++++++++++++++++++++++++++ 1 file changed, 289 insertions(+) create mode 100644 src/locales/ja_JP/plan.json diff --git a/src/locales/ja_JP/plan.json b/src/locales/ja_JP/plan.json new file mode 100644 index 00000000..c45b530b --- /dev/null +++ b/src/locales/ja_JP/plan.json @@ -0,0 +1,289 @@ +{ + "notifications": { + "must_have_name": "Must set a plan name in Configuration to save" + }, + "tools": { + "labels": { + "popr": "POPR", + "visitation_frequency": "Visitation Frequency", + "construction_cart": "Construction Cart", + "supply_cart": "Supply Cart", + "repair_analysis": "Repair Analysis", + "workforce": "Workforce" + }, + "popr": { + "title": "Latest Population Report", + "error": "Error loading latest population report. The planet might not have population.", + "loading": "Loading Population Report" + }, + "visitation_frequency": { + "title": "Visitation Frequency", + "storage": { + "label": "Storage", + "info": "Your plan involves adding {storages} giving you a total storage capacity of {total_weight} t and {total_volume} m³.", + "info_no_storage": "Your plan has a total storage capacity of {total_weight} t and {total_volume} m³.", + "table": { + "weight": "t", + "volume": "m³", + "import": "@:terms.import", + "export": "@:terms.export", + "sum": "@:terms.sum", + "storage_filled": "Storage Filled", + "filled_unit": "days" + }, + "exclusion_info": "Exclude local materials from visitation frequency calculation for items handled exclusively planet-side, like local market sales, purchases or contracts." + }, + "shipping": { + "label": "Shipping", + "table": { + "ship_weight": "Ship t", + "ship_volume": "Ship m³", + "visitation_days": "Visitation (days)", + "limit": "Limit", + "export_frequency": "@:terms.export Frequency", + "import_frequency": "@:terms.import Frequency" + } + } + }, + "construction_cart": { + "title": "Construction Cart", + "unplanned_info": "Base has unplanned {buildings} (FIO: {fio_updated}). Demolish to ensure area, habitation and materials are accurate.", + "table": { + "building": "@:terms.buildings", + "built": "Built", + "amount": "Amount", + "habitation_info": "Insufficient habitation will reduce production efficiency.", + "planned": "Planned", + "materials_sum": "Materials Sum", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume", + "material": "Material", + "storage": "Storage", + "stock": "Stock", + "stock_override": "Stock Override", + "need": "Need" + } + }, + "supply_cart": { + "title": "Supply Cart", + "info": { + "p": "The Supply Cart provides updates on your plans needs combined with existing inventory sourced from FIO. You have the flexibility to opt for alternative storage locations to replenish your base. Tailor your selection based on whether you wish to restock workforce and production supplies or focus on a specific category, and specify the duration for which the supplied stock should sustain. Use the {link} tool for more advanced supply cart options.", + "link": "FIO Burn" + }, + "buttons": { + "all": "All", + "workforce": "Workforce", + "production": "Production" + }, + "table": { + "stock_duration": "Stock Duration (days)", + "storage": "Storage", + "xit_name": "Supply Cart", + "ticker": "Ticker", + "daily_need": "Daily Need", + "daily_cost": "Daily Cost", + "stock": "Stock", + "full_need": "Full Need", + "final_need": "Final Need", + "weight": "t", + "volume": "m³", + "workforce": "Workforce", + "production": "Production", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume" + } + }, + "repair_analysis": { + "title": "Repair Analysis", + "plan": "@:terms.plan", + "table": { + "select_day": "Select Day", + "material": "Material", + "amount": "Amount", + "cost": "Cost", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume" + }, + "graph": { + "select_building": "Select @:terms.buildings", + "individual_building": "Individual @:terms.buildings", + "repair_cost_breakdown": "Repair Cost Breakdown" + } + }, + "cogm": { + "title": "Cost of Goods Manufactured", + "cogm": "@:terms.cogm", + "info": "The cost of goods manufactured is calculated using plan settings that factor in production efficiency, recipe runtime, building degradation, input material costs, labor requirements, and associated labor costs. The final cost is shown per unit of output, based on quantity or full cost allocation.", + "cx_preferences": "@:terms.cx_plural Preferences", + "empire_ticker": "@:terms.empire Ticker", + "planet_ticker": "@:terms.planet Ticker", + "table": { + "parameters": "Parameters", + "recipe_runtime": "@:terms.recipes Runtime", + "percent_day": "% / day", + "efficiency": "Efficiency", + "degradation": "Degradation", + "cost": "@:terms.cost", + "materials": "@:terms.materials_plural", + "input_total": "Input Total", + "material": "@:terms.materials", + "cost_unit": "ȼ / Unit", + "cost_total": "Cost Total", + "cost_total_unit": "ȼ Total", + "workforce": "Workforce", + "total_cost": "Total Cost", + "recipe_profit": "@:terms.recipes Profit", + "cost_split": "Cost Split" + } + } + }, + "components": { + "status": { + "hq": "HQ", + "cogc": "@:{'terms.cogc'}:", + "area": "@:{'terms.area'}:", + "profit": "@:{'terms.profit'}:", + "experts": "@:{'terms.experts_plural'}:" + }, + "configuration": { + "label": "Configuration", + "name": "Name", + "empire": "@:terms.empire" + }, + "area": { + "permits": "@:terms.permits_plural", + "area": "@:terms.area", + "free": "Free" + }, + "bonuses": { + "corp_hq": "Corp. HQ", + "corp_hq_tooltip": "The corporation you belong to has its headquarters on this planet (not your individual company).", + "cogc": "@:terms.cogc" + }, + "infrastructure": { + "label": "Infrastructure", + "auto_optimize": "Auto-Optimize Habs", + "auto_optimize_tooltip": "Automatically optimize habitations to meet workforce needs as buildings are added.", + "buttons": { + "optimize_cost": "Optimize Cost", + "optimize_area": "Optimize Area" + } + }, + "experts": { + "label": "Experts", + "warning": "Maximum number of experts on a base is 6. You currently have {expert_number} experts assigned." + }, + "workforce": { + "label": "Workforce", + "table": { + "type": "Type", + "need": "Need", + "supply": "Supply", + "open": "Open", + "luxuries": "Luxuries", + "pct_eff": "Eff. %" + } + }, + "overview": { + "label": "Overview", + "table": { + "daily_cost": "Daily Cost", + "degradation": "Degradation", + "plan_cost": "Plan Cost", + "daily_profit": "Daily Profit", + "roi": "ROI", + "profit_area": "@:terms.profit_per_area" + } + }, + "storage": { + "label": "Storage", + "table": { + "weight": "t", + "volume": "m³", + "import": "@:terms.import", + "export": "@:terms.export", + "sum": "@:terms.sum", + "filled": "Filled" + } + }, + "materialio": { + "label": "Material I/O", + "label_production": "Production", + "label_workforce": "Workforce", + "buttons": { + "toggle_weight_volume": "Toggle Weight & Volume", + "toggle_production_workforce": "Toggle Production & Workforce Split" + }, + "table": { + "input": "In", + "output": "Out", + "delta": "Δ", + "cost_day": "ȼ / day", + "total_weight": "Δ t", + "total_volume": "Δ m³" + } + }, + "save_as": { + "title": "Save As", + "form": { + "plan_name": "Name", + "plan_name_placeholder": "New @:terms.plan Name", + "empire": "@:terms.empire" + } + }, + "production": { + "label": "Production", + "planet_resources": "@:terms.planets @:terms.resources_plural", + "form": { + "match_cogc": "Match @:terms.cogc", + "select_placeholder": "Select @:terms.buildings & Add to @:terms.plan" + }, + "table": { + "building_recipe": "@:terms.buildings / @:terms.recipes", + "runtime": "Runtime", + "share": "Share", + "tools": "Tools" + } + }, + "production_building": { + "no_recipe": "No Active @:terms.recipes_plural", + "qty": "Qty", + "buttons": { + "add_recipe": "@:terms.recipes" + }, + "table": { + "expertise": "Expertise", + "efficiency": "Efficiency", + "revenue": "@:terms.revenue", + "area": "@:terms.area", + "construction": "Construction" + } + }, + "production_recipe": { + "cogm_title": "Cost Of Goods Manufactured", + "cogm_error": "COGM Calculation not possible. Check your Management View if your Empire has a CX assigned.", + "buttons": { + "cogm": "@:terms.cogm" + }, + "table": { + "input": "Input", + "time": "Time", + "output": "Output", + "daily_revenue": "ȼ / Day", + "profit_area": "ȼ / Area", + "roi": "ROI" + }, + "info": { + "p1_strong": "Revenue / Day", + "p1": "is calculated by taking the daily income generated from a recipe and subtracting both the daily workforce cost (all luxuries provided) and the daily building degradation cost (1/180th of the construction cost). The income from the recipe is based on the difference between the input material costs and the output material values.", + "p2_strong": "ȼ / Area", + "p2": "is the daily revenue divided by the area for one production building and its proportionate share of the area for a CM and habs required for an optimal base of such buildings in Recipe ROI.", + "p3_strong": "ROI", + "p3": "is the time required for a continuously operating recipe to generate enough revenue to offset the building's construction cost. This considers daily degradation and workforce costs as well." + } + } + } +} From 3660ba1b1d5a4fe54e274998343ee855532cad18 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:27:13 +0200 Subject: [PATCH 087/237] New translations plan.json (Korean) [ci skip] --- src/locales/ko_KR/plan.json | 289 ++++++++++++++++++++++++++++++++++++ 1 file changed, 289 insertions(+) create mode 100644 src/locales/ko_KR/plan.json diff --git a/src/locales/ko_KR/plan.json b/src/locales/ko_KR/plan.json new file mode 100644 index 00000000..c45b530b --- /dev/null +++ b/src/locales/ko_KR/plan.json @@ -0,0 +1,289 @@ +{ + "notifications": { + "must_have_name": "Must set a plan name in Configuration to save" + }, + "tools": { + "labels": { + "popr": "POPR", + "visitation_frequency": "Visitation Frequency", + "construction_cart": "Construction Cart", + "supply_cart": "Supply Cart", + "repair_analysis": "Repair Analysis", + "workforce": "Workforce" + }, + "popr": { + "title": "Latest Population Report", + "error": "Error loading latest population report. The planet might not have population.", + "loading": "Loading Population Report" + }, + "visitation_frequency": { + "title": "Visitation Frequency", + "storage": { + "label": "Storage", + "info": "Your plan involves adding {storages} giving you a total storage capacity of {total_weight} t and {total_volume} m³.", + "info_no_storage": "Your plan has a total storage capacity of {total_weight} t and {total_volume} m³.", + "table": { + "weight": "t", + "volume": "m³", + "import": "@:terms.import", + "export": "@:terms.export", + "sum": "@:terms.sum", + "storage_filled": "Storage Filled", + "filled_unit": "days" + }, + "exclusion_info": "Exclude local materials from visitation frequency calculation for items handled exclusively planet-side, like local market sales, purchases or contracts." + }, + "shipping": { + "label": "Shipping", + "table": { + "ship_weight": "Ship t", + "ship_volume": "Ship m³", + "visitation_days": "Visitation (days)", + "limit": "Limit", + "export_frequency": "@:terms.export Frequency", + "import_frequency": "@:terms.import Frequency" + } + } + }, + "construction_cart": { + "title": "Construction Cart", + "unplanned_info": "Base has unplanned {buildings} (FIO: {fio_updated}). Demolish to ensure area, habitation and materials are accurate.", + "table": { + "building": "@:terms.buildings", + "built": "Built", + "amount": "Amount", + "habitation_info": "Insufficient habitation will reduce production efficiency.", + "planned": "Planned", + "materials_sum": "Materials Sum", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume", + "material": "Material", + "storage": "Storage", + "stock": "Stock", + "stock_override": "Stock Override", + "need": "Need" + } + }, + "supply_cart": { + "title": "Supply Cart", + "info": { + "p": "The Supply Cart provides updates on your plans needs combined with existing inventory sourced from FIO. You have the flexibility to opt for alternative storage locations to replenish your base. Tailor your selection based on whether you wish to restock workforce and production supplies or focus on a specific category, and specify the duration for which the supplied stock should sustain. Use the {link} tool for more advanced supply cart options.", + "link": "FIO Burn" + }, + "buttons": { + "all": "All", + "workforce": "Workforce", + "production": "Production" + }, + "table": { + "stock_duration": "Stock Duration (days)", + "storage": "Storage", + "xit_name": "Supply Cart", + "ticker": "Ticker", + "daily_need": "Daily Need", + "daily_cost": "Daily Cost", + "stock": "Stock", + "full_need": "Full Need", + "final_need": "Final Need", + "weight": "t", + "volume": "m³", + "workforce": "Workforce", + "production": "Production", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume" + } + }, + "repair_analysis": { + "title": "Repair Analysis", + "plan": "@:terms.plan", + "table": { + "select_day": "Select Day", + "material": "Material", + "amount": "Amount", + "cost": "Cost", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume" + }, + "graph": { + "select_building": "Select @:terms.buildings", + "individual_building": "Individual @:terms.buildings", + "repair_cost_breakdown": "Repair Cost Breakdown" + } + }, + "cogm": { + "title": "Cost of Goods Manufactured", + "cogm": "@:terms.cogm", + "info": "The cost of goods manufactured is calculated using plan settings that factor in production efficiency, recipe runtime, building degradation, input material costs, labor requirements, and associated labor costs. The final cost is shown per unit of output, based on quantity or full cost allocation.", + "cx_preferences": "@:terms.cx_plural Preferences", + "empire_ticker": "@:terms.empire Ticker", + "planet_ticker": "@:terms.planet Ticker", + "table": { + "parameters": "Parameters", + "recipe_runtime": "@:terms.recipes Runtime", + "percent_day": "% / day", + "efficiency": "Efficiency", + "degradation": "Degradation", + "cost": "@:terms.cost", + "materials": "@:terms.materials_plural", + "input_total": "Input Total", + "material": "@:terms.materials", + "cost_unit": "ȼ / Unit", + "cost_total": "Cost Total", + "cost_total_unit": "ȼ Total", + "workforce": "Workforce", + "total_cost": "Total Cost", + "recipe_profit": "@:terms.recipes Profit", + "cost_split": "Cost Split" + } + } + }, + "components": { + "status": { + "hq": "HQ", + "cogc": "@:{'terms.cogc'}:", + "area": "@:{'terms.area'}:", + "profit": "@:{'terms.profit'}:", + "experts": "@:{'terms.experts_plural'}:" + }, + "configuration": { + "label": "Configuration", + "name": "Name", + "empire": "@:terms.empire" + }, + "area": { + "permits": "@:terms.permits_plural", + "area": "@:terms.area", + "free": "Free" + }, + "bonuses": { + "corp_hq": "Corp. HQ", + "corp_hq_tooltip": "The corporation you belong to has its headquarters on this planet (not your individual company).", + "cogc": "@:terms.cogc" + }, + "infrastructure": { + "label": "Infrastructure", + "auto_optimize": "Auto-Optimize Habs", + "auto_optimize_tooltip": "Automatically optimize habitations to meet workforce needs as buildings are added.", + "buttons": { + "optimize_cost": "Optimize Cost", + "optimize_area": "Optimize Area" + } + }, + "experts": { + "label": "Experts", + "warning": "Maximum number of experts on a base is 6. You currently have {expert_number} experts assigned." + }, + "workforce": { + "label": "Workforce", + "table": { + "type": "Type", + "need": "Need", + "supply": "Supply", + "open": "Open", + "luxuries": "Luxuries", + "pct_eff": "Eff. %" + } + }, + "overview": { + "label": "Overview", + "table": { + "daily_cost": "Daily Cost", + "degradation": "Degradation", + "plan_cost": "Plan Cost", + "daily_profit": "Daily Profit", + "roi": "ROI", + "profit_area": "@:terms.profit_per_area" + } + }, + "storage": { + "label": "Storage", + "table": { + "weight": "t", + "volume": "m³", + "import": "@:terms.import", + "export": "@:terms.export", + "sum": "@:terms.sum", + "filled": "Filled" + } + }, + "materialio": { + "label": "Material I/O", + "label_production": "Production", + "label_workforce": "Workforce", + "buttons": { + "toggle_weight_volume": "Toggle Weight & Volume", + "toggle_production_workforce": "Toggle Production & Workforce Split" + }, + "table": { + "input": "In", + "output": "Out", + "delta": "Δ", + "cost_day": "ȼ / day", + "total_weight": "Δ t", + "total_volume": "Δ m³" + } + }, + "save_as": { + "title": "Save As", + "form": { + "plan_name": "Name", + "plan_name_placeholder": "New @:terms.plan Name", + "empire": "@:terms.empire" + } + }, + "production": { + "label": "Production", + "planet_resources": "@:terms.planets @:terms.resources_plural", + "form": { + "match_cogc": "Match @:terms.cogc", + "select_placeholder": "Select @:terms.buildings & Add to @:terms.plan" + }, + "table": { + "building_recipe": "@:terms.buildings / @:terms.recipes", + "runtime": "Runtime", + "share": "Share", + "tools": "Tools" + } + }, + "production_building": { + "no_recipe": "No Active @:terms.recipes_plural", + "qty": "Qty", + "buttons": { + "add_recipe": "@:terms.recipes" + }, + "table": { + "expertise": "Expertise", + "efficiency": "Efficiency", + "revenue": "@:terms.revenue", + "area": "@:terms.area", + "construction": "Construction" + } + }, + "production_recipe": { + "cogm_title": "Cost Of Goods Manufactured", + "cogm_error": "COGM Calculation not possible. Check your Management View if your Empire has a CX assigned.", + "buttons": { + "cogm": "@:terms.cogm" + }, + "table": { + "input": "Input", + "time": "Time", + "output": "Output", + "daily_revenue": "ȼ / Day", + "profit_area": "ȼ / Area", + "roi": "ROI" + }, + "info": { + "p1_strong": "Revenue / Day", + "p1": "is calculated by taking the daily income generated from a recipe and subtracting both the daily workforce cost (all luxuries provided) and the daily building degradation cost (1/180th of the construction cost). The income from the recipe is based on the difference between the input material costs and the output material values.", + "p2_strong": "ȼ / Area", + "p2": "is the daily revenue divided by the area for one production building and its proportionate share of the area for a CM and habs required for an optimal base of such buildings in Recipe ROI.", + "p3_strong": "ROI", + "p3": "is the time required for a continuously operating recipe to generate enough revenue to offset the building's construction cost. This considers daily degradation and workforce costs as well." + } + } + } +} From 84ecc9a59c03c5fbd014bfe240d7f68af88fcbef Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:27:14 +0200 Subject: [PATCH 088/237] New translations plan.json (Dutch) [ci skip] --- src/locales/nl_NL/plan.json | 289 ++++++++++++++++++++++++++++++++++++ 1 file changed, 289 insertions(+) create mode 100644 src/locales/nl_NL/plan.json diff --git a/src/locales/nl_NL/plan.json b/src/locales/nl_NL/plan.json new file mode 100644 index 00000000..c45b530b --- /dev/null +++ b/src/locales/nl_NL/plan.json @@ -0,0 +1,289 @@ +{ + "notifications": { + "must_have_name": "Must set a plan name in Configuration to save" + }, + "tools": { + "labels": { + "popr": "POPR", + "visitation_frequency": "Visitation Frequency", + "construction_cart": "Construction Cart", + "supply_cart": "Supply Cart", + "repair_analysis": "Repair Analysis", + "workforce": "Workforce" + }, + "popr": { + "title": "Latest Population Report", + "error": "Error loading latest population report. The planet might not have population.", + "loading": "Loading Population Report" + }, + "visitation_frequency": { + "title": "Visitation Frequency", + "storage": { + "label": "Storage", + "info": "Your plan involves adding {storages} giving you a total storage capacity of {total_weight} t and {total_volume} m³.", + "info_no_storage": "Your plan has a total storage capacity of {total_weight} t and {total_volume} m³.", + "table": { + "weight": "t", + "volume": "m³", + "import": "@:terms.import", + "export": "@:terms.export", + "sum": "@:terms.sum", + "storage_filled": "Storage Filled", + "filled_unit": "days" + }, + "exclusion_info": "Exclude local materials from visitation frequency calculation for items handled exclusively planet-side, like local market sales, purchases or contracts." + }, + "shipping": { + "label": "Shipping", + "table": { + "ship_weight": "Ship t", + "ship_volume": "Ship m³", + "visitation_days": "Visitation (days)", + "limit": "Limit", + "export_frequency": "@:terms.export Frequency", + "import_frequency": "@:terms.import Frequency" + } + } + }, + "construction_cart": { + "title": "Construction Cart", + "unplanned_info": "Base has unplanned {buildings} (FIO: {fio_updated}). Demolish to ensure area, habitation and materials are accurate.", + "table": { + "building": "@:terms.buildings", + "built": "Built", + "amount": "Amount", + "habitation_info": "Insufficient habitation will reduce production efficiency.", + "planned": "Planned", + "materials_sum": "Materials Sum", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume", + "material": "Material", + "storage": "Storage", + "stock": "Stock", + "stock_override": "Stock Override", + "need": "Need" + } + }, + "supply_cart": { + "title": "Supply Cart", + "info": { + "p": "The Supply Cart provides updates on your plans needs combined with existing inventory sourced from FIO. You have the flexibility to opt for alternative storage locations to replenish your base. Tailor your selection based on whether you wish to restock workforce and production supplies or focus on a specific category, and specify the duration for which the supplied stock should sustain. Use the {link} tool for more advanced supply cart options.", + "link": "FIO Burn" + }, + "buttons": { + "all": "All", + "workforce": "Workforce", + "production": "Production" + }, + "table": { + "stock_duration": "Stock Duration (days)", + "storage": "Storage", + "xit_name": "Supply Cart", + "ticker": "Ticker", + "daily_need": "Daily Need", + "daily_cost": "Daily Cost", + "stock": "Stock", + "full_need": "Full Need", + "final_need": "Final Need", + "weight": "t", + "volume": "m³", + "workforce": "Workforce", + "production": "Production", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume" + } + }, + "repair_analysis": { + "title": "Repair Analysis", + "plan": "@:terms.plan", + "table": { + "select_day": "Select Day", + "material": "Material", + "amount": "Amount", + "cost": "Cost", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume" + }, + "graph": { + "select_building": "Select @:terms.buildings", + "individual_building": "Individual @:terms.buildings", + "repair_cost_breakdown": "Repair Cost Breakdown" + } + }, + "cogm": { + "title": "Cost of Goods Manufactured", + "cogm": "@:terms.cogm", + "info": "The cost of goods manufactured is calculated using plan settings that factor in production efficiency, recipe runtime, building degradation, input material costs, labor requirements, and associated labor costs. The final cost is shown per unit of output, based on quantity or full cost allocation.", + "cx_preferences": "@:terms.cx_plural Preferences", + "empire_ticker": "@:terms.empire Ticker", + "planet_ticker": "@:terms.planet Ticker", + "table": { + "parameters": "Parameters", + "recipe_runtime": "@:terms.recipes Runtime", + "percent_day": "% / day", + "efficiency": "Efficiency", + "degradation": "Degradation", + "cost": "@:terms.cost", + "materials": "@:terms.materials_plural", + "input_total": "Input Total", + "material": "@:terms.materials", + "cost_unit": "ȼ / Unit", + "cost_total": "Cost Total", + "cost_total_unit": "ȼ Total", + "workforce": "Workforce", + "total_cost": "Total Cost", + "recipe_profit": "@:terms.recipes Profit", + "cost_split": "Cost Split" + } + } + }, + "components": { + "status": { + "hq": "HQ", + "cogc": "@:{'terms.cogc'}:", + "area": "@:{'terms.area'}:", + "profit": "@:{'terms.profit'}:", + "experts": "@:{'terms.experts_plural'}:" + }, + "configuration": { + "label": "Configuration", + "name": "Name", + "empire": "@:terms.empire" + }, + "area": { + "permits": "@:terms.permits_plural", + "area": "@:terms.area", + "free": "Free" + }, + "bonuses": { + "corp_hq": "Corp. HQ", + "corp_hq_tooltip": "The corporation you belong to has its headquarters on this planet (not your individual company).", + "cogc": "@:terms.cogc" + }, + "infrastructure": { + "label": "Infrastructure", + "auto_optimize": "Auto-Optimize Habs", + "auto_optimize_tooltip": "Automatically optimize habitations to meet workforce needs as buildings are added.", + "buttons": { + "optimize_cost": "Optimize Cost", + "optimize_area": "Optimize Area" + } + }, + "experts": { + "label": "Experts", + "warning": "Maximum number of experts on a base is 6. You currently have {expert_number} experts assigned." + }, + "workforce": { + "label": "Workforce", + "table": { + "type": "Type", + "need": "Need", + "supply": "Supply", + "open": "Open", + "luxuries": "Luxuries", + "pct_eff": "Eff. %" + } + }, + "overview": { + "label": "Overview", + "table": { + "daily_cost": "Daily Cost", + "degradation": "Degradation", + "plan_cost": "Plan Cost", + "daily_profit": "Daily Profit", + "roi": "ROI", + "profit_area": "@:terms.profit_per_area" + } + }, + "storage": { + "label": "Storage", + "table": { + "weight": "t", + "volume": "m³", + "import": "@:terms.import", + "export": "@:terms.export", + "sum": "@:terms.sum", + "filled": "Filled" + } + }, + "materialio": { + "label": "Material I/O", + "label_production": "Production", + "label_workforce": "Workforce", + "buttons": { + "toggle_weight_volume": "Toggle Weight & Volume", + "toggle_production_workforce": "Toggle Production & Workforce Split" + }, + "table": { + "input": "In", + "output": "Out", + "delta": "Δ", + "cost_day": "ȼ / day", + "total_weight": "Δ t", + "total_volume": "Δ m³" + } + }, + "save_as": { + "title": "Save As", + "form": { + "plan_name": "Name", + "plan_name_placeholder": "New @:terms.plan Name", + "empire": "@:terms.empire" + } + }, + "production": { + "label": "Production", + "planet_resources": "@:terms.planets @:terms.resources_plural", + "form": { + "match_cogc": "Match @:terms.cogc", + "select_placeholder": "Select @:terms.buildings & Add to @:terms.plan" + }, + "table": { + "building_recipe": "@:terms.buildings / @:terms.recipes", + "runtime": "Runtime", + "share": "Share", + "tools": "Tools" + } + }, + "production_building": { + "no_recipe": "No Active @:terms.recipes_plural", + "qty": "Qty", + "buttons": { + "add_recipe": "@:terms.recipes" + }, + "table": { + "expertise": "Expertise", + "efficiency": "Efficiency", + "revenue": "@:terms.revenue", + "area": "@:terms.area", + "construction": "Construction" + } + }, + "production_recipe": { + "cogm_title": "Cost Of Goods Manufactured", + "cogm_error": "COGM Calculation not possible. Check your Management View if your Empire has a CX assigned.", + "buttons": { + "cogm": "@:terms.cogm" + }, + "table": { + "input": "Input", + "time": "Time", + "output": "Output", + "daily_revenue": "ȼ / Day", + "profit_area": "ȼ / Area", + "roi": "ROI" + }, + "info": { + "p1_strong": "Revenue / Day", + "p1": "is calculated by taking the daily income generated from a recipe and subtracting both the daily workforce cost (all luxuries provided) and the daily building degradation cost (1/180th of the construction cost). The income from the recipe is based on the difference between the input material costs and the output material values.", + "p2_strong": "ȼ / Area", + "p2": "is the daily revenue divided by the area for one production building and its proportionate share of the area for a CM and habs required for an optimal base of such buildings in Recipe ROI.", + "p3_strong": "ROI", + "p3": "is the time required for a continuously operating recipe to generate enough revenue to offset the building's construction cost. This considers daily degradation and workforce costs as well." + } + } + } +} From 22d5fad7f4f58c0bee6765b048bbad8cf1bc064e Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:27:16 +0200 Subject: [PATCH 089/237] New translations plan.json (Portuguese) [ci skip] --- src/locales/pt_PT/plan.json | 289 ++++++++++++++++++++++++++++++++++++ 1 file changed, 289 insertions(+) create mode 100644 src/locales/pt_PT/plan.json diff --git a/src/locales/pt_PT/plan.json b/src/locales/pt_PT/plan.json new file mode 100644 index 00000000..c45b530b --- /dev/null +++ b/src/locales/pt_PT/plan.json @@ -0,0 +1,289 @@ +{ + "notifications": { + "must_have_name": "Must set a plan name in Configuration to save" + }, + "tools": { + "labels": { + "popr": "POPR", + "visitation_frequency": "Visitation Frequency", + "construction_cart": "Construction Cart", + "supply_cart": "Supply Cart", + "repair_analysis": "Repair Analysis", + "workforce": "Workforce" + }, + "popr": { + "title": "Latest Population Report", + "error": "Error loading latest population report. The planet might not have population.", + "loading": "Loading Population Report" + }, + "visitation_frequency": { + "title": "Visitation Frequency", + "storage": { + "label": "Storage", + "info": "Your plan involves adding {storages} giving you a total storage capacity of {total_weight} t and {total_volume} m³.", + "info_no_storage": "Your plan has a total storage capacity of {total_weight} t and {total_volume} m³.", + "table": { + "weight": "t", + "volume": "m³", + "import": "@:terms.import", + "export": "@:terms.export", + "sum": "@:terms.sum", + "storage_filled": "Storage Filled", + "filled_unit": "days" + }, + "exclusion_info": "Exclude local materials from visitation frequency calculation for items handled exclusively planet-side, like local market sales, purchases or contracts." + }, + "shipping": { + "label": "Shipping", + "table": { + "ship_weight": "Ship t", + "ship_volume": "Ship m³", + "visitation_days": "Visitation (days)", + "limit": "Limit", + "export_frequency": "@:terms.export Frequency", + "import_frequency": "@:terms.import Frequency" + } + } + }, + "construction_cart": { + "title": "Construction Cart", + "unplanned_info": "Base has unplanned {buildings} (FIO: {fio_updated}). Demolish to ensure area, habitation and materials are accurate.", + "table": { + "building": "@:terms.buildings", + "built": "Built", + "amount": "Amount", + "habitation_info": "Insufficient habitation will reduce production efficiency.", + "planned": "Planned", + "materials_sum": "Materials Sum", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume", + "material": "Material", + "storage": "Storage", + "stock": "Stock", + "stock_override": "Stock Override", + "need": "Need" + } + }, + "supply_cart": { + "title": "Supply Cart", + "info": { + "p": "The Supply Cart provides updates on your plans needs combined with existing inventory sourced from FIO. You have the flexibility to opt for alternative storage locations to replenish your base. Tailor your selection based on whether you wish to restock workforce and production supplies or focus on a specific category, and specify the duration for which the supplied stock should sustain. Use the {link} tool for more advanced supply cart options.", + "link": "FIO Burn" + }, + "buttons": { + "all": "All", + "workforce": "Workforce", + "production": "Production" + }, + "table": { + "stock_duration": "Stock Duration (days)", + "storage": "Storage", + "xit_name": "Supply Cart", + "ticker": "Ticker", + "daily_need": "Daily Need", + "daily_cost": "Daily Cost", + "stock": "Stock", + "full_need": "Full Need", + "final_need": "Final Need", + "weight": "t", + "volume": "m³", + "workforce": "Workforce", + "production": "Production", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume" + } + }, + "repair_analysis": { + "title": "Repair Analysis", + "plan": "@:terms.plan", + "table": { + "select_day": "Select Day", + "material": "Material", + "amount": "Amount", + "cost": "Cost", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume" + }, + "graph": { + "select_building": "Select @:terms.buildings", + "individual_building": "Individual @:terms.buildings", + "repair_cost_breakdown": "Repair Cost Breakdown" + } + }, + "cogm": { + "title": "Cost of Goods Manufactured", + "cogm": "@:terms.cogm", + "info": "The cost of goods manufactured is calculated using plan settings that factor in production efficiency, recipe runtime, building degradation, input material costs, labor requirements, and associated labor costs. The final cost is shown per unit of output, based on quantity or full cost allocation.", + "cx_preferences": "@:terms.cx_plural Preferences", + "empire_ticker": "@:terms.empire Ticker", + "planet_ticker": "@:terms.planet Ticker", + "table": { + "parameters": "Parameters", + "recipe_runtime": "@:terms.recipes Runtime", + "percent_day": "% / day", + "efficiency": "Efficiency", + "degradation": "Degradation", + "cost": "@:terms.cost", + "materials": "@:terms.materials_plural", + "input_total": "Input Total", + "material": "@:terms.materials", + "cost_unit": "ȼ / Unit", + "cost_total": "Cost Total", + "cost_total_unit": "ȼ Total", + "workforce": "Workforce", + "total_cost": "Total Cost", + "recipe_profit": "@:terms.recipes Profit", + "cost_split": "Cost Split" + } + } + }, + "components": { + "status": { + "hq": "HQ", + "cogc": "@:{'terms.cogc'}:", + "area": "@:{'terms.area'}:", + "profit": "@:{'terms.profit'}:", + "experts": "@:{'terms.experts_plural'}:" + }, + "configuration": { + "label": "Configuration", + "name": "Name", + "empire": "@:terms.empire" + }, + "area": { + "permits": "@:terms.permits_plural", + "area": "@:terms.area", + "free": "Free" + }, + "bonuses": { + "corp_hq": "Corp. HQ", + "corp_hq_tooltip": "The corporation you belong to has its headquarters on this planet (not your individual company).", + "cogc": "@:terms.cogc" + }, + "infrastructure": { + "label": "Infrastructure", + "auto_optimize": "Auto-Optimize Habs", + "auto_optimize_tooltip": "Automatically optimize habitations to meet workforce needs as buildings are added.", + "buttons": { + "optimize_cost": "Optimize Cost", + "optimize_area": "Optimize Area" + } + }, + "experts": { + "label": "Experts", + "warning": "Maximum number of experts on a base is 6. You currently have {expert_number} experts assigned." + }, + "workforce": { + "label": "Workforce", + "table": { + "type": "Type", + "need": "Need", + "supply": "Supply", + "open": "Open", + "luxuries": "Luxuries", + "pct_eff": "Eff. %" + } + }, + "overview": { + "label": "Overview", + "table": { + "daily_cost": "Daily Cost", + "degradation": "Degradation", + "plan_cost": "Plan Cost", + "daily_profit": "Daily Profit", + "roi": "ROI", + "profit_area": "@:terms.profit_per_area" + } + }, + "storage": { + "label": "Storage", + "table": { + "weight": "t", + "volume": "m³", + "import": "@:terms.import", + "export": "@:terms.export", + "sum": "@:terms.sum", + "filled": "Filled" + } + }, + "materialio": { + "label": "Material I/O", + "label_production": "Production", + "label_workforce": "Workforce", + "buttons": { + "toggle_weight_volume": "Toggle Weight & Volume", + "toggle_production_workforce": "Toggle Production & Workforce Split" + }, + "table": { + "input": "In", + "output": "Out", + "delta": "Δ", + "cost_day": "ȼ / day", + "total_weight": "Δ t", + "total_volume": "Δ m³" + } + }, + "save_as": { + "title": "Save As", + "form": { + "plan_name": "Name", + "plan_name_placeholder": "New @:terms.plan Name", + "empire": "@:terms.empire" + } + }, + "production": { + "label": "Production", + "planet_resources": "@:terms.planets @:terms.resources_plural", + "form": { + "match_cogc": "Match @:terms.cogc", + "select_placeholder": "Select @:terms.buildings & Add to @:terms.plan" + }, + "table": { + "building_recipe": "@:terms.buildings / @:terms.recipes", + "runtime": "Runtime", + "share": "Share", + "tools": "Tools" + } + }, + "production_building": { + "no_recipe": "No Active @:terms.recipes_plural", + "qty": "Qty", + "buttons": { + "add_recipe": "@:terms.recipes" + }, + "table": { + "expertise": "Expertise", + "efficiency": "Efficiency", + "revenue": "@:terms.revenue", + "area": "@:terms.area", + "construction": "Construction" + } + }, + "production_recipe": { + "cogm_title": "Cost Of Goods Manufactured", + "cogm_error": "COGM Calculation not possible. Check your Management View if your Empire has a CX assigned.", + "buttons": { + "cogm": "@:terms.cogm" + }, + "table": { + "input": "Input", + "time": "Time", + "output": "Output", + "daily_revenue": "ȼ / Day", + "profit_area": "ȼ / Area", + "roi": "ROI" + }, + "info": { + "p1_strong": "Revenue / Day", + "p1": "is calculated by taking the daily income generated from a recipe and subtracting both the daily workforce cost (all luxuries provided) and the daily building degradation cost (1/180th of the construction cost). The income from the recipe is based on the difference between the input material costs and the output material values.", + "p2_strong": "ȼ / Area", + "p2": "is the daily revenue divided by the area for one production building and its proportionate share of the area for a CM and habs required for an optimal base of such buildings in Recipe ROI.", + "p3_strong": "ROI", + "p3": "is the time required for a continuously operating recipe to generate enough revenue to offset the building's construction cost. This considers daily degradation and workforce costs as well." + } + } + } +} From 4ae958585d2a41c9211aa9b534dfec7b677e17a4 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:27:17 +0200 Subject: [PATCH 090/237] New translations plan.json (Russian) [ci skip] --- src/locales/ru_RU/plan.json | 289 ++++++++++++++++++++++++++++++++++++ 1 file changed, 289 insertions(+) create mode 100644 src/locales/ru_RU/plan.json diff --git a/src/locales/ru_RU/plan.json b/src/locales/ru_RU/plan.json new file mode 100644 index 00000000..c45b530b --- /dev/null +++ b/src/locales/ru_RU/plan.json @@ -0,0 +1,289 @@ +{ + "notifications": { + "must_have_name": "Must set a plan name in Configuration to save" + }, + "tools": { + "labels": { + "popr": "POPR", + "visitation_frequency": "Visitation Frequency", + "construction_cart": "Construction Cart", + "supply_cart": "Supply Cart", + "repair_analysis": "Repair Analysis", + "workforce": "Workforce" + }, + "popr": { + "title": "Latest Population Report", + "error": "Error loading latest population report. The planet might not have population.", + "loading": "Loading Population Report" + }, + "visitation_frequency": { + "title": "Visitation Frequency", + "storage": { + "label": "Storage", + "info": "Your plan involves adding {storages} giving you a total storage capacity of {total_weight} t and {total_volume} m³.", + "info_no_storage": "Your plan has a total storage capacity of {total_weight} t and {total_volume} m³.", + "table": { + "weight": "t", + "volume": "m³", + "import": "@:terms.import", + "export": "@:terms.export", + "sum": "@:terms.sum", + "storage_filled": "Storage Filled", + "filled_unit": "days" + }, + "exclusion_info": "Exclude local materials from visitation frequency calculation for items handled exclusively planet-side, like local market sales, purchases or contracts." + }, + "shipping": { + "label": "Shipping", + "table": { + "ship_weight": "Ship t", + "ship_volume": "Ship m³", + "visitation_days": "Visitation (days)", + "limit": "Limit", + "export_frequency": "@:terms.export Frequency", + "import_frequency": "@:terms.import Frequency" + } + } + }, + "construction_cart": { + "title": "Construction Cart", + "unplanned_info": "Base has unplanned {buildings} (FIO: {fio_updated}). Demolish to ensure area, habitation and materials are accurate.", + "table": { + "building": "@:terms.buildings", + "built": "Built", + "amount": "Amount", + "habitation_info": "Insufficient habitation will reduce production efficiency.", + "planned": "Planned", + "materials_sum": "Materials Sum", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume", + "material": "Material", + "storage": "Storage", + "stock": "Stock", + "stock_override": "Stock Override", + "need": "Need" + } + }, + "supply_cart": { + "title": "Supply Cart", + "info": { + "p": "The Supply Cart provides updates on your plans needs combined with existing inventory sourced from FIO. You have the flexibility to opt for alternative storage locations to replenish your base. Tailor your selection based on whether you wish to restock workforce and production supplies or focus on a specific category, and specify the duration for which the supplied stock should sustain. Use the {link} tool for more advanced supply cart options.", + "link": "FIO Burn" + }, + "buttons": { + "all": "All", + "workforce": "Workforce", + "production": "Production" + }, + "table": { + "stock_duration": "Stock Duration (days)", + "storage": "Storage", + "xit_name": "Supply Cart", + "ticker": "Ticker", + "daily_need": "Daily Need", + "daily_cost": "Daily Cost", + "stock": "Stock", + "full_need": "Full Need", + "final_need": "Final Need", + "weight": "t", + "volume": "m³", + "workforce": "Workforce", + "production": "Production", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume" + } + }, + "repair_analysis": { + "title": "Repair Analysis", + "plan": "@:terms.plan", + "table": { + "select_day": "Select Day", + "material": "Material", + "amount": "Amount", + "cost": "Cost", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume" + }, + "graph": { + "select_building": "Select @:terms.buildings", + "individual_building": "Individual @:terms.buildings", + "repair_cost_breakdown": "Repair Cost Breakdown" + } + }, + "cogm": { + "title": "Cost of Goods Manufactured", + "cogm": "@:terms.cogm", + "info": "The cost of goods manufactured is calculated using plan settings that factor in production efficiency, recipe runtime, building degradation, input material costs, labor requirements, and associated labor costs. The final cost is shown per unit of output, based on quantity or full cost allocation.", + "cx_preferences": "@:terms.cx_plural Preferences", + "empire_ticker": "@:terms.empire Ticker", + "planet_ticker": "@:terms.planet Ticker", + "table": { + "parameters": "Parameters", + "recipe_runtime": "@:terms.recipes Runtime", + "percent_day": "% / day", + "efficiency": "Efficiency", + "degradation": "Degradation", + "cost": "@:terms.cost", + "materials": "@:terms.materials_plural", + "input_total": "Input Total", + "material": "@:terms.materials", + "cost_unit": "ȼ / Unit", + "cost_total": "Cost Total", + "cost_total_unit": "ȼ Total", + "workforce": "Workforce", + "total_cost": "Total Cost", + "recipe_profit": "@:terms.recipes Profit", + "cost_split": "Cost Split" + } + } + }, + "components": { + "status": { + "hq": "HQ", + "cogc": "@:{'terms.cogc'}:", + "area": "@:{'terms.area'}:", + "profit": "@:{'terms.profit'}:", + "experts": "@:{'terms.experts_plural'}:" + }, + "configuration": { + "label": "Configuration", + "name": "Name", + "empire": "@:terms.empire" + }, + "area": { + "permits": "@:terms.permits_plural", + "area": "@:terms.area", + "free": "Free" + }, + "bonuses": { + "corp_hq": "Corp. HQ", + "corp_hq_tooltip": "The corporation you belong to has its headquarters on this planet (not your individual company).", + "cogc": "@:terms.cogc" + }, + "infrastructure": { + "label": "Infrastructure", + "auto_optimize": "Auto-Optimize Habs", + "auto_optimize_tooltip": "Automatically optimize habitations to meet workforce needs as buildings are added.", + "buttons": { + "optimize_cost": "Optimize Cost", + "optimize_area": "Optimize Area" + } + }, + "experts": { + "label": "Experts", + "warning": "Maximum number of experts on a base is 6. You currently have {expert_number} experts assigned." + }, + "workforce": { + "label": "Workforce", + "table": { + "type": "Type", + "need": "Need", + "supply": "Supply", + "open": "Open", + "luxuries": "Luxuries", + "pct_eff": "Eff. %" + } + }, + "overview": { + "label": "Overview", + "table": { + "daily_cost": "Daily Cost", + "degradation": "Degradation", + "plan_cost": "Plan Cost", + "daily_profit": "Daily Profit", + "roi": "ROI", + "profit_area": "@:terms.profit_per_area" + } + }, + "storage": { + "label": "Storage", + "table": { + "weight": "t", + "volume": "m³", + "import": "@:terms.import", + "export": "@:terms.export", + "sum": "@:terms.sum", + "filled": "Filled" + } + }, + "materialio": { + "label": "Material I/O", + "label_production": "Production", + "label_workforce": "Workforce", + "buttons": { + "toggle_weight_volume": "Toggle Weight & Volume", + "toggle_production_workforce": "Toggle Production & Workforce Split" + }, + "table": { + "input": "In", + "output": "Out", + "delta": "Δ", + "cost_day": "ȼ / day", + "total_weight": "Δ t", + "total_volume": "Δ m³" + } + }, + "save_as": { + "title": "Save As", + "form": { + "plan_name": "Name", + "plan_name_placeholder": "New @:terms.plan Name", + "empire": "@:terms.empire" + } + }, + "production": { + "label": "Production", + "planet_resources": "@:terms.planets @:terms.resources_plural", + "form": { + "match_cogc": "Match @:terms.cogc", + "select_placeholder": "Select @:terms.buildings & Add to @:terms.plan" + }, + "table": { + "building_recipe": "@:terms.buildings / @:terms.recipes", + "runtime": "Runtime", + "share": "Share", + "tools": "Tools" + } + }, + "production_building": { + "no_recipe": "No Active @:terms.recipes_plural", + "qty": "Qty", + "buttons": { + "add_recipe": "@:terms.recipes" + }, + "table": { + "expertise": "Expertise", + "efficiency": "Efficiency", + "revenue": "@:terms.revenue", + "area": "@:terms.area", + "construction": "Construction" + } + }, + "production_recipe": { + "cogm_title": "Cost Of Goods Manufactured", + "cogm_error": "COGM Calculation not possible. Check your Management View if your Empire has a CX assigned.", + "buttons": { + "cogm": "@:terms.cogm" + }, + "table": { + "input": "Input", + "time": "Time", + "output": "Output", + "daily_revenue": "ȼ / Day", + "profit_area": "ȼ / Area", + "roi": "ROI" + }, + "info": { + "p1_strong": "Revenue / Day", + "p1": "is calculated by taking the daily income generated from a recipe and subtracting both the daily workforce cost (all luxuries provided) and the daily building degradation cost (1/180th of the construction cost). The income from the recipe is based on the difference between the input material costs and the output material values.", + "p2_strong": "ȼ / Area", + "p2": "is the daily revenue divided by the area for one production building and its proportionate share of the area for a CM and habs required for an optimal base of such buildings in Recipe ROI.", + "p3_strong": "ROI", + "p3": "is the time required for a continuously operating recipe to generate enough revenue to offset the building's construction cost. This considers daily degradation and workforce costs as well." + } + } + } +} From bad44e7c0aa87369b848fc5120a0740907ab0aa2 Mon Sep 17 00:00:00 2001 From: Jan Date: Thu, 7 May 2026 17:27:19 +0200 Subject: [PATCH 091/237] New translations plan.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/plan.json | 289 ++++++++++++++++++++++++++++++++++++ 1 file changed, 289 insertions(+) create mode 100644 src/locales/zh_CN/plan.json diff --git a/src/locales/zh_CN/plan.json b/src/locales/zh_CN/plan.json new file mode 100644 index 00000000..c45b530b --- /dev/null +++ b/src/locales/zh_CN/plan.json @@ -0,0 +1,289 @@ +{ + "notifications": { + "must_have_name": "Must set a plan name in Configuration to save" + }, + "tools": { + "labels": { + "popr": "POPR", + "visitation_frequency": "Visitation Frequency", + "construction_cart": "Construction Cart", + "supply_cart": "Supply Cart", + "repair_analysis": "Repair Analysis", + "workforce": "Workforce" + }, + "popr": { + "title": "Latest Population Report", + "error": "Error loading latest population report. The planet might not have population.", + "loading": "Loading Population Report" + }, + "visitation_frequency": { + "title": "Visitation Frequency", + "storage": { + "label": "Storage", + "info": "Your plan involves adding {storages} giving you a total storage capacity of {total_weight} t and {total_volume} m³.", + "info_no_storage": "Your plan has a total storage capacity of {total_weight} t and {total_volume} m³.", + "table": { + "weight": "t", + "volume": "m³", + "import": "@:terms.import", + "export": "@:terms.export", + "sum": "@:terms.sum", + "storage_filled": "Storage Filled", + "filled_unit": "days" + }, + "exclusion_info": "Exclude local materials from visitation frequency calculation for items handled exclusively planet-side, like local market sales, purchases or contracts." + }, + "shipping": { + "label": "Shipping", + "table": { + "ship_weight": "Ship t", + "ship_volume": "Ship m³", + "visitation_days": "Visitation (days)", + "limit": "Limit", + "export_frequency": "@:terms.export Frequency", + "import_frequency": "@:terms.import Frequency" + } + } + }, + "construction_cart": { + "title": "Construction Cart", + "unplanned_info": "Base has unplanned {buildings} (FIO: {fio_updated}). Demolish to ensure area, habitation and materials are accurate.", + "table": { + "building": "@:terms.buildings", + "built": "Built", + "amount": "Amount", + "habitation_info": "Insufficient habitation will reduce production efficiency.", + "planned": "Planned", + "materials_sum": "Materials Sum", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume", + "material": "Material", + "storage": "Storage", + "stock": "Stock", + "stock_override": "Stock Override", + "need": "Need" + } + }, + "supply_cart": { + "title": "Supply Cart", + "info": { + "p": "The Supply Cart provides updates on your plans needs combined with existing inventory sourced from FIO. You have the flexibility to opt for alternative storage locations to replenish your base. Tailor your selection based on whether you wish to restock workforce and production supplies or focus on a specific category, and specify the duration for which the supplied stock should sustain. Use the {link} tool for more advanced supply cart options.", + "link": "FIO Burn" + }, + "buttons": { + "all": "All", + "workforce": "Workforce", + "production": "Production" + }, + "table": { + "stock_duration": "Stock Duration (days)", + "storage": "Storage", + "xit_name": "Supply Cart", + "ticker": "Ticker", + "daily_need": "Daily Need", + "daily_cost": "Daily Cost", + "stock": "Stock", + "full_need": "Full Need", + "final_need": "Final Need", + "weight": "t", + "volume": "m³", + "workforce": "Workforce", + "production": "Production", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume" + } + }, + "repair_analysis": { + "title": "Repair Analysis", + "plan": "@:terms.plan", + "table": { + "select_day": "Select Day", + "material": "Material", + "amount": "Amount", + "cost": "Cost", + "total_cost": "Total Cost", + "total_weight": "@:terms.total_weight", + "total_volume": "@:terms.total_volume" + }, + "graph": { + "select_building": "Select @:terms.buildings", + "individual_building": "Individual @:terms.buildings", + "repair_cost_breakdown": "Repair Cost Breakdown" + } + }, + "cogm": { + "title": "Cost of Goods Manufactured", + "cogm": "@:terms.cogm", + "info": "The cost of goods manufactured is calculated using plan settings that factor in production efficiency, recipe runtime, building degradation, input material costs, labor requirements, and associated labor costs. The final cost is shown per unit of output, based on quantity or full cost allocation.", + "cx_preferences": "@:terms.cx_plural Preferences", + "empire_ticker": "@:terms.empire Ticker", + "planet_ticker": "@:terms.planet Ticker", + "table": { + "parameters": "Parameters", + "recipe_runtime": "@:terms.recipes Runtime", + "percent_day": "% / day", + "efficiency": "Efficiency", + "degradation": "Degradation", + "cost": "@:terms.cost", + "materials": "@:terms.materials_plural", + "input_total": "Input Total", + "material": "@:terms.materials", + "cost_unit": "ȼ / Unit", + "cost_total": "Cost Total", + "cost_total_unit": "ȼ Total", + "workforce": "Workforce", + "total_cost": "Total Cost", + "recipe_profit": "@:terms.recipes Profit", + "cost_split": "Cost Split" + } + } + }, + "components": { + "status": { + "hq": "HQ", + "cogc": "@:{'terms.cogc'}:", + "area": "@:{'terms.area'}:", + "profit": "@:{'terms.profit'}:", + "experts": "@:{'terms.experts_plural'}:" + }, + "configuration": { + "label": "Configuration", + "name": "Name", + "empire": "@:terms.empire" + }, + "area": { + "permits": "@:terms.permits_plural", + "area": "@:terms.area", + "free": "Free" + }, + "bonuses": { + "corp_hq": "Corp. HQ", + "corp_hq_tooltip": "The corporation you belong to has its headquarters on this planet (not your individual company).", + "cogc": "@:terms.cogc" + }, + "infrastructure": { + "label": "Infrastructure", + "auto_optimize": "Auto-Optimize Habs", + "auto_optimize_tooltip": "Automatically optimize habitations to meet workforce needs as buildings are added.", + "buttons": { + "optimize_cost": "Optimize Cost", + "optimize_area": "Optimize Area" + } + }, + "experts": { + "label": "Experts", + "warning": "Maximum number of experts on a base is 6. You currently have {expert_number} experts assigned." + }, + "workforce": { + "label": "Workforce", + "table": { + "type": "Type", + "need": "Need", + "supply": "Supply", + "open": "Open", + "luxuries": "Luxuries", + "pct_eff": "Eff. %" + } + }, + "overview": { + "label": "Overview", + "table": { + "daily_cost": "Daily Cost", + "degradation": "Degradation", + "plan_cost": "Plan Cost", + "daily_profit": "Daily Profit", + "roi": "ROI", + "profit_area": "@:terms.profit_per_area" + } + }, + "storage": { + "label": "Storage", + "table": { + "weight": "t", + "volume": "m³", + "import": "@:terms.import", + "export": "@:terms.export", + "sum": "@:terms.sum", + "filled": "Filled" + } + }, + "materialio": { + "label": "Material I/O", + "label_production": "Production", + "label_workforce": "Workforce", + "buttons": { + "toggle_weight_volume": "Toggle Weight & Volume", + "toggle_production_workforce": "Toggle Production & Workforce Split" + }, + "table": { + "input": "In", + "output": "Out", + "delta": "Δ", + "cost_day": "ȼ / day", + "total_weight": "Δ t", + "total_volume": "Δ m³" + } + }, + "save_as": { + "title": "Save As", + "form": { + "plan_name": "Name", + "plan_name_placeholder": "New @:terms.plan Name", + "empire": "@:terms.empire" + } + }, + "production": { + "label": "Production", + "planet_resources": "@:terms.planets @:terms.resources_plural", + "form": { + "match_cogc": "Match @:terms.cogc", + "select_placeholder": "Select @:terms.buildings & Add to @:terms.plan" + }, + "table": { + "building_recipe": "@:terms.buildings / @:terms.recipes", + "runtime": "Runtime", + "share": "Share", + "tools": "Tools" + } + }, + "production_building": { + "no_recipe": "No Active @:terms.recipes_plural", + "qty": "Qty", + "buttons": { + "add_recipe": "@:terms.recipes" + }, + "table": { + "expertise": "Expertise", + "efficiency": "Efficiency", + "revenue": "@:terms.revenue", + "area": "@:terms.area", + "construction": "Construction" + } + }, + "production_recipe": { + "cogm_title": "Cost Of Goods Manufactured", + "cogm_error": "COGM Calculation not possible. Check your Management View if your Empire has a CX assigned.", + "buttons": { + "cogm": "@:terms.cogm" + }, + "table": { + "input": "Input", + "time": "Time", + "output": "Output", + "daily_revenue": "ȼ / Day", + "profit_area": "ȼ / Area", + "roi": "ROI" + }, + "info": { + "p1_strong": "Revenue / Day", + "p1": "is calculated by taking the daily income generated from a recipe and subtracting both the daily workforce cost (all luxuries provided) and the daily building degradation cost (1/180th of the construction cost). The income from the recipe is based on the difference between the input material costs and the output material values.", + "p2_strong": "ȼ / Area", + "p2": "is the daily revenue divided by the area for one production building and its proportionate share of the area for a CM and habs required for an optimal base of such buildings in Recipe ROI.", + "p3_strong": "ROI", + "p3": "is the time required for a continuously operating recipe to generate enough revenue to offset the building's construction cost. This considers daily degradation and workforce costs as well." + } + } + } +} From 3ebdc5764147f977f6f2cd7de08e5d108a2ae5ca Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 05:29:25 +0200 Subject: [PATCH 092/237] New translations common.json (German) [ci skip] --- src/locales/de_DE/common.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/locales/de_DE/common.json b/src/locales/de_DE/common.json index 37b0206e..6e84377e 100644 --- a/src/locales/de_DE/common.json +++ b/src/locales/de_DE/common.json @@ -33,7 +33,7 @@ "buttons": { "create": "Erstellen", "save": "Speichern", - "save_as": "Save As", + "save_as": "Speichern unter", "reload": "Aktualisieren", "show": "Anzeigen", "hide": "Verstecken", @@ -45,7 +45,7 @@ "no": "Nein", "delete": "Löschen", "cancel": "Abbrechen", - "clone_plan": "Clone Plan", - "clone_complete": "Cloning Complete" + "clone_plan": "Plan duplizieren", + "clone_complete": "Klonen abgeschlossen" } } From a8ef5d776f2b81da6fea47517c5991307aeeebac Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 05:29:30 +0200 Subject: [PATCH 093/237] New translations game.json (German) [ci skip] --- src/locales/de_DE/game.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/de_DE/game.json b/src/locales/de_DE/game.json index 5ef5f2ef..20a0d035 100644 --- a/src/locales/de_DE/game.json +++ b/src/locales/de_DE/game.json @@ -16,7 +16,7 @@ "HQ": "HQ", "EXPERT": "Experts", "COGC": "COGC", - "FERTILITY": "Fertility", + "FERTILITY": "Fruchtbarkeit", "FACTION": "Faction" }, "expertise": { From cd992a418d224ccb753d075b3af3dd5429730b70 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 05:29:40 +0200 Subject: [PATCH 094/237] New translations empire.md (Spanish) [ci skip] --- src/assets/help/es_ES/empire.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/assets/help/es_ES/empire.md b/src/assets/help/es_ES/empire.md index e82848a8..8cbdd5f3 100644 --- a/src/assets/help/es_ES/empire.md +++ b/src/assets/help/es_ES/empire.md @@ -2,6 +2,6 @@ The **Empire view** gives you a complete overview of your plans and their combin In addition to tracking production, the empire automatically calculates your **daily profit, costs** (including materials, workforce, and degradation), and total **revenue** based on your personal exchange preferences. These figures aren’t just a simple sum of your plans—they use weighted prices that take both production and consumption into account across the entire empire. -The **Empire Material I/O** view shows how much of each material your empire produces and where. You can filter consumables in or out, or focus purely on load balancing, comparing production and consumption at a glance. +La vista de **Material del Imperio I/O** muestra cuánto de cada material tu imperio produce y dónde. Puede filtrar los consumibles dentro o fuera, o centrarse exclusivamente en el balance de carga, comparando producción y consumo de un vistazo. -Finally, the **Empire Analysis** provides charts that break down your profits by plans and materials. You can also explore what your empire net produces or consumes, as well as which materials are produced or consumed exclusively. +Finally, the **Empire Analysis** provides charts that break down your profits by plans and materials. También puede explorar lo que su red imperial produce o consume, así como qué materiales se producen o consumen exclusivamente. From 1020518fd756ab8a339ecc8e992094f8920c7ae9 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 05:29:41 +0200 Subject: [PATCH 095/237] New translations government.json (German) [ci skip] --- src/locales/de_DE/government.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/locales/de_DE/government.json b/src/locales/de_DE/government.json index 2a00d90b..7b72e71a 100644 --- a/src/locales/de_DE/government.json +++ b/src/locales/de_DE/government.json @@ -1,15 +1,15 @@ { "popr_button": { - "no_data": "Planet {planet_id} has no population data", + "no_data": "Planet {planet_id} hat keine Bevölkerungsdaten", "buttons": { - "no_popr": "No POPR" + "no_popr": "Kein POPR" }, "table": { - "total_population": "Total Population", - "free_population": "Free Population", - "free_population_pct": "Free Population %", - "unfilled_jobs": "Unfilled Jobs", - "plan_need": "@:terms.plan Need", + "total_population": "Gesamtbevölkerung", + "free_population": "Freie Bevölkerung", + "free_population_pct": "Freie Bevölkerung %", + "unfilled_jobs": "Ungefüllte Jobs", + "plan_need": "@:terms.plan Bedarf", "plan_check": "@:terms.plan Check" } } From 1723203516eeb79fa778424d1fc18ac3be79f711 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:21 +0200 Subject: [PATCH 096/237] New translations common.json (French) [ci skip] --- src/locales/fr_FR/common.json | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/locales/fr_FR/common.json b/src/locales/fr_FR/common.json index b7436a4e..60ae9f5a 100644 --- a/src/locales/fr_FR/common.json +++ b/src/locales/fr_FR/common.json @@ -41,11 +41,24 @@ "search": "Search", "default": "Default", "select_all": "Select All", + "discard": "Discard", "yes": "Yes", "no": "No", "delete": "Delete", "cancel": "Cancel", "clone_plan": "Clone Plan", - "clone_complete": "Cloning Complete" + "clone_complete": "Cloning Complete", + "copy": "Copy" + }, + "ui": { + "placeholder": { + "please_input": "Please Input", + "please_select": "Please Select", + "search": "Search" + }, + "select": { + "no_results": "No Results", + "select_options": "Select Options" + } } } From b089c73726c22db27a15248005ef2b81e6bababd Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:22 +0200 Subject: [PATCH 097/237] New translations common.json (Spanish) [ci skip] --- src/locales/es_ES/common.json | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/locales/es_ES/common.json b/src/locales/es_ES/common.json index b7436a4e..60ae9f5a 100644 --- a/src/locales/es_ES/common.json +++ b/src/locales/es_ES/common.json @@ -41,11 +41,24 @@ "search": "Search", "default": "Default", "select_all": "Select All", + "discard": "Discard", "yes": "Yes", "no": "No", "delete": "Delete", "cancel": "Cancel", "clone_plan": "Clone Plan", - "clone_complete": "Cloning Complete" + "clone_complete": "Cloning Complete", + "copy": "Copy" + }, + "ui": { + "placeholder": { + "please_input": "Please Input", + "please_select": "Please Select", + "search": "Search" + }, + "select": { + "no_results": "No Results", + "select_options": "Select Options" + } } } From 81526c88f22f63dc26905c8aa2aa68e6aa7167f4 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:24 +0200 Subject: [PATCH 098/237] New translations common.json (German) [ci skip] --- src/locales/de_DE/common.json | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/locales/de_DE/common.json b/src/locales/de_DE/common.json index 6e84377e..7d3ff623 100644 --- a/src/locales/de_DE/common.json +++ b/src/locales/de_DE/common.json @@ -41,11 +41,24 @@ "search": "Suchen", "default": "Standard", "select_all": "Alles Auswählen", + "discard": "Discard", "yes": "Ja", "no": "Nein", "delete": "Löschen", "cancel": "Abbrechen", "clone_plan": "Plan duplizieren", - "clone_complete": "Klonen abgeschlossen" + "clone_complete": "Klonen abgeschlossen", + "copy": "Copy" + }, + "ui": { + "placeholder": { + "please_input": "Please Input", + "please_select": "Please Select", + "search": "Search" + }, + "select": { + "no_results": "No Results", + "select_options": "Select Options" + } } } From 0486285c10ce44d245fedc12e1a26b76398502ea Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:25 +0200 Subject: [PATCH 099/237] New translations common.json (Italian) [ci skip] --- src/locales/it_IT/common.json | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/locales/it_IT/common.json b/src/locales/it_IT/common.json index b7436a4e..60ae9f5a 100644 --- a/src/locales/it_IT/common.json +++ b/src/locales/it_IT/common.json @@ -41,11 +41,24 @@ "search": "Search", "default": "Default", "select_all": "Select All", + "discard": "Discard", "yes": "Yes", "no": "No", "delete": "Delete", "cancel": "Cancel", "clone_plan": "Clone Plan", - "clone_complete": "Cloning Complete" + "clone_complete": "Cloning Complete", + "copy": "Copy" + }, + "ui": { + "placeholder": { + "please_input": "Please Input", + "please_select": "Please Select", + "search": "Search" + }, + "select": { + "no_results": "No Results", + "select_options": "Select Options" + } } } From a276434fc7e983c5ee41a70d29ac2c3c3250dc36 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:26 +0200 Subject: [PATCH 100/237] New translations common.json (Japanese) [ci skip] --- src/locales/ja_JP/common.json | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/locales/ja_JP/common.json b/src/locales/ja_JP/common.json index b7436a4e..60ae9f5a 100644 --- a/src/locales/ja_JP/common.json +++ b/src/locales/ja_JP/common.json @@ -41,11 +41,24 @@ "search": "Search", "default": "Default", "select_all": "Select All", + "discard": "Discard", "yes": "Yes", "no": "No", "delete": "Delete", "cancel": "Cancel", "clone_plan": "Clone Plan", - "clone_complete": "Cloning Complete" + "clone_complete": "Cloning Complete", + "copy": "Copy" + }, + "ui": { + "placeholder": { + "please_input": "Please Input", + "please_select": "Please Select", + "search": "Search" + }, + "select": { + "no_results": "No Results", + "select_options": "Select Options" + } } } From 8d7b9c5d0625f79b45f12b50c408da6cd32809ff Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:27 +0200 Subject: [PATCH 101/237] New translations common.json (Korean) [ci skip] --- src/locales/ko_KR/common.json | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/locales/ko_KR/common.json b/src/locales/ko_KR/common.json index b7436a4e..60ae9f5a 100644 --- a/src/locales/ko_KR/common.json +++ b/src/locales/ko_KR/common.json @@ -41,11 +41,24 @@ "search": "Search", "default": "Default", "select_all": "Select All", + "discard": "Discard", "yes": "Yes", "no": "No", "delete": "Delete", "cancel": "Cancel", "clone_plan": "Clone Plan", - "clone_complete": "Cloning Complete" + "clone_complete": "Cloning Complete", + "copy": "Copy" + }, + "ui": { + "placeholder": { + "please_input": "Please Input", + "please_select": "Please Select", + "search": "Search" + }, + "select": { + "no_results": "No Results", + "select_options": "Select Options" + } } } From d1491d3cee2ee3cdf7d12f458d97b077df7ce324 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:29 +0200 Subject: [PATCH 102/237] New translations common.json (Dutch) [ci skip] --- src/locales/nl_NL/common.json | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/locales/nl_NL/common.json b/src/locales/nl_NL/common.json index 436a817d..4fd78c4e 100644 --- a/src/locales/nl_NL/common.json +++ b/src/locales/nl_NL/common.json @@ -41,11 +41,24 @@ "search": "Zoeken", "default": "Standaard", "select_all": "Alles Selecteren", + "discard": "Discard", "yes": "Ja", "no": "Nee", "delete": "Verwijderen", "cancel": "Annuleren", "clone_plan": "Clone Plan", - "clone_complete": "Cloning Complete" + "clone_complete": "Cloning Complete", + "copy": "Copy" + }, + "ui": { + "placeholder": { + "please_input": "Please Input", + "please_select": "Please Select", + "search": "Search" + }, + "select": { + "no_results": "No Results", + "select_options": "Select Options" + } } } From 9560d211eb6038b9bb52fe7e2968f9e62cbd1298 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:30 +0200 Subject: [PATCH 103/237] New translations common.json (Portuguese) [ci skip] --- src/locales/pt_PT/common.json | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/locales/pt_PT/common.json b/src/locales/pt_PT/common.json index b7436a4e..60ae9f5a 100644 --- a/src/locales/pt_PT/common.json +++ b/src/locales/pt_PT/common.json @@ -41,11 +41,24 @@ "search": "Search", "default": "Default", "select_all": "Select All", + "discard": "Discard", "yes": "Yes", "no": "No", "delete": "Delete", "cancel": "Cancel", "clone_plan": "Clone Plan", - "clone_complete": "Cloning Complete" + "clone_complete": "Cloning Complete", + "copy": "Copy" + }, + "ui": { + "placeholder": { + "please_input": "Please Input", + "please_select": "Please Select", + "search": "Search" + }, + "select": { + "no_results": "No Results", + "select_options": "Select Options" + } } } From a41770a383217f1c4de07c9d022d0229f3ca14cd Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:31 +0200 Subject: [PATCH 104/237] New translations common.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/common.json | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/locales/zh_CN/common.json b/src/locales/zh_CN/common.json index 769af31b..73899be9 100644 --- a/src/locales/zh_CN/common.json +++ b/src/locales/zh_CN/common.json @@ -41,11 +41,24 @@ "search": "Search", "default": "Default", "select_all": "Select All", + "discard": "Discard", "yes": "Yes", "no": "No", "delete": "Delete", "cancel": "Cancel", "clone_plan": "Clone Plan", - "clone_complete": "Cloning Complete" + "clone_complete": "Cloning Complete", + "copy": "Copy" + }, + "ui": { + "placeholder": { + "please_input": "Please Input", + "please_select": "Please Select", + "search": "Search" + }, + "select": { + "no_results": "No Results", + "select_options": "Select Options" + } } } From 95982d7cc798e653ffbec87ab9db237621b9a634 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:38 +0200 Subject: [PATCH 105/237] New translations game.json (French) [ci skip] --- src/locales/fr_FR/game.json | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/locales/fr_FR/game.json b/src/locales/fr_FR/game.json index b602cdb7..f3e19d40 100644 --- a/src/locales/fr_FR/game.json +++ b/src/locales/fr_FR/game.json @@ -66,6 +66,42 @@ "WORKFORCE_ENGINEERS": "ENG", "WORKFORCE_SCIENTISTS": "SCI" }, + "material_category": { + "agricultural_products": "Agricultural Products", + "alloys": "Alloys", + "chemicals": "Chemicals", + "construction_materials": "Construction Materials", + "construction_parts": "Construction Parts", + "construction_prefabs": "Construction Prefabs", + "consumable_bundles": "Consumable Bundles", + "consumables_(basic)": "Consumables Basic", + "consumables_(luxury)": "Consumables Luxury", + "drones": "Drones", + "electronic_devices": "Electronic Devices", + "electronic_parts": "Electronic Parts", + "electronic_pieces": "Electronic Pieces", + "electronic_systems": "Electronic Systems", + "elements": "Elements", + "energy_systems": "Energy Systems", + "fuels": "Fuels", + "gases": "Gases", + "liquids": "Liquids", + "medical_equipment": "Medical Equipment", + "metals": "Metals", + "minerals": "Minerals", + "ores": "Ores", + "plastics": "Plastics", + "ship_engines": "Ship Engines", + "ship_kits": "Ship Kits", + "ship_parts": "Ship Parts", + "ship_shields": "Ship Shields", + "software_components": "Software Components", + "software_systems": "Software Systems", + "software_tools": "Software Tools", + "textiles": "Textiles", + "unit_prefabs": "Unit Prefabs", + "utility": "Utility" + }, "upkeep": { "safety": "Safety", "health": "Health", From 0943c147c2ba3b29a207a92a4fe9fd971788afa4 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:39 +0200 Subject: [PATCH 106/237] New translations game.json (Spanish) [ci skip] --- src/locales/es_ES/game.json | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/locales/es_ES/game.json b/src/locales/es_ES/game.json index b602cdb7..f3e19d40 100644 --- a/src/locales/es_ES/game.json +++ b/src/locales/es_ES/game.json @@ -66,6 +66,42 @@ "WORKFORCE_ENGINEERS": "ENG", "WORKFORCE_SCIENTISTS": "SCI" }, + "material_category": { + "agricultural_products": "Agricultural Products", + "alloys": "Alloys", + "chemicals": "Chemicals", + "construction_materials": "Construction Materials", + "construction_parts": "Construction Parts", + "construction_prefabs": "Construction Prefabs", + "consumable_bundles": "Consumable Bundles", + "consumables_(basic)": "Consumables Basic", + "consumables_(luxury)": "Consumables Luxury", + "drones": "Drones", + "electronic_devices": "Electronic Devices", + "electronic_parts": "Electronic Parts", + "electronic_pieces": "Electronic Pieces", + "electronic_systems": "Electronic Systems", + "elements": "Elements", + "energy_systems": "Energy Systems", + "fuels": "Fuels", + "gases": "Gases", + "liquids": "Liquids", + "medical_equipment": "Medical Equipment", + "metals": "Metals", + "minerals": "Minerals", + "ores": "Ores", + "plastics": "Plastics", + "ship_engines": "Ship Engines", + "ship_kits": "Ship Kits", + "ship_parts": "Ship Parts", + "ship_shields": "Ship Shields", + "software_components": "Software Components", + "software_systems": "Software Systems", + "software_tools": "Software Tools", + "textiles": "Textiles", + "unit_prefabs": "Unit Prefabs", + "utility": "Utility" + }, "upkeep": { "safety": "Safety", "health": "Health", From 82dfa4537e36b5eee8e64699b1238ce921ebac9d Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:40 +0200 Subject: [PATCH 107/237] New translations game.json (German) [ci skip] --- src/locales/de_DE/game.json | 46 +++++++++++++++++++++++++++++++++---- 1 file changed, 41 insertions(+), 5 deletions(-) diff --git a/src/locales/de_DE/game.json b/src/locales/de_DE/game.json index 20a0d035..d21b4dbc 100644 --- a/src/locales/de_DE/game.json +++ b/src/locales/de_DE/game.json @@ -5,11 +5,11 @@ "PRODUCTION": "Produktion" }, "workforce_type": { - "pioneer": "Pioneer", - "settler": "Settler", - "technician": "Technician", - "engineer": "Engineer", - "scientist": "Scientist" + "pioneer": "Pioniere", + "settler": "Siedler", + "technician": "Techniker", + "engineer": "Ingenieur", + "scientist": "Wissenschaftler" }, "efficiency_type": { "WORKFORCE": "Workforce", @@ -66,6 +66,42 @@ "WORKFORCE_ENGINEERS": "ING", "WORKFORCE_SCIENTISTS": "WISS" }, + "material_category": { + "agricultural_products": "Agricultural Products", + "alloys": "Alloys", + "chemicals": "Chemicals", + "construction_materials": "Construction Materials", + "construction_parts": "Construction Parts", + "construction_prefabs": "Construction Prefabs", + "consumable_bundles": "Consumable Bundles", + "consumables_(basic)": "Consumables Basic", + "consumables_(luxury)": "Consumables Luxury", + "drones": "Drones", + "electronic_devices": "Electronic Devices", + "electronic_parts": "Electronic Parts", + "electronic_pieces": "Electronic Pieces", + "electronic_systems": "Electronic Systems", + "elements": "Elements", + "energy_systems": "Energy Systems", + "fuels": "Fuels", + "gases": "Gases", + "liquids": "Liquids", + "medical_equipment": "Medical Equipment", + "metals": "Metals", + "minerals": "Minerals", + "ores": "Ores", + "plastics": "Plastics", + "ship_engines": "Ship Engines", + "ship_kits": "Ship Kits", + "ship_parts": "Ship Parts", + "ship_shields": "Ship Shields", + "software_components": "Software Components", + "software_systems": "Software Systems", + "software_tools": "Software Tools", + "textiles": "Textiles", + "unit_prefabs": "Unit Prefabs", + "utility": "Utility" + }, "upkeep": { "safety": "Sicherheit", "health": "Gesundheit", From 99fbd64f437dd6502d3e8c51e331f5d7a5c390fe Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:42 +0200 Subject: [PATCH 108/237] New translations game.json (Italian) [ci skip] --- src/locales/it_IT/game.json | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/locales/it_IT/game.json b/src/locales/it_IT/game.json index b602cdb7..f3e19d40 100644 --- a/src/locales/it_IT/game.json +++ b/src/locales/it_IT/game.json @@ -66,6 +66,42 @@ "WORKFORCE_ENGINEERS": "ENG", "WORKFORCE_SCIENTISTS": "SCI" }, + "material_category": { + "agricultural_products": "Agricultural Products", + "alloys": "Alloys", + "chemicals": "Chemicals", + "construction_materials": "Construction Materials", + "construction_parts": "Construction Parts", + "construction_prefabs": "Construction Prefabs", + "consumable_bundles": "Consumable Bundles", + "consumables_(basic)": "Consumables Basic", + "consumables_(luxury)": "Consumables Luxury", + "drones": "Drones", + "electronic_devices": "Electronic Devices", + "electronic_parts": "Electronic Parts", + "electronic_pieces": "Electronic Pieces", + "electronic_systems": "Electronic Systems", + "elements": "Elements", + "energy_systems": "Energy Systems", + "fuels": "Fuels", + "gases": "Gases", + "liquids": "Liquids", + "medical_equipment": "Medical Equipment", + "metals": "Metals", + "minerals": "Minerals", + "ores": "Ores", + "plastics": "Plastics", + "ship_engines": "Ship Engines", + "ship_kits": "Ship Kits", + "ship_parts": "Ship Parts", + "ship_shields": "Ship Shields", + "software_components": "Software Components", + "software_systems": "Software Systems", + "software_tools": "Software Tools", + "textiles": "Textiles", + "unit_prefabs": "Unit Prefabs", + "utility": "Utility" + }, "upkeep": { "safety": "Safety", "health": "Health", From f48bf4f883ca3e242655a0f8f6e557f28e212fac Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:43 +0200 Subject: [PATCH 109/237] New translations game.json (Japanese) [ci skip] --- src/locales/ja_JP/game.json | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/locales/ja_JP/game.json b/src/locales/ja_JP/game.json index b602cdb7..f3e19d40 100644 --- a/src/locales/ja_JP/game.json +++ b/src/locales/ja_JP/game.json @@ -66,6 +66,42 @@ "WORKFORCE_ENGINEERS": "ENG", "WORKFORCE_SCIENTISTS": "SCI" }, + "material_category": { + "agricultural_products": "Agricultural Products", + "alloys": "Alloys", + "chemicals": "Chemicals", + "construction_materials": "Construction Materials", + "construction_parts": "Construction Parts", + "construction_prefabs": "Construction Prefabs", + "consumable_bundles": "Consumable Bundles", + "consumables_(basic)": "Consumables Basic", + "consumables_(luxury)": "Consumables Luxury", + "drones": "Drones", + "electronic_devices": "Electronic Devices", + "electronic_parts": "Electronic Parts", + "electronic_pieces": "Electronic Pieces", + "electronic_systems": "Electronic Systems", + "elements": "Elements", + "energy_systems": "Energy Systems", + "fuels": "Fuels", + "gases": "Gases", + "liquids": "Liquids", + "medical_equipment": "Medical Equipment", + "metals": "Metals", + "minerals": "Minerals", + "ores": "Ores", + "plastics": "Plastics", + "ship_engines": "Ship Engines", + "ship_kits": "Ship Kits", + "ship_parts": "Ship Parts", + "ship_shields": "Ship Shields", + "software_components": "Software Components", + "software_systems": "Software Systems", + "software_tools": "Software Tools", + "textiles": "Textiles", + "unit_prefabs": "Unit Prefabs", + "utility": "Utility" + }, "upkeep": { "safety": "Safety", "health": "Health", From dcb4c84383454b550da7a0f624bd17ef96ea0d3f Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:44 +0200 Subject: [PATCH 110/237] New translations game.json (Korean) [ci skip] --- src/locales/ko_KR/game.json | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/locales/ko_KR/game.json b/src/locales/ko_KR/game.json index b602cdb7..f3e19d40 100644 --- a/src/locales/ko_KR/game.json +++ b/src/locales/ko_KR/game.json @@ -66,6 +66,42 @@ "WORKFORCE_ENGINEERS": "ENG", "WORKFORCE_SCIENTISTS": "SCI" }, + "material_category": { + "agricultural_products": "Agricultural Products", + "alloys": "Alloys", + "chemicals": "Chemicals", + "construction_materials": "Construction Materials", + "construction_parts": "Construction Parts", + "construction_prefabs": "Construction Prefabs", + "consumable_bundles": "Consumable Bundles", + "consumables_(basic)": "Consumables Basic", + "consumables_(luxury)": "Consumables Luxury", + "drones": "Drones", + "electronic_devices": "Electronic Devices", + "electronic_parts": "Electronic Parts", + "electronic_pieces": "Electronic Pieces", + "electronic_systems": "Electronic Systems", + "elements": "Elements", + "energy_systems": "Energy Systems", + "fuels": "Fuels", + "gases": "Gases", + "liquids": "Liquids", + "medical_equipment": "Medical Equipment", + "metals": "Metals", + "minerals": "Minerals", + "ores": "Ores", + "plastics": "Plastics", + "ship_engines": "Ship Engines", + "ship_kits": "Ship Kits", + "ship_parts": "Ship Parts", + "ship_shields": "Ship Shields", + "software_components": "Software Components", + "software_systems": "Software Systems", + "software_tools": "Software Tools", + "textiles": "Textiles", + "unit_prefabs": "Unit Prefabs", + "utility": "Utility" + }, "upkeep": { "safety": "Safety", "health": "Health", From 9fab71bb502e2e24a74737f53f783e1c0101e7d8 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:46 +0200 Subject: [PATCH 111/237] New translations game.json (Dutch) [ci skip] --- src/locales/nl_NL/game.json | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/locales/nl_NL/game.json b/src/locales/nl_NL/game.json index b602cdb7..f3e19d40 100644 --- a/src/locales/nl_NL/game.json +++ b/src/locales/nl_NL/game.json @@ -66,6 +66,42 @@ "WORKFORCE_ENGINEERS": "ENG", "WORKFORCE_SCIENTISTS": "SCI" }, + "material_category": { + "agricultural_products": "Agricultural Products", + "alloys": "Alloys", + "chemicals": "Chemicals", + "construction_materials": "Construction Materials", + "construction_parts": "Construction Parts", + "construction_prefabs": "Construction Prefabs", + "consumable_bundles": "Consumable Bundles", + "consumables_(basic)": "Consumables Basic", + "consumables_(luxury)": "Consumables Luxury", + "drones": "Drones", + "electronic_devices": "Electronic Devices", + "electronic_parts": "Electronic Parts", + "electronic_pieces": "Electronic Pieces", + "electronic_systems": "Electronic Systems", + "elements": "Elements", + "energy_systems": "Energy Systems", + "fuels": "Fuels", + "gases": "Gases", + "liquids": "Liquids", + "medical_equipment": "Medical Equipment", + "metals": "Metals", + "minerals": "Minerals", + "ores": "Ores", + "plastics": "Plastics", + "ship_engines": "Ship Engines", + "ship_kits": "Ship Kits", + "ship_parts": "Ship Parts", + "ship_shields": "Ship Shields", + "software_components": "Software Components", + "software_systems": "Software Systems", + "software_tools": "Software Tools", + "textiles": "Textiles", + "unit_prefabs": "Unit Prefabs", + "utility": "Utility" + }, "upkeep": { "safety": "Safety", "health": "Health", From b96e6bdd53a5aff4b9f99aaa08e16a5fdf628775 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:47 +0200 Subject: [PATCH 112/237] New translations game.json (Portuguese) [ci skip] --- src/locales/pt_PT/game.json | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/locales/pt_PT/game.json b/src/locales/pt_PT/game.json index b602cdb7..f3e19d40 100644 --- a/src/locales/pt_PT/game.json +++ b/src/locales/pt_PT/game.json @@ -66,6 +66,42 @@ "WORKFORCE_ENGINEERS": "ENG", "WORKFORCE_SCIENTISTS": "SCI" }, + "material_category": { + "agricultural_products": "Agricultural Products", + "alloys": "Alloys", + "chemicals": "Chemicals", + "construction_materials": "Construction Materials", + "construction_parts": "Construction Parts", + "construction_prefabs": "Construction Prefabs", + "consumable_bundles": "Consumable Bundles", + "consumables_(basic)": "Consumables Basic", + "consumables_(luxury)": "Consumables Luxury", + "drones": "Drones", + "electronic_devices": "Electronic Devices", + "electronic_parts": "Electronic Parts", + "electronic_pieces": "Electronic Pieces", + "electronic_systems": "Electronic Systems", + "elements": "Elements", + "energy_systems": "Energy Systems", + "fuels": "Fuels", + "gases": "Gases", + "liquids": "Liquids", + "medical_equipment": "Medical Equipment", + "metals": "Metals", + "minerals": "Minerals", + "ores": "Ores", + "plastics": "Plastics", + "ship_engines": "Ship Engines", + "ship_kits": "Ship Kits", + "ship_parts": "Ship Parts", + "ship_shields": "Ship Shields", + "software_components": "Software Components", + "software_systems": "Software Systems", + "software_tools": "Software Tools", + "textiles": "Textiles", + "unit_prefabs": "Unit Prefabs", + "utility": "Utility" + }, "upkeep": { "safety": "Safety", "health": "Health", From 69b651ca5a4bf7868b17ba7f919284d798fa0811 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:48 +0200 Subject: [PATCH 113/237] New translations game.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/game.json | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/locales/zh_CN/game.json b/src/locales/zh_CN/game.json index b1049103..7ef74fdd 100644 --- a/src/locales/zh_CN/game.json +++ b/src/locales/zh_CN/game.json @@ -66,6 +66,42 @@ "WORKFORCE_ENGINEERS": "工程师", "WORKFORCE_SCIENTISTS": "科学家" }, + "material_category": { + "agricultural_products": "Agricultural Products", + "alloys": "Alloys", + "chemicals": "Chemicals", + "construction_materials": "Construction Materials", + "construction_parts": "Construction Parts", + "construction_prefabs": "Construction Prefabs", + "consumable_bundles": "Consumable Bundles", + "consumables_(basic)": "Consumables Basic", + "consumables_(luxury)": "Consumables Luxury", + "drones": "Drones", + "electronic_devices": "Electronic Devices", + "electronic_parts": "Electronic Parts", + "electronic_pieces": "Electronic Pieces", + "electronic_systems": "Electronic Systems", + "elements": "Elements", + "energy_systems": "Energy Systems", + "fuels": "Fuels", + "gases": "Gases", + "liquids": "Liquids", + "medical_equipment": "Medical Equipment", + "metals": "Metals", + "minerals": "Minerals", + "ores": "Ores", + "plastics": "Plastics", + "ship_engines": "Ship Engines", + "ship_kits": "Ship Kits", + "ship_parts": "Ship Parts", + "ship_shields": "Ship Shields", + "software_components": "Software Components", + "software_systems": "Software Systems", + "software_tools": "Software Tools", + "textiles": "Textiles", + "unit_prefabs": "Unit Prefabs", + "utility": "Utility" + }, "upkeep": { "safety": "Safety", "health": "Health", From 58f3ee1955c18b71d6dc9380e44cc183465072da Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:55 +0200 Subject: [PATCH 114/237] New translations terms.json (French) [ci skip] --- src/locales/fr_FR/terms.json | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/locales/fr_FR/terms.json b/src/locales/fr_FR/terms.json index 5ee0ed83..a8dd9686 100644 --- a/src/locales/fr_FR/terms.json +++ b/src/locales/fr_FR/terms.json @@ -7,7 +7,9 @@ "ask": "Ask", "bid": "Bid", "buffer": "Buffer", + "buildings_plural": "Buildings", "buildings": "Building | Buildings", + "burn": "Burn", "cogc": "COGC", "cogm": "COGM", "consumption": "Consumption", @@ -17,10 +19,12 @@ "delta_price": "ȼ Delta", "delta": "Delta", "demand": "Demand", + "empire_plural": "Empires", "empire": "Empire | Empires", "exchanges": "Exchange | Exchanges", "experts_plural": "Experts", "experts": "Expert | Experts", + "export": "Export", "faction": "Faction", "fertility": "Fertility", "filter": "Filter", @@ -29,10 +33,12 @@ "gravity": "Gravity", "high": "High", "hq": "HQ", + "import": "Import", "low": "Low", "material_ticker": "Ticker", "materials_plural": "Materials", "materials": "Material | Materials", + "override": " Override", "permits_plural": "Permits", "permits": "Permit | Permits", "plan": "Plan | Plans", @@ -41,6 +47,7 @@ "plans_plural": "Plans", "popr": "POPR", "pressure": "Pressure", + "price": "Price", "production": "Production", "profit_per_area": "Profit / Area", "profit": "Profit", @@ -51,7 +58,9 @@ "revenue": "Revenue", "rocky": "Rocky", "spread": "Spread", + "stock": "Stock", "storage": "Storage", + "sum": "∑", "supply": "Supply", "surface": "Surface", "temperature": "Temperature", @@ -60,8 +69,5 @@ "trend": "Trend", "volume": "Volume", "vwap": "VWAP", - "weight": "Weight", - "import": "Import", - "export": "Export", - "sum": "∑" + "weight": "Weight" } From c5a4c68f772495bac0a9d832beac9db0c5798a2e Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:56 +0200 Subject: [PATCH 115/237] New translations terms.json (Spanish) [ci skip] --- src/locales/es_ES/terms.json | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/locales/es_ES/terms.json b/src/locales/es_ES/terms.json index 5ee0ed83..a8dd9686 100644 --- a/src/locales/es_ES/terms.json +++ b/src/locales/es_ES/terms.json @@ -7,7 +7,9 @@ "ask": "Ask", "bid": "Bid", "buffer": "Buffer", + "buildings_plural": "Buildings", "buildings": "Building | Buildings", + "burn": "Burn", "cogc": "COGC", "cogm": "COGM", "consumption": "Consumption", @@ -17,10 +19,12 @@ "delta_price": "ȼ Delta", "delta": "Delta", "demand": "Demand", + "empire_plural": "Empires", "empire": "Empire | Empires", "exchanges": "Exchange | Exchanges", "experts_plural": "Experts", "experts": "Expert | Experts", + "export": "Export", "faction": "Faction", "fertility": "Fertility", "filter": "Filter", @@ -29,10 +33,12 @@ "gravity": "Gravity", "high": "High", "hq": "HQ", + "import": "Import", "low": "Low", "material_ticker": "Ticker", "materials_plural": "Materials", "materials": "Material | Materials", + "override": " Override", "permits_plural": "Permits", "permits": "Permit | Permits", "plan": "Plan | Plans", @@ -41,6 +47,7 @@ "plans_plural": "Plans", "popr": "POPR", "pressure": "Pressure", + "price": "Price", "production": "Production", "profit_per_area": "Profit / Area", "profit": "Profit", @@ -51,7 +58,9 @@ "revenue": "Revenue", "rocky": "Rocky", "spread": "Spread", + "stock": "Stock", "storage": "Storage", + "sum": "∑", "supply": "Supply", "surface": "Surface", "temperature": "Temperature", @@ -60,8 +69,5 @@ "trend": "Trend", "volume": "Volume", "vwap": "VWAP", - "weight": "Weight", - "import": "Import", - "export": "Export", - "sum": "∑" + "weight": "Weight" } From 62fb9c12f57606d47e90f0b6c8b9a5a169d2faa4 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:57 +0200 Subject: [PATCH 116/237] New translations terms.json (German) [ci skip] --- src/locales/de_DE/terms.json | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/locales/de_DE/terms.json b/src/locales/de_DE/terms.json index 30365f1a..1242db3f 100644 --- a/src/locales/de_DE/terms.json +++ b/src/locales/de_DE/terms.json @@ -7,7 +7,9 @@ "ask": "Ankauf", "bid": "Verkauf", "buffer": "Fenster", + "buildings_plural": "Buildings", "buildings": "Gebäude | Gebäude", + "burn": "Burn", "cogc": "COGC", "cogm": "COGM", "consumption": "Verbrauch", @@ -17,10 +19,12 @@ "delta_price": "ȼ Delta", "delta": "Delta", "demand": "Nachfrage", + "empire_plural": "Empires", "empire": "Imperium | Imperien", "exchanges": "Marktplatz | Marktplätze", "experts_plural": "Experts", "experts": "Expert | Experts", + "export": "Export", "faction": "Fraktion", "fertility": "Bodenfruchtbarkeit", "filter": "Filter", @@ -29,10 +33,12 @@ "gravity": "Gravitation", "high": "Hoch", "hq": "HQ", + "import": "Import", "low": "Niedrig", "material_ticker": "Ticker", "materials_plural": "Materialien", "materials": "Material | Materialien", + "override": " Override", "permits_plural": "Genehmigung", "permits": "Fläche | Fläche", "plan": "Plan | Pläne", @@ -41,6 +47,7 @@ "plans_plural": "Pläne", "popr": "POPR", "pressure": "Druck", + "price": "Price", "production": "Produktion", "profit_per_area": "Profit / Fläche", "profit": "Profit", @@ -51,7 +58,9 @@ "revenue": "Umsatz", "rocky": "Erdähnlich", "spread": "Spread", + "stock": "Stock", "storage": "Lager", + "sum": "∑", "supply": "Angebot", "surface": "Oberfläche", "temperature": "Temperatur", @@ -60,8 +69,5 @@ "trend": "Trend", "volume": "Volumen", "vwap": "VWAP", - "weight": "Gewicht", - "import": "Import", - "export": "Export", - "sum": "∑" + "weight": "Gewicht" } From bd3cd2035764a734f75b03a981ad834f0992a00d Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:46:59 +0200 Subject: [PATCH 117/237] New translations terms.json (Italian) [ci skip] --- src/locales/it_IT/terms.json | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/locales/it_IT/terms.json b/src/locales/it_IT/terms.json index 5ee0ed83..a8dd9686 100644 --- a/src/locales/it_IT/terms.json +++ b/src/locales/it_IT/terms.json @@ -7,7 +7,9 @@ "ask": "Ask", "bid": "Bid", "buffer": "Buffer", + "buildings_plural": "Buildings", "buildings": "Building | Buildings", + "burn": "Burn", "cogc": "COGC", "cogm": "COGM", "consumption": "Consumption", @@ -17,10 +19,12 @@ "delta_price": "ȼ Delta", "delta": "Delta", "demand": "Demand", + "empire_plural": "Empires", "empire": "Empire | Empires", "exchanges": "Exchange | Exchanges", "experts_plural": "Experts", "experts": "Expert | Experts", + "export": "Export", "faction": "Faction", "fertility": "Fertility", "filter": "Filter", @@ -29,10 +33,12 @@ "gravity": "Gravity", "high": "High", "hq": "HQ", + "import": "Import", "low": "Low", "material_ticker": "Ticker", "materials_plural": "Materials", "materials": "Material | Materials", + "override": " Override", "permits_plural": "Permits", "permits": "Permit | Permits", "plan": "Plan | Plans", @@ -41,6 +47,7 @@ "plans_plural": "Plans", "popr": "POPR", "pressure": "Pressure", + "price": "Price", "production": "Production", "profit_per_area": "Profit / Area", "profit": "Profit", @@ -51,7 +58,9 @@ "revenue": "Revenue", "rocky": "Rocky", "spread": "Spread", + "stock": "Stock", "storage": "Storage", + "sum": "∑", "supply": "Supply", "surface": "Surface", "temperature": "Temperature", @@ -60,8 +69,5 @@ "trend": "Trend", "volume": "Volume", "vwap": "VWAP", - "weight": "Weight", - "import": "Import", - "export": "Export", - "sum": "∑" + "weight": "Weight" } From 50d1ac576ff021def57147fad92bf61e45bc1555 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:47:00 +0200 Subject: [PATCH 118/237] New translations terms.json (Japanese) [ci skip] --- src/locales/ja_JP/terms.json | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/locales/ja_JP/terms.json b/src/locales/ja_JP/terms.json index 5ee0ed83..a8dd9686 100644 --- a/src/locales/ja_JP/terms.json +++ b/src/locales/ja_JP/terms.json @@ -7,7 +7,9 @@ "ask": "Ask", "bid": "Bid", "buffer": "Buffer", + "buildings_plural": "Buildings", "buildings": "Building | Buildings", + "burn": "Burn", "cogc": "COGC", "cogm": "COGM", "consumption": "Consumption", @@ -17,10 +19,12 @@ "delta_price": "ȼ Delta", "delta": "Delta", "demand": "Demand", + "empire_plural": "Empires", "empire": "Empire | Empires", "exchanges": "Exchange | Exchanges", "experts_plural": "Experts", "experts": "Expert | Experts", + "export": "Export", "faction": "Faction", "fertility": "Fertility", "filter": "Filter", @@ -29,10 +33,12 @@ "gravity": "Gravity", "high": "High", "hq": "HQ", + "import": "Import", "low": "Low", "material_ticker": "Ticker", "materials_plural": "Materials", "materials": "Material | Materials", + "override": " Override", "permits_plural": "Permits", "permits": "Permit | Permits", "plan": "Plan | Plans", @@ -41,6 +47,7 @@ "plans_plural": "Plans", "popr": "POPR", "pressure": "Pressure", + "price": "Price", "production": "Production", "profit_per_area": "Profit / Area", "profit": "Profit", @@ -51,7 +58,9 @@ "revenue": "Revenue", "rocky": "Rocky", "spread": "Spread", + "stock": "Stock", "storage": "Storage", + "sum": "∑", "supply": "Supply", "surface": "Surface", "temperature": "Temperature", @@ -60,8 +69,5 @@ "trend": "Trend", "volume": "Volume", "vwap": "VWAP", - "weight": "Weight", - "import": "Import", - "export": "Export", - "sum": "∑" + "weight": "Weight" } From 25de22568e0821c0d009c61f57e2473910d2581e Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:47:01 +0200 Subject: [PATCH 119/237] New translations terms.json (Korean) [ci skip] --- src/locales/ko_KR/terms.json | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/locales/ko_KR/terms.json b/src/locales/ko_KR/terms.json index 5ee0ed83..a8dd9686 100644 --- a/src/locales/ko_KR/terms.json +++ b/src/locales/ko_KR/terms.json @@ -7,7 +7,9 @@ "ask": "Ask", "bid": "Bid", "buffer": "Buffer", + "buildings_plural": "Buildings", "buildings": "Building | Buildings", + "burn": "Burn", "cogc": "COGC", "cogm": "COGM", "consumption": "Consumption", @@ -17,10 +19,12 @@ "delta_price": "ȼ Delta", "delta": "Delta", "demand": "Demand", + "empire_plural": "Empires", "empire": "Empire | Empires", "exchanges": "Exchange | Exchanges", "experts_plural": "Experts", "experts": "Expert | Experts", + "export": "Export", "faction": "Faction", "fertility": "Fertility", "filter": "Filter", @@ -29,10 +33,12 @@ "gravity": "Gravity", "high": "High", "hq": "HQ", + "import": "Import", "low": "Low", "material_ticker": "Ticker", "materials_plural": "Materials", "materials": "Material | Materials", + "override": " Override", "permits_plural": "Permits", "permits": "Permit | Permits", "plan": "Plan | Plans", @@ -41,6 +47,7 @@ "plans_plural": "Plans", "popr": "POPR", "pressure": "Pressure", + "price": "Price", "production": "Production", "profit_per_area": "Profit / Area", "profit": "Profit", @@ -51,7 +58,9 @@ "revenue": "Revenue", "rocky": "Rocky", "spread": "Spread", + "stock": "Stock", "storage": "Storage", + "sum": "∑", "supply": "Supply", "surface": "Surface", "temperature": "Temperature", @@ -60,8 +69,5 @@ "trend": "Trend", "volume": "Volume", "vwap": "VWAP", - "weight": "Weight", - "import": "Import", - "export": "Export", - "sum": "∑" + "weight": "Weight" } From fa6b6422527267374be60586c529e9e40c6c646c Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:47:02 +0200 Subject: [PATCH 120/237] New translations terms.json (Dutch) [ci skip] --- src/locales/nl_NL/terms.json | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/locales/nl_NL/terms.json b/src/locales/nl_NL/terms.json index 5ee0ed83..a8dd9686 100644 --- a/src/locales/nl_NL/terms.json +++ b/src/locales/nl_NL/terms.json @@ -7,7 +7,9 @@ "ask": "Ask", "bid": "Bid", "buffer": "Buffer", + "buildings_plural": "Buildings", "buildings": "Building | Buildings", + "burn": "Burn", "cogc": "COGC", "cogm": "COGM", "consumption": "Consumption", @@ -17,10 +19,12 @@ "delta_price": "ȼ Delta", "delta": "Delta", "demand": "Demand", + "empire_plural": "Empires", "empire": "Empire | Empires", "exchanges": "Exchange | Exchanges", "experts_plural": "Experts", "experts": "Expert | Experts", + "export": "Export", "faction": "Faction", "fertility": "Fertility", "filter": "Filter", @@ -29,10 +33,12 @@ "gravity": "Gravity", "high": "High", "hq": "HQ", + "import": "Import", "low": "Low", "material_ticker": "Ticker", "materials_plural": "Materials", "materials": "Material | Materials", + "override": " Override", "permits_plural": "Permits", "permits": "Permit | Permits", "plan": "Plan | Plans", @@ -41,6 +47,7 @@ "plans_plural": "Plans", "popr": "POPR", "pressure": "Pressure", + "price": "Price", "production": "Production", "profit_per_area": "Profit / Area", "profit": "Profit", @@ -51,7 +58,9 @@ "revenue": "Revenue", "rocky": "Rocky", "spread": "Spread", + "stock": "Stock", "storage": "Storage", + "sum": "∑", "supply": "Supply", "surface": "Surface", "temperature": "Temperature", @@ -60,8 +69,5 @@ "trend": "Trend", "volume": "Volume", "vwap": "VWAP", - "weight": "Weight", - "import": "Import", - "export": "Export", - "sum": "∑" + "weight": "Weight" } From 341429a0cd7e8ca2b3baf13be5d4f2f92e1a08eb Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:47:04 +0200 Subject: [PATCH 121/237] New translations terms.json (Portuguese) [ci skip] --- src/locales/pt_PT/terms.json | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/locales/pt_PT/terms.json b/src/locales/pt_PT/terms.json index 5ee0ed83..a8dd9686 100644 --- a/src/locales/pt_PT/terms.json +++ b/src/locales/pt_PT/terms.json @@ -7,7 +7,9 @@ "ask": "Ask", "bid": "Bid", "buffer": "Buffer", + "buildings_plural": "Buildings", "buildings": "Building | Buildings", + "burn": "Burn", "cogc": "COGC", "cogm": "COGM", "consumption": "Consumption", @@ -17,10 +19,12 @@ "delta_price": "ȼ Delta", "delta": "Delta", "demand": "Demand", + "empire_plural": "Empires", "empire": "Empire | Empires", "exchanges": "Exchange | Exchanges", "experts_plural": "Experts", "experts": "Expert | Experts", + "export": "Export", "faction": "Faction", "fertility": "Fertility", "filter": "Filter", @@ -29,10 +33,12 @@ "gravity": "Gravity", "high": "High", "hq": "HQ", + "import": "Import", "low": "Low", "material_ticker": "Ticker", "materials_plural": "Materials", "materials": "Material | Materials", + "override": " Override", "permits_plural": "Permits", "permits": "Permit | Permits", "plan": "Plan | Plans", @@ -41,6 +47,7 @@ "plans_plural": "Plans", "popr": "POPR", "pressure": "Pressure", + "price": "Price", "production": "Production", "profit_per_area": "Profit / Area", "profit": "Profit", @@ -51,7 +58,9 @@ "revenue": "Revenue", "rocky": "Rocky", "spread": "Spread", + "stock": "Stock", "storage": "Storage", + "sum": "∑", "supply": "Supply", "surface": "Surface", "temperature": "Temperature", @@ -60,8 +69,5 @@ "trend": "Trend", "volume": "Volume", "vwap": "VWAP", - "weight": "Weight", - "import": "Import", - "export": "Export", - "sum": "∑" + "weight": "Weight" } From e5f26529cb3a80846776597b4949ef0cdfcae79f Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:47:05 +0200 Subject: [PATCH 122/237] New translations terms.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/terms.json | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/locales/zh_CN/terms.json b/src/locales/zh_CN/terms.json index 6c95f300..d444fd61 100644 --- a/src/locales/zh_CN/terms.json +++ b/src/locales/zh_CN/terms.json @@ -7,7 +7,9 @@ "ask": "Ask", "bid": "Bid", "buffer": "缓冲", + "buildings_plural": "Buildings", "buildings": "Building | Buildings", + "burn": "Burn", "cogc": "COGC", "cogm": "COGM", "consumption": "消耗量", @@ -17,10 +19,12 @@ "delta_price": "利润差值", "delta": "差值", "demand": "Demand", + "empire_plural": "Empires", "empire": "帝国 | 帝国", "exchanges": "Exchange | Exchanges", "experts_plural": "Experts", "experts": "Expert | Experts", + "export": "Export", "faction": "Faction", "fertility": "Fertility", "filter": "Filter", @@ -29,10 +33,12 @@ "gravity": "Gravity", "high": "High", "hq": "总部", + "import": "Import", "low": "Low", "material_ticker": "Ticker", "materials_plural": "物料", "materials": "物料 | 物料", + "override": " Override", "permits_plural": "许可", "permits": "许可证 | 许可证", "plan": "Plan | Plans", @@ -41,6 +47,7 @@ "plans_plural": "Plans", "popr": "POPR", "pressure": "Pressure", + "price": "Price", "production": "产量", "profit_per_area": "利润 / 区域", "profit": "利润", @@ -51,7 +58,9 @@ "revenue": "收入", "rocky": "Rocky", "spread": "Spread", + "stock": "Stock", "storage": "Storage", + "sum": "∑", "supply": "Supply", "surface": "Surface", "temperature": "Temperature", @@ -60,8 +69,5 @@ "trend": "Trend", "volume": "Volume", "vwap": "VWAP", - "weight": "Weight", - "import": "Import", - "export": "Export", - "sum": "∑" + "weight": "Weight" } From d117cb7c7734e5531eed6e357def6f102c37599b Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:47:10 +0200 Subject: [PATCH 123/237] New translations common.json (Russian) [ci skip] --- src/locales/ru_RU/common.json | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/locales/ru_RU/common.json b/src/locales/ru_RU/common.json index b7436a4e..60ae9f5a 100644 --- a/src/locales/ru_RU/common.json +++ b/src/locales/ru_RU/common.json @@ -41,11 +41,24 @@ "search": "Search", "default": "Default", "select_all": "Select All", + "discard": "Discard", "yes": "Yes", "no": "No", "delete": "Delete", "cancel": "Cancel", "clone_plan": "Clone Plan", - "clone_complete": "Cloning Complete" + "clone_complete": "Cloning Complete", + "copy": "Copy" + }, + "ui": { + "placeholder": { + "please_input": "Please Input", + "please_select": "Please Select", + "search": "Search" + }, + "select": { + "no_results": "No Results", + "select_options": "Select Options" + } } } From 8e5cce7696d6380c726f702dc4927328e8159ac1 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:47:11 +0200 Subject: [PATCH 124/237] New translations game.json (Russian) [ci skip] --- src/locales/ru_RU/game.json | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/src/locales/ru_RU/game.json b/src/locales/ru_RU/game.json index b602cdb7..f3e19d40 100644 --- a/src/locales/ru_RU/game.json +++ b/src/locales/ru_RU/game.json @@ -66,6 +66,42 @@ "WORKFORCE_ENGINEERS": "ENG", "WORKFORCE_SCIENTISTS": "SCI" }, + "material_category": { + "agricultural_products": "Agricultural Products", + "alloys": "Alloys", + "chemicals": "Chemicals", + "construction_materials": "Construction Materials", + "construction_parts": "Construction Parts", + "construction_prefabs": "Construction Prefabs", + "consumable_bundles": "Consumable Bundles", + "consumables_(basic)": "Consumables Basic", + "consumables_(luxury)": "Consumables Luxury", + "drones": "Drones", + "electronic_devices": "Electronic Devices", + "electronic_parts": "Electronic Parts", + "electronic_pieces": "Electronic Pieces", + "electronic_systems": "Electronic Systems", + "elements": "Elements", + "energy_systems": "Energy Systems", + "fuels": "Fuels", + "gases": "Gases", + "liquids": "Liquids", + "medical_equipment": "Medical Equipment", + "metals": "Metals", + "minerals": "Minerals", + "ores": "Ores", + "plastics": "Plastics", + "ship_engines": "Ship Engines", + "ship_kits": "Ship Kits", + "ship_parts": "Ship Parts", + "ship_shields": "Ship Shields", + "software_components": "Software Components", + "software_systems": "Software Systems", + "software_tools": "Software Tools", + "textiles": "Textiles", + "unit_prefabs": "Unit Prefabs", + "utility": "Utility" + }, "upkeep": { "safety": "Safety", "health": "Health", From bce0789f30e3c2513d4dee246e88fd0e84a4117d Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:47:20 +0200 Subject: [PATCH 125/237] New translations terms.json (Russian) [ci skip] --- src/locales/ru_RU/terms.json | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/locales/ru_RU/terms.json b/src/locales/ru_RU/terms.json index 5ee0ed83..a8dd9686 100644 --- a/src/locales/ru_RU/terms.json +++ b/src/locales/ru_RU/terms.json @@ -7,7 +7,9 @@ "ask": "Ask", "bid": "Bid", "buffer": "Buffer", + "buildings_plural": "Buildings", "buildings": "Building | Buildings", + "burn": "Burn", "cogc": "COGC", "cogm": "COGM", "consumption": "Consumption", @@ -17,10 +19,12 @@ "delta_price": "ȼ Delta", "delta": "Delta", "demand": "Demand", + "empire_plural": "Empires", "empire": "Empire | Empires", "exchanges": "Exchange | Exchanges", "experts_plural": "Experts", "experts": "Expert | Experts", + "export": "Export", "faction": "Faction", "fertility": "Fertility", "filter": "Filter", @@ -29,10 +33,12 @@ "gravity": "Gravity", "high": "High", "hq": "HQ", + "import": "Import", "low": "Low", "material_ticker": "Ticker", "materials_plural": "Materials", "materials": "Material | Materials", + "override": " Override", "permits_plural": "Permits", "permits": "Permit | Permits", "plan": "Plan | Plans", @@ -41,6 +47,7 @@ "plans_plural": "Plans", "popr": "POPR", "pressure": "Pressure", + "price": "Price", "production": "Production", "profit_per_area": "Profit / Area", "profit": "Profit", @@ -51,7 +58,9 @@ "revenue": "Revenue", "rocky": "Rocky", "spread": "Spread", + "stock": "Stock", "storage": "Storage", + "sum": "∑", "supply": "Supply", "surface": "Surface", "temperature": "Temperature", @@ -60,8 +69,5 @@ "trend": "Trend", "volume": "Volume", "vwap": "VWAP", - "weight": "Weight", - "import": "Import", - "export": "Export", - "sum": "∑" + "weight": "Weight" } From 09f224137920f6aca37de6156b506bd39d8b423c Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:48:28 +0200 Subject: [PATCH 126/237] New translations empire.md (German) [ci skip] --- src/assets/help/de_DE/empire.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/assets/help/de_DE/empire.md b/src/assets/help/de_DE/empire.md index e82848a8..8edd8295 100644 --- a/src/assets/help/de_DE/empire.md +++ b/src/assets/help/de_DE/empire.md @@ -1,4 +1,4 @@ -The **Empire view** gives you a complete overview of your plans and their combined production within an empire. Here, you can also adjust your faction and permits, since both affect your production bonuses. Plans can be assigned to an empire in the **Management view**. +Die Imperium-Übersicht zeigt eine komplette Übersicht aller Pläne und ihrer kombinierten Produktion in diesem Imperium. Here, you can also adjust your faction and permits, since both affect your production bonuses. Plans can be assigned to an empire in the **Management view**. In addition to tracking production, the empire automatically calculates your **daily profit, costs** (including materials, workforce, and degradation), and total **revenue** based on your personal exchange preferences. These figures aren’t just a simple sum of your plans—they use weighted prices that take both production and consumption into account across the entire empire. From f435fd881052816252b617dd31d328ce9ae64922 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:06 +0200 Subject: [PATCH 127/237] New translations plan.json (French) [ci skip] --- src/locales/fr_FR/plan.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/locales/fr_FR/plan.json b/src/locales/fr_FR/plan.json index c45b530b..1b01bf38 100644 --- a/src/locales/fr_FR/plan.json +++ b/src/locales/fr_FR/plan.json @@ -138,6 +138,15 @@ "recipe_profit": "@:terms.recipes Profit", "cost_split": "Cost Split" } + }, + "plan_analytics": { + "title": "Planning Insights", + "info": "Insights are aggregated from active player plans on {planet}. PRUNplanner enforces minimum sample thresholds to ensure both anonymity and statistical accuracy.", + "labels": { + "experts": "Experts", + "production_buildings": "Production @:terms.buildings_plural", + "recipes": "@:terms.recipes_plural" + } } }, "components": { From 71f7035061b20000f8d060d5f04ebf3bc2b01015 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:07 +0200 Subject: [PATCH 128/237] New translations plan.json (Spanish) [ci skip] --- src/locales/es_ES/plan.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/locales/es_ES/plan.json b/src/locales/es_ES/plan.json index c45b530b..1b01bf38 100644 --- a/src/locales/es_ES/plan.json +++ b/src/locales/es_ES/plan.json @@ -138,6 +138,15 @@ "recipe_profit": "@:terms.recipes Profit", "cost_split": "Cost Split" } + }, + "plan_analytics": { + "title": "Planning Insights", + "info": "Insights are aggregated from active player plans on {planet}. PRUNplanner enforces minimum sample thresholds to ensure both anonymity and statistical accuracy.", + "labels": { + "experts": "Experts", + "production_buildings": "Production @:terms.buildings_plural", + "recipes": "@:terms.recipes_plural" + } } }, "components": { From d8a8daf92fd8155aee366f872fc67c488b68dd88 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:09 +0200 Subject: [PATCH 129/237] New translations plan.json (German) [ci skip] --- src/locales/de_DE/plan.json | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/locales/de_DE/plan.json b/src/locales/de_DE/plan.json index c45b530b..0d91fe67 100644 --- a/src/locales/de_DE/plan.json +++ b/src/locales/de_DE/plan.json @@ -1,6 +1,6 @@ { "notifications": { - "must_have_name": "Must set a plan name in Configuration to save" + "must_have_name": "Zum Speichern muss zuerst ein Plan-Name gesetzt werden" }, "tools": { "labels": { @@ -9,11 +9,11 @@ "construction_cart": "Construction Cart", "supply_cart": "Supply Cart", "repair_analysis": "Repair Analysis", - "workforce": "Workforce" + "workforce": "Belegschaft" }, "popr": { "title": "Latest Population Report", - "error": "Error loading latest population report. The planet might not have population.", + "error": "Fehler beim Laden des neuesten Bevölkerungsberichtes. Der Planet hat möglicherweise keine Bevölkerung.", "loading": "Loading Population Report" }, "visitation_frequency": { @@ -69,12 +69,12 @@ "title": "Supply Cart", "info": { "p": "The Supply Cart provides updates on your plans needs combined with existing inventory sourced from FIO. You have the flexibility to opt for alternative storage locations to replenish your base. Tailor your selection based on whether you wish to restock workforce and production supplies or focus on a specific category, and specify the duration for which the supplied stock should sustain. Use the {link} tool for more advanced supply cart options.", - "link": "FIO Burn" + "link": "" }, "buttons": { - "all": "All", - "workforce": "Workforce", - "production": "Production" + "all": "Alles", + "workforce": "Belegschaft", + "production": "Produktion" }, "table": { "stock_duration": "Stock Duration (days)", @@ -138,6 +138,15 @@ "recipe_profit": "@:terms.recipes Profit", "cost_split": "Cost Split" } + }, + "plan_analytics": { + "title": "Planning Insights", + "info": "Insights are aggregated from active player plans on {planet}. PRUNplanner enforces minimum sample thresholds to ensure both anonymity and statistical accuracy.", + "labels": { + "experts": "Experts", + "production_buildings": "Production @:terms.buildings_plural", + "recipes": "@:terms.recipes_plural" + } } }, "components": { From 21a14ffd8f72dc5f77fc2da7ea632cef2c0b07b1 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:10 +0200 Subject: [PATCH 130/237] New translations plan.json (Italian) [ci skip] --- src/locales/it_IT/plan.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/locales/it_IT/plan.json b/src/locales/it_IT/plan.json index c45b530b..1b01bf38 100644 --- a/src/locales/it_IT/plan.json +++ b/src/locales/it_IT/plan.json @@ -138,6 +138,15 @@ "recipe_profit": "@:terms.recipes Profit", "cost_split": "Cost Split" } + }, + "plan_analytics": { + "title": "Planning Insights", + "info": "Insights are aggregated from active player plans on {planet}. PRUNplanner enforces minimum sample thresholds to ensure both anonymity and statistical accuracy.", + "labels": { + "experts": "Experts", + "production_buildings": "Production @:terms.buildings_plural", + "recipes": "@:terms.recipes_plural" + } } }, "components": { From b46c8f6644412dfc60d1dd08a097e074c0119a38 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:11 +0200 Subject: [PATCH 131/237] New translations plan.json (Japanese) [ci skip] --- src/locales/ja_JP/plan.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/locales/ja_JP/plan.json b/src/locales/ja_JP/plan.json index c45b530b..1b01bf38 100644 --- a/src/locales/ja_JP/plan.json +++ b/src/locales/ja_JP/plan.json @@ -138,6 +138,15 @@ "recipe_profit": "@:terms.recipes Profit", "cost_split": "Cost Split" } + }, + "plan_analytics": { + "title": "Planning Insights", + "info": "Insights are aggregated from active player plans on {planet}. PRUNplanner enforces minimum sample thresholds to ensure both anonymity and statistical accuracy.", + "labels": { + "experts": "Experts", + "production_buildings": "Production @:terms.buildings_plural", + "recipes": "@:terms.recipes_plural" + } } }, "components": { From 02e8c348648abd5db028c823ad0ac1e64a813a38 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:13 +0200 Subject: [PATCH 132/237] New translations plan.json (Korean) [ci skip] --- src/locales/ko_KR/plan.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/locales/ko_KR/plan.json b/src/locales/ko_KR/plan.json index c45b530b..1b01bf38 100644 --- a/src/locales/ko_KR/plan.json +++ b/src/locales/ko_KR/plan.json @@ -138,6 +138,15 @@ "recipe_profit": "@:terms.recipes Profit", "cost_split": "Cost Split" } + }, + "plan_analytics": { + "title": "Planning Insights", + "info": "Insights are aggregated from active player plans on {planet}. PRUNplanner enforces minimum sample thresholds to ensure both anonymity and statistical accuracy.", + "labels": { + "experts": "Experts", + "production_buildings": "Production @:terms.buildings_plural", + "recipes": "@:terms.recipes_plural" + } } }, "components": { From a51880f194dcaa5443251f0313d657bc8a294a85 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:14 +0200 Subject: [PATCH 133/237] New translations plan.json (Dutch) [ci skip] --- src/locales/nl_NL/plan.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/locales/nl_NL/plan.json b/src/locales/nl_NL/plan.json index c45b530b..1b01bf38 100644 --- a/src/locales/nl_NL/plan.json +++ b/src/locales/nl_NL/plan.json @@ -138,6 +138,15 @@ "recipe_profit": "@:terms.recipes Profit", "cost_split": "Cost Split" } + }, + "plan_analytics": { + "title": "Planning Insights", + "info": "Insights are aggregated from active player plans on {planet}. PRUNplanner enforces minimum sample thresholds to ensure both anonymity and statistical accuracy.", + "labels": { + "experts": "Experts", + "production_buildings": "Production @:terms.buildings_plural", + "recipes": "@:terms.recipes_plural" + } } }, "components": { From f19c74d62229b27102e2570738e1fdba7b70af8d Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:15 +0200 Subject: [PATCH 134/237] New translations plan.json (Portuguese) [ci skip] --- src/locales/pt_PT/plan.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/locales/pt_PT/plan.json b/src/locales/pt_PT/plan.json index c45b530b..1b01bf38 100644 --- a/src/locales/pt_PT/plan.json +++ b/src/locales/pt_PT/plan.json @@ -138,6 +138,15 @@ "recipe_profit": "@:terms.recipes Profit", "cost_split": "Cost Split" } + }, + "plan_analytics": { + "title": "Planning Insights", + "info": "Insights are aggregated from active player plans on {planet}. PRUNplanner enforces minimum sample thresholds to ensure both anonymity and statistical accuracy.", + "labels": { + "experts": "Experts", + "production_buildings": "Production @:terms.buildings_plural", + "recipes": "@:terms.recipes_plural" + } } }, "components": { From 5e5348000220c0befc52b5cbd20a6d0ba12cfa6b Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:17 +0200 Subject: [PATCH 135/237] New translations plan.json (Russian) [ci skip] --- src/locales/ru_RU/plan.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/locales/ru_RU/plan.json b/src/locales/ru_RU/plan.json index c45b530b..1b01bf38 100644 --- a/src/locales/ru_RU/plan.json +++ b/src/locales/ru_RU/plan.json @@ -138,6 +138,15 @@ "recipe_profit": "@:terms.recipes Profit", "cost_split": "Cost Split" } + }, + "plan_analytics": { + "title": "Planning Insights", + "info": "Insights are aggregated from active player plans on {planet}. PRUNplanner enforces minimum sample thresholds to ensure both anonymity and statistical accuracy.", + "labels": { + "experts": "Experts", + "production_buildings": "Production @:terms.buildings_plural", + "recipes": "@:terms.recipes_plural" + } } }, "components": { From 7324c56c7698083e1e0ed3e32abe877720110c9e Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:18 +0200 Subject: [PATCH 136/237] New translations plan.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/plan.json | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/locales/zh_CN/plan.json b/src/locales/zh_CN/plan.json index c45b530b..1b01bf38 100644 --- a/src/locales/zh_CN/plan.json +++ b/src/locales/zh_CN/plan.json @@ -138,6 +138,15 @@ "recipe_profit": "@:terms.recipes Profit", "cost_split": "Cost Split" } + }, + "plan_analytics": { + "title": "Planning Insights", + "info": "Insights are aggregated from active player plans on {planet}. PRUNplanner enforces minimum sample thresholds to ensure both anonymity and statistical accuracy.", + "labels": { + "experts": "Experts", + "production_buildings": "Production @:terms.buildings_plural", + "recipes": "@:terms.recipes_plural" + } } }, "components": { From d9e92267a5b92e4f7c3c901a3aec617328a31b00 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:19 +0200 Subject: [PATCH 137/237] New translations account.json (French) [ci skip] --- src/locales/fr_FR/account.json | 81 ++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/locales/fr_FR/account.json diff --git a/src/locales/fr_FR/account.json b/src/locales/fr_FR/account.json new file mode 100644 index 00000000..f6fdc2c0 --- /dev/null +++ b/src/locales/fr_FR/account.json @@ -0,0 +1,81 @@ +{ + "components": { + "login": { + "title": "Login", + "error": "Error logging in. Please check your username and password.", + "buttons": { + "login": "Login" + }, + "form": { + "username": "Username", + "password": "Password" + }, + "tos": "By using PRUNplanner you agree to the {tos_link}.", + "tos_link": "Terms of Service", + "forgot": "Forgot your password? Request a {forgot_link}.", + "forgot_link": "Password Reset" + }, + "registration": { + "title": "Account Information", + "tos": "PRUNplanner is free to use. By creating an account, you acknowledge and agree to the {tos_link}.", + "tos_link": "Terms of Service", + "result": { + "ok_header": "Welcome, {username}!", + "ok_message": "Registration succesful. You can now login to PRUNplanner.", + "error": "Error during registration." + }, + "buttons": { + "register": "Create Account" + }, + "form": { + "username": "Username", + "username_info": "Must be at least 3 characters long. Can't contain spaces.", + "password": "Password", + "password_info": "Must be at least 8 characters long.", + "email": "Email", + "email_placeholder": "Not mandatory, but recommended.", + "email_info": "Not mandatory. Increases your account security.", + "security_question": "Security Question", + "question": "Enter the name of planet {planet}. To find it, open a new Prosperous Universe buffer with the command {command}. You'll see the planets name listed under 'Name' in the planet information", + "planet_name": "Name" + } + }, + "password_reset": { + "title": "Reset your Password", + "info": "Please enter the code sent to your email, along with your new password.", + "buttons": { + "send": "Reset Password" + }, + "form": { + "email": "Email", + "code": "Code", + "password": "Password", + "password_info": "Must be at least 8 characters long." + } + }, + "request_password_reset": { + "title": "Password Reset Request", + "info": "Enter the verified email address linked to your PRUNplanner account. If we recognize it, we'll send you a code to reset your password.", + "form": { + "email_placeholder": "Email Address" + }, + "buttons": { + "send": "Request Password Reset" + } + }, + "verify_email": { + "title": "Email Verification", + "info": "Please enter the verification code you received via email. Maybe check your spam folder.", + "buttons": { + "send": "Verify Email Address" + }, + "form": { + "code_placeholder": "Verification Code" + }, + "result": { + "ok": "Email address verified.", + "error": "Invalid code or already verified." + } + } + } +} From 220b320eeb43c9f4c1ab453e6793c2e79ec42112 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:20 +0200 Subject: [PATCH 138/237] New translations account.json (Spanish) [ci skip] --- src/locales/es_ES/account.json | 81 ++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/locales/es_ES/account.json diff --git a/src/locales/es_ES/account.json b/src/locales/es_ES/account.json new file mode 100644 index 00000000..f6fdc2c0 --- /dev/null +++ b/src/locales/es_ES/account.json @@ -0,0 +1,81 @@ +{ + "components": { + "login": { + "title": "Login", + "error": "Error logging in. Please check your username and password.", + "buttons": { + "login": "Login" + }, + "form": { + "username": "Username", + "password": "Password" + }, + "tos": "By using PRUNplanner you agree to the {tos_link}.", + "tos_link": "Terms of Service", + "forgot": "Forgot your password? Request a {forgot_link}.", + "forgot_link": "Password Reset" + }, + "registration": { + "title": "Account Information", + "tos": "PRUNplanner is free to use. By creating an account, you acknowledge and agree to the {tos_link}.", + "tos_link": "Terms of Service", + "result": { + "ok_header": "Welcome, {username}!", + "ok_message": "Registration succesful. You can now login to PRUNplanner.", + "error": "Error during registration." + }, + "buttons": { + "register": "Create Account" + }, + "form": { + "username": "Username", + "username_info": "Must be at least 3 characters long. Can't contain spaces.", + "password": "Password", + "password_info": "Must be at least 8 characters long.", + "email": "Email", + "email_placeholder": "Not mandatory, but recommended.", + "email_info": "Not mandatory. Increases your account security.", + "security_question": "Security Question", + "question": "Enter the name of planet {planet}. To find it, open a new Prosperous Universe buffer with the command {command}. You'll see the planets name listed under 'Name' in the planet information", + "planet_name": "Name" + } + }, + "password_reset": { + "title": "Reset your Password", + "info": "Please enter the code sent to your email, along with your new password.", + "buttons": { + "send": "Reset Password" + }, + "form": { + "email": "Email", + "code": "Code", + "password": "Password", + "password_info": "Must be at least 8 characters long." + } + }, + "request_password_reset": { + "title": "Password Reset Request", + "info": "Enter the verified email address linked to your PRUNplanner account. If we recognize it, we'll send you a code to reset your password.", + "form": { + "email_placeholder": "Email Address" + }, + "buttons": { + "send": "Request Password Reset" + } + }, + "verify_email": { + "title": "Email Verification", + "info": "Please enter the verification code you received via email. Maybe check your spam folder.", + "buttons": { + "send": "Verify Email Address" + }, + "form": { + "code_placeholder": "Verification Code" + }, + "result": { + "ok": "Email address verified.", + "error": "Invalid code or already verified." + } + } + } +} From 569345fc9228ea567c5361951494f377cb515579 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:22 +0200 Subject: [PATCH 139/237] New translations account.json (German) [ci skip] --- src/locales/de_DE/account.json | 81 ++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/locales/de_DE/account.json diff --git a/src/locales/de_DE/account.json b/src/locales/de_DE/account.json new file mode 100644 index 00000000..f6fdc2c0 --- /dev/null +++ b/src/locales/de_DE/account.json @@ -0,0 +1,81 @@ +{ + "components": { + "login": { + "title": "Login", + "error": "Error logging in. Please check your username and password.", + "buttons": { + "login": "Login" + }, + "form": { + "username": "Username", + "password": "Password" + }, + "tos": "By using PRUNplanner you agree to the {tos_link}.", + "tos_link": "Terms of Service", + "forgot": "Forgot your password? Request a {forgot_link}.", + "forgot_link": "Password Reset" + }, + "registration": { + "title": "Account Information", + "tos": "PRUNplanner is free to use. By creating an account, you acknowledge and agree to the {tos_link}.", + "tos_link": "Terms of Service", + "result": { + "ok_header": "Welcome, {username}!", + "ok_message": "Registration succesful. You can now login to PRUNplanner.", + "error": "Error during registration." + }, + "buttons": { + "register": "Create Account" + }, + "form": { + "username": "Username", + "username_info": "Must be at least 3 characters long. Can't contain spaces.", + "password": "Password", + "password_info": "Must be at least 8 characters long.", + "email": "Email", + "email_placeholder": "Not mandatory, but recommended.", + "email_info": "Not mandatory. Increases your account security.", + "security_question": "Security Question", + "question": "Enter the name of planet {planet}. To find it, open a new Prosperous Universe buffer with the command {command}. You'll see the planets name listed under 'Name' in the planet information", + "planet_name": "Name" + } + }, + "password_reset": { + "title": "Reset your Password", + "info": "Please enter the code sent to your email, along with your new password.", + "buttons": { + "send": "Reset Password" + }, + "form": { + "email": "Email", + "code": "Code", + "password": "Password", + "password_info": "Must be at least 8 characters long." + } + }, + "request_password_reset": { + "title": "Password Reset Request", + "info": "Enter the verified email address linked to your PRUNplanner account. If we recognize it, we'll send you a code to reset your password.", + "form": { + "email_placeholder": "Email Address" + }, + "buttons": { + "send": "Request Password Reset" + } + }, + "verify_email": { + "title": "Email Verification", + "info": "Please enter the verification code you received via email. Maybe check your spam folder.", + "buttons": { + "send": "Verify Email Address" + }, + "form": { + "code_placeholder": "Verification Code" + }, + "result": { + "ok": "Email address verified.", + "error": "Invalid code or already verified." + } + } + } +} From 428157b1c0b9d39cf43abe10a98c4d274ca5721d Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:23 +0200 Subject: [PATCH 140/237] New translations account.json (Italian) [ci skip] --- src/locales/it_IT/account.json | 81 ++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/locales/it_IT/account.json diff --git a/src/locales/it_IT/account.json b/src/locales/it_IT/account.json new file mode 100644 index 00000000..f6fdc2c0 --- /dev/null +++ b/src/locales/it_IT/account.json @@ -0,0 +1,81 @@ +{ + "components": { + "login": { + "title": "Login", + "error": "Error logging in. Please check your username and password.", + "buttons": { + "login": "Login" + }, + "form": { + "username": "Username", + "password": "Password" + }, + "tos": "By using PRUNplanner you agree to the {tos_link}.", + "tos_link": "Terms of Service", + "forgot": "Forgot your password? Request a {forgot_link}.", + "forgot_link": "Password Reset" + }, + "registration": { + "title": "Account Information", + "tos": "PRUNplanner is free to use. By creating an account, you acknowledge and agree to the {tos_link}.", + "tos_link": "Terms of Service", + "result": { + "ok_header": "Welcome, {username}!", + "ok_message": "Registration succesful. You can now login to PRUNplanner.", + "error": "Error during registration." + }, + "buttons": { + "register": "Create Account" + }, + "form": { + "username": "Username", + "username_info": "Must be at least 3 characters long. Can't contain spaces.", + "password": "Password", + "password_info": "Must be at least 8 characters long.", + "email": "Email", + "email_placeholder": "Not mandatory, but recommended.", + "email_info": "Not mandatory. Increases your account security.", + "security_question": "Security Question", + "question": "Enter the name of planet {planet}. To find it, open a new Prosperous Universe buffer with the command {command}. You'll see the planets name listed under 'Name' in the planet information", + "planet_name": "Name" + } + }, + "password_reset": { + "title": "Reset your Password", + "info": "Please enter the code sent to your email, along with your new password.", + "buttons": { + "send": "Reset Password" + }, + "form": { + "email": "Email", + "code": "Code", + "password": "Password", + "password_info": "Must be at least 8 characters long." + } + }, + "request_password_reset": { + "title": "Password Reset Request", + "info": "Enter the verified email address linked to your PRUNplanner account. If we recognize it, we'll send you a code to reset your password.", + "form": { + "email_placeholder": "Email Address" + }, + "buttons": { + "send": "Request Password Reset" + } + }, + "verify_email": { + "title": "Email Verification", + "info": "Please enter the verification code you received via email. Maybe check your spam folder.", + "buttons": { + "send": "Verify Email Address" + }, + "form": { + "code_placeholder": "Verification Code" + }, + "result": { + "ok": "Email address verified.", + "error": "Invalid code or already verified." + } + } + } +} From 6ded3c4fe1fddaa4a3004188e5e9154e31723a3c Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:24 +0200 Subject: [PATCH 141/237] New translations account.json (Japanese) [ci skip] --- src/locales/ja_JP/account.json | 81 ++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/locales/ja_JP/account.json diff --git a/src/locales/ja_JP/account.json b/src/locales/ja_JP/account.json new file mode 100644 index 00000000..f6fdc2c0 --- /dev/null +++ b/src/locales/ja_JP/account.json @@ -0,0 +1,81 @@ +{ + "components": { + "login": { + "title": "Login", + "error": "Error logging in. Please check your username and password.", + "buttons": { + "login": "Login" + }, + "form": { + "username": "Username", + "password": "Password" + }, + "tos": "By using PRUNplanner you agree to the {tos_link}.", + "tos_link": "Terms of Service", + "forgot": "Forgot your password? Request a {forgot_link}.", + "forgot_link": "Password Reset" + }, + "registration": { + "title": "Account Information", + "tos": "PRUNplanner is free to use. By creating an account, you acknowledge and agree to the {tos_link}.", + "tos_link": "Terms of Service", + "result": { + "ok_header": "Welcome, {username}!", + "ok_message": "Registration succesful. You can now login to PRUNplanner.", + "error": "Error during registration." + }, + "buttons": { + "register": "Create Account" + }, + "form": { + "username": "Username", + "username_info": "Must be at least 3 characters long. Can't contain spaces.", + "password": "Password", + "password_info": "Must be at least 8 characters long.", + "email": "Email", + "email_placeholder": "Not mandatory, but recommended.", + "email_info": "Not mandatory. Increases your account security.", + "security_question": "Security Question", + "question": "Enter the name of planet {planet}. To find it, open a new Prosperous Universe buffer with the command {command}. You'll see the planets name listed under 'Name' in the planet information", + "planet_name": "Name" + } + }, + "password_reset": { + "title": "Reset your Password", + "info": "Please enter the code sent to your email, along with your new password.", + "buttons": { + "send": "Reset Password" + }, + "form": { + "email": "Email", + "code": "Code", + "password": "Password", + "password_info": "Must be at least 8 characters long." + } + }, + "request_password_reset": { + "title": "Password Reset Request", + "info": "Enter the verified email address linked to your PRUNplanner account. If we recognize it, we'll send you a code to reset your password.", + "form": { + "email_placeholder": "Email Address" + }, + "buttons": { + "send": "Request Password Reset" + } + }, + "verify_email": { + "title": "Email Verification", + "info": "Please enter the verification code you received via email. Maybe check your spam folder.", + "buttons": { + "send": "Verify Email Address" + }, + "form": { + "code_placeholder": "Verification Code" + }, + "result": { + "ok": "Email address verified.", + "error": "Invalid code or already verified." + } + } + } +} From fd177edacf71369b3ed7ac6d364ae0a88db4d98a Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:26 +0200 Subject: [PATCH 142/237] New translations account.json (Korean) [ci skip] --- src/locales/ko_KR/account.json | 81 ++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/locales/ko_KR/account.json diff --git a/src/locales/ko_KR/account.json b/src/locales/ko_KR/account.json new file mode 100644 index 00000000..f6fdc2c0 --- /dev/null +++ b/src/locales/ko_KR/account.json @@ -0,0 +1,81 @@ +{ + "components": { + "login": { + "title": "Login", + "error": "Error logging in. Please check your username and password.", + "buttons": { + "login": "Login" + }, + "form": { + "username": "Username", + "password": "Password" + }, + "tos": "By using PRUNplanner you agree to the {tos_link}.", + "tos_link": "Terms of Service", + "forgot": "Forgot your password? Request a {forgot_link}.", + "forgot_link": "Password Reset" + }, + "registration": { + "title": "Account Information", + "tos": "PRUNplanner is free to use. By creating an account, you acknowledge and agree to the {tos_link}.", + "tos_link": "Terms of Service", + "result": { + "ok_header": "Welcome, {username}!", + "ok_message": "Registration succesful. You can now login to PRUNplanner.", + "error": "Error during registration." + }, + "buttons": { + "register": "Create Account" + }, + "form": { + "username": "Username", + "username_info": "Must be at least 3 characters long. Can't contain spaces.", + "password": "Password", + "password_info": "Must be at least 8 characters long.", + "email": "Email", + "email_placeholder": "Not mandatory, but recommended.", + "email_info": "Not mandatory. Increases your account security.", + "security_question": "Security Question", + "question": "Enter the name of planet {planet}. To find it, open a new Prosperous Universe buffer with the command {command}. You'll see the planets name listed under 'Name' in the planet information", + "planet_name": "Name" + } + }, + "password_reset": { + "title": "Reset your Password", + "info": "Please enter the code sent to your email, along with your new password.", + "buttons": { + "send": "Reset Password" + }, + "form": { + "email": "Email", + "code": "Code", + "password": "Password", + "password_info": "Must be at least 8 characters long." + } + }, + "request_password_reset": { + "title": "Password Reset Request", + "info": "Enter the verified email address linked to your PRUNplanner account. If we recognize it, we'll send you a code to reset your password.", + "form": { + "email_placeholder": "Email Address" + }, + "buttons": { + "send": "Request Password Reset" + } + }, + "verify_email": { + "title": "Email Verification", + "info": "Please enter the verification code you received via email. Maybe check your spam folder.", + "buttons": { + "send": "Verify Email Address" + }, + "form": { + "code_placeholder": "Verification Code" + }, + "result": { + "ok": "Email address verified.", + "error": "Invalid code or already verified." + } + } + } +} From c1b96e73adba50916a3addfcff02d3c90803f791 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:27 +0200 Subject: [PATCH 143/237] New translations account.json (Dutch) [ci skip] --- src/locales/nl_NL/account.json | 81 ++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/locales/nl_NL/account.json diff --git a/src/locales/nl_NL/account.json b/src/locales/nl_NL/account.json new file mode 100644 index 00000000..f6fdc2c0 --- /dev/null +++ b/src/locales/nl_NL/account.json @@ -0,0 +1,81 @@ +{ + "components": { + "login": { + "title": "Login", + "error": "Error logging in. Please check your username and password.", + "buttons": { + "login": "Login" + }, + "form": { + "username": "Username", + "password": "Password" + }, + "tos": "By using PRUNplanner you agree to the {tos_link}.", + "tos_link": "Terms of Service", + "forgot": "Forgot your password? Request a {forgot_link}.", + "forgot_link": "Password Reset" + }, + "registration": { + "title": "Account Information", + "tos": "PRUNplanner is free to use. By creating an account, you acknowledge and agree to the {tos_link}.", + "tos_link": "Terms of Service", + "result": { + "ok_header": "Welcome, {username}!", + "ok_message": "Registration succesful. You can now login to PRUNplanner.", + "error": "Error during registration." + }, + "buttons": { + "register": "Create Account" + }, + "form": { + "username": "Username", + "username_info": "Must be at least 3 characters long. Can't contain spaces.", + "password": "Password", + "password_info": "Must be at least 8 characters long.", + "email": "Email", + "email_placeholder": "Not mandatory, but recommended.", + "email_info": "Not mandatory. Increases your account security.", + "security_question": "Security Question", + "question": "Enter the name of planet {planet}. To find it, open a new Prosperous Universe buffer with the command {command}. You'll see the planets name listed under 'Name' in the planet information", + "planet_name": "Name" + } + }, + "password_reset": { + "title": "Reset your Password", + "info": "Please enter the code sent to your email, along with your new password.", + "buttons": { + "send": "Reset Password" + }, + "form": { + "email": "Email", + "code": "Code", + "password": "Password", + "password_info": "Must be at least 8 characters long." + } + }, + "request_password_reset": { + "title": "Password Reset Request", + "info": "Enter the verified email address linked to your PRUNplanner account. If we recognize it, we'll send you a code to reset your password.", + "form": { + "email_placeholder": "Email Address" + }, + "buttons": { + "send": "Request Password Reset" + } + }, + "verify_email": { + "title": "Email Verification", + "info": "Please enter the verification code you received via email. Maybe check your spam folder.", + "buttons": { + "send": "Verify Email Address" + }, + "form": { + "code_placeholder": "Verification Code" + }, + "result": { + "ok": "Email address verified.", + "error": "Invalid code or already verified." + } + } + } +} From 57175d67f82133aa7a5f618579e030572a88cf99 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:28 +0200 Subject: [PATCH 144/237] New translations account.json (Portuguese) [ci skip] --- src/locales/pt_PT/account.json | 81 ++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/locales/pt_PT/account.json diff --git a/src/locales/pt_PT/account.json b/src/locales/pt_PT/account.json new file mode 100644 index 00000000..f6fdc2c0 --- /dev/null +++ b/src/locales/pt_PT/account.json @@ -0,0 +1,81 @@ +{ + "components": { + "login": { + "title": "Login", + "error": "Error logging in. Please check your username and password.", + "buttons": { + "login": "Login" + }, + "form": { + "username": "Username", + "password": "Password" + }, + "tos": "By using PRUNplanner you agree to the {tos_link}.", + "tos_link": "Terms of Service", + "forgot": "Forgot your password? Request a {forgot_link}.", + "forgot_link": "Password Reset" + }, + "registration": { + "title": "Account Information", + "tos": "PRUNplanner is free to use. By creating an account, you acknowledge and agree to the {tos_link}.", + "tos_link": "Terms of Service", + "result": { + "ok_header": "Welcome, {username}!", + "ok_message": "Registration succesful. You can now login to PRUNplanner.", + "error": "Error during registration." + }, + "buttons": { + "register": "Create Account" + }, + "form": { + "username": "Username", + "username_info": "Must be at least 3 characters long. Can't contain spaces.", + "password": "Password", + "password_info": "Must be at least 8 characters long.", + "email": "Email", + "email_placeholder": "Not mandatory, but recommended.", + "email_info": "Not mandatory. Increases your account security.", + "security_question": "Security Question", + "question": "Enter the name of planet {planet}. To find it, open a new Prosperous Universe buffer with the command {command}. You'll see the planets name listed under 'Name' in the planet information", + "planet_name": "Name" + } + }, + "password_reset": { + "title": "Reset your Password", + "info": "Please enter the code sent to your email, along with your new password.", + "buttons": { + "send": "Reset Password" + }, + "form": { + "email": "Email", + "code": "Code", + "password": "Password", + "password_info": "Must be at least 8 characters long." + } + }, + "request_password_reset": { + "title": "Password Reset Request", + "info": "Enter the verified email address linked to your PRUNplanner account. If we recognize it, we'll send you a code to reset your password.", + "form": { + "email_placeholder": "Email Address" + }, + "buttons": { + "send": "Request Password Reset" + } + }, + "verify_email": { + "title": "Email Verification", + "info": "Please enter the verification code you received via email. Maybe check your spam folder.", + "buttons": { + "send": "Verify Email Address" + }, + "form": { + "code_placeholder": "Verification Code" + }, + "result": { + "ok": "Email address verified.", + "error": "Invalid code or already verified." + } + } + } +} From b89bc53554575c52bc05ad0f7d05e15cecab3a75 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:29 +0200 Subject: [PATCH 145/237] New translations account.json (Russian) [ci skip] --- src/locales/ru_RU/account.json | 81 ++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/locales/ru_RU/account.json diff --git a/src/locales/ru_RU/account.json b/src/locales/ru_RU/account.json new file mode 100644 index 00000000..f6fdc2c0 --- /dev/null +++ b/src/locales/ru_RU/account.json @@ -0,0 +1,81 @@ +{ + "components": { + "login": { + "title": "Login", + "error": "Error logging in. Please check your username and password.", + "buttons": { + "login": "Login" + }, + "form": { + "username": "Username", + "password": "Password" + }, + "tos": "By using PRUNplanner you agree to the {tos_link}.", + "tos_link": "Terms of Service", + "forgot": "Forgot your password? Request a {forgot_link}.", + "forgot_link": "Password Reset" + }, + "registration": { + "title": "Account Information", + "tos": "PRUNplanner is free to use. By creating an account, you acknowledge and agree to the {tos_link}.", + "tos_link": "Terms of Service", + "result": { + "ok_header": "Welcome, {username}!", + "ok_message": "Registration succesful. You can now login to PRUNplanner.", + "error": "Error during registration." + }, + "buttons": { + "register": "Create Account" + }, + "form": { + "username": "Username", + "username_info": "Must be at least 3 characters long. Can't contain spaces.", + "password": "Password", + "password_info": "Must be at least 8 characters long.", + "email": "Email", + "email_placeholder": "Not mandatory, but recommended.", + "email_info": "Not mandatory. Increases your account security.", + "security_question": "Security Question", + "question": "Enter the name of planet {planet}. To find it, open a new Prosperous Universe buffer with the command {command}. You'll see the planets name listed under 'Name' in the planet information", + "planet_name": "Name" + } + }, + "password_reset": { + "title": "Reset your Password", + "info": "Please enter the code sent to your email, along with your new password.", + "buttons": { + "send": "Reset Password" + }, + "form": { + "email": "Email", + "code": "Code", + "password": "Password", + "password_info": "Must be at least 8 characters long." + } + }, + "request_password_reset": { + "title": "Password Reset Request", + "info": "Enter the verified email address linked to your PRUNplanner account. If we recognize it, we'll send you a code to reset your password.", + "form": { + "email_placeholder": "Email Address" + }, + "buttons": { + "send": "Request Password Reset" + } + }, + "verify_email": { + "title": "Email Verification", + "info": "Please enter the verification code you received via email. Maybe check your spam folder.", + "buttons": { + "send": "Verify Email Address" + }, + "form": { + "code_placeholder": "Verification Code" + }, + "result": { + "ok": "Email address verified.", + "error": "Invalid code or already verified." + } + } + } +} From 41243599d4d6d3324137d38af8e82bd47f9c14ed Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:30 +0200 Subject: [PATCH 146/237] New translations account.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/account.json | 81 ++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 src/locales/zh_CN/account.json diff --git a/src/locales/zh_CN/account.json b/src/locales/zh_CN/account.json new file mode 100644 index 00000000..f6fdc2c0 --- /dev/null +++ b/src/locales/zh_CN/account.json @@ -0,0 +1,81 @@ +{ + "components": { + "login": { + "title": "Login", + "error": "Error logging in. Please check your username and password.", + "buttons": { + "login": "Login" + }, + "form": { + "username": "Username", + "password": "Password" + }, + "tos": "By using PRUNplanner you agree to the {tos_link}.", + "tos_link": "Terms of Service", + "forgot": "Forgot your password? Request a {forgot_link}.", + "forgot_link": "Password Reset" + }, + "registration": { + "title": "Account Information", + "tos": "PRUNplanner is free to use. By creating an account, you acknowledge and agree to the {tos_link}.", + "tos_link": "Terms of Service", + "result": { + "ok_header": "Welcome, {username}!", + "ok_message": "Registration succesful. You can now login to PRUNplanner.", + "error": "Error during registration." + }, + "buttons": { + "register": "Create Account" + }, + "form": { + "username": "Username", + "username_info": "Must be at least 3 characters long. Can't contain spaces.", + "password": "Password", + "password_info": "Must be at least 8 characters long.", + "email": "Email", + "email_placeholder": "Not mandatory, but recommended.", + "email_info": "Not mandatory. Increases your account security.", + "security_question": "Security Question", + "question": "Enter the name of planet {planet}. To find it, open a new Prosperous Universe buffer with the command {command}. You'll see the planets name listed under 'Name' in the planet information", + "planet_name": "Name" + } + }, + "password_reset": { + "title": "Reset your Password", + "info": "Please enter the code sent to your email, along with your new password.", + "buttons": { + "send": "Reset Password" + }, + "form": { + "email": "Email", + "code": "Code", + "password": "Password", + "password_info": "Must be at least 8 characters long." + } + }, + "request_password_reset": { + "title": "Password Reset Request", + "info": "Enter the verified email address linked to your PRUNplanner account. If we recognize it, we'll send you a code to reset your password.", + "form": { + "email_placeholder": "Email Address" + }, + "buttons": { + "send": "Request Password Reset" + } + }, + "verify_email": { + "title": "Email Verification", + "info": "Please enter the verification code you received via email. Maybe check your spam folder.", + "buttons": { + "send": "Verify Email Address" + }, + "form": { + "code_placeholder": "Verification Code" + }, + "result": { + "ok": "Email address verified.", + "error": "Invalid code or already verified." + } + } + } +} From 49daf72b91001bc9fc2f57cde76a52d5fd45f018 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:32 +0200 Subject: [PATCH 147/237] New translations exchanges.json (French) [ci skip] --- src/locales/fr_FR/exchanges.json | 55 ++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/locales/fr_FR/exchanges.json diff --git a/src/locales/fr_FR/exchanges.json b/src/locales/fr_FR/exchanges.json new file mode 100644 index 00000000..8c599196 --- /dev/null +++ b/src/locales/fr_FR/exchanges.json @@ -0,0 +1,55 @@ +{ + "view_title": "Exchanges", + "title": "Exchanges", + "errors": { + "title": "No Preferences", + "message": "You don't have exchange preferences. Head to Management and create your first." + }, + "buttons": { + "csv_import_export": "@:exchanges.components.csv_import_export.title", + "save": "@:common.buttons.save", + "reload": "@:common.buttons.reload" + }, + "configuration": { + "form": { + "preference_name": "Preference Name", + "empire_preferences": "Empire Preferences", + "exchange": "Exchange", + "ticker": "@:terms.material_ticker" + } + }, + "preference_type": { + "BUY": "BUY", + "SELL": "SELL", + "BOTH": "BOTH" + }, + "components": { + "ticker": { + "no_data": "No @:terms.material_ticker Preferences Configured", + "material_placeholder": "@:terms.materials" + }, + "exchanges": { + "no_data": "No @:terms.exchanges Preference Configured" + }, + "planet_preferences": { + "title": "Planet Preferences", + "form": { + "exchange": "@:terms.exchanges", + "ticker": "@:terms.material_ticker" + }, + "table": { + "planet": "@:terms.planets", + "exchange_preference": "@:terms.exchanges Preferences", + "ticker_preference": "@:terms.material_ticker Preferences" + } + }, + "csv_import_export": { + "title": "Import / Export CSV", + "warning": "Warning: Importing deletes all existing properties and imports the new ones. You need to save your imported preferences after uploading the CSV file or use the reload button to discard them.", + "buttons": { + "import": "Import Settings", + "export": "Export Settings" + } + } + } +} From 37d1ce2903cfbf43784113c5e17c2b89254bef4b Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:33 +0200 Subject: [PATCH 148/237] New translations exchanges.json (Spanish) [ci skip] --- src/locales/es_ES/exchanges.json | 55 ++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/locales/es_ES/exchanges.json diff --git a/src/locales/es_ES/exchanges.json b/src/locales/es_ES/exchanges.json new file mode 100644 index 00000000..8c599196 --- /dev/null +++ b/src/locales/es_ES/exchanges.json @@ -0,0 +1,55 @@ +{ + "view_title": "Exchanges", + "title": "Exchanges", + "errors": { + "title": "No Preferences", + "message": "You don't have exchange preferences. Head to Management and create your first." + }, + "buttons": { + "csv_import_export": "@:exchanges.components.csv_import_export.title", + "save": "@:common.buttons.save", + "reload": "@:common.buttons.reload" + }, + "configuration": { + "form": { + "preference_name": "Preference Name", + "empire_preferences": "Empire Preferences", + "exchange": "Exchange", + "ticker": "@:terms.material_ticker" + } + }, + "preference_type": { + "BUY": "BUY", + "SELL": "SELL", + "BOTH": "BOTH" + }, + "components": { + "ticker": { + "no_data": "No @:terms.material_ticker Preferences Configured", + "material_placeholder": "@:terms.materials" + }, + "exchanges": { + "no_data": "No @:terms.exchanges Preference Configured" + }, + "planet_preferences": { + "title": "Planet Preferences", + "form": { + "exchange": "@:terms.exchanges", + "ticker": "@:terms.material_ticker" + }, + "table": { + "planet": "@:terms.planets", + "exchange_preference": "@:terms.exchanges Preferences", + "ticker_preference": "@:terms.material_ticker Preferences" + } + }, + "csv_import_export": { + "title": "Import / Export CSV", + "warning": "Warning: Importing deletes all existing properties and imports the new ones. You need to save your imported preferences after uploading the CSV file or use the reload button to discard them.", + "buttons": { + "import": "Import Settings", + "export": "Export Settings" + } + } + } +} From c15d77071f8e744b87da5973fcb8d0a6e6cef497 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:34 +0200 Subject: [PATCH 149/237] New translations exchanges.json (German) [ci skip] --- src/locales/de_DE/exchanges.json | 55 ++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/locales/de_DE/exchanges.json diff --git a/src/locales/de_DE/exchanges.json b/src/locales/de_DE/exchanges.json new file mode 100644 index 00000000..8c599196 --- /dev/null +++ b/src/locales/de_DE/exchanges.json @@ -0,0 +1,55 @@ +{ + "view_title": "Exchanges", + "title": "Exchanges", + "errors": { + "title": "No Preferences", + "message": "You don't have exchange preferences. Head to Management and create your first." + }, + "buttons": { + "csv_import_export": "@:exchanges.components.csv_import_export.title", + "save": "@:common.buttons.save", + "reload": "@:common.buttons.reload" + }, + "configuration": { + "form": { + "preference_name": "Preference Name", + "empire_preferences": "Empire Preferences", + "exchange": "Exchange", + "ticker": "@:terms.material_ticker" + } + }, + "preference_type": { + "BUY": "BUY", + "SELL": "SELL", + "BOTH": "BOTH" + }, + "components": { + "ticker": { + "no_data": "No @:terms.material_ticker Preferences Configured", + "material_placeholder": "@:terms.materials" + }, + "exchanges": { + "no_data": "No @:terms.exchanges Preference Configured" + }, + "planet_preferences": { + "title": "Planet Preferences", + "form": { + "exchange": "@:terms.exchanges", + "ticker": "@:terms.material_ticker" + }, + "table": { + "planet": "@:terms.planets", + "exchange_preference": "@:terms.exchanges Preferences", + "ticker_preference": "@:terms.material_ticker Preferences" + } + }, + "csv_import_export": { + "title": "Import / Export CSV", + "warning": "Warning: Importing deletes all existing properties and imports the new ones. You need to save your imported preferences after uploading the CSV file or use the reload button to discard them.", + "buttons": { + "import": "Import Settings", + "export": "Export Settings" + } + } + } +} From f105c040aea3eb67f68b19819e86a7a6b20d35af Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:35 +0200 Subject: [PATCH 150/237] New translations exchanges.json (Italian) [ci skip] --- src/locales/it_IT/exchanges.json | 55 ++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/locales/it_IT/exchanges.json diff --git a/src/locales/it_IT/exchanges.json b/src/locales/it_IT/exchanges.json new file mode 100644 index 00000000..8c599196 --- /dev/null +++ b/src/locales/it_IT/exchanges.json @@ -0,0 +1,55 @@ +{ + "view_title": "Exchanges", + "title": "Exchanges", + "errors": { + "title": "No Preferences", + "message": "You don't have exchange preferences. Head to Management and create your first." + }, + "buttons": { + "csv_import_export": "@:exchanges.components.csv_import_export.title", + "save": "@:common.buttons.save", + "reload": "@:common.buttons.reload" + }, + "configuration": { + "form": { + "preference_name": "Preference Name", + "empire_preferences": "Empire Preferences", + "exchange": "Exchange", + "ticker": "@:terms.material_ticker" + } + }, + "preference_type": { + "BUY": "BUY", + "SELL": "SELL", + "BOTH": "BOTH" + }, + "components": { + "ticker": { + "no_data": "No @:terms.material_ticker Preferences Configured", + "material_placeholder": "@:terms.materials" + }, + "exchanges": { + "no_data": "No @:terms.exchanges Preference Configured" + }, + "planet_preferences": { + "title": "Planet Preferences", + "form": { + "exchange": "@:terms.exchanges", + "ticker": "@:terms.material_ticker" + }, + "table": { + "planet": "@:terms.planets", + "exchange_preference": "@:terms.exchanges Preferences", + "ticker_preference": "@:terms.material_ticker Preferences" + } + }, + "csv_import_export": { + "title": "Import / Export CSV", + "warning": "Warning: Importing deletes all existing properties and imports the new ones. You need to save your imported preferences after uploading the CSV file or use the reload button to discard them.", + "buttons": { + "import": "Import Settings", + "export": "Export Settings" + } + } + } +} From d1db78ffb2e8ee90d1ef9f9c5b8106d3ee714a0d Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:36 +0200 Subject: [PATCH 151/237] New translations exchanges.json (Japanese) [ci skip] --- src/locales/ja_JP/exchanges.json | 55 ++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/locales/ja_JP/exchanges.json diff --git a/src/locales/ja_JP/exchanges.json b/src/locales/ja_JP/exchanges.json new file mode 100644 index 00000000..8c599196 --- /dev/null +++ b/src/locales/ja_JP/exchanges.json @@ -0,0 +1,55 @@ +{ + "view_title": "Exchanges", + "title": "Exchanges", + "errors": { + "title": "No Preferences", + "message": "You don't have exchange preferences. Head to Management and create your first." + }, + "buttons": { + "csv_import_export": "@:exchanges.components.csv_import_export.title", + "save": "@:common.buttons.save", + "reload": "@:common.buttons.reload" + }, + "configuration": { + "form": { + "preference_name": "Preference Name", + "empire_preferences": "Empire Preferences", + "exchange": "Exchange", + "ticker": "@:terms.material_ticker" + } + }, + "preference_type": { + "BUY": "BUY", + "SELL": "SELL", + "BOTH": "BOTH" + }, + "components": { + "ticker": { + "no_data": "No @:terms.material_ticker Preferences Configured", + "material_placeholder": "@:terms.materials" + }, + "exchanges": { + "no_data": "No @:terms.exchanges Preference Configured" + }, + "planet_preferences": { + "title": "Planet Preferences", + "form": { + "exchange": "@:terms.exchanges", + "ticker": "@:terms.material_ticker" + }, + "table": { + "planet": "@:terms.planets", + "exchange_preference": "@:terms.exchanges Preferences", + "ticker_preference": "@:terms.material_ticker Preferences" + } + }, + "csv_import_export": { + "title": "Import / Export CSV", + "warning": "Warning: Importing deletes all existing properties and imports the new ones. You need to save your imported preferences after uploading the CSV file or use the reload button to discard them.", + "buttons": { + "import": "Import Settings", + "export": "Export Settings" + } + } + } +} From c96b2ad7ec0461c1c2fe2f28a63e238daf1afcd1 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:38 +0200 Subject: [PATCH 152/237] New translations exchanges.json (Korean) [ci skip] --- src/locales/ko_KR/exchanges.json | 55 ++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/locales/ko_KR/exchanges.json diff --git a/src/locales/ko_KR/exchanges.json b/src/locales/ko_KR/exchanges.json new file mode 100644 index 00000000..8c599196 --- /dev/null +++ b/src/locales/ko_KR/exchanges.json @@ -0,0 +1,55 @@ +{ + "view_title": "Exchanges", + "title": "Exchanges", + "errors": { + "title": "No Preferences", + "message": "You don't have exchange preferences. Head to Management and create your first." + }, + "buttons": { + "csv_import_export": "@:exchanges.components.csv_import_export.title", + "save": "@:common.buttons.save", + "reload": "@:common.buttons.reload" + }, + "configuration": { + "form": { + "preference_name": "Preference Name", + "empire_preferences": "Empire Preferences", + "exchange": "Exchange", + "ticker": "@:terms.material_ticker" + } + }, + "preference_type": { + "BUY": "BUY", + "SELL": "SELL", + "BOTH": "BOTH" + }, + "components": { + "ticker": { + "no_data": "No @:terms.material_ticker Preferences Configured", + "material_placeholder": "@:terms.materials" + }, + "exchanges": { + "no_data": "No @:terms.exchanges Preference Configured" + }, + "planet_preferences": { + "title": "Planet Preferences", + "form": { + "exchange": "@:terms.exchanges", + "ticker": "@:terms.material_ticker" + }, + "table": { + "planet": "@:terms.planets", + "exchange_preference": "@:terms.exchanges Preferences", + "ticker_preference": "@:terms.material_ticker Preferences" + } + }, + "csv_import_export": { + "title": "Import / Export CSV", + "warning": "Warning: Importing deletes all existing properties and imports the new ones. You need to save your imported preferences after uploading the CSV file or use the reload button to discard them.", + "buttons": { + "import": "Import Settings", + "export": "Export Settings" + } + } + } +} From 4b11dc99156c5b86f3b0266f685aacfcd6effe41 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:39 +0200 Subject: [PATCH 153/237] New translations exchanges.json (Dutch) [ci skip] --- src/locales/nl_NL/exchanges.json | 55 ++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/locales/nl_NL/exchanges.json diff --git a/src/locales/nl_NL/exchanges.json b/src/locales/nl_NL/exchanges.json new file mode 100644 index 00000000..8c599196 --- /dev/null +++ b/src/locales/nl_NL/exchanges.json @@ -0,0 +1,55 @@ +{ + "view_title": "Exchanges", + "title": "Exchanges", + "errors": { + "title": "No Preferences", + "message": "You don't have exchange preferences. Head to Management and create your first." + }, + "buttons": { + "csv_import_export": "@:exchanges.components.csv_import_export.title", + "save": "@:common.buttons.save", + "reload": "@:common.buttons.reload" + }, + "configuration": { + "form": { + "preference_name": "Preference Name", + "empire_preferences": "Empire Preferences", + "exchange": "Exchange", + "ticker": "@:terms.material_ticker" + } + }, + "preference_type": { + "BUY": "BUY", + "SELL": "SELL", + "BOTH": "BOTH" + }, + "components": { + "ticker": { + "no_data": "No @:terms.material_ticker Preferences Configured", + "material_placeholder": "@:terms.materials" + }, + "exchanges": { + "no_data": "No @:terms.exchanges Preference Configured" + }, + "planet_preferences": { + "title": "Planet Preferences", + "form": { + "exchange": "@:terms.exchanges", + "ticker": "@:terms.material_ticker" + }, + "table": { + "planet": "@:terms.planets", + "exchange_preference": "@:terms.exchanges Preferences", + "ticker_preference": "@:terms.material_ticker Preferences" + } + }, + "csv_import_export": { + "title": "Import / Export CSV", + "warning": "Warning: Importing deletes all existing properties and imports the new ones. You need to save your imported preferences after uploading the CSV file or use the reload button to discard them.", + "buttons": { + "import": "Import Settings", + "export": "Export Settings" + } + } + } +} From e3750f59485656b4c45986716b6acc5e817446e3 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:40 +0200 Subject: [PATCH 154/237] New translations exchanges.json (Portuguese) [ci skip] --- src/locales/pt_PT/exchanges.json | 55 ++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/locales/pt_PT/exchanges.json diff --git a/src/locales/pt_PT/exchanges.json b/src/locales/pt_PT/exchanges.json new file mode 100644 index 00000000..8c599196 --- /dev/null +++ b/src/locales/pt_PT/exchanges.json @@ -0,0 +1,55 @@ +{ + "view_title": "Exchanges", + "title": "Exchanges", + "errors": { + "title": "No Preferences", + "message": "You don't have exchange preferences. Head to Management and create your first." + }, + "buttons": { + "csv_import_export": "@:exchanges.components.csv_import_export.title", + "save": "@:common.buttons.save", + "reload": "@:common.buttons.reload" + }, + "configuration": { + "form": { + "preference_name": "Preference Name", + "empire_preferences": "Empire Preferences", + "exchange": "Exchange", + "ticker": "@:terms.material_ticker" + } + }, + "preference_type": { + "BUY": "BUY", + "SELL": "SELL", + "BOTH": "BOTH" + }, + "components": { + "ticker": { + "no_data": "No @:terms.material_ticker Preferences Configured", + "material_placeholder": "@:terms.materials" + }, + "exchanges": { + "no_data": "No @:terms.exchanges Preference Configured" + }, + "planet_preferences": { + "title": "Planet Preferences", + "form": { + "exchange": "@:terms.exchanges", + "ticker": "@:terms.material_ticker" + }, + "table": { + "planet": "@:terms.planets", + "exchange_preference": "@:terms.exchanges Preferences", + "ticker_preference": "@:terms.material_ticker Preferences" + } + }, + "csv_import_export": { + "title": "Import / Export CSV", + "warning": "Warning: Importing deletes all existing properties and imports the new ones. You need to save your imported preferences after uploading the CSV file or use the reload button to discard them.", + "buttons": { + "import": "Import Settings", + "export": "Export Settings" + } + } + } +} From 0569e2d358f9f7ddc2f5fd058184320e519fe3fa Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:41 +0200 Subject: [PATCH 155/237] New translations exchanges.json (Russian) [ci skip] --- src/locales/ru_RU/exchanges.json | 55 ++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/locales/ru_RU/exchanges.json diff --git a/src/locales/ru_RU/exchanges.json b/src/locales/ru_RU/exchanges.json new file mode 100644 index 00000000..8c599196 --- /dev/null +++ b/src/locales/ru_RU/exchanges.json @@ -0,0 +1,55 @@ +{ + "view_title": "Exchanges", + "title": "Exchanges", + "errors": { + "title": "No Preferences", + "message": "You don't have exchange preferences. Head to Management and create your first." + }, + "buttons": { + "csv_import_export": "@:exchanges.components.csv_import_export.title", + "save": "@:common.buttons.save", + "reload": "@:common.buttons.reload" + }, + "configuration": { + "form": { + "preference_name": "Preference Name", + "empire_preferences": "Empire Preferences", + "exchange": "Exchange", + "ticker": "@:terms.material_ticker" + } + }, + "preference_type": { + "BUY": "BUY", + "SELL": "SELL", + "BOTH": "BOTH" + }, + "components": { + "ticker": { + "no_data": "No @:terms.material_ticker Preferences Configured", + "material_placeholder": "@:terms.materials" + }, + "exchanges": { + "no_data": "No @:terms.exchanges Preference Configured" + }, + "planet_preferences": { + "title": "Planet Preferences", + "form": { + "exchange": "@:terms.exchanges", + "ticker": "@:terms.material_ticker" + }, + "table": { + "planet": "@:terms.planets", + "exchange_preference": "@:terms.exchanges Preferences", + "ticker_preference": "@:terms.material_ticker Preferences" + } + }, + "csv_import_export": { + "title": "Import / Export CSV", + "warning": "Warning: Importing deletes all existing properties and imports the new ones. You need to save your imported preferences after uploading the CSV file or use the reload button to discard them.", + "buttons": { + "import": "Import Settings", + "export": "Export Settings" + } + } + } +} From ee025b6ea37137247857047a48b0a50815e00e5f Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:42 +0200 Subject: [PATCH 156/237] New translations exchanges.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/exchanges.json | 55 ++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 src/locales/zh_CN/exchanges.json diff --git a/src/locales/zh_CN/exchanges.json b/src/locales/zh_CN/exchanges.json new file mode 100644 index 00000000..8c599196 --- /dev/null +++ b/src/locales/zh_CN/exchanges.json @@ -0,0 +1,55 @@ +{ + "view_title": "Exchanges", + "title": "Exchanges", + "errors": { + "title": "No Preferences", + "message": "You don't have exchange preferences. Head to Management and create your first." + }, + "buttons": { + "csv_import_export": "@:exchanges.components.csv_import_export.title", + "save": "@:common.buttons.save", + "reload": "@:common.buttons.reload" + }, + "configuration": { + "form": { + "preference_name": "Preference Name", + "empire_preferences": "Empire Preferences", + "exchange": "Exchange", + "ticker": "@:terms.material_ticker" + } + }, + "preference_type": { + "BUY": "BUY", + "SELL": "SELL", + "BOTH": "BOTH" + }, + "components": { + "ticker": { + "no_data": "No @:terms.material_ticker Preferences Configured", + "material_placeholder": "@:terms.materials" + }, + "exchanges": { + "no_data": "No @:terms.exchanges Preference Configured" + }, + "planet_preferences": { + "title": "Planet Preferences", + "form": { + "exchange": "@:terms.exchanges", + "ticker": "@:terms.material_ticker" + }, + "table": { + "planet": "@:terms.planets", + "exchange_preference": "@:terms.exchanges Preferences", + "ticker_preference": "@:terms.material_ticker Preferences" + } + }, + "csv_import_export": { + "title": "Import / Export CSV", + "warning": "Warning: Importing deletes all existing properties and imports the new ones. You need to save your imported preferences after uploading the CSV file or use the reload button to discard them.", + "buttons": { + "import": "Import Settings", + "export": "Export Settings" + } + } + } +} From 784b3049c0330b87786b827f311b784b3d9f7f86 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:44 +0200 Subject: [PATCH 157/237] New translations fio.json (French) [ci skip] --- src/locales/fr_FR/fio.json | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/locales/fr_FR/fio.json diff --git a/src/locales/fr_FR/fio.json b/src/locales/fr_FR/fio.json new file mode 100644 index 00000000..a104665d --- /dev/null +++ b/src/locales/fr_FR/fio.json @@ -0,0 +1,49 @@ +{ + "burn": { + "view_title": "FIO Burn", + "title": "FIO Burn:", + "fio_last_update": "FIO Data Update: {last_updated}", + "form": { + "empire": "@:terms.empire", + "burn_thresholds": "Burn Thresholds", + "red": "Red", + "yellow": "Yellow" + }, + "components": { + "overview": { + "title": "Plan Burn Overview", + "table": { + "plan": "@:terms.plan", + "planet": "@:terms.planets", + "burn": "Burn" + } + }, + "plans": { + "xit_title": "XIT Resupply: {plan_name}", + "table": { + "ticker": "@:terms.material_ticker", + "consumption": "@:terms.consumption", + "production": "@:terms.production", + "delta": "@:terms.delta", + "stock": "@:terms.stock", + "plan": "@:terms.plan", + "burn": "Burn", + "exhaustion": "Exhaustion" + } + } + } + }, + "repair": { + "view_title": "FIO Repair", + "title": "FIO Repair", + "fio_last_update": "FIO Data Update: {last_updated}", + "table": { + "title": "@:terms.planet_plural", + "planet": "@:terms.planets", + "buildings": "@:terms.buildings_plural", + "avg_condition": "⌀ Condition", + "min_condition": "Min. Condition", + "repair_age": "Repair Age" + } + } +} From 1e791e1fd499842a0384007e575a3d72e2279446 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:45 +0200 Subject: [PATCH 158/237] New translations fio.json (Spanish) [ci skip] --- src/locales/es_ES/fio.json | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/locales/es_ES/fio.json diff --git a/src/locales/es_ES/fio.json b/src/locales/es_ES/fio.json new file mode 100644 index 00000000..a104665d --- /dev/null +++ b/src/locales/es_ES/fio.json @@ -0,0 +1,49 @@ +{ + "burn": { + "view_title": "FIO Burn", + "title": "FIO Burn:", + "fio_last_update": "FIO Data Update: {last_updated}", + "form": { + "empire": "@:terms.empire", + "burn_thresholds": "Burn Thresholds", + "red": "Red", + "yellow": "Yellow" + }, + "components": { + "overview": { + "title": "Plan Burn Overview", + "table": { + "plan": "@:terms.plan", + "planet": "@:terms.planets", + "burn": "Burn" + } + }, + "plans": { + "xit_title": "XIT Resupply: {plan_name}", + "table": { + "ticker": "@:terms.material_ticker", + "consumption": "@:terms.consumption", + "production": "@:terms.production", + "delta": "@:terms.delta", + "stock": "@:terms.stock", + "plan": "@:terms.plan", + "burn": "Burn", + "exhaustion": "Exhaustion" + } + } + } + }, + "repair": { + "view_title": "FIO Repair", + "title": "FIO Repair", + "fio_last_update": "FIO Data Update: {last_updated}", + "table": { + "title": "@:terms.planet_plural", + "planet": "@:terms.planets", + "buildings": "@:terms.buildings_plural", + "avg_condition": "⌀ Condition", + "min_condition": "Min. Condition", + "repair_age": "Repair Age" + } + } +} From 1546519ddbb9fe0d26f4644cba19b764eaedb1be Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:46 +0200 Subject: [PATCH 159/237] New translations fio.json (German) [ci skip] --- src/locales/de_DE/fio.json | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/locales/de_DE/fio.json diff --git a/src/locales/de_DE/fio.json b/src/locales/de_DE/fio.json new file mode 100644 index 00000000..a104665d --- /dev/null +++ b/src/locales/de_DE/fio.json @@ -0,0 +1,49 @@ +{ + "burn": { + "view_title": "FIO Burn", + "title": "FIO Burn:", + "fio_last_update": "FIO Data Update: {last_updated}", + "form": { + "empire": "@:terms.empire", + "burn_thresholds": "Burn Thresholds", + "red": "Red", + "yellow": "Yellow" + }, + "components": { + "overview": { + "title": "Plan Burn Overview", + "table": { + "plan": "@:terms.plan", + "planet": "@:terms.planets", + "burn": "Burn" + } + }, + "plans": { + "xit_title": "XIT Resupply: {plan_name}", + "table": { + "ticker": "@:terms.material_ticker", + "consumption": "@:terms.consumption", + "production": "@:terms.production", + "delta": "@:terms.delta", + "stock": "@:terms.stock", + "plan": "@:terms.plan", + "burn": "Burn", + "exhaustion": "Exhaustion" + } + } + } + }, + "repair": { + "view_title": "FIO Repair", + "title": "FIO Repair", + "fio_last_update": "FIO Data Update: {last_updated}", + "table": { + "title": "@:terms.planet_plural", + "planet": "@:terms.planets", + "buildings": "@:terms.buildings_plural", + "avg_condition": "⌀ Condition", + "min_condition": "Min. Condition", + "repair_age": "Repair Age" + } + } +} From 5fc304283d0a24c29bc10032d51f241e9443ffe2 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:48 +0200 Subject: [PATCH 160/237] New translations fio.json (Italian) [ci skip] --- src/locales/it_IT/fio.json | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/locales/it_IT/fio.json diff --git a/src/locales/it_IT/fio.json b/src/locales/it_IT/fio.json new file mode 100644 index 00000000..a104665d --- /dev/null +++ b/src/locales/it_IT/fio.json @@ -0,0 +1,49 @@ +{ + "burn": { + "view_title": "FIO Burn", + "title": "FIO Burn:", + "fio_last_update": "FIO Data Update: {last_updated}", + "form": { + "empire": "@:terms.empire", + "burn_thresholds": "Burn Thresholds", + "red": "Red", + "yellow": "Yellow" + }, + "components": { + "overview": { + "title": "Plan Burn Overview", + "table": { + "plan": "@:terms.plan", + "planet": "@:terms.planets", + "burn": "Burn" + } + }, + "plans": { + "xit_title": "XIT Resupply: {plan_name}", + "table": { + "ticker": "@:terms.material_ticker", + "consumption": "@:terms.consumption", + "production": "@:terms.production", + "delta": "@:terms.delta", + "stock": "@:terms.stock", + "plan": "@:terms.plan", + "burn": "Burn", + "exhaustion": "Exhaustion" + } + } + } + }, + "repair": { + "view_title": "FIO Repair", + "title": "FIO Repair", + "fio_last_update": "FIO Data Update: {last_updated}", + "table": { + "title": "@:terms.planet_plural", + "planet": "@:terms.planets", + "buildings": "@:terms.buildings_plural", + "avg_condition": "⌀ Condition", + "min_condition": "Min. Condition", + "repair_age": "Repair Age" + } + } +} From 644312749eefa18d8e783ee46c5d34aa05c7ac4f Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:49 +0200 Subject: [PATCH 161/237] New translations fio.json (Japanese) [ci skip] --- src/locales/ja_JP/fio.json | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/locales/ja_JP/fio.json diff --git a/src/locales/ja_JP/fio.json b/src/locales/ja_JP/fio.json new file mode 100644 index 00000000..a104665d --- /dev/null +++ b/src/locales/ja_JP/fio.json @@ -0,0 +1,49 @@ +{ + "burn": { + "view_title": "FIO Burn", + "title": "FIO Burn:", + "fio_last_update": "FIO Data Update: {last_updated}", + "form": { + "empire": "@:terms.empire", + "burn_thresholds": "Burn Thresholds", + "red": "Red", + "yellow": "Yellow" + }, + "components": { + "overview": { + "title": "Plan Burn Overview", + "table": { + "plan": "@:terms.plan", + "planet": "@:terms.planets", + "burn": "Burn" + } + }, + "plans": { + "xit_title": "XIT Resupply: {plan_name}", + "table": { + "ticker": "@:terms.material_ticker", + "consumption": "@:terms.consumption", + "production": "@:terms.production", + "delta": "@:terms.delta", + "stock": "@:terms.stock", + "plan": "@:terms.plan", + "burn": "Burn", + "exhaustion": "Exhaustion" + } + } + } + }, + "repair": { + "view_title": "FIO Repair", + "title": "FIO Repair", + "fio_last_update": "FIO Data Update: {last_updated}", + "table": { + "title": "@:terms.planet_plural", + "planet": "@:terms.planets", + "buildings": "@:terms.buildings_plural", + "avg_condition": "⌀ Condition", + "min_condition": "Min. Condition", + "repair_age": "Repair Age" + } + } +} From 473f501cccdd811424a394d65679f9fa84b73f65 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:50 +0200 Subject: [PATCH 162/237] New translations fio.json (Korean) [ci skip] --- src/locales/ko_KR/fio.json | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/locales/ko_KR/fio.json diff --git a/src/locales/ko_KR/fio.json b/src/locales/ko_KR/fio.json new file mode 100644 index 00000000..a104665d --- /dev/null +++ b/src/locales/ko_KR/fio.json @@ -0,0 +1,49 @@ +{ + "burn": { + "view_title": "FIO Burn", + "title": "FIO Burn:", + "fio_last_update": "FIO Data Update: {last_updated}", + "form": { + "empire": "@:terms.empire", + "burn_thresholds": "Burn Thresholds", + "red": "Red", + "yellow": "Yellow" + }, + "components": { + "overview": { + "title": "Plan Burn Overview", + "table": { + "plan": "@:terms.plan", + "planet": "@:terms.planets", + "burn": "Burn" + } + }, + "plans": { + "xit_title": "XIT Resupply: {plan_name}", + "table": { + "ticker": "@:terms.material_ticker", + "consumption": "@:terms.consumption", + "production": "@:terms.production", + "delta": "@:terms.delta", + "stock": "@:terms.stock", + "plan": "@:terms.plan", + "burn": "Burn", + "exhaustion": "Exhaustion" + } + } + } + }, + "repair": { + "view_title": "FIO Repair", + "title": "FIO Repair", + "fio_last_update": "FIO Data Update: {last_updated}", + "table": { + "title": "@:terms.planet_plural", + "planet": "@:terms.planets", + "buildings": "@:terms.buildings_plural", + "avg_condition": "⌀ Condition", + "min_condition": "Min. Condition", + "repair_age": "Repair Age" + } + } +} From bf7faaa2024751469f8edf4fff2f217d1a73280d Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:51 +0200 Subject: [PATCH 163/237] New translations fio.json (Dutch) [ci skip] --- src/locales/nl_NL/fio.json | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/locales/nl_NL/fio.json diff --git a/src/locales/nl_NL/fio.json b/src/locales/nl_NL/fio.json new file mode 100644 index 00000000..a104665d --- /dev/null +++ b/src/locales/nl_NL/fio.json @@ -0,0 +1,49 @@ +{ + "burn": { + "view_title": "FIO Burn", + "title": "FIO Burn:", + "fio_last_update": "FIO Data Update: {last_updated}", + "form": { + "empire": "@:terms.empire", + "burn_thresholds": "Burn Thresholds", + "red": "Red", + "yellow": "Yellow" + }, + "components": { + "overview": { + "title": "Plan Burn Overview", + "table": { + "plan": "@:terms.plan", + "planet": "@:terms.planets", + "burn": "Burn" + } + }, + "plans": { + "xit_title": "XIT Resupply: {plan_name}", + "table": { + "ticker": "@:terms.material_ticker", + "consumption": "@:terms.consumption", + "production": "@:terms.production", + "delta": "@:terms.delta", + "stock": "@:terms.stock", + "plan": "@:terms.plan", + "burn": "Burn", + "exhaustion": "Exhaustion" + } + } + } + }, + "repair": { + "view_title": "FIO Repair", + "title": "FIO Repair", + "fio_last_update": "FIO Data Update: {last_updated}", + "table": { + "title": "@:terms.planet_plural", + "planet": "@:terms.planets", + "buildings": "@:terms.buildings_plural", + "avg_condition": "⌀ Condition", + "min_condition": "Min. Condition", + "repair_age": "Repair Age" + } + } +} From ed315f6bca1be1b2cc57ade8214090bc968f1bdf Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:53 +0200 Subject: [PATCH 164/237] New translations fio.json (Portuguese) [ci skip] --- src/locales/pt_PT/fio.json | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/locales/pt_PT/fio.json diff --git a/src/locales/pt_PT/fio.json b/src/locales/pt_PT/fio.json new file mode 100644 index 00000000..a104665d --- /dev/null +++ b/src/locales/pt_PT/fio.json @@ -0,0 +1,49 @@ +{ + "burn": { + "view_title": "FIO Burn", + "title": "FIO Burn:", + "fio_last_update": "FIO Data Update: {last_updated}", + "form": { + "empire": "@:terms.empire", + "burn_thresholds": "Burn Thresholds", + "red": "Red", + "yellow": "Yellow" + }, + "components": { + "overview": { + "title": "Plan Burn Overview", + "table": { + "plan": "@:terms.plan", + "planet": "@:terms.planets", + "burn": "Burn" + } + }, + "plans": { + "xit_title": "XIT Resupply: {plan_name}", + "table": { + "ticker": "@:terms.material_ticker", + "consumption": "@:terms.consumption", + "production": "@:terms.production", + "delta": "@:terms.delta", + "stock": "@:terms.stock", + "plan": "@:terms.plan", + "burn": "Burn", + "exhaustion": "Exhaustion" + } + } + } + }, + "repair": { + "view_title": "FIO Repair", + "title": "FIO Repair", + "fio_last_update": "FIO Data Update: {last_updated}", + "table": { + "title": "@:terms.planet_plural", + "planet": "@:terms.planets", + "buildings": "@:terms.buildings_plural", + "avg_condition": "⌀ Condition", + "min_condition": "Min. Condition", + "repair_age": "Repair Age" + } + } +} From 9de25b2f889328c6d8e0c346fc5507815dcbcf77 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:54 +0200 Subject: [PATCH 165/237] New translations fio.json (Russian) [ci skip] --- src/locales/ru_RU/fio.json | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/locales/ru_RU/fio.json diff --git a/src/locales/ru_RU/fio.json b/src/locales/ru_RU/fio.json new file mode 100644 index 00000000..a104665d --- /dev/null +++ b/src/locales/ru_RU/fio.json @@ -0,0 +1,49 @@ +{ + "burn": { + "view_title": "FIO Burn", + "title": "FIO Burn:", + "fio_last_update": "FIO Data Update: {last_updated}", + "form": { + "empire": "@:terms.empire", + "burn_thresholds": "Burn Thresholds", + "red": "Red", + "yellow": "Yellow" + }, + "components": { + "overview": { + "title": "Plan Burn Overview", + "table": { + "plan": "@:terms.plan", + "planet": "@:terms.planets", + "burn": "Burn" + } + }, + "plans": { + "xit_title": "XIT Resupply: {plan_name}", + "table": { + "ticker": "@:terms.material_ticker", + "consumption": "@:terms.consumption", + "production": "@:terms.production", + "delta": "@:terms.delta", + "stock": "@:terms.stock", + "plan": "@:terms.plan", + "burn": "Burn", + "exhaustion": "Exhaustion" + } + } + } + }, + "repair": { + "view_title": "FIO Repair", + "title": "FIO Repair", + "fio_last_update": "FIO Data Update: {last_updated}", + "table": { + "title": "@:terms.planet_plural", + "planet": "@:terms.planets", + "buildings": "@:terms.buildings_plural", + "avg_condition": "⌀ Condition", + "min_condition": "Min. Condition", + "repair_age": "Repair Age" + } + } +} From a6aaf3c0c0ece8b2ecac07fb518d6eee49e4acb7 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:55 +0200 Subject: [PATCH 166/237] New translations fio.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/fio.json | 49 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/locales/zh_CN/fio.json diff --git a/src/locales/zh_CN/fio.json b/src/locales/zh_CN/fio.json new file mode 100644 index 00000000..a104665d --- /dev/null +++ b/src/locales/zh_CN/fio.json @@ -0,0 +1,49 @@ +{ + "burn": { + "view_title": "FIO Burn", + "title": "FIO Burn:", + "fio_last_update": "FIO Data Update: {last_updated}", + "form": { + "empire": "@:terms.empire", + "burn_thresholds": "Burn Thresholds", + "red": "Red", + "yellow": "Yellow" + }, + "components": { + "overview": { + "title": "Plan Burn Overview", + "table": { + "plan": "@:terms.plan", + "planet": "@:terms.planets", + "burn": "Burn" + } + }, + "plans": { + "xit_title": "XIT Resupply: {plan_name}", + "table": { + "ticker": "@:terms.material_ticker", + "consumption": "@:terms.consumption", + "production": "@:terms.production", + "delta": "@:terms.delta", + "stock": "@:terms.stock", + "plan": "@:terms.plan", + "burn": "Burn", + "exhaustion": "Exhaustion" + } + } + } + }, + "repair": { + "view_title": "FIO Repair", + "title": "FIO Repair", + "fio_last_update": "FIO Data Update: {last_updated}", + "table": { + "title": "@:terms.planet_plural", + "planet": "@:terms.planets", + "buildings": "@:terms.buildings_plural", + "avg_condition": "⌀ Condition", + "min_condition": "Min. Condition", + "repair_age": "Repair Age" + } + } +} From 6980cef17e21a924693d565f52ebf11957edef37 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:56 +0200 Subject: [PATCH 167/237] New translations market_live.json (French) [ci skip] --- src/locales/fr_FR/market_live.json | 101 +++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 src/locales/fr_FR/market_live.json diff --git a/src/locales/fr_FR/market_live.json b/src/locales/fr_FR/market_live.json new file mode 100644 index 00000000..ca5a5b21 --- /dev/null +++ b/src/locales/fr_FR/market_live.json @@ -0,0 +1,101 @@ +{ + "view_title": "Market Live", + "title": "Market Live", + "status": { + "connected": "Connected", + "disconnected": "Disconnected" + }, + "severity_type": { + "LOW": "LOW", + "MEDIUM": "MEDIUM", + "HIGH": "HIGH" + }, + "status_type": { + "active": "Active", + "paused": "Paused" + }, + "rule_type": { + "static": "Value", + "previous": "Previous", + "previous_pct": "Offset %", + "text": "Text" + }, + "components": { + "feed": { + "title": "Alert Feed", + "buttons": { + "open_manager": "Open Alert Manager", + "close_manager": "Close Alert Manager", + "clear_feed": "Clear Feed", + "show_overview": "Show Overview", + "hide_overview": "Hide Overview" + } + }, + "alert_feed": { + "waiting": "Waiting for market events triggering alerts...", + "table": { + "ticker_alert": "Ticker / Alert", + "severity": "Severity", + "logic": "Trigger Logic", + "event": "Event", + "time": "Time" + } + }, + "details": { + "price": "Price", + "ask": "@:{'terms.ask'}: {value}", + "bid": "@:{'terms.bid'}: {value}", + "spread": "@:{'terms.spread'}", + "buy_volume": "Buy Volume", + "vwap": "@:{'terms.vwap'}: {value}", + "change": "Change: {value}", + "sell_volume": "Sell Volume", + "buy_volume_value": "Buy Volume: {value}", + "sell_volume_value": "Sell Volume: {value}" + }, + "point_table": { + "table": { + "ticker": "@:terms.material_ticker", + "price": "@:terms.price", + "bid": "@:terms.bid", + "ask": "@:terms.ask", + "spread_pct": "Spread %", + "buy_volume": "Buy Vol.", + "sell_volume": "Sell Vol." + } + }, + "history": { + "title": "Data History", + "received": "{value} @:terms.material_ticker received" + }, + "rule_builder": { + "new_rule_name": "New Rule", + "buttons": { + "add_condition": "Condition", + "add_group": "Group", + "remove": "Remove" + }, + "error": "Error: {value}", + "empty": "Empty Group" + }, + "alert_manager": { + "title": "Alert Manager", + "title_editing": "Edit Alert", + "info": "Alerts are currently stored on this device only and are not synced to your account.", + "no_alerts": "No alerts found. Start by creating your first detector signal", + "buttons": { + "create_alert": "Create New Alert", + "discard": "@:common.buttons.discard", + "save": "@:common.buttons.save", + "delete": "@:common.buttons.delete" + }, + "form": { + "alert_name": "Alert Name", + "severity": "Severity", + "status": "Status", + "logic_configuration": "Logic Configuration", + "previous_datapoint": "Previous Datepoint" + } + } + } +} From b04fbb205c1626c61659291a38071d399d248216 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:57 +0200 Subject: [PATCH 168/237] New translations market_live.json (Spanish) [ci skip] --- src/locales/es_ES/market_live.json | 101 +++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 src/locales/es_ES/market_live.json diff --git a/src/locales/es_ES/market_live.json b/src/locales/es_ES/market_live.json new file mode 100644 index 00000000..ca5a5b21 --- /dev/null +++ b/src/locales/es_ES/market_live.json @@ -0,0 +1,101 @@ +{ + "view_title": "Market Live", + "title": "Market Live", + "status": { + "connected": "Connected", + "disconnected": "Disconnected" + }, + "severity_type": { + "LOW": "LOW", + "MEDIUM": "MEDIUM", + "HIGH": "HIGH" + }, + "status_type": { + "active": "Active", + "paused": "Paused" + }, + "rule_type": { + "static": "Value", + "previous": "Previous", + "previous_pct": "Offset %", + "text": "Text" + }, + "components": { + "feed": { + "title": "Alert Feed", + "buttons": { + "open_manager": "Open Alert Manager", + "close_manager": "Close Alert Manager", + "clear_feed": "Clear Feed", + "show_overview": "Show Overview", + "hide_overview": "Hide Overview" + } + }, + "alert_feed": { + "waiting": "Waiting for market events triggering alerts...", + "table": { + "ticker_alert": "Ticker / Alert", + "severity": "Severity", + "logic": "Trigger Logic", + "event": "Event", + "time": "Time" + } + }, + "details": { + "price": "Price", + "ask": "@:{'terms.ask'}: {value}", + "bid": "@:{'terms.bid'}: {value}", + "spread": "@:{'terms.spread'}", + "buy_volume": "Buy Volume", + "vwap": "@:{'terms.vwap'}: {value}", + "change": "Change: {value}", + "sell_volume": "Sell Volume", + "buy_volume_value": "Buy Volume: {value}", + "sell_volume_value": "Sell Volume: {value}" + }, + "point_table": { + "table": { + "ticker": "@:terms.material_ticker", + "price": "@:terms.price", + "bid": "@:terms.bid", + "ask": "@:terms.ask", + "spread_pct": "Spread %", + "buy_volume": "Buy Vol.", + "sell_volume": "Sell Vol." + } + }, + "history": { + "title": "Data History", + "received": "{value} @:terms.material_ticker received" + }, + "rule_builder": { + "new_rule_name": "New Rule", + "buttons": { + "add_condition": "Condition", + "add_group": "Group", + "remove": "Remove" + }, + "error": "Error: {value}", + "empty": "Empty Group" + }, + "alert_manager": { + "title": "Alert Manager", + "title_editing": "Edit Alert", + "info": "Alerts are currently stored on this device only and are not synced to your account.", + "no_alerts": "No alerts found. Start by creating your first detector signal", + "buttons": { + "create_alert": "Create New Alert", + "discard": "@:common.buttons.discard", + "save": "@:common.buttons.save", + "delete": "@:common.buttons.delete" + }, + "form": { + "alert_name": "Alert Name", + "severity": "Severity", + "status": "Status", + "logic_configuration": "Logic Configuration", + "previous_datapoint": "Previous Datepoint" + } + } + } +} From 5461cce77a4a737217c57b1c4d7a237422473e59 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:50:59 +0200 Subject: [PATCH 169/237] New translations market_live.json (German) [ci skip] --- src/locales/de_DE/market_live.json | 101 +++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 src/locales/de_DE/market_live.json diff --git a/src/locales/de_DE/market_live.json b/src/locales/de_DE/market_live.json new file mode 100644 index 00000000..ca5a5b21 --- /dev/null +++ b/src/locales/de_DE/market_live.json @@ -0,0 +1,101 @@ +{ + "view_title": "Market Live", + "title": "Market Live", + "status": { + "connected": "Connected", + "disconnected": "Disconnected" + }, + "severity_type": { + "LOW": "LOW", + "MEDIUM": "MEDIUM", + "HIGH": "HIGH" + }, + "status_type": { + "active": "Active", + "paused": "Paused" + }, + "rule_type": { + "static": "Value", + "previous": "Previous", + "previous_pct": "Offset %", + "text": "Text" + }, + "components": { + "feed": { + "title": "Alert Feed", + "buttons": { + "open_manager": "Open Alert Manager", + "close_manager": "Close Alert Manager", + "clear_feed": "Clear Feed", + "show_overview": "Show Overview", + "hide_overview": "Hide Overview" + } + }, + "alert_feed": { + "waiting": "Waiting for market events triggering alerts...", + "table": { + "ticker_alert": "Ticker / Alert", + "severity": "Severity", + "logic": "Trigger Logic", + "event": "Event", + "time": "Time" + } + }, + "details": { + "price": "Price", + "ask": "@:{'terms.ask'}: {value}", + "bid": "@:{'terms.bid'}: {value}", + "spread": "@:{'terms.spread'}", + "buy_volume": "Buy Volume", + "vwap": "@:{'terms.vwap'}: {value}", + "change": "Change: {value}", + "sell_volume": "Sell Volume", + "buy_volume_value": "Buy Volume: {value}", + "sell_volume_value": "Sell Volume: {value}" + }, + "point_table": { + "table": { + "ticker": "@:terms.material_ticker", + "price": "@:terms.price", + "bid": "@:terms.bid", + "ask": "@:terms.ask", + "spread_pct": "Spread %", + "buy_volume": "Buy Vol.", + "sell_volume": "Sell Vol." + } + }, + "history": { + "title": "Data History", + "received": "{value} @:terms.material_ticker received" + }, + "rule_builder": { + "new_rule_name": "New Rule", + "buttons": { + "add_condition": "Condition", + "add_group": "Group", + "remove": "Remove" + }, + "error": "Error: {value}", + "empty": "Empty Group" + }, + "alert_manager": { + "title": "Alert Manager", + "title_editing": "Edit Alert", + "info": "Alerts are currently stored on this device only and are not synced to your account.", + "no_alerts": "No alerts found. Start by creating your first detector signal", + "buttons": { + "create_alert": "Create New Alert", + "discard": "@:common.buttons.discard", + "save": "@:common.buttons.save", + "delete": "@:common.buttons.delete" + }, + "form": { + "alert_name": "Alert Name", + "severity": "Severity", + "status": "Status", + "logic_configuration": "Logic Configuration", + "previous_datapoint": "Previous Datepoint" + } + } + } +} From 8f5268f2a73df4df6f0d495433dd9691bc7f1998 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:00 +0200 Subject: [PATCH 170/237] New translations market_live.json (Italian) [ci skip] --- src/locales/it_IT/market_live.json | 101 +++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 src/locales/it_IT/market_live.json diff --git a/src/locales/it_IT/market_live.json b/src/locales/it_IT/market_live.json new file mode 100644 index 00000000..ca5a5b21 --- /dev/null +++ b/src/locales/it_IT/market_live.json @@ -0,0 +1,101 @@ +{ + "view_title": "Market Live", + "title": "Market Live", + "status": { + "connected": "Connected", + "disconnected": "Disconnected" + }, + "severity_type": { + "LOW": "LOW", + "MEDIUM": "MEDIUM", + "HIGH": "HIGH" + }, + "status_type": { + "active": "Active", + "paused": "Paused" + }, + "rule_type": { + "static": "Value", + "previous": "Previous", + "previous_pct": "Offset %", + "text": "Text" + }, + "components": { + "feed": { + "title": "Alert Feed", + "buttons": { + "open_manager": "Open Alert Manager", + "close_manager": "Close Alert Manager", + "clear_feed": "Clear Feed", + "show_overview": "Show Overview", + "hide_overview": "Hide Overview" + } + }, + "alert_feed": { + "waiting": "Waiting for market events triggering alerts...", + "table": { + "ticker_alert": "Ticker / Alert", + "severity": "Severity", + "logic": "Trigger Logic", + "event": "Event", + "time": "Time" + } + }, + "details": { + "price": "Price", + "ask": "@:{'terms.ask'}: {value}", + "bid": "@:{'terms.bid'}: {value}", + "spread": "@:{'terms.spread'}", + "buy_volume": "Buy Volume", + "vwap": "@:{'terms.vwap'}: {value}", + "change": "Change: {value}", + "sell_volume": "Sell Volume", + "buy_volume_value": "Buy Volume: {value}", + "sell_volume_value": "Sell Volume: {value}" + }, + "point_table": { + "table": { + "ticker": "@:terms.material_ticker", + "price": "@:terms.price", + "bid": "@:terms.bid", + "ask": "@:terms.ask", + "spread_pct": "Spread %", + "buy_volume": "Buy Vol.", + "sell_volume": "Sell Vol." + } + }, + "history": { + "title": "Data History", + "received": "{value} @:terms.material_ticker received" + }, + "rule_builder": { + "new_rule_name": "New Rule", + "buttons": { + "add_condition": "Condition", + "add_group": "Group", + "remove": "Remove" + }, + "error": "Error: {value}", + "empty": "Empty Group" + }, + "alert_manager": { + "title": "Alert Manager", + "title_editing": "Edit Alert", + "info": "Alerts are currently stored on this device only and are not synced to your account.", + "no_alerts": "No alerts found. Start by creating your first detector signal", + "buttons": { + "create_alert": "Create New Alert", + "discard": "@:common.buttons.discard", + "save": "@:common.buttons.save", + "delete": "@:common.buttons.delete" + }, + "form": { + "alert_name": "Alert Name", + "severity": "Severity", + "status": "Status", + "logic_configuration": "Logic Configuration", + "previous_datapoint": "Previous Datepoint" + } + } + } +} From 7e63c42d0884fc19fc1cf8272e50408c80dbc00f Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:01 +0200 Subject: [PATCH 171/237] New translations market_live.json (Japanese) [ci skip] --- src/locales/ja_JP/market_live.json | 101 +++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 src/locales/ja_JP/market_live.json diff --git a/src/locales/ja_JP/market_live.json b/src/locales/ja_JP/market_live.json new file mode 100644 index 00000000..ca5a5b21 --- /dev/null +++ b/src/locales/ja_JP/market_live.json @@ -0,0 +1,101 @@ +{ + "view_title": "Market Live", + "title": "Market Live", + "status": { + "connected": "Connected", + "disconnected": "Disconnected" + }, + "severity_type": { + "LOW": "LOW", + "MEDIUM": "MEDIUM", + "HIGH": "HIGH" + }, + "status_type": { + "active": "Active", + "paused": "Paused" + }, + "rule_type": { + "static": "Value", + "previous": "Previous", + "previous_pct": "Offset %", + "text": "Text" + }, + "components": { + "feed": { + "title": "Alert Feed", + "buttons": { + "open_manager": "Open Alert Manager", + "close_manager": "Close Alert Manager", + "clear_feed": "Clear Feed", + "show_overview": "Show Overview", + "hide_overview": "Hide Overview" + } + }, + "alert_feed": { + "waiting": "Waiting for market events triggering alerts...", + "table": { + "ticker_alert": "Ticker / Alert", + "severity": "Severity", + "logic": "Trigger Logic", + "event": "Event", + "time": "Time" + } + }, + "details": { + "price": "Price", + "ask": "@:{'terms.ask'}: {value}", + "bid": "@:{'terms.bid'}: {value}", + "spread": "@:{'terms.spread'}", + "buy_volume": "Buy Volume", + "vwap": "@:{'terms.vwap'}: {value}", + "change": "Change: {value}", + "sell_volume": "Sell Volume", + "buy_volume_value": "Buy Volume: {value}", + "sell_volume_value": "Sell Volume: {value}" + }, + "point_table": { + "table": { + "ticker": "@:terms.material_ticker", + "price": "@:terms.price", + "bid": "@:terms.bid", + "ask": "@:terms.ask", + "spread_pct": "Spread %", + "buy_volume": "Buy Vol.", + "sell_volume": "Sell Vol." + } + }, + "history": { + "title": "Data History", + "received": "{value} @:terms.material_ticker received" + }, + "rule_builder": { + "new_rule_name": "New Rule", + "buttons": { + "add_condition": "Condition", + "add_group": "Group", + "remove": "Remove" + }, + "error": "Error: {value}", + "empty": "Empty Group" + }, + "alert_manager": { + "title": "Alert Manager", + "title_editing": "Edit Alert", + "info": "Alerts are currently stored on this device only and are not synced to your account.", + "no_alerts": "No alerts found. Start by creating your first detector signal", + "buttons": { + "create_alert": "Create New Alert", + "discard": "@:common.buttons.discard", + "save": "@:common.buttons.save", + "delete": "@:common.buttons.delete" + }, + "form": { + "alert_name": "Alert Name", + "severity": "Severity", + "status": "Status", + "logic_configuration": "Logic Configuration", + "previous_datapoint": "Previous Datepoint" + } + } + } +} From 4afb24d84fa4c2e132a9f89266e81983fc4eeee7 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:02 +0200 Subject: [PATCH 172/237] New translations market_live.json (Korean) [ci skip] --- src/locales/ko_KR/market_live.json | 101 +++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 src/locales/ko_KR/market_live.json diff --git a/src/locales/ko_KR/market_live.json b/src/locales/ko_KR/market_live.json new file mode 100644 index 00000000..ca5a5b21 --- /dev/null +++ b/src/locales/ko_KR/market_live.json @@ -0,0 +1,101 @@ +{ + "view_title": "Market Live", + "title": "Market Live", + "status": { + "connected": "Connected", + "disconnected": "Disconnected" + }, + "severity_type": { + "LOW": "LOW", + "MEDIUM": "MEDIUM", + "HIGH": "HIGH" + }, + "status_type": { + "active": "Active", + "paused": "Paused" + }, + "rule_type": { + "static": "Value", + "previous": "Previous", + "previous_pct": "Offset %", + "text": "Text" + }, + "components": { + "feed": { + "title": "Alert Feed", + "buttons": { + "open_manager": "Open Alert Manager", + "close_manager": "Close Alert Manager", + "clear_feed": "Clear Feed", + "show_overview": "Show Overview", + "hide_overview": "Hide Overview" + } + }, + "alert_feed": { + "waiting": "Waiting for market events triggering alerts...", + "table": { + "ticker_alert": "Ticker / Alert", + "severity": "Severity", + "logic": "Trigger Logic", + "event": "Event", + "time": "Time" + } + }, + "details": { + "price": "Price", + "ask": "@:{'terms.ask'}: {value}", + "bid": "@:{'terms.bid'}: {value}", + "spread": "@:{'terms.spread'}", + "buy_volume": "Buy Volume", + "vwap": "@:{'terms.vwap'}: {value}", + "change": "Change: {value}", + "sell_volume": "Sell Volume", + "buy_volume_value": "Buy Volume: {value}", + "sell_volume_value": "Sell Volume: {value}" + }, + "point_table": { + "table": { + "ticker": "@:terms.material_ticker", + "price": "@:terms.price", + "bid": "@:terms.bid", + "ask": "@:terms.ask", + "spread_pct": "Spread %", + "buy_volume": "Buy Vol.", + "sell_volume": "Sell Vol." + } + }, + "history": { + "title": "Data History", + "received": "{value} @:terms.material_ticker received" + }, + "rule_builder": { + "new_rule_name": "New Rule", + "buttons": { + "add_condition": "Condition", + "add_group": "Group", + "remove": "Remove" + }, + "error": "Error: {value}", + "empty": "Empty Group" + }, + "alert_manager": { + "title": "Alert Manager", + "title_editing": "Edit Alert", + "info": "Alerts are currently stored on this device only and are not synced to your account.", + "no_alerts": "No alerts found. Start by creating your first detector signal", + "buttons": { + "create_alert": "Create New Alert", + "discard": "@:common.buttons.discard", + "save": "@:common.buttons.save", + "delete": "@:common.buttons.delete" + }, + "form": { + "alert_name": "Alert Name", + "severity": "Severity", + "status": "Status", + "logic_configuration": "Logic Configuration", + "previous_datapoint": "Previous Datepoint" + } + } + } +} From 49caf856cef2329957a860c627b0f2f261ce39b9 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:04 +0200 Subject: [PATCH 173/237] New translations market_live.json (Dutch) [ci skip] --- src/locales/nl_NL/market_live.json | 101 +++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 src/locales/nl_NL/market_live.json diff --git a/src/locales/nl_NL/market_live.json b/src/locales/nl_NL/market_live.json new file mode 100644 index 00000000..ca5a5b21 --- /dev/null +++ b/src/locales/nl_NL/market_live.json @@ -0,0 +1,101 @@ +{ + "view_title": "Market Live", + "title": "Market Live", + "status": { + "connected": "Connected", + "disconnected": "Disconnected" + }, + "severity_type": { + "LOW": "LOW", + "MEDIUM": "MEDIUM", + "HIGH": "HIGH" + }, + "status_type": { + "active": "Active", + "paused": "Paused" + }, + "rule_type": { + "static": "Value", + "previous": "Previous", + "previous_pct": "Offset %", + "text": "Text" + }, + "components": { + "feed": { + "title": "Alert Feed", + "buttons": { + "open_manager": "Open Alert Manager", + "close_manager": "Close Alert Manager", + "clear_feed": "Clear Feed", + "show_overview": "Show Overview", + "hide_overview": "Hide Overview" + } + }, + "alert_feed": { + "waiting": "Waiting for market events triggering alerts...", + "table": { + "ticker_alert": "Ticker / Alert", + "severity": "Severity", + "logic": "Trigger Logic", + "event": "Event", + "time": "Time" + } + }, + "details": { + "price": "Price", + "ask": "@:{'terms.ask'}: {value}", + "bid": "@:{'terms.bid'}: {value}", + "spread": "@:{'terms.spread'}", + "buy_volume": "Buy Volume", + "vwap": "@:{'terms.vwap'}: {value}", + "change": "Change: {value}", + "sell_volume": "Sell Volume", + "buy_volume_value": "Buy Volume: {value}", + "sell_volume_value": "Sell Volume: {value}" + }, + "point_table": { + "table": { + "ticker": "@:terms.material_ticker", + "price": "@:terms.price", + "bid": "@:terms.bid", + "ask": "@:terms.ask", + "spread_pct": "Spread %", + "buy_volume": "Buy Vol.", + "sell_volume": "Sell Vol." + } + }, + "history": { + "title": "Data History", + "received": "{value} @:terms.material_ticker received" + }, + "rule_builder": { + "new_rule_name": "New Rule", + "buttons": { + "add_condition": "Condition", + "add_group": "Group", + "remove": "Remove" + }, + "error": "Error: {value}", + "empty": "Empty Group" + }, + "alert_manager": { + "title": "Alert Manager", + "title_editing": "Edit Alert", + "info": "Alerts are currently stored on this device only and are not synced to your account.", + "no_alerts": "No alerts found. Start by creating your first detector signal", + "buttons": { + "create_alert": "Create New Alert", + "discard": "@:common.buttons.discard", + "save": "@:common.buttons.save", + "delete": "@:common.buttons.delete" + }, + "form": { + "alert_name": "Alert Name", + "severity": "Severity", + "status": "Status", + "logic_configuration": "Logic Configuration", + "previous_datapoint": "Previous Datepoint" + } + } + } +} From a3988b432a893f9e7f83a293f2185cf892737412 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:05 +0200 Subject: [PATCH 174/237] New translations market_live.json (Portuguese) [ci skip] --- src/locales/pt_PT/market_live.json | 101 +++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 src/locales/pt_PT/market_live.json diff --git a/src/locales/pt_PT/market_live.json b/src/locales/pt_PT/market_live.json new file mode 100644 index 00000000..ca5a5b21 --- /dev/null +++ b/src/locales/pt_PT/market_live.json @@ -0,0 +1,101 @@ +{ + "view_title": "Market Live", + "title": "Market Live", + "status": { + "connected": "Connected", + "disconnected": "Disconnected" + }, + "severity_type": { + "LOW": "LOW", + "MEDIUM": "MEDIUM", + "HIGH": "HIGH" + }, + "status_type": { + "active": "Active", + "paused": "Paused" + }, + "rule_type": { + "static": "Value", + "previous": "Previous", + "previous_pct": "Offset %", + "text": "Text" + }, + "components": { + "feed": { + "title": "Alert Feed", + "buttons": { + "open_manager": "Open Alert Manager", + "close_manager": "Close Alert Manager", + "clear_feed": "Clear Feed", + "show_overview": "Show Overview", + "hide_overview": "Hide Overview" + } + }, + "alert_feed": { + "waiting": "Waiting for market events triggering alerts...", + "table": { + "ticker_alert": "Ticker / Alert", + "severity": "Severity", + "logic": "Trigger Logic", + "event": "Event", + "time": "Time" + } + }, + "details": { + "price": "Price", + "ask": "@:{'terms.ask'}: {value}", + "bid": "@:{'terms.bid'}: {value}", + "spread": "@:{'terms.spread'}", + "buy_volume": "Buy Volume", + "vwap": "@:{'terms.vwap'}: {value}", + "change": "Change: {value}", + "sell_volume": "Sell Volume", + "buy_volume_value": "Buy Volume: {value}", + "sell_volume_value": "Sell Volume: {value}" + }, + "point_table": { + "table": { + "ticker": "@:terms.material_ticker", + "price": "@:terms.price", + "bid": "@:terms.bid", + "ask": "@:terms.ask", + "spread_pct": "Spread %", + "buy_volume": "Buy Vol.", + "sell_volume": "Sell Vol." + } + }, + "history": { + "title": "Data History", + "received": "{value} @:terms.material_ticker received" + }, + "rule_builder": { + "new_rule_name": "New Rule", + "buttons": { + "add_condition": "Condition", + "add_group": "Group", + "remove": "Remove" + }, + "error": "Error: {value}", + "empty": "Empty Group" + }, + "alert_manager": { + "title": "Alert Manager", + "title_editing": "Edit Alert", + "info": "Alerts are currently stored on this device only and are not synced to your account.", + "no_alerts": "No alerts found. Start by creating your first detector signal", + "buttons": { + "create_alert": "Create New Alert", + "discard": "@:common.buttons.discard", + "save": "@:common.buttons.save", + "delete": "@:common.buttons.delete" + }, + "form": { + "alert_name": "Alert Name", + "severity": "Severity", + "status": "Status", + "logic_configuration": "Logic Configuration", + "previous_datapoint": "Previous Datepoint" + } + } + } +} From eb4aca089866ea10eed73d36278f12ace6adc810 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:06 +0200 Subject: [PATCH 175/237] New translations market_live.json (Russian) [ci skip] --- src/locales/ru_RU/market_live.json | 101 +++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 src/locales/ru_RU/market_live.json diff --git a/src/locales/ru_RU/market_live.json b/src/locales/ru_RU/market_live.json new file mode 100644 index 00000000..ca5a5b21 --- /dev/null +++ b/src/locales/ru_RU/market_live.json @@ -0,0 +1,101 @@ +{ + "view_title": "Market Live", + "title": "Market Live", + "status": { + "connected": "Connected", + "disconnected": "Disconnected" + }, + "severity_type": { + "LOW": "LOW", + "MEDIUM": "MEDIUM", + "HIGH": "HIGH" + }, + "status_type": { + "active": "Active", + "paused": "Paused" + }, + "rule_type": { + "static": "Value", + "previous": "Previous", + "previous_pct": "Offset %", + "text": "Text" + }, + "components": { + "feed": { + "title": "Alert Feed", + "buttons": { + "open_manager": "Open Alert Manager", + "close_manager": "Close Alert Manager", + "clear_feed": "Clear Feed", + "show_overview": "Show Overview", + "hide_overview": "Hide Overview" + } + }, + "alert_feed": { + "waiting": "Waiting for market events triggering alerts...", + "table": { + "ticker_alert": "Ticker / Alert", + "severity": "Severity", + "logic": "Trigger Logic", + "event": "Event", + "time": "Time" + } + }, + "details": { + "price": "Price", + "ask": "@:{'terms.ask'}: {value}", + "bid": "@:{'terms.bid'}: {value}", + "spread": "@:{'terms.spread'}", + "buy_volume": "Buy Volume", + "vwap": "@:{'terms.vwap'}: {value}", + "change": "Change: {value}", + "sell_volume": "Sell Volume", + "buy_volume_value": "Buy Volume: {value}", + "sell_volume_value": "Sell Volume: {value}" + }, + "point_table": { + "table": { + "ticker": "@:terms.material_ticker", + "price": "@:terms.price", + "bid": "@:terms.bid", + "ask": "@:terms.ask", + "spread_pct": "Spread %", + "buy_volume": "Buy Vol.", + "sell_volume": "Sell Vol." + } + }, + "history": { + "title": "Data History", + "received": "{value} @:terms.material_ticker received" + }, + "rule_builder": { + "new_rule_name": "New Rule", + "buttons": { + "add_condition": "Condition", + "add_group": "Group", + "remove": "Remove" + }, + "error": "Error: {value}", + "empty": "Empty Group" + }, + "alert_manager": { + "title": "Alert Manager", + "title_editing": "Edit Alert", + "info": "Alerts are currently stored on this device only and are not synced to your account.", + "no_alerts": "No alerts found. Start by creating your first detector signal", + "buttons": { + "create_alert": "Create New Alert", + "discard": "@:common.buttons.discard", + "save": "@:common.buttons.save", + "delete": "@:common.buttons.delete" + }, + "form": { + "alert_name": "Alert Name", + "severity": "Severity", + "status": "Status", + "logic_configuration": "Logic Configuration", + "previous_datapoint": "Previous Datepoint" + } + } + } +} From c611e5d38cb8d0608acbc15ca1690dff6f6e7cde Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:07 +0200 Subject: [PATCH 176/237] New translations market_live.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/market_live.json | 101 +++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 src/locales/zh_CN/market_live.json diff --git a/src/locales/zh_CN/market_live.json b/src/locales/zh_CN/market_live.json new file mode 100644 index 00000000..ca5a5b21 --- /dev/null +++ b/src/locales/zh_CN/market_live.json @@ -0,0 +1,101 @@ +{ + "view_title": "Market Live", + "title": "Market Live", + "status": { + "connected": "Connected", + "disconnected": "Disconnected" + }, + "severity_type": { + "LOW": "LOW", + "MEDIUM": "MEDIUM", + "HIGH": "HIGH" + }, + "status_type": { + "active": "Active", + "paused": "Paused" + }, + "rule_type": { + "static": "Value", + "previous": "Previous", + "previous_pct": "Offset %", + "text": "Text" + }, + "components": { + "feed": { + "title": "Alert Feed", + "buttons": { + "open_manager": "Open Alert Manager", + "close_manager": "Close Alert Manager", + "clear_feed": "Clear Feed", + "show_overview": "Show Overview", + "hide_overview": "Hide Overview" + } + }, + "alert_feed": { + "waiting": "Waiting for market events triggering alerts...", + "table": { + "ticker_alert": "Ticker / Alert", + "severity": "Severity", + "logic": "Trigger Logic", + "event": "Event", + "time": "Time" + } + }, + "details": { + "price": "Price", + "ask": "@:{'terms.ask'}: {value}", + "bid": "@:{'terms.bid'}: {value}", + "spread": "@:{'terms.spread'}", + "buy_volume": "Buy Volume", + "vwap": "@:{'terms.vwap'}: {value}", + "change": "Change: {value}", + "sell_volume": "Sell Volume", + "buy_volume_value": "Buy Volume: {value}", + "sell_volume_value": "Sell Volume: {value}" + }, + "point_table": { + "table": { + "ticker": "@:terms.material_ticker", + "price": "@:terms.price", + "bid": "@:terms.bid", + "ask": "@:terms.ask", + "spread_pct": "Spread %", + "buy_volume": "Buy Vol.", + "sell_volume": "Sell Vol." + } + }, + "history": { + "title": "Data History", + "received": "{value} @:terms.material_ticker received" + }, + "rule_builder": { + "new_rule_name": "New Rule", + "buttons": { + "add_condition": "Condition", + "add_group": "Group", + "remove": "Remove" + }, + "error": "Error: {value}", + "empty": "Empty Group" + }, + "alert_manager": { + "title": "Alert Manager", + "title_editing": "Edit Alert", + "info": "Alerts are currently stored on this device only and are not synced to your account.", + "no_alerts": "No alerts found. Start by creating your first detector signal", + "buttons": { + "create_alert": "Create New Alert", + "discard": "@:common.buttons.discard", + "save": "@:common.buttons.save", + "delete": "@:common.buttons.delete" + }, + "form": { + "alert_name": "Alert Name", + "severity": "Severity", + "status": "Status", + "logic_configuration": "Logic Configuration", + "previous_datapoint": "Previous Datepoint" + } + } + } +} From ded4dc09a5597e06822cfca76aa377d86a557d8e Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:09 +0200 Subject: [PATCH 177/237] New translations material_tile.json (French) [ci skip] --- src/locales/fr_FR/material_tile.json | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/locales/fr_FR/material_tile.json diff --git a/src/locales/fr_FR/material_tile.json b/src/locales/fr_FR/material_tile.json new file mode 100644 index 00000000..7feabd58 --- /dev/null +++ b/src/locales/fr_FR/material_tile.json @@ -0,0 +1,23 @@ +{ + "information": { + "title": "Material Information", + "table": { + "category": "Category", + "weight": "Weight", + "volume": "Volume" + } + }, + "indicator": { + "value": "Value", + "max": "Maximum", + "pct_max": "% / Max" + }, + "chart": { + "title": "Market History", + "labels": { + "traded": "Traded Volume", + "low_p": "Daily Minimum Price", + "high_p": "Daily Maximum Price" + } + } +} From f7241374394742d2d10cbd9acae3bb9336bfd768 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:10 +0200 Subject: [PATCH 178/237] New translations material_tile.json (Spanish) [ci skip] --- src/locales/es_ES/material_tile.json | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/locales/es_ES/material_tile.json diff --git a/src/locales/es_ES/material_tile.json b/src/locales/es_ES/material_tile.json new file mode 100644 index 00000000..7feabd58 --- /dev/null +++ b/src/locales/es_ES/material_tile.json @@ -0,0 +1,23 @@ +{ + "information": { + "title": "Material Information", + "table": { + "category": "Category", + "weight": "Weight", + "volume": "Volume" + } + }, + "indicator": { + "value": "Value", + "max": "Maximum", + "pct_max": "% / Max" + }, + "chart": { + "title": "Market History", + "labels": { + "traded": "Traded Volume", + "low_p": "Daily Minimum Price", + "high_p": "Daily Maximum Price" + } + } +} From 3ce2f9bf87cf1b8a9f00a2d37a70f8cd3b465eed Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:11 +0200 Subject: [PATCH 179/237] New translations material_tile.json (German) [ci skip] --- src/locales/de_DE/material_tile.json | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/locales/de_DE/material_tile.json diff --git a/src/locales/de_DE/material_tile.json b/src/locales/de_DE/material_tile.json new file mode 100644 index 00000000..7feabd58 --- /dev/null +++ b/src/locales/de_DE/material_tile.json @@ -0,0 +1,23 @@ +{ + "information": { + "title": "Material Information", + "table": { + "category": "Category", + "weight": "Weight", + "volume": "Volume" + } + }, + "indicator": { + "value": "Value", + "max": "Maximum", + "pct_max": "% / Max" + }, + "chart": { + "title": "Market History", + "labels": { + "traded": "Traded Volume", + "low_p": "Daily Minimum Price", + "high_p": "Daily Maximum Price" + } + } +} From d6b81085007dd6404b84739723eec63bba9b9e50 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:12 +0200 Subject: [PATCH 180/237] New translations material_tile.json (Italian) [ci skip] --- src/locales/it_IT/material_tile.json | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/locales/it_IT/material_tile.json diff --git a/src/locales/it_IT/material_tile.json b/src/locales/it_IT/material_tile.json new file mode 100644 index 00000000..7feabd58 --- /dev/null +++ b/src/locales/it_IT/material_tile.json @@ -0,0 +1,23 @@ +{ + "information": { + "title": "Material Information", + "table": { + "category": "Category", + "weight": "Weight", + "volume": "Volume" + } + }, + "indicator": { + "value": "Value", + "max": "Maximum", + "pct_max": "% / Max" + }, + "chart": { + "title": "Market History", + "labels": { + "traded": "Traded Volume", + "low_p": "Daily Minimum Price", + "high_p": "Daily Maximum Price" + } + } +} From ec6943bc2f5b3c9a883eca77962dcf86c30a5a91 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:13 +0200 Subject: [PATCH 181/237] New translations material_tile.json (Japanese) [ci skip] --- src/locales/ja_JP/material_tile.json | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/locales/ja_JP/material_tile.json diff --git a/src/locales/ja_JP/material_tile.json b/src/locales/ja_JP/material_tile.json new file mode 100644 index 00000000..7feabd58 --- /dev/null +++ b/src/locales/ja_JP/material_tile.json @@ -0,0 +1,23 @@ +{ + "information": { + "title": "Material Information", + "table": { + "category": "Category", + "weight": "Weight", + "volume": "Volume" + } + }, + "indicator": { + "value": "Value", + "max": "Maximum", + "pct_max": "% / Max" + }, + "chart": { + "title": "Market History", + "labels": { + "traded": "Traded Volume", + "low_p": "Daily Minimum Price", + "high_p": "Daily Maximum Price" + } + } +} From d2086fe1b899f2dec51f00c021ec7108ae0d1372 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:15 +0200 Subject: [PATCH 182/237] New translations material_tile.json (Korean) [ci skip] --- src/locales/ko_KR/material_tile.json | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/locales/ko_KR/material_tile.json diff --git a/src/locales/ko_KR/material_tile.json b/src/locales/ko_KR/material_tile.json new file mode 100644 index 00000000..7feabd58 --- /dev/null +++ b/src/locales/ko_KR/material_tile.json @@ -0,0 +1,23 @@ +{ + "information": { + "title": "Material Information", + "table": { + "category": "Category", + "weight": "Weight", + "volume": "Volume" + } + }, + "indicator": { + "value": "Value", + "max": "Maximum", + "pct_max": "% / Max" + }, + "chart": { + "title": "Market History", + "labels": { + "traded": "Traded Volume", + "low_p": "Daily Minimum Price", + "high_p": "Daily Maximum Price" + } + } +} From 8e057d3940adea2cd00986bfc468e60c17b802e3 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:16 +0200 Subject: [PATCH 183/237] New translations material_tile.json (Dutch) [ci skip] --- src/locales/nl_NL/material_tile.json | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/locales/nl_NL/material_tile.json diff --git a/src/locales/nl_NL/material_tile.json b/src/locales/nl_NL/material_tile.json new file mode 100644 index 00000000..7feabd58 --- /dev/null +++ b/src/locales/nl_NL/material_tile.json @@ -0,0 +1,23 @@ +{ + "information": { + "title": "Material Information", + "table": { + "category": "Category", + "weight": "Weight", + "volume": "Volume" + } + }, + "indicator": { + "value": "Value", + "max": "Maximum", + "pct_max": "% / Max" + }, + "chart": { + "title": "Market History", + "labels": { + "traded": "Traded Volume", + "low_p": "Daily Minimum Price", + "high_p": "Daily Maximum Price" + } + } +} From 9132ddd9e0ea050ee549e5f6bdfa9f45e5f57608 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:17 +0200 Subject: [PATCH 184/237] New translations material_tile.json (Portuguese) [ci skip] --- src/locales/pt_PT/material_tile.json | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/locales/pt_PT/material_tile.json diff --git a/src/locales/pt_PT/material_tile.json b/src/locales/pt_PT/material_tile.json new file mode 100644 index 00000000..7feabd58 --- /dev/null +++ b/src/locales/pt_PT/material_tile.json @@ -0,0 +1,23 @@ +{ + "information": { + "title": "Material Information", + "table": { + "category": "Category", + "weight": "Weight", + "volume": "Volume" + } + }, + "indicator": { + "value": "Value", + "max": "Maximum", + "pct_max": "% / Max" + }, + "chart": { + "title": "Market History", + "labels": { + "traded": "Traded Volume", + "low_p": "Daily Minimum Price", + "high_p": "Daily Maximum Price" + } + } +} From e4f7ab64f274bc653e19abbdfbb6df7182681db1 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:18 +0200 Subject: [PATCH 185/237] New translations material_tile.json (Russian) [ci skip] --- src/locales/ru_RU/material_tile.json | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/locales/ru_RU/material_tile.json diff --git a/src/locales/ru_RU/material_tile.json b/src/locales/ru_RU/material_tile.json new file mode 100644 index 00000000..7feabd58 --- /dev/null +++ b/src/locales/ru_RU/material_tile.json @@ -0,0 +1,23 @@ +{ + "information": { + "title": "Material Information", + "table": { + "category": "Category", + "weight": "Weight", + "volume": "Volume" + } + }, + "indicator": { + "value": "Value", + "max": "Maximum", + "pct_max": "% / Max" + }, + "chart": { + "title": "Market History", + "labels": { + "traded": "Traded Volume", + "low_p": "Daily Minimum Price", + "high_p": "Daily Maximum Price" + } + } +} From 43c0fe6595cf99a6c19f74ba93d6d085858bf2c0 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:19 +0200 Subject: [PATCH 186/237] New translations material_tile.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/material_tile.json | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/locales/zh_CN/material_tile.json diff --git a/src/locales/zh_CN/material_tile.json b/src/locales/zh_CN/material_tile.json new file mode 100644 index 00000000..7feabd58 --- /dev/null +++ b/src/locales/zh_CN/material_tile.json @@ -0,0 +1,23 @@ +{ + "information": { + "title": "Material Information", + "table": { + "category": "Category", + "weight": "Weight", + "volume": "Volume" + } + }, + "indicator": { + "value": "Value", + "max": "Maximum", + "pct_max": "% / Max" + }, + "chart": { + "title": "Market History", + "labels": { + "traded": "Traded Volume", + "low_p": "Daily Minimum Price", + "high_p": "Daily Maximum Price" + } + } +} From 89bee160365aefa7c22111702c0fd7288940a251 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:21 +0200 Subject: [PATCH 187/237] New translations sharing.json (French) [ci skip] --- src/locales/fr_FR/sharing.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/locales/fr_FR/sharing.json diff --git a/src/locales/fr_FR/sharing.json b/src/locales/fr_FR/sharing.json new file mode 100644 index 00000000..fc01f576 --- /dev/null +++ b/src/locales/fr_FR/sharing.json @@ -0,0 +1,11 @@ +{ + "info": "This will create an unique link that can be shared with others. They will be able to see your plan, but don't modify it. The link becomes unavailable once you choose to stop sharing or delete the plan.", + "share_count": "You're currently sharing this plan. It has been viewed {count} times", + "buttons": { + "create_link": "Create Sharing Link", + "copy_url": "Copy URL", + "stop_sharing": "Stop Sharing", + "views": "{count} Views", + "share": "Share" + } +} From f3b4109a1cb50aafa1f78d7ad1cb0f52df775a7d Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:22 +0200 Subject: [PATCH 188/237] New translations sharing.json (Spanish) [ci skip] --- src/locales/es_ES/sharing.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/locales/es_ES/sharing.json diff --git a/src/locales/es_ES/sharing.json b/src/locales/es_ES/sharing.json new file mode 100644 index 00000000..fc01f576 --- /dev/null +++ b/src/locales/es_ES/sharing.json @@ -0,0 +1,11 @@ +{ + "info": "This will create an unique link that can be shared with others. They will be able to see your plan, but don't modify it. The link becomes unavailable once you choose to stop sharing or delete the plan.", + "share_count": "You're currently sharing this plan. It has been viewed {count} times", + "buttons": { + "create_link": "Create Sharing Link", + "copy_url": "Copy URL", + "stop_sharing": "Stop Sharing", + "views": "{count} Views", + "share": "Share" + } +} From 273b1c92c0a2cb24ccc22a2502708cc9f53c051c Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:23 +0200 Subject: [PATCH 189/237] New translations sharing.json (German) [ci skip] --- src/locales/de_DE/sharing.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/locales/de_DE/sharing.json diff --git a/src/locales/de_DE/sharing.json b/src/locales/de_DE/sharing.json new file mode 100644 index 00000000..fc01f576 --- /dev/null +++ b/src/locales/de_DE/sharing.json @@ -0,0 +1,11 @@ +{ + "info": "This will create an unique link that can be shared with others. They will be able to see your plan, but don't modify it. The link becomes unavailable once you choose to stop sharing or delete the plan.", + "share_count": "You're currently sharing this plan. It has been viewed {count} times", + "buttons": { + "create_link": "Create Sharing Link", + "copy_url": "Copy URL", + "stop_sharing": "Stop Sharing", + "views": "{count} Views", + "share": "Share" + } +} From 966a375b32cb35b8e7b3965d508ce4aa7468103c Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:24 +0200 Subject: [PATCH 190/237] New translations sharing.json (Italian) [ci skip] --- src/locales/it_IT/sharing.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/locales/it_IT/sharing.json diff --git a/src/locales/it_IT/sharing.json b/src/locales/it_IT/sharing.json new file mode 100644 index 00000000..fc01f576 --- /dev/null +++ b/src/locales/it_IT/sharing.json @@ -0,0 +1,11 @@ +{ + "info": "This will create an unique link that can be shared with others. They will be able to see your plan, but don't modify it. The link becomes unavailable once you choose to stop sharing or delete the plan.", + "share_count": "You're currently sharing this plan. It has been viewed {count} times", + "buttons": { + "create_link": "Create Sharing Link", + "copy_url": "Copy URL", + "stop_sharing": "Stop Sharing", + "views": "{count} Views", + "share": "Share" + } +} From cc02b46c0acebc0187646dd873ff29c04b8cc46f Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:25 +0200 Subject: [PATCH 191/237] New translations sharing.json (Japanese) [ci skip] --- src/locales/ja_JP/sharing.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/locales/ja_JP/sharing.json diff --git a/src/locales/ja_JP/sharing.json b/src/locales/ja_JP/sharing.json new file mode 100644 index 00000000..fc01f576 --- /dev/null +++ b/src/locales/ja_JP/sharing.json @@ -0,0 +1,11 @@ +{ + "info": "This will create an unique link that can be shared with others. They will be able to see your plan, but don't modify it. The link becomes unavailable once you choose to stop sharing or delete the plan.", + "share_count": "You're currently sharing this plan. It has been viewed {count} times", + "buttons": { + "create_link": "Create Sharing Link", + "copy_url": "Copy URL", + "stop_sharing": "Stop Sharing", + "views": "{count} Views", + "share": "Share" + } +} From 35b6704e20edd5ca85b1e8ea5b538dfabedf1a87 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:27 +0200 Subject: [PATCH 192/237] New translations sharing.json (Korean) [ci skip] --- src/locales/ko_KR/sharing.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/locales/ko_KR/sharing.json diff --git a/src/locales/ko_KR/sharing.json b/src/locales/ko_KR/sharing.json new file mode 100644 index 00000000..fc01f576 --- /dev/null +++ b/src/locales/ko_KR/sharing.json @@ -0,0 +1,11 @@ +{ + "info": "This will create an unique link that can be shared with others. They will be able to see your plan, but don't modify it. The link becomes unavailable once you choose to stop sharing or delete the plan.", + "share_count": "You're currently sharing this plan. It has been viewed {count} times", + "buttons": { + "create_link": "Create Sharing Link", + "copy_url": "Copy URL", + "stop_sharing": "Stop Sharing", + "views": "{count} Views", + "share": "Share" + } +} From 2b3ceac90e16b9c7442370c18f335658aaeb9815 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:28 +0200 Subject: [PATCH 193/237] New translations sharing.json (Dutch) [ci skip] --- src/locales/nl_NL/sharing.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/locales/nl_NL/sharing.json diff --git a/src/locales/nl_NL/sharing.json b/src/locales/nl_NL/sharing.json new file mode 100644 index 00000000..fc01f576 --- /dev/null +++ b/src/locales/nl_NL/sharing.json @@ -0,0 +1,11 @@ +{ + "info": "This will create an unique link that can be shared with others. They will be able to see your plan, but don't modify it. The link becomes unavailable once you choose to stop sharing or delete the plan.", + "share_count": "You're currently sharing this plan. It has been viewed {count} times", + "buttons": { + "create_link": "Create Sharing Link", + "copy_url": "Copy URL", + "stop_sharing": "Stop Sharing", + "views": "{count} Views", + "share": "Share" + } +} From 77bef9979057b194e1d8c0866dc3433988cce380 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:29 +0200 Subject: [PATCH 194/237] New translations sharing.json (Portuguese) [ci skip] --- src/locales/pt_PT/sharing.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/locales/pt_PT/sharing.json diff --git a/src/locales/pt_PT/sharing.json b/src/locales/pt_PT/sharing.json new file mode 100644 index 00000000..fc01f576 --- /dev/null +++ b/src/locales/pt_PT/sharing.json @@ -0,0 +1,11 @@ +{ + "info": "This will create an unique link that can be shared with others. They will be able to see your plan, but don't modify it. The link becomes unavailable once you choose to stop sharing or delete the plan.", + "share_count": "You're currently sharing this plan. It has been viewed {count} times", + "buttons": { + "create_link": "Create Sharing Link", + "copy_url": "Copy URL", + "stop_sharing": "Stop Sharing", + "views": "{count} Views", + "share": "Share" + } +} From edc6133096cfcd214f8d6e119e2199fbd30dd93f Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:30 +0200 Subject: [PATCH 195/237] New translations sharing.json (Russian) [ci skip] --- src/locales/ru_RU/sharing.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/locales/ru_RU/sharing.json diff --git a/src/locales/ru_RU/sharing.json b/src/locales/ru_RU/sharing.json new file mode 100644 index 00000000..fc01f576 --- /dev/null +++ b/src/locales/ru_RU/sharing.json @@ -0,0 +1,11 @@ +{ + "info": "This will create an unique link that can be shared with others. They will be able to see your plan, but don't modify it. The link becomes unavailable once you choose to stop sharing or delete the plan.", + "share_count": "You're currently sharing this plan. It has been viewed {count} times", + "buttons": { + "create_link": "Create Sharing Link", + "copy_url": "Copy URL", + "stop_sharing": "Stop Sharing", + "views": "{count} Views", + "share": "Share" + } +} From eed333854de9877c635c823eb926b4311705a7f7 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:32 +0200 Subject: [PATCH 196/237] New translations sharing.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/sharing.json | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 src/locales/zh_CN/sharing.json diff --git a/src/locales/zh_CN/sharing.json b/src/locales/zh_CN/sharing.json new file mode 100644 index 00000000..fc01f576 --- /dev/null +++ b/src/locales/zh_CN/sharing.json @@ -0,0 +1,11 @@ +{ + "info": "This will create an unique link that can be shared with others. They will be able to see your plan, but don't modify it. The link becomes unavailable once you choose to stop sharing or delete the plan.", + "share_count": "You're currently sharing this plan. It has been viewed {count} times", + "buttons": { + "create_link": "Create Sharing Link", + "copy_url": "Copy URL", + "stop_sharing": "Stop Sharing", + "views": "{count} Views", + "share": "Share" + } +} From 8699710e7e82d9272b01efadd35fdea3603b5644 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:33 +0200 Subject: [PATCH 197/237] New translations xit.json (French) [ci skip] --- src/locales/fr_FR/xit.json | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/locales/fr_FR/xit.json diff --git a/src/locales/fr_FR/xit.json b/src/locales/fr_FR/xit.json new file mode 100644 index 00000000..7d505bd8 --- /dev/null +++ b/src/locales/fr_FR/xit.json @@ -0,0 +1,26 @@ +{ + "form": { + "origin": "Origin", + "target_days": "Target Days", + "buy_from_cx": "Buy From CX", + "buy_from_cx_warning": "Only warehouse origin allows purchasing.", + "fit_ship": "Fit Ship", + "hide_infinite": "Hide Infinite", + "json": "JSON" + }, + "buttons": { + "copy_json": "Copy XIT JSON", + "copy": "@:common.buttons.copy" + }, + "table": { + "ticker": "@:terms.material_ticker", + "stock": "@:terms.stock", + "delta": "@:terms.delta", + "burn": "@:terms.burn", + "amount": "@:terms.amount", + "override": "@:terms.override", + "weight_value": "@:{'terms.weight'}: {value}", + "volume_value": "@:{'terms.volume'}: {value}", + "price_value": "@:{'terms.price'}: {value}" + } +} From 9e4cb769f7da6a4ba4d38d39c1ae2a043125c3f9 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:34 +0200 Subject: [PATCH 198/237] New translations xit.json (Spanish) [ci skip] --- src/locales/es_ES/xit.json | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/locales/es_ES/xit.json diff --git a/src/locales/es_ES/xit.json b/src/locales/es_ES/xit.json new file mode 100644 index 00000000..7d505bd8 --- /dev/null +++ b/src/locales/es_ES/xit.json @@ -0,0 +1,26 @@ +{ + "form": { + "origin": "Origin", + "target_days": "Target Days", + "buy_from_cx": "Buy From CX", + "buy_from_cx_warning": "Only warehouse origin allows purchasing.", + "fit_ship": "Fit Ship", + "hide_infinite": "Hide Infinite", + "json": "JSON" + }, + "buttons": { + "copy_json": "Copy XIT JSON", + "copy": "@:common.buttons.copy" + }, + "table": { + "ticker": "@:terms.material_ticker", + "stock": "@:terms.stock", + "delta": "@:terms.delta", + "burn": "@:terms.burn", + "amount": "@:terms.amount", + "override": "@:terms.override", + "weight_value": "@:{'terms.weight'}: {value}", + "volume_value": "@:{'terms.volume'}: {value}", + "price_value": "@:{'terms.price'}: {value}" + } +} From 8c364bc4ab5d7d7f381ba9bc6aeea7a138810946 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:35 +0200 Subject: [PATCH 199/237] New translations xit.json (German) [ci skip] --- src/locales/de_DE/xit.json | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/locales/de_DE/xit.json diff --git a/src/locales/de_DE/xit.json b/src/locales/de_DE/xit.json new file mode 100644 index 00000000..7d505bd8 --- /dev/null +++ b/src/locales/de_DE/xit.json @@ -0,0 +1,26 @@ +{ + "form": { + "origin": "Origin", + "target_days": "Target Days", + "buy_from_cx": "Buy From CX", + "buy_from_cx_warning": "Only warehouse origin allows purchasing.", + "fit_ship": "Fit Ship", + "hide_infinite": "Hide Infinite", + "json": "JSON" + }, + "buttons": { + "copy_json": "Copy XIT JSON", + "copy": "@:common.buttons.copy" + }, + "table": { + "ticker": "@:terms.material_ticker", + "stock": "@:terms.stock", + "delta": "@:terms.delta", + "burn": "@:terms.burn", + "amount": "@:terms.amount", + "override": "@:terms.override", + "weight_value": "@:{'terms.weight'}: {value}", + "volume_value": "@:{'terms.volume'}: {value}", + "price_value": "@:{'terms.price'}: {value}" + } +} From 2c5feb10b09a4d33e3bef2209b7fd58c9c246956 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:37 +0200 Subject: [PATCH 200/237] New translations xit.json (Italian) [ci skip] --- src/locales/it_IT/xit.json | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/locales/it_IT/xit.json diff --git a/src/locales/it_IT/xit.json b/src/locales/it_IT/xit.json new file mode 100644 index 00000000..7d505bd8 --- /dev/null +++ b/src/locales/it_IT/xit.json @@ -0,0 +1,26 @@ +{ + "form": { + "origin": "Origin", + "target_days": "Target Days", + "buy_from_cx": "Buy From CX", + "buy_from_cx_warning": "Only warehouse origin allows purchasing.", + "fit_ship": "Fit Ship", + "hide_infinite": "Hide Infinite", + "json": "JSON" + }, + "buttons": { + "copy_json": "Copy XIT JSON", + "copy": "@:common.buttons.copy" + }, + "table": { + "ticker": "@:terms.material_ticker", + "stock": "@:terms.stock", + "delta": "@:terms.delta", + "burn": "@:terms.burn", + "amount": "@:terms.amount", + "override": "@:terms.override", + "weight_value": "@:{'terms.weight'}: {value}", + "volume_value": "@:{'terms.volume'}: {value}", + "price_value": "@:{'terms.price'}: {value}" + } +} From 1af5fad73c833fde839d2518048aa92b2d771c57 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:38 +0200 Subject: [PATCH 201/237] New translations xit.json (Japanese) [ci skip] --- src/locales/ja_JP/xit.json | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/locales/ja_JP/xit.json diff --git a/src/locales/ja_JP/xit.json b/src/locales/ja_JP/xit.json new file mode 100644 index 00000000..7d505bd8 --- /dev/null +++ b/src/locales/ja_JP/xit.json @@ -0,0 +1,26 @@ +{ + "form": { + "origin": "Origin", + "target_days": "Target Days", + "buy_from_cx": "Buy From CX", + "buy_from_cx_warning": "Only warehouse origin allows purchasing.", + "fit_ship": "Fit Ship", + "hide_infinite": "Hide Infinite", + "json": "JSON" + }, + "buttons": { + "copy_json": "Copy XIT JSON", + "copy": "@:common.buttons.copy" + }, + "table": { + "ticker": "@:terms.material_ticker", + "stock": "@:terms.stock", + "delta": "@:terms.delta", + "burn": "@:terms.burn", + "amount": "@:terms.amount", + "override": "@:terms.override", + "weight_value": "@:{'terms.weight'}: {value}", + "volume_value": "@:{'terms.volume'}: {value}", + "price_value": "@:{'terms.price'}: {value}" + } +} From e97260c2e8d6dbeb9cd4792c33310673aef5a3be Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:39 +0200 Subject: [PATCH 202/237] New translations xit.json (Korean) [ci skip] --- src/locales/ko_KR/xit.json | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/locales/ko_KR/xit.json diff --git a/src/locales/ko_KR/xit.json b/src/locales/ko_KR/xit.json new file mode 100644 index 00000000..7d505bd8 --- /dev/null +++ b/src/locales/ko_KR/xit.json @@ -0,0 +1,26 @@ +{ + "form": { + "origin": "Origin", + "target_days": "Target Days", + "buy_from_cx": "Buy From CX", + "buy_from_cx_warning": "Only warehouse origin allows purchasing.", + "fit_ship": "Fit Ship", + "hide_infinite": "Hide Infinite", + "json": "JSON" + }, + "buttons": { + "copy_json": "Copy XIT JSON", + "copy": "@:common.buttons.copy" + }, + "table": { + "ticker": "@:terms.material_ticker", + "stock": "@:terms.stock", + "delta": "@:terms.delta", + "burn": "@:terms.burn", + "amount": "@:terms.amount", + "override": "@:terms.override", + "weight_value": "@:{'terms.weight'}: {value}", + "volume_value": "@:{'terms.volume'}: {value}", + "price_value": "@:{'terms.price'}: {value}" + } +} From f4e7fc22847dfe2d4781659682c751af410553cc Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:40 +0200 Subject: [PATCH 203/237] New translations xit.json (Dutch) [ci skip] --- src/locales/nl_NL/xit.json | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/locales/nl_NL/xit.json diff --git a/src/locales/nl_NL/xit.json b/src/locales/nl_NL/xit.json new file mode 100644 index 00000000..7d505bd8 --- /dev/null +++ b/src/locales/nl_NL/xit.json @@ -0,0 +1,26 @@ +{ + "form": { + "origin": "Origin", + "target_days": "Target Days", + "buy_from_cx": "Buy From CX", + "buy_from_cx_warning": "Only warehouse origin allows purchasing.", + "fit_ship": "Fit Ship", + "hide_infinite": "Hide Infinite", + "json": "JSON" + }, + "buttons": { + "copy_json": "Copy XIT JSON", + "copy": "@:common.buttons.copy" + }, + "table": { + "ticker": "@:terms.material_ticker", + "stock": "@:terms.stock", + "delta": "@:terms.delta", + "burn": "@:terms.burn", + "amount": "@:terms.amount", + "override": "@:terms.override", + "weight_value": "@:{'terms.weight'}: {value}", + "volume_value": "@:{'terms.volume'}: {value}", + "price_value": "@:{'terms.price'}: {value}" + } +} From 06063f58deb53af963f6de8cfa79a10be601d491 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:41 +0200 Subject: [PATCH 204/237] New translations xit.json (Portuguese) [ci skip] --- src/locales/pt_PT/xit.json | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/locales/pt_PT/xit.json diff --git a/src/locales/pt_PT/xit.json b/src/locales/pt_PT/xit.json new file mode 100644 index 00000000..7d505bd8 --- /dev/null +++ b/src/locales/pt_PT/xit.json @@ -0,0 +1,26 @@ +{ + "form": { + "origin": "Origin", + "target_days": "Target Days", + "buy_from_cx": "Buy From CX", + "buy_from_cx_warning": "Only warehouse origin allows purchasing.", + "fit_ship": "Fit Ship", + "hide_infinite": "Hide Infinite", + "json": "JSON" + }, + "buttons": { + "copy_json": "Copy XIT JSON", + "copy": "@:common.buttons.copy" + }, + "table": { + "ticker": "@:terms.material_ticker", + "stock": "@:terms.stock", + "delta": "@:terms.delta", + "burn": "@:terms.burn", + "amount": "@:terms.amount", + "override": "@:terms.override", + "weight_value": "@:{'terms.weight'}: {value}", + "volume_value": "@:{'terms.volume'}: {value}", + "price_value": "@:{'terms.price'}: {value}" + } +} From f02827c41a71cd5bcbc2d083cf22a042cfc560a4 Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:43 +0200 Subject: [PATCH 205/237] New translations xit.json (Russian) [ci skip] --- src/locales/ru_RU/xit.json | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/locales/ru_RU/xit.json diff --git a/src/locales/ru_RU/xit.json b/src/locales/ru_RU/xit.json new file mode 100644 index 00000000..7d505bd8 --- /dev/null +++ b/src/locales/ru_RU/xit.json @@ -0,0 +1,26 @@ +{ + "form": { + "origin": "Origin", + "target_days": "Target Days", + "buy_from_cx": "Buy From CX", + "buy_from_cx_warning": "Only warehouse origin allows purchasing.", + "fit_ship": "Fit Ship", + "hide_infinite": "Hide Infinite", + "json": "JSON" + }, + "buttons": { + "copy_json": "Copy XIT JSON", + "copy": "@:common.buttons.copy" + }, + "table": { + "ticker": "@:terms.material_ticker", + "stock": "@:terms.stock", + "delta": "@:terms.delta", + "burn": "@:terms.burn", + "amount": "@:terms.amount", + "override": "@:terms.override", + "weight_value": "@:{'terms.weight'}: {value}", + "volume_value": "@:{'terms.volume'}: {value}", + "price_value": "@:{'terms.price'}: {value}" + } +} From 37fe55ca2e0472e377eaf8b80e90ad95b0e8a1ab Mon Sep 17 00:00:00 2001 From: Jan Date: Fri, 8 May 2026 13:51:44 +0200 Subject: [PATCH 206/237] New translations xit.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/xit.json | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/locales/zh_CN/xit.json diff --git a/src/locales/zh_CN/xit.json b/src/locales/zh_CN/xit.json new file mode 100644 index 00000000..7d505bd8 --- /dev/null +++ b/src/locales/zh_CN/xit.json @@ -0,0 +1,26 @@ +{ + "form": { + "origin": "Origin", + "target_days": "Target Days", + "buy_from_cx": "Buy From CX", + "buy_from_cx_warning": "Only warehouse origin allows purchasing.", + "fit_ship": "Fit Ship", + "hide_infinite": "Hide Infinite", + "json": "JSON" + }, + "buttons": { + "copy_json": "Copy XIT JSON", + "copy": "@:common.buttons.copy" + }, + "table": { + "ticker": "@:terms.material_ticker", + "stock": "@:terms.stock", + "delta": "@:terms.delta", + "burn": "@:terms.burn", + "amount": "@:terms.amount", + "override": "@:terms.override", + "weight_value": "@:{'terms.weight'}: {value}", + "volume_value": "@:{'terms.volume'}: {value}", + "price_value": "@:{'terms.price'}: {value}" + } +} From c13aee13e169f21d3c57a7cc4103114711405b74 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:56:24 +0200 Subject: [PATCH 207/237] New translations common.json (German) [ci skip] --- src/locales/de_DE/common.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/locales/de_DE/common.json b/src/locales/de_DE/common.json index 7d3ff623..00d66200 100644 --- a/src/locales/de_DE/common.json +++ b/src/locales/de_DE/common.json @@ -5,7 +5,7 @@ "empire": "Empire", "planet_search": "Planeten Suchen", "management": "Verwaltung", - "exchanges": "Handelskammern", + "exchanges": "Marktplätze", "tools": "Werkzeuge", "tools_short": "Tool", "market_exploration": "Marktübersicht", @@ -41,24 +41,24 @@ "search": "Suchen", "default": "Standard", "select_all": "Alles Auswählen", - "discard": "Discard", + "discard": "Verwerfen", "yes": "Ja", "no": "Nein", "delete": "Löschen", "cancel": "Abbrechen", "clone_plan": "Plan duplizieren", "clone_complete": "Klonen abgeschlossen", - "copy": "Copy" + "copy": "Kopieren" }, "ui": { "placeholder": { - "please_input": "Please Input", - "please_select": "Please Select", - "search": "Search" + "please_input": "Bitte eingeben", + "please_select": "Bitte auswählen", + "search": "Suchen" }, "select": { - "no_results": "No Results", - "select_options": "Select Options" + "no_results": "Keine Ergebnisse", + "select_options": "Optionen wählen" } } } From 5a4470f5ce498b16be342d8c35aa766f37b7570f Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:56:28 +0200 Subject: [PATCH 208/237] New translations common.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/common.json | 84 +++++++++++++++++------------------ 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/src/locales/zh_CN/common.json b/src/locales/zh_CN/common.json index 73899be9..efa4fd90 100644 --- a/src/locales/zh_CN/common.json +++ b/src/locales/zh_CN/common.json @@ -1,64 +1,64 @@ { "navigation": { - "planning": "Planning", + "planning": "规划", "planning_short": "计划", "empire": "帝国", - "planet_search": "Planet Search", - "management": "Management", - "exchanges": "Exchanges", - "tools": "Tools", - "tools_short": "Tool", - "market_exploration": "Market Exploration", - "market_live": "Market Live", - "recipe_roi": "Recipe ROI", - "resource_roi": "Resource ROI", - "hq_calculator": "HQ Calculator", - "production_chains": "Production Chains", - "upkeep_price_calculator": "Upkeep Prices", - "fio_burn": "FIO Burn", - "fio_repair": "FIO Repair", - "account": "Account", - "account_short": "Acc", - "profile": "Profile", + "planet_search": "行星搜索", + "management": "管理", + "exchanges": "交易所", + "tools": "工具", + "tools_short": "工具", + "market_exploration": "市场探索", + "market_live": "实时市场", + "recipe_roi": "配方 ROI", + "resource_roi": "资源 ROI", + "hq_calculator": "HQ 计算器", + "production_chains": "生产链", + "upkeep_price_calculator": "维护价格", + "fio_burn": "FIO 消耗", + "fio_repair": "FIO 维修", + "account": "账户", + "account_short": "账户", + "profile": "个人资料", "api": "API", - "help": "Help", - "logout": "Logout", + "help": "帮助", + "logout": "登出", "fio": { - "backend": "Backend", + "backend": "后端", "fio": "FIO", - "fio_active": "FIO Active", - "fio_inactive": "FIO Inactive" + "fio_active": "FIO 已启用", + "fio_inactive": "FIO 未启用" } }, "buttons": { - "create": "Create", + "create": "创建", "save": "保存", - "save_as": "Save As", + "save_as": "另存为", "reload": "刷新", "show": "显示", "hide": "隐藏", - "help": "Help", - "search": "Search", - "default": "Default", - "select_all": "Select All", - "discard": "Discard", - "yes": "Yes", - "no": "No", - "delete": "Delete", - "cancel": "Cancel", - "clone_plan": "Clone Plan", - "clone_complete": "Cloning Complete", - "copy": "Copy" + "help": "帮助", + "search": "搜索", + "default": "默认", + "select_all": "全选", + "discard": "放弃", + "yes": "是", + "no": "否", + "delete": "删除", + "cancel": "取消", + "clone_plan": "复制计划", + "clone_complete": "复制完成", + "copy": "复制" }, "ui": { "placeholder": { - "please_input": "Please Input", - "please_select": "Please Select", - "search": "Search" + "please_input": "请输入", + "please_select": "请选择", + "search": "搜索" }, "select": { - "no_results": "No Results", - "select_options": "Select Options" + "no_results": "无结果", + "select_options": "选择选项" } } } From ac1796678b581702efcefc9e87642088df432428 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:56:32 +0200 Subject: [PATCH 209/237] New translations game.json (German) [ci skip] --- src/locales/de_DE/game.json | 74 ++++++++++++++++++------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/src/locales/de_DE/game.json b/src/locales/de_DE/game.json index d21b4dbc..af3a51f7 100644 --- a/src/locales/de_DE/game.json +++ b/src/locales/de_DE/game.json @@ -12,12 +12,12 @@ "scientist": "Wissenschaftler" }, "efficiency_type": { - "WORKFORCE": "Workforce", - "HQ": "HQ", - "EXPERT": "Experts", + "WORKFORCE": "Belegschaft", + "HQ": "Firmensitz", + "EXPERT": "Experten", "COGC": "COGC", "FERTILITY": "Fruchtbarkeit", - "FACTION": "Faction" + "FACTION": "Fraktion" }, "expertise": { "AGRICULTURE": "Landwirtschaft", @@ -67,39 +67,39 @@ "WORKFORCE_SCIENTISTS": "WISS" }, "material_category": { - "agricultural_products": "Agricultural Products", - "alloys": "Alloys", - "chemicals": "Chemicals", - "construction_materials": "Construction Materials", - "construction_parts": "Construction Parts", - "construction_prefabs": "Construction Prefabs", - "consumable_bundles": "Consumable Bundles", - "consumables_(basic)": "Consumables Basic", - "consumables_(luxury)": "Consumables Luxury", - "drones": "Drones", - "electronic_devices": "Electronic Devices", - "electronic_parts": "Electronic Parts", - "electronic_pieces": "Electronic Pieces", - "electronic_systems": "Electronic Systems", - "elements": "Elements", - "energy_systems": "Energy Systems", - "fuels": "Fuels", - "gases": "Gases", - "liquids": "Liquids", - "medical_equipment": "Medical Equipment", - "metals": "Metals", - "minerals": "Minerals", - "ores": "Ores", - "plastics": "Plastics", - "ship_engines": "Ship Engines", - "ship_kits": "Ship Kits", - "ship_parts": "Ship Parts", - "ship_shields": "Ship Shields", - "software_components": "Software Components", - "software_systems": "Software Systems", - "software_tools": "Software Tools", - "textiles": "Textiles", - "unit_prefabs": "Unit Prefabs", + "agricultural_products": "Landwirtschaftliche Erzeugnisse", + "alloys": "Legierungen", + "chemicals": "Chemikalien", + "construction_materials": "Baumaterialien", + "construction_parts": "Bauteile", + "construction_prefabs": "Einheitsbausätze", + "consumable_bundles": "Konsumgüterpakete", + "consumables_(basic)": "Konsumgüter (Basis)", + "consumables_(luxury)": "Komsumgüter (Luxus)", + "drones": "Drohnen", + "electronic_devices": "Elektronische Geräte", + "electronic_parts": "Elektronische Teile", + "electronic_pieces": "Elektronische Materialien", + "electronic_systems": "Elektronische Systeme", + "elements": "Elemente", + "energy_systems": "Energiesysteme", + "fuels": "Treibstoffe", + "gases": "Gase", + "liquids": "Flüssigkeiten", + "medical_equipment": "Medizinische Ausstattung", + "metals": "Metalle", + "minerals": "Mineralien", + "ores": "Erze", + "plastics": "Plastik", + "ship_engines": "Schiffsantriebe", + "ship_kits": "Schiffsbausätze", + "ship_parts": "Schiffsteile", + "ship_shields": "Schiffsschilde", + "software_components": "Software-Komponenten", + "software_systems": "Software-Systeme", + "software_tools": "Software-Tools", + "textiles": "Textilien", + "unit_prefabs": "Bauteile", "utility": "Utility" }, "upkeep": { From 47359b98e501d5bf5e4bb762ac5915853f8dd8f4 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:56:37 +0200 Subject: [PATCH 210/237] New translations terms.json (French) [ci skip] --- src/locales/fr_FR/terms.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/fr_FR/terms.json b/src/locales/fr_FR/terms.json index a8dd9686..ec554d8b 100644 --- a/src/locales/fr_FR/terms.json +++ b/src/locales/fr_FR/terms.json @@ -38,7 +38,7 @@ "material_ticker": "Ticker", "materials_plural": "Materials", "materials": "Material | Materials", - "override": " Override", + "override": "Override", "permits_plural": "Permits", "permits": "Permit | Permits", "plan": "Plan | Plans", From 97b5a5eafd2d7f1b0e867e318f976b847bea3aad Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:56:38 +0200 Subject: [PATCH 211/237] New translations terms.json (Spanish) [ci skip] --- src/locales/es_ES/terms.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/es_ES/terms.json b/src/locales/es_ES/terms.json index a8dd9686..ec554d8b 100644 --- a/src/locales/es_ES/terms.json +++ b/src/locales/es_ES/terms.json @@ -38,7 +38,7 @@ "material_ticker": "Ticker", "materials_plural": "Materials", "materials": "Material | Materials", - "override": " Override", + "override": "Override", "permits_plural": "Permits", "permits": "Permit | Permits", "plan": "Plan | Plans", From 02b8a312682447f5f4a3ee2804c2579377a8abb6 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:56:39 +0200 Subject: [PATCH 212/237] New translations terms.json (German) [ci skip] --- src/locales/de_DE/terms.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/locales/de_DE/terms.json b/src/locales/de_DE/terms.json index 1242db3f..bb4d5f96 100644 --- a/src/locales/de_DE/terms.json +++ b/src/locales/de_DE/terms.json @@ -3,13 +3,13 @@ "7d": "7T", "amount": "Anzahl", "api_key": "API Schlüssel", - "area": "Area", + "area": "Fläche", "ask": "Ankauf", "bid": "Verkauf", "buffer": "Fenster", - "buildings_plural": "Buildings", + "buildings_plural": "Gebäude", "buildings": "Gebäude | Gebäude", - "burn": "Burn", + "burn": "Verbrauch", "cogc": "COGC", "cogm": "COGM", "consumption": "Verbrauch", @@ -19,11 +19,11 @@ "delta_price": "ȼ Delta", "delta": "Delta", "demand": "Nachfrage", - "empire_plural": "Empires", + "empire_plural": "Imperien", "empire": "Imperium | Imperien", "exchanges": "Marktplatz | Marktplätze", - "experts_plural": "Experts", - "experts": "Expert | Experts", + "experts_plural": "Experten", + "experts": "Experte | Experten", "export": "Export", "faction": "Fraktion", "fertility": "Bodenfruchtbarkeit", @@ -38,7 +38,7 @@ "material_ticker": "Ticker", "materials_plural": "Materialien", "materials": "Material | Materialien", - "override": " Override", + "override": "Überschreiben", "permits_plural": "Genehmigung", "permits": "Fläche | Fläche", "plan": "Plan | Pläne", @@ -47,25 +47,25 @@ "plans_plural": "Pläne", "popr": "POPR", "pressure": "Druck", - "price": "Price", + "price": "Preis", "production": "Produktion", "profit_per_area": "Profit / Fläche", "profit": "Profit", - "recipes_plural": "Recipes", + "recipes_plural": "Aufträge", "recipes": "Auftrag | Aufträge", "resources_plural": "Ressourcen", "resources": "Ressource | Ressourcen", "revenue": "Umsatz", "rocky": "Erdähnlich", "spread": "Spread", - "stock": "Stock", + "stock": "Lager", "storage": "Lager", "sum": "∑", "supply": "Angebot", "surface": "Oberfläche", "temperature": "Temperatur", - "total_volume": "Total Volume", - "total_weight": "Total Weight", + "total_volume": "Gesamtvolumen", + "total_weight": "Gesamtgewicht", "trend": "Trend", "volume": "Volumen", "vwap": "VWAP", From 8f4899408eb1d5435d7362dc082b86483ad9e541 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:56:40 +0200 Subject: [PATCH 213/237] New translations terms.json (Italian) [ci skip] --- src/locales/it_IT/terms.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/it_IT/terms.json b/src/locales/it_IT/terms.json index a8dd9686..ec554d8b 100644 --- a/src/locales/it_IT/terms.json +++ b/src/locales/it_IT/terms.json @@ -38,7 +38,7 @@ "material_ticker": "Ticker", "materials_plural": "Materials", "materials": "Material | Materials", - "override": " Override", + "override": "Override", "permits_plural": "Permits", "permits": "Permit | Permits", "plan": "Plan | Plans", From 39e278fa96c00afe87df8b63423f31db88d3792c Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:56:41 +0200 Subject: [PATCH 214/237] New translations terms.json (Japanese) [ci skip] --- src/locales/ja_JP/terms.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/ja_JP/terms.json b/src/locales/ja_JP/terms.json index a8dd9686..ec554d8b 100644 --- a/src/locales/ja_JP/terms.json +++ b/src/locales/ja_JP/terms.json @@ -38,7 +38,7 @@ "material_ticker": "Ticker", "materials_plural": "Materials", "materials": "Material | Materials", - "override": " Override", + "override": "Override", "permits_plural": "Permits", "permits": "Permit | Permits", "plan": "Plan | Plans", From ca2027442021dfa844e46770a65e999bb9cf9c69 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:56:42 +0200 Subject: [PATCH 215/237] New translations terms.json (Korean) [ci skip] --- src/locales/ko_KR/terms.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/ko_KR/terms.json b/src/locales/ko_KR/terms.json index a8dd9686..ec554d8b 100644 --- a/src/locales/ko_KR/terms.json +++ b/src/locales/ko_KR/terms.json @@ -38,7 +38,7 @@ "material_ticker": "Ticker", "materials_plural": "Materials", "materials": "Material | Materials", - "override": " Override", + "override": "Override", "permits_plural": "Permits", "permits": "Permit | Permits", "plan": "Plan | Plans", From 182865905759675783ce18306e41fc44dc5f54a5 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:56:44 +0200 Subject: [PATCH 216/237] New translations terms.json (Dutch) [ci skip] --- src/locales/nl_NL/terms.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/nl_NL/terms.json b/src/locales/nl_NL/terms.json index a8dd9686..ec554d8b 100644 --- a/src/locales/nl_NL/terms.json +++ b/src/locales/nl_NL/terms.json @@ -38,7 +38,7 @@ "material_ticker": "Ticker", "materials_plural": "Materials", "materials": "Material | Materials", - "override": " Override", + "override": "Override", "permits_plural": "Permits", "permits": "Permit | Permits", "plan": "Plan | Plans", From e5ff51a22d470d46413287038f81f407d6d1f636 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:56:45 +0200 Subject: [PATCH 217/237] New translations terms.json (Portuguese) [ci skip] --- src/locales/pt_PT/terms.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/pt_PT/terms.json b/src/locales/pt_PT/terms.json index a8dd9686..ec554d8b 100644 --- a/src/locales/pt_PT/terms.json +++ b/src/locales/pt_PT/terms.json @@ -38,7 +38,7 @@ "material_ticker": "Ticker", "materials_plural": "Materials", "materials": "Material | Materials", - "override": " Override", + "override": "Override", "permits_plural": "Permits", "permits": "Permit | Permits", "plan": "Plan | Plans", From 265e0059566bff121e987e3d8280bffbb09282ec Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:56:46 +0200 Subject: [PATCH 218/237] New translations terms.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/terms.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/zh_CN/terms.json b/src/locales/zh_CN/terms.json index d444fd61..f9f05582 100644 --- a/src/locales/zh_CN/terms.json +++ b/src/locales/zh_CN/terms.json @@ -38,7 +38,7 @@ "material_ticker": "Ticker", "materials_plural": "物料", "materials": "物料 | 物料", - "override": " Override", + "override": "Override", "permits_plural": "许可", "permits": "许可证 | 许可证", "plan": "Plan | Plans", From e61b3d50c877d10b11b63144bec3632f4ea115ea Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:56:50 +0200 Subject: [PATCH 219/237] New translations terms.json (Russian) [ci skip] --- src/locales/ru_RU/terms.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/ru_RU/terms.json b/src/locales/ru_RU/terms.json index a8dd9686..ec554d8b 100644 --- a/src/locales/ru_RU/terms.json +++ b/src/locales/ru_RU/terms.json @@ -38,7 +38,7 @@ "material_ticker": "Ticker", "materials_plural": "Materials", "materials": "Material | Materials", - "override": " Override", + "override": "Override", "permits_plural": "Permits", "permits": "Permit | Permits", "plan": "Plan | Plans", From 6733bb70b347cb6e6296fc7e5ec7d4ba907a4673 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:56:52 +0200 Subject: [PATCH 220/237] New translations help.json (German) [ci skip] --- src/locales/de_DE/help.json | 60 ++++++++++++++++++------------------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/src/locales/de_DE/help.json b/src/locales/de_DE/help.json index cf1004c5..dee22ca8 100644 --- a/src/locales/de_DE/help.json +++ b/src/locales/de_DE/help.json @@ -5,7 +5,7 @@ "title": "Änderungsprotokoll" }, "tutorial": { - "intro": "PRUNplanner helps you design bases, organize empires, and calculate profits — without wasting in-game resources. It mirrors nearly every aspect of Prosperous Universe so you can plan smarter and play more confidently." + "intro": "PRUNplanner hilft dir, Basen zu entwerfen, Imperien zu organisieren und Profite zu kalkulieren ohne Ressourcen im Spiel zu verwenden. Es spiegelt fast jeden Aspekt von Prosperous Universe, damit du intelligenter planen und selbstbewusster spielen kannst." }, "getting_started": { "title": "Erste Schritte", @@ -13,63 +13,63 @@ "l1": { "title": "Erstelle ein Imperium in {link}:", "link": "Verwaltung", - "p": "By default, you'll already have one. But you can add more for different factions or regions. Assign a name and faction, and save." + "p": "Standardmäßig hast du bereits eines. Du kannst jederzeit mehr für weitere Fraktionen oder Regionen erstellen. Ordne einen Namen sowie die Fraktion zu und speichere." }, "l2": { - "title": "Setup an {link}:", - "link": "Exchange", - "p": "Go into Management and create your exchange. Switch to the Exchanges view to modify it. For most players, set it to Both (buying and selling) and choose the exchange your bases will use (e.g., CI1 for Benten). Save it." + "title": "Einen {link} erstellen:", + "link": "Marktplatz", + "p": "Gehe zur Verwaltung und erstelle deinen ersten Marktplatz. Wechsel zum Imperium, um ihn zu ändern. Für die meisten Spieler ist es ausreichend die Präferenz auf Beides (kaufen und verkaufen) zu setzen und den Marktplatz auszuwählen, den die Pläne benutzen sollen (z.B. CI1 für Benten). Speichere." }, "l3": { - "title": "Search for a {link}:", - "link": "Planet", - "p": "Use the planet search to filter by resources, programs, or proximity to a CX. Select your target planet and view its modifiers, extraction rates, and infrastructure." + "title": "Nach einem {link} suchen:", + "link": "Planeten", + "p": "Nutze die Planetensuche, um nach Ressourcen, COGC Programmen oder der nähe zu einem Handelsplatz zu suchen. Wähle deinen Zielplaneten, siehe seine Modifikatoren, Extraktionsraten und vorhandene Infrastruktur an." }, "l4": { - "title": "Create a Plan:", - "p": "Choose your Empire, give it a name, then add buildings. For example: add a Refinery, set a production order, and save the plan. You can modify all aspects like COGC, expert bonuses and dive into optimizations." + "title": "Erstelle einen Plan:", + "p": "Wähle dein Imperium, gib ihm einen Namen und füge dann Gebäude hinzu. Zum Beispiel: Füge eine Refinery hinzu, lege einen Produktionsauftrag fest und speichere den Plan. Sie können alle Aspekte wie COGC, Expertenboni ändern und in Optimierungen eintauchen." }, "l5": { - "title": "Check ROI:", - "p": "Once set up, you'll see daily profits, inputs and outputs, and return on investment for each production line. Adjust, experiment, and optimize." + "title": "ROI prüfen:", + "p": "Wenn du alles eingerichtet hast, siehst du deine täglichen Profite, Inputs, Outputs und den Return of Invest für jede Produktionslinie. Verändere, experimentiere und optimiere sie." } }, "core_concepts": { - "title": "Core Concepts", + "title": "Grundkonzepte", "p1": { - "title": "Plans", - "p": "A plan represents a single base: its buildings, productions, and bonuses. Create a plan by choosing a planet, placing buildings, and assigning it to an Empire with a CX preference." + "title": "Pläne", + "p": "Ein Plan repräsentiert eine einzelne Basis mit Gebäuden, Produktionen und Boni. Erstelle einen Plan, nachdem du den Planeten gesucht hast, wähle Gebäude und weise sie deinem Imperium mit seiner Marktplatz-Präferenz zu." }, "p2": { - "title": "Empires", - "p": "An Empire is a container of multiple plans - essentially your entire network of bases. Empires keep your supply chains organized and allow you to manage multiple bases together." + "title": "Imperien", + "p": "Ein Imperium funktioniert wie ein Container für mehrere Pläne - im Wesentlichen dein Netzwerk von Basen. Imperien halten deine Lieferketten organisiert und erlauben dir, mehrere Basen zusammen zu verwalten." }, "p3": { - "title": "Exchanges", - "p": "Exchange settings define how prices are calculated. Each Empire uses one Exchange for consistency. You can reuse the same Exchange setup across empires if needed." + "title": "Marktplätze", + "p": "Marktplatz-Präferenzen definieren wie Preise kalkuliert werden. Jedes Imperium kann einen Marktplatz benutzen. Du kannst die selbe Marktplatz-Präferenz natürlich für mehrere Imperien verwenden." } }, "key_features": { - "title": "Key Features", + "title": "Hauptfunktionen", "p1": { - "title": "Base Simulation", - "p": "Design and test bases without spending resources. From habitation to production to planet-specific modifiers and bonuses — PRUNplanner simulates it all." + "title": "Plan-Simulation", + "p": "Designe und teste Basen ohne Ressourcen im Spiel zu verwenden. Von Wohngebäuden bis zu Planten-spezifischen Umweltfaktoren - PRUNplanner simuliert alles für dich." }, "p2": { - "title": "Empire Planning", - "p": "Manage your empire across multiple bases and supply chains. Keep your materials flowing, prevent bottlenecks, and run smoothly at scale. Always see what is going on and where the next best expansion starts." + "title": "Imperiale Planung", + "p": "Verwalte dein Imperium über mehrere Basen und Lieferketten hinweg. Halte deine Materialien am laufen, verhindere Engpässe und behalte alles reibungslos auf großer Skala. Du siehst immer was passiert und wo deine nächstbeste Erweiterung beginnt." }, "p3": { - "title": "Game Data", - "p": "Market information is integrated directly from FIO, the community API. Plan expansions, check ROI, and make informed trade decisions. Explore historic market data or let PRUNplanner calculate production or resource extraction ROIs." + "title": "Spieldaten", + "p": "Marktinformationen sind direkt über FIO, die Community-Schnittstelle, integriert. Plane deiner nächste Erweiterung, prüfe den ROI und triff fundierte Handelsentscheidungen. Du kannst historische Marktplatz-Daten ansehen und PRUNplanner deine Produktions- oder Ressourcen-Extraktion-ROIs kalkulieren lassen." }, "p4": { - "title": "Burn & Repair", - "p": "Track consumables and building wear. Avoid shortages and downtime by seeing exactly what your colony needs and when it needs it." + "title": "Verbrennen & Reparieren", + "p": "Verfolge Verbrauchsmaterialien für deine Belegschaft und den Verfall deiner Gebäude. Du kannst Engpässe und Ausfallzeiten verhindern, weil du genau siehst, was und wann deine Basen etwas benötigen." }, "p5": { - "title": "A Wealth of Additional Tools", - "p": "Dive into historical prices, optimize habitation layouts, estimate visitation frequencies, and fine-tune production efficiency. PRUNplanner is packed with utilities to give you the edge." + "title": "So viele weitere Werkzeuge", + "p": "PRUNplanner ist voll von weiteren Hilfsmitteln. Verschaffe dir einen Überblick zu historischen Marktentwicklungen, optimiere Gebäude für deine Belegschaft, ermittle wie oft du deine Basis anfliegen musst und wie du die höchste Produktionseffizienz erzielst." } } } From bfbd93c4845c8256bb32c62508e5012c556bddb7 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:56:54 +0200 Subject: [PATCH 221/237] New translations cx_info_table.json (Spanish) [ci skip] --- src/locales/es_ES/cx_info_table.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/es_ES/cx_info_table.json b/src/locales/es_ES/cx_info_table.json index 8fd874ef..091a4d38 100644 --- a/src/locales/es_ES/cx_info_table.json +++ b/src/locales/es_ES/cx_info_table.json @@ -11,5 +11,5 @@ "weighted_trend": "Weighted Trend", "volume_adjusted_delta": "Volume-Adjusted Delta", "price_cohesion": "Price Cohesion", - "variance_index": "Variance Index" + "variance_index": "Índice de Variación" } From f6782db7e2a70e133a3ffec8b5442ef2f3705a32 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:56:56 +0200 Subject: [PATCH 222/237] New translations market_exploration.json (German) [ci skip] --- src/locales/de_DE/market_exploration.json | 32 +++++++++++------------ 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/src/locales/de_DE/market_exploration.json b/src/locales/de_DE/market_exploration.json index 5428c412..6635ac41 100644 --- a/src/locales/de_DE/market_exploration.json +++ b/src/locales/de_DE/market_exploration.json @@ -1,33 +1,33 @@ { - "view_title": "Market Exploration", - "title": "Market Exploration", - "switch_material": "Switch Material", + "view_title": "Marktforschung", + "title": "Marktforschung", + "switch_material": "Material wechseln", "kpis": { - "universe_vwap_7d": "Universe VWAP @:terms.7d", - "universe_traded_7d": "Universe Traded Volume @:terms.7d", - "universe_market_delta": "Universe Market Delta", + "universe_vwap_7d": "Universum VWAP @:terms.7d", + "universe_traded_7d": "Universum Handelsvolumen @:terms.7d", + "universe_market_delta": "Universum Markt Delta", "percent_trend": "% Trend", "30d": "@:{'terms.30d'}:", "supply": "@:{'terms.supply'}:", "demand": "@:{'terms.demand'}:", - "weighted_trend": "Weighted Trend", - "volume_adjusted_delta": "Volume-Adjusted Delta", - "price_cohesion": "Price Cohesion", - "variance_index": "Variance Index" + "weighted_trend": "Gewichteter Trend", + "volume_adjusted_delta": "Volumen-bereinigtes Delta", + "price_cohesion": "Preis Kohäsion", + "variance_index": "Varianz-Index" }, "chart": { - "title": "Market Chart", + "title": "Markt-Chart", "intervals": { - "daily": "Daily", - "weekly": "Weekly", - "monthly": "Monthly" + "daily": "Täglich", + "weekly": "Wöchentlich", + "monthly": "Monatlich" } }, "market_data": { - "title": "Market Data" + "title": "Marktdaten" }, "overview": { - "title": "Material Market Overview", + "title": "Material-Markt-Übersicht", "table": { "material": "@:terms.materials", "vwap_7d": "@:terms.vwap @:terms.7d", From 7c7356cf2ad95617366b623d7f91e758e1b7f659 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:57:07 +0200 Subject: [PATCH 223/237] New translations plan.json (German) [ci skip] --- src/locales/de_DE/plan.json | 250 ++++++++++++++++++------------------ 1 file changed, 125 insertions(+), 125 deletions(-) diff --git a/src/locales/de_DE/plan.json b/src/locales/de_DE/plan.json index 0d91fe67..08cf757b 100644 --- a/src/locales/de_DE/plan.json +++ b/src/locales/de_DE/plan.json @@ -5,71 +5,71 @@ "tools": { "labels": { "popr": "POPR", - "visitation_frequency": "Visitation Frequency", - "construction_cart": "Construction Cart", - "supply_cart": "Supply Cart", - "repair_analysis": "Repair Analysis", + "visitation_frequency": "Besuchsfrequenz", + "construction_cart": "Konstruktion", + "supply_cart": "Versorgung", + "repair_analysis": "Reparatur-Analyse", "workforce": "Belegschaft" }, "popr": { - "title": "Latest Population Report", + "title": "Aktuellster Bevölkerungsbericht", "error": "Fehler beim Laden des neuesten Bevölkerungsberichtes. Der Planet hat möglicherweise keine Bevölkerung.", - "loading": "Loading Population Report" + "loading": "Lade Bevölkerungsbericht" }, "visitation_frequency": { - "title": "Visitation Frequency", + "title": "Besuchsfrequenz", "storage": { - "label": "Storage", - "info": "Your plan involves adding {storages} giving you a total storage capacity of {total_weight} t and {total_volume} m³.", - "info_no_storage": "Your plan has a total storage capacity of {total_weight} t and {total_volume} m³.", + "label": "Lager", + "info": "Dein Plan beinhaltet {storages} mit einer Gesamtkapazität von {total_weight} t und {total_volume} m³.", + "info_no_storage": "Dein Plan verfügt über eine gesamte Lagerkapazität von {total_weight} t und {total_volume} m³.", "table": { "weight": "t", "volume": "m³", "import": "@:terms.import", "export": "@:terms.export", "sum": "@:terms.sum", - "storage_filled": "Storage Filled", - "filled_unit": "days" + "storage_filled": "Lager gefüllt", + "filled_unit": "Tage" }, - "exclusion_info": "Exclude local materials from visitation frequency calculation for items handled exclusively planet-side, like local market sales, purchases or contracts." + "exclusion_info": "Schließe lokale Materialien, die du nur auf diesem Planeten verwaltest, kaufst oder handelst, von der Besuchsfrequenz aus." }, "shipping": { - "label": "Shipping", + "label": "Versand", "table": { - "ship_weight": "Ship t", - "ship_volume": "Ship m³", - "visitation_days": "Visitation (days)", + "ship_weight": "Schiff t", + "ship_volume": "Schiff m³", + "visitation_days": "Besuche (Tage)", "limit": "Limit", - "export_frequency": "@:terms.export Frequency", - "import_frequency": "@:terms.import Frequency" + "export_frequency": "@:terms.export Frequenz", + "import_frequency": "@:terms.import Frequenz" } } }, "construction_cart": { - "title": "Construction Cart", - "unplanned_info": "Base has unplanned {buildings} (FIO: {fio_updated}). Demolish to ensure area, habitation and materials are accurate.", + "title": "Konstruktion", + "unplanned_info": "Die Basis hat ungeplante {buildings} (FIO: {fio_updated}). Zerstöre sie, um zu garantieren, dass Fläche und Materialien korrekt sind.", "table": { "building": "@:terms.buildings", - "built": "Built", - "amount": "Amount", - "habitation_info": "Insufficient habitation will reduce production efficiency.", - "planned": "Planned", - "materials_sum": "Materials Sum", - "total_cost": "Total Cost", + "built": "Gebaut", + "amount": "Anzahl", + "habitation_info": "Unzureichende Gebäude für deine Belegschaft reduzieren die Produktionseffizienz.", + "planned": "Geplant", + "materials_sum": "Material Summe", + "total_cost": "Gesamtkosten", "total_weight": "@:terms.total_weight", "total_volume": "@:terms.total_volume", "material": "Material", - "storage": "Storage", - "stock": "Stock", - "stock_override": "Stock Override", - "need": "Need" + "storage": "Lager", + "stock": "Lagerbestand", + "stock_override": "Bestand überschreiben", + "need": "Bedarf" } }, "supply_cart": { - "title": "Supply Cart", + "title": "Versorgung", "info": { - "p": "The Supply Cart provides updates on your plans needs combined with existing inventory sourced from FIO. You have the flexibility to opt for alternative storage locations to replenish your base. Tailor your selection based on whether you wish to restock workforce and production supplies or focus on a specific category, and specify the duration for which the supplied stock should sustain. Use the {link} tool for more advanced supply cart options.", - "link": "" + "p": "Dieser Versorgungs-Warenkorb aktualisiert sich auf Basis deines Plans und bestehendem Lagerbestand. Du kannst flexibel einen anderen Lagerort wählen, um deine Basis aufzufüllen. Passe deine Auswahl darauf an, ob du deine Belegschaft oder Produktionsgebäude versorgen und für wie viele Tage du Materialen schicken möchtest. Du kannst {link} verwenden, um mehr Optionen für den Versorgungs-Warenkorb zu bekommen.", + "link": "FIO Verbrauch" }, "buttons": { "all": "Alles", @@ -77,74 +77,74 @@ "production": "Produktion" }, "table": { - "stock_duration": "Stock Duration (days)", - "storage": "Storage", - "xit_name": "Supply Cart", + "stock_duration": "Bestandsverfügbarkeit (Tage)", + "storage": "Lager", + "xit_name": "Versorgung", "ticker": "Ticker", - "daily_need": "Daily Need", - "daily_cost": "Daily Cost", - "stock": "Stock", - "full_need": "Full Need", - "final_need": "Final Need", + "daily_need": "Täglicher Bedarf", + "daily_cost": "Tägliche Kosten", + "stock": "Lagerbestand", + "full_need": "Voller Bedarf", + "final_need": "Finaler Bedarf", "weight": "t", "volume": "m³", - "workforce": "Workforce", - "production": "Production", - "total_cost": "Total Cost", + "workforce": "Belegschaft", + "production": "Produktion", + "total_cost": "Gesamtkosten", "total_weight": "@:terms.total_weight", "total_volume": "@:terms.total_volume" } }, "repair_analysis": { - "title": "Repair Analysis", + "title": "Reparatur-Analyse", "plan": "@:terms.plan", "table": { - "select_day": "Select Day", + "select_day": "Tag auswählen", "material": "Material", - "amount": "Amount", - "cost": "Cost", - "total_cost": "Total Cost", + "amount": "Anzahl", + "cost": "Kosten", + "total_cost": "Gesamtkosten", "total_weight": "@:terms.total_weight", "total_volume": "@:terms.total_volume" }, "graph": { - "select_building": "Select @:terms.buildings", - "individual_building": "Individual @:terms.buildings", - "repair_cost_breakdown": "Repair Cost Breakdown" + "select_building": "@:terms.buildings auswählen", + "individual_building": "Individuelles @:terms.buildings", + "repair_cost_breakdown": "Reparaturkosten Aufteilung" } }, "cogm": { - "title": "Cost of Goods Manufactured", + "title": "Kosten der hergestellten Waren", "cogm": "@:terms.cogm", - "info": "The cost of goods manufactured is calculated using plan settings that factor in production efficiency, recipe runtime, building degradation, input material costs, labor requirements, and associated labor costs. The final cost is shown per unit of output, based on quantity or full cost allocation.", - "cx_preferences": "@:terms.cx_plural Preferences", + "info": "Die Kosten der hergestellten Waren werden anhand von Planeinstellungen berechnet, die die Produktionseffizienz erhöhen Rezeptlaufzeit, Bauabbau, Materialkosten, Arbeitsanforderungen und damit verbundene Arbeitskosten. Die Endkosten werden pro Ausgabeeinheit angezeigt, basierend auf der Menge oder der vollen Kostenzuweisung.", + "cx_preferences": "@:terms.cx_plural Präferenzen", "empire_ticker": "@:terms.empire Ticker", "planet_ticker": "@:terms.planet Ticker", "table": { - "parameters": "Parameters", - "recipe_runtime": "@:terms.recipes Runtime", - "percent_day": "% / day", - "efficiency": "Efficiency", - "degradation": "Degradation", + "parameters": "Parameter", + "recipe_runtime": "@:terms.recipes Laufzeit", + "percent_day": "% / Tag", + "efficiency": "Effizienz", + "degradation": "Abnutzung", "cost": "@:terms.cost", "materials": "@:terms.materials_plural", - "input_total": "Input Total", + "input_total": "Input Gesamt", "material": "@:terms.materials", - "cost_unit": "ȼ / Unit", - "cost_total": "Cost Total", - "cost_total_unit": "ȼ Total", - "workforce": "Workforce", - "total_cost": "Total Cost", + "cost_unit": "ȼ / Einheit", + "cost_total": "Gesamtkosten", + "cost_total_unit": "ȼ Gesamt", + "workforce": "Belegschaft", + "total_cost": "Gesamtkosten", "recipe_profit": "@:terms.recipes Profit", - "cost_split": "Cost Split" + "cost_split": "Kostenteilung" } }, "plan_analytics": { - "title": "Planning Insights", - "info": "Insights are aggregated from active player plans on {planet}. PRUNplanner enforces minimum sample thresholds to ensure both anonymity and statistical accuracy.", + "title": "Planungseinblicke", + "info": "Einblicke werden aus aktiven Plänen auf {planet} zusammengefasst. PRUNplanner setzt Mindestschwellen ein, um sowohl Anonymität als auch statistische Genauigkeit zu gewährleisten.", "labels": { - "experts": "Experts", - "production_buildings": "Production @:terms.buildings_plural", + "experts": "Experten", + "production_buildings": "Produktions-@:terms.buildings_plural", "recipes": "@:terms.recipes_plural" } } @@ -158,140 +158,140 @@ "experts": "@:{'terms.experts_plural'}:" }, "configuration": { - "label": "Configuration", + "label": "Konfiguration", "name": "Name", "empire": "@:terms.empire" }, "area": { "permits": "@:terms.permits_plural", "area": "@:terms.area", - "free": "Free" + "free": "Frei" }, "bonuses": { "corp_hq": "Corp. HQ", - "corp_hq_tooltip": "The corporation you belong to has its headquarters on this planet (not your individual company).", + "corp_hq_tooltip": "Das Unternehmen, zu dem Sie gehören, hat seinen Hauptsitz auf diesem Planeten (nicht Ihr individuelles Unternehmen).", "cogc": "@:terms.cogc" }, "infrastructure": { - "label": "Infrastructure", - "auto_optimize": "Auto-Optimize Habs", - "auto_optimize_tooltip": "Automatically optimize habitations to meet workforce needs as buildings are added.", + "label": "Infrastruktur", + "auto_optimize": "Automatische Optimierung", + "auto_optimize_tooltip": "Automatische Optimierung der Belegschaftsgebäude, um die Bedürfnisse der Belegschaft zu befriedigen, wenn Gebäude hinzugefügt werden.", "buttons": { - "optimize_cost": "Optimize Cost", - "optimize_area": "Optimize Area" + "optimize_cost": "Kosten optimieren", + "optimize_area": "Fläche optimieren" } }, "experts": { - "label": "Experts", - "warning": "Maximum number of experts on a base is 6. You currently have {expert_number} experts assigned." + "label": "Experten", + "warning": "Maximale Anzahl von Experten auf einer Basis ist 6. Du hast derzeit {expert_number} Experten zugewiesen." }, "workforce": { - "label": "Workforce", + "label": "Belegschaft", "table": { - "type": "Type", - "need": "Need", - "supply": "Supply", - "open": "Open", - "luxuries": "Luxuries", + "type": "Typ", + "need": "Bedarf", + "supply": "Vorrat", + "open": "Offen", + "luxuries": "Luxusgüter", "pct_eff": "Eff. %" } }, "overview": { - "label": "Overview", + "label": "Übersicht", "table": { - "daily_cost": "Daily Cost", - "degradation": "Degradation", - "plan_cost": "Plan Cost", - "daily_profit": "Daily Profit", + "daily_cost": "Tägliche Kosten", + "degradation": "Abnutzung", + "plan_cost": "Plankosten", + "daily_profit": "Täglicher Gewinn", "roi": "ROI", "profit_area": "@:terms.profit_per_area" } }, "storage": { - "label": "Storage", + "label": "Lager", "table": { "weight": "t", "volume": "m³", "import": "@:terms.import", "export": "@:terms.export", "sum": "@:terms.sum", - "filled": "Filled" + "filled": "Gefüllt" } }, "materialio": { "label": "Material I/O", - "label_production": "Production", - "label_workforce": "Workforce", + "label_production": "Produktion", + "label_workforce": "Belegschaft", "buttons": { - "toggle_weight_volume": "Toggle Weight & Volume", - "toggle_production_workforce": "Toggle Production & Workforce Split" + "toggle_weight_volume": "Gewicht & Volumen umschalten", + "toggle_production_workforce": "Produktion & Belegschaft umschalten" }, "table": { - "input": "In", - "output": "Out", + "input": "Ein", + "output": "Aus", "delta": "Δ", - "cost_day": "ȼ / day", + "cost_day": "ȼ / Tag", "total_weight": "Δ t", - "total_volume": "Δ m³" + "total_volume": "Δ m3" } }, "save_as": { - "title": "Save As", + "title": "Speichern als", "form": { "plan_name": "Name", - "plan_name_placeholder": "New @:terms.plan Name", + "plan_name_placeholder": "Neuer @:terms.plan-Name", "empire": "@:terms.empire" } }, "production": { - "label": "Production", + "label": "Produktion", "planet_resources": "@:terms.planets @:terms.resources_plural", "form": { - "match_cogc": "Match @:terms.cogc", - "select_placeholder": "Select @:terms.buildings & Add to @:terms.plan" + "match_cogc": "Filter auf @:terms.cogc", + "select_placeholder": "@:terms.buildings auswählen & zu @:terms.plan hinzufügen" }, "table": { "building_recipe": "@:terms.buildings / @:terms.recipes", - "runtime": "Runtime", - "share": "Share", - "tools": "Tools" + "runtime": "Laufzeit", + "share": "Anteil", + "tools": "Werkzeuge" } }, "production_building": { - "no_recipe": "No Active @:terms.recipes_plural", - "qty": "Qty", + "no_recipe": "Kein aktives @:terms.recipes_plural", + "qty": "#", "buttons": { "add_recipe": "@:terms.recipes" }, "table": { "expertise": "Expertise", - "efficiency": "Efficiency", + "efficiency": "Effizienz", "revenue": "@:terms.revenue", "area": "@:terms.area", - "construction": "Construction" + "construction": "Konstruktion" } }, "production_recipe": { - "cogm_title": "Cost Of Goods Manufactured", - "cogm_error": "COGM Calculation not possible. Check your Management View if your Empire has a CX assigned.", + "cogm_title": "Kosten der hergestellten Waren", + "cogm_error": "COGM Berechnung nicht möglich. Überprüfe deinen Verwaltungs-View, ob das Imperium einem Marktplatz zugewiesen ist.", "buttons": { "cogm": "@:terms.cogm" }, "table": { "input": "Input", - "time": "Time", + "time": "Zeit", "output": "Output", - "daily_revenue": "ȼ / Day", - "profit_area": "ȼ / Area", + "daily_revenue": "ȼ / Tag", + "profit_area": "ȼ / Fläche", "roi": "ROI" }, "info": { - "p1_strong": "Revenue / Day", - "p1": "is calculated by taking the daily income generated from a recipe and subtracting both the daily workforce cost (all luxuries provided) and the daily building degradation cost (1/180th of the construction cost). The income from the recipe is based on the difference between the input material costs and the output material values.", - "p2_strong": "ȼ / Area", - "p2": "is the daily revenue divided by the area for one production building and its proportionate share of the area for a CM and habs required for an optimal base of such buildings in Recipe ROI.", + "p1_strong": "Umsatz / Tag", + "p1": "wird anhand des nach Auftrag generierten Tageseinkommens berechnet und enthält sowohl die täglichen Personalkosten (alle Luxusgüter) als auch die täglichen Verfallskosten (1/180tel der Baukosten). Die Einnahmen aus dem Auftrag basieren auf der Differenz zwischen den Input und Output Materialkosten.", + "p2_strong": "ȼ / Fläche", + "p2": "ist der tägliche Umsatz für ein Produktionsgebäude und sein proportionaler Anteil an der Fläche für eine Kolonisationseinheit und Belegschaftsgebäude für eine optimale Basis für dieses Gebäude und Auftrag.", "p3_strong": "ROI", - "p3": "is the time required for a continuously operating recipe to generate enough revenue to offset the building's construction cost. This considers daily degradation and workforce costs as well." + "p3": "is die benötigte Zeit für einen ständig laufenen Auftrag, um Umsatz zu erzeugen, der alle Konstruktionskosten berücksichtigt. Dies beinhaltet die täglichen Verfalls- und Belegschaftskosten." } } } From 62b3ef6c4cf2d3d1a6c5adec8f8bb3ac7c68e787 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:57:09 +0200 Subject: [PATCH 224/237] New translations plan.json (Dutch) [ci skip] --- src/locales/nl_NL/plan.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locales/nl_NL/plan.json b/src/locales/nl_NL/plan.json index 1b01bf38..977f78ef 100644 --- a/src/locales/nl_NL/plan.json +++ b/src/locales/nl_NL/plan.json @@ -127,7 +127,7 @@ "efficiency": "Efficiency", "degradation": "Degradation", "cost": "@:terms.cost", - "materials": "@:terms.materials_plural", + "materials": "@:terms.materials_meervoud", "input_total": "Input Total", "material": "@:terms.materials", "cost_unit": "ȼ / Unit", From 274d6d2d28f2c7db77731ead8162837e89b26a1f Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:57:11 +0200 Subject: [PATCH 225/237] New translations account.json (German) [ci skip] --- src/locales/de_DE/account.json | 82 +++++++++++++++++----------------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/src/locales/de_DE/account.json b/src/locales/de_DE/account.json index f6fdc2c0..8d9d165d 100644 --- a/src/locales/de_DE/account.json +++ b/src/locales/de_DE/account.json @@ -1,80 +1,80 @@ { "components": { "login": { - "title": "Login", - "error": "Error logging in. Please check your username and password.", + "title": "Anmelden", + "error": "Fehler beim Anmelden. Bitte überprüfe deinen Benutzernamen und dein Passwort.", "buttons": { - "login": "Login" + "login": "Anmelden" }, "form": { - "username": "Username", - "password": "Password" + "username": "Benutzername", + "password": "Passwort" }, - "tos": "By using PRUNplanner you agree to the {tos_link}.", - "tos_link": "Terms of Service", - "forgot": "Forgot your password? Request a {forgot_link}.", - "forgot_link": "Password Reset" + "tos": "Durch die Verwendung von PRUNplanner erklärst du dich mit den {tos_link} einverstanden.", + "tos_link": "Nutzungsbedingungen", + "forgot": "Passwort vergessen? {forgot_link} anfordern.", + "forgot_link": "Passwort-Zurücksetzen" }, "registration": { - "title": "Account Information", - "tos": "PRUNplanner is free to use. By creating an account, you acknowledge and agree to the {tos_link}.", - "tos_link": "Terms of Service", + "title": "Kontoinformationen", + "tos": "PRUNplanner kann kostenlos verwendet werden. Mit der Erstellung eines Kontos bestätigst und stimmst du den {tos_link} zu.", + "tos_link": "Nutzungsbedingungen", "result": { - "ok_header": "Welcome, {username}!", - "ok_message": "Registration succesful. You can now login to PRUNplanner.", - "error": "Error during registration." + "ok_header": "Willkommen {username}!", + "ok_message": "Registrierung erfolgreich. Du kannst dich jetzt bei PRUNplanner anmelden.", + "error": "Fehler während der Registrierung." }, "buttons": { - "register": "Create Account" + "register": "Konto erstellen" }, "form": { - "username": "Username", - "username_info": "Must be at least 3 characters long. Can't contain spaces.", - "password": "Password", - "password_info": "Must be at least 8 characters long.", - "email": "Email", - "email_placeholder": "Not mandatory, but recommended.", - "email_info": "Not mandatory. Increases your account security.", - "security_question": "Security Question", - "question": "Enter the name of planet {planet}. To find it, open a new Prosperous Universe buffer with the command {command}. You'll see the planets name listed under 'Name' in the planet information", + "username": "Benutzername", + "username_info": "Muss mindestens 3 Zeichen lang sein. Kann keine Leerzeichen enthalten.", + "password": "Passwort", + "password_info": "Muss mindestens 8 Zeichen lang sein.", + "email": "E-Mail", + "email_placeholder": "Nicht verpflichtend, aber empfohlen.", + "email_info": "Nicht verpflichtend. Erhöht die Sicherheit deines Kontos.", + "security_question": "Sicherheitsfrage", + "question": "Gib den Namen des Planeten {planet} ein. Um ihn zu finden, öffne ein neues Fenster in Prosperous Universe mit dem Befehl {command}. Du siehst den Planetennamen unter 'Name' in den Planeten-Informationen", "planet_name": "Name" } }, "password_reset": { - "title": "Reset your Password", - "info": "Please enter the code sent to your email, along with your new password.", + "title": "Passwort zurücksetzen", + "info": "Bitte gib den an deine E-Mail gesendeten Code zusammen mit deinem neuen Passwort sein.", "buttons": { - "send": "Reset Password" + "send": "Passwort zurücksetzen" }, "form": { - "email": "Email", + "email": "E-Mail", "code": "Code", - "password": "Password", - "password_info": "Must be at least 8 characters long." + "password": "Passwort", + "password_info": "Muss mindestens 8 Zeichen lang sein." } }, "request_password_reset": { - "title": "Password Reset Request", - "info": "Enter the verified email address linked to your PRUNplanner account. If we recognize it, we'll send you a code to reset your password.", + "title": "Anfrage zum Zurücksetzen des Passworts", + "info": "Gib deine E-Mail-Adresse ein, die du zuvor mit deinem PRUNplanner Konto verifiziert hast. Wenn wir sie erkennen, senden wir dir einen Code zum Zurücksetzen des Passworts zu.", "form": { - "email_placeholder": "Email Address" + "email_placeholder": "E-Mail-Adresse" }, "buttons": { - "send": "Request Password Reset" + "send": "Passwort-Reset anfordern" } }, "verify_email": { - "title": "Email Verification", - "info": "Please enter the verification code you received via email. Maybe check your spam folder.", + "title": "E-Mail-Verifizierung", + "info": "Bitte gib den Verifizierungscode ein, den du per E-Mail erhalten hast. Prüfe ggf. deinen Spam-Ordner.", "buttons": { - "send": "Verify Email Address" + "send": "E-Mail-Adresse bestätigen" }, "form": { - "code_placeholder": "Verification Code" + "code_placeholder": "Verifizierungscode" }, "result": { - "ok": "Email address verified.", - "error": "Invalid code or already verified." + "ok": "E-Mail-Adresse bestätigt.", + "error": "Ungültiger Code oder bereits verifiziert." } } } From d0b557231471ee074d8479bfe74d1b5f37912c0a Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:57:12 +0200 Subject: [PATCH 226/237] New translations exchanges.json (German) [ci skip] --- src/locales/de_DE/exchanges.json | 38 ++++++++++++++++---------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/locales/de_DE/exchanges.json b/src/locales/de_DE/exchanges.json index 8c599196..dca64058 100644 --- a/src/locales/de_DE/exchanges.json +++ b/src/locales/de_DE/exchanges.json @@ -1,9 +1,9 @@ { - "view_title": "Exchanges", - "title": "Exchanges", + "view_title": "Marktplätze", + "title": "Marktplätze", "errors": { - "title": "No Preferences", - "message": "You don't have exchange preferences. Head to Management and create your first." + "title": "Keine Präferenzen", + "message": "Du hast keine Marktplatz-Präferenzen. Gehe zur Verwaltungsseite und erstelle deine erste." }, "buttons": { "csv_import_export": "@:exchanges.components.csv_import_export.title", @@ -12,43 +12,43 @@ }, "configuration": { "form": { - "preference_name": "Preference Name", - "empire_preferences": "Empire Preferences", - "exchange": "Exchange", + "preference_name": "Präferenzname", + "empire_preferences": "Imperium-Präferenz", + "exchange": "Marktplatz", "ticker": "@:terms.material_ticker" } }, "preference_type": { - "BUY": "BUY", - "SELL": "SELL", - "BOTH": "BOTH" + "BUY": "KAUF", + "SELL": "VERKAUF", + "BOTH": "BEIDES" }, "components": { "ticker": { - "no_data": "No @:terms.material_ticker Preferences Configured", + "no_data": "Keine @:terms.material_ticker Präferenzen konfiguriert", "material_placeholder": "@:terms.materials" }, "exchanges": { - "no_data": "No @:terms.exchanges Preference Configured" + "no_data": "Keine @:terms.exchanges Präferenzen konfiguriert" }, "planet_preferences": { - "title": "Planet Preferences", + "title": "Planeten-Präferenzen", "form": { "exchange": "@:terms.exchanges", "ticker": "@:terms.material_ticker" }, "table": { "planet": "@:terms.planets", - "exchange_preference": "@:terms.exchanges Preferences", - "ticker_preference": "@:terms.material_ticker Preferences" + "exchange_preference": "@:terms.exchanges Präferenzen", + "ticker_preference": "@:terms.material_ticker Präferenzen" } }, "csv_import_export": { - "title": "Import / Export CSV", - "warning": "Warning: Importing deletes all existing properties and imports the new ones. You need to save your imported preferences after uploading the CSV file or use the reload button to discard them.", + "title": "CSV-Import / Export", + "warning": "Warnung: Der Import löscht alle bestehenden Präferenzen und importiert die neuen. Du musst die importierten Präferenzen nach dem CSV-Upload speichern oder den Neuladen-Button verwenden, um sie zu verwerfen.", "buttons": { - "import": "Import Settings", - "export": "Export Settings" + "import": "Präferenzen Importieren", + "export": "Präferenzen Exportieren" } } } From 857758a3fc6b68634429913e06c7d6709025a964 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:57:15 +0200 Subject: [PATCH 227/237] New translations exchanges.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/exchanges.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/locales/zh_CN/exchanges.json b/src/locales/zh_CN/exchanges.json index 8c599196..15a52324 100644 --- a/src/locales/zh_CN/exchanges.json +++ b/src/locales/zh_CN/exchanges.json @@ -7,8 +7,8 @@ }, "buttons": { "csv_import_export": "@:exchanges.components.csv_import_export.title", - "save": "@:common.buttons.save", - "reload": "@:common.buttons.reload" + "save": "@:common.butons.save", + "reload": "@:common.butons.reload" }, "configuration": { "form": { @@ -34,7 +34,7 @@ "planet_preferences": { "title": "Planet Preferences", "form": { - "exchange": "@:terms.exchanges", + "exchange": "@:terms.exchange", "ticker": "@:terms.material_ticker" }, "table": { From 86079b26a4f1d630886c807e3aec0afecf76b3e0 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:57:16 +0200 Subject: [PATCH 228/237] New translations fio.json (German) [ci skip] --- src/locales/de_DE/fio.json | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/src/locales/de_DE/fio.json b/src/locales/de_DE/fio.json index a104665d..5f7af3f2 100644 --- a/src/locales/de_DE/fio.json +++ b/src/locales/de_DE/fio.json @@ -1,25 +1,25 @@ { "burn": { - "view_title": "FIO Burn", - "title": "FIO Burn:", - "fio_last_update": "FIO Data Update: {last_updated}", + "view_title": "FIO Verbrauch", + "title": "FIO Verbrauch:", + "fio_last_update": "FIO Datenaktualisierung: {last_updated}", "form": { "empire": "@:terms.empire", - "burn_thresholds": "Burn Thresholds", - "red": "Red", - "yellow": "Yellow" + "burn_thresholds": "Verbrauch Grenzwerte", + "red": "Rot", + "yellow": "Gelb" }, "components": { "overview": { - "title": "Plan Burn Overview", + "title": "Plan-Verbrauch-Übersicht", "table": { "plan": "@:terms.plan", "planet": "@:terms.planets", - "burn": "Burn" + "burn": "Verbrauch" } }, "plans": { - "xit_title": "XIT Resupply: {plan_name}", + "xit_title": "XIT Nachschub: {plan_name}", "table": { "ticker": "@:terms.material_ticker", "consumption": "@:terms.consumption", @@ -27,23 +27,23 @@ "delta": "@:terms.delta", "stock": "@:terms.stock", "plan": "@:terms.plan", - "burn": "Burn", - "exhaustion": "Exhaustion" + "burn": "Verbrauch", + "exhaustion": "Erschöpft" } } } }, "repair": { - "view_title": "FIO Repair", - "title": "FIO Repair", - "fio_last_update": "FIO Data Update: {last_updated}", + "view_title": "FIO Reparieren", + "title": "FIO Reparieren", + "fio_last_update": "FIO Datenaktualisierung: {last_updated}", "table": { "title": "@:terms.planet_plural", "planet": "@:terms.planets", "buildings": "@:terms.buildings_plural", - "avg_condition": "⌀ Condition", - "min_condition": "Min. Condition", - "repair_age": "Repair Age" + "avg_condition": "⌀ Zustand", + "min_condition": "Min. Zustand", + "repair_age": "Reparatur-Alter" } } } From 7b7baab8d13c442ddf494a44d07289307310c44d Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:57:19 +0200 Subject: [PATCH 229/237] New translations market_live.json (German) [ci skip] --- src/locales/de_DE/market_live.json | 98 +++++++++++++++--------------- 1 file changed, 49 insertions(+), 49 deletions(-) diff --git a/src/locales/de_DE/market_live.json b/src/locales/de_DE/market_live.json index ca5a5b21..e990599e 100644 --- a/src/locales/de_DE/market_live.json +++ b/src/locales/de_DE/market_live.json @@ -1,57 +1,57 @@ { - "view_title": "Market Live", - "title": "Market Live", + "view_title": "Live Markt", + "title": "Live Markt", "status": { - "connected": "Connected", - "disconnected": "Disconnected" + "connected": "Verbunden", + "disconnected": "Getrennt" }, "severity_type": { - "LOW": "LOW", - "MEDIUM": "MEDIUM", - "HIGH": "HIGH" + "LOW": "NIEDRIG", + "MEDIUM": "MITTEL", + "HIGH": "HOCH" }, "status_type": { - "active": "Active", - "paused": "Paused" + "active": "Aktiv", + "paused": "Pausiert" }, "rule_type": { - "static": "Value", - "previous": "Previous", - "previous_pct": "Offset %", + "static": "Wert", + "previous": "Vorheriger Wert", + "previous_pct": "Unterschied %", "text": "Text" }, "components": { "feed": { - "title": "Alert Feed", + "title": "Alarm Feed", "buttons": { - "open_manager": "Open Alert Manager", - "close_manager": "Close Alert Manager", - "clear_feed": "Clear Feed", - "show_overview": "Show Overview", - "hide_overview": "Hide Overview" + "open_manager": "Alarm-Manager öffnen", + "close_manager": "Alarm-Manager schließen", + "clear_feed": "Feed leeren", + "show_overview": "Übersicht anzeigen", + "hide_overview": "Übersicht ausblenden" } }, "alert_feed": { - "waiting": "Waiting for market events triggering alerts...", + "waiting": "Warten auf Marktereignisse, die Alarme auslösen...", "table": { - "ticker_alert": "Ticker / Alert", - "severity": "Severity", - "logic": "Trigger Logic", - "event": "Event", - "time": "Time" + "ticker_alert": "Ticker / Alarm", + "severity": "Schweregrad", + "logic": "Trigger-Logik", + "event": "Ereignis", + "time": "Zeit" } }, "details": { - "price": "Price", + "price": "Preis", "ask": "@:{'terms.ask'}: {value}", "bid": "@:{'terms.bid'}: {value}", "spread": "@:{'terms.spread'}", - "buy_volume": "Buy Volume", + "buy_volume": "Kauf-Volumen", "vwap": "@:{'terms.vwap'}: {value}", - "change": "Change: {value}", - "sell_volume": "Sell Volume", - "buy_volume_value": "Buy Volume: {value}", - "sell_volume_value": "Sell Volume: {value}" + "change": "Änderung: {value}", + "sell_volume": "Verkaufsvolumen", + "buy_volume_value": "Kauf-Volumen: {value}", + "sell_volume_value": "Verkaufs-Volumen: {value}" }, "point_table": { "table": { @@ -60,41 +60,41 @@ "bid": "@:terms.bid", "ask": "@:terms.ask", "spread_pct": "Spread %", - "buy_volume": "Buy Vol.", - "sell_volume": "Sell Vol." + "buy_volume": "Kauf-Vol.", + "sell_volume": "Verkauf-Vol." } }, "history": { - "title": "Data History", - "received": "{value} @:terms.material_ticker received" + "title": "Datenhistorie", + "received": "{value} @:terms.material_ticker erhalten" }, "rule_builder": { - "new_rule_name": "New Rule", + "new_rule_name": "Neue Regel", "buttons": { - "add_condition": "Condition", - "add_group": "Group", - "remove": "Remove" + "add_condition": "Bedingung", + "add_group": "Gruppe", + "remove": "Entfernen" }, - "error": "Error: {value}", - "empty": "Empty Group" + "error": "Fehler: {value}", + "empty": "Leere Gruppe" }, "alert_manager": { - "title": "Alert Manager", - "title_editing": "Edit Alert", - "info": "Alerts are currently stored on this device only and are not synced to your account.", - "no_alerts": "No alerts found. Start by creating your first detector signal", + "title": "Alarm-Manager", + "title_editing": "Alarm bearbeiten", + "info": "Alarme werden derzeit nur auf diesem Gerät gespeichert und nicht mit deinem Konto synchronisiert.", + "no_alerts": "Keine Alarme gefunden. Erstelle dein erstes Alarm-Signal", "buttons": { - "create_alert": "Create New Alert", + "create_alert": "Neuen Alarm erstellen", "discard": "@:common.buttons.discard", "save": "@:common.buttons.save", "delete": "@:common.buttons.delete" }, "form": { - "alert_name": "Alert Name", - "severity": "Severity", + "alert_name": "Alarmname", + "severity": "Schweregrad", "status": "Status", - "logic_configuration": "Logic Configuration", - "previous_datapoint": "Previous Datepoint" + "logic_configuration": "Logik Konfiguration", + "previous_datapoint": "Vorheriger Datenpunkt" } } } From 48ad2d8500860a63502507e518015e9b6649668c Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:57:21 +0200 Subject: [PATCH 230/237] New translations material_tile.json (German) [ci skip] --- src/locales/de_DE/material_tile.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/locales/de_DE/material_tile.json b/src/locales/de_DE/material_tile.json index 7feabd58..9dc113d8 100644 --- a/src/locales/de_DE/material_tile.json +++ b/src/locales/de_DE/material_tile.json @@ -2,22 +2,22 @@ "information": { "title": "Material Information", "table": { - "category": "Category", - "weight": "Weight", - "volume": "Volume" + "category": "Kategorie", + "weight": "Gewicht", + "volume": "Volumen" } }, "indicator": { - "value": "Value", + "value": "Wert", "max": "Maximum", "pct_max": "% / Max" }, "chart": { - "title": "Market History", + "title": "Markthistorie", "labels": { - "traded": "Traded Volume", - "low_p": "Daily Minimum Price", - "high_p": "Daily Maximum Price" + "traded": "Handelsvolumen", + "low_p": "Minimaler Tagespreis", + "high_p": "Maximaler Tagespreis" } } } From 4924a100b733c7e85ec9e6ce2b3df3ee90ec8f10 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:57:23 +0200 Subject: [PATCH 231/237] New translations material_tile.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/material_tile.json | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/locales/zh_CN/material_tile.json b/src/locales/zh_CN/material_tile.json index 7feabd58..e466d12d 100644 --- a/src/locales/zh_CN/material_tile.json +++ b/src/locales/zh_CN/material_tile.json @@ -1,23 +1,23 @@ { "information": { - "title": "Material Information", + "title": "材料信息", "table": { - "category": "Category", - "weight": "Weight", - "volume": "Volume" + "category": "类别", + "weight": "重量", + "volume": "体积" } }, "indicator": { - "value": "Value", - "max": "Maximum", - "pct_max": "% / Max" + "value": "价值", + "max": "最大值", + "pct_max": "% / 最大值" }, "chart": { - "title": "Market History", + "title": "市场历史", "labels": { - "traded": "Traded Volume", - "low_p": "Daily Minimum Price", - "high_p": "Daily Maximum Price" + "traded": "成交量", + "low_p": "日最低价", + "high_p": "日最高价" } } } From ff391ba155b28e7b34fd06b3696cd1a248bc76f2 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:57:24 +0200 Subject: [PATCH 232/237] New translations sharing.json (German) [ci skip] --- src/locales/de_DE/sharing.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/locales/de_DE/sharing.json b/src/locales/de_DE/sharing.json index fc01f576..cd1cfe77 100644 --- a/src/locales/de_DE/sharing.json +++ b/src/locales/de_DE/sharing.json @@ -1,11 +1,11 @@ { - "info": "This will create an unique link that can be shared with others. They will be able to see your plan, but don't modify it. The link becomes unavailable once you choose to stop sharing or delete the plan.", - "share_count": "You're currently sharing this plan. It has been viewed {count} times", + "info": "Dies wird einen einzigartigen Link erstellen, der mit anderen geteilt werden kann. Sie können deinen Plan sehen, aber ihn nicht ändern. Der Link ist nicht mehr verfügbar, sobald du dich entscheidest den Plan nicht mehr zu teilen oder ihn löscht.", + "share_count": "Du teilst derzeit diesen Plan. Er wurde {count} mal angesehen", "buttons": { - "create_link": "Create Sharing Link", - "copy_url": "Copy URL", - "stop_sharing": "Stop Sharing", - "views": "{count} Views", - "share": "Share" + "create_link": "Freigabelink erstellen", + "copy_url": "URL kopieren", + "stop_sharing": "Freigabe beenden", + "views": "{count} Aufrufe", + "share": "Freigeben" } } From ba2d771df680b0b2dd53f6eedfc2eac0e2e6edab Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:57:26 +0200 Subject: [PATCH 233/237] New translations sharing.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/sharing.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/locales/zh_CN/sharing.json b/src/locales/zh_CN/sharing.json index fc01f576..a5969279 100644 --- a/src/locales/zh_CN/sharing.json +++ b/src/locales/zh_CN/sharing.json @@ -1,11 +1,11 @@ { - "info": "This will create an unique link that can be shared with others. They will be able to see your plan, but don't modify it. The link becomes unavailable once you choose to stop sharing or delete the plan.", - "share_count": "You're currently sharing this plan. It has been viewed {count} times", + "info": "这将创建一个可分享给他人的专属链接。其他人可以查看你的计划,但不能修改。一旦你停止分享或删除该计划,链接将失效。", + "share_count": "你正在分享此计划。该计划已被查看 {count} 次", "buttons": { - "create_link": "Create Sharing Link", - "copy_url": "Copy URL", - "stop_sharing": "Stop Sharing", - "views": "{count} Views", - "share": "Share" + "create_link": "创建分享链接", + "copy_url": "复制链接", + "stop_sharing": "停止分享", + "views": "{count} 次查看", + "share": "分享" } } From e4d91317f108fe01c524f4042192051484985eb3 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:57:27 +0200 Subject: [PATCH 234/237] New translations xit.json (German) [ci skip] --- src/locales/de_DE/xit.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/locales/de_DE/xit.json b/src/locales/de_DE/xit.json index 7d505bd8..53001e25 100644 --- a/src/locales/de_DE/xit.json +++ b/src/locales/de_DE/xit.json @@ -1,15 +1,15 @@ { "form": { - "origin": "Origin", - "target_days": "Target Days", - "buy_from_cx": "Buy From CX", - "buy_from_cx_warning": "Only warehouse origin allows purchasing.", - "fit_ship": "Fit Ship", - "hide_infinite": "Hide Infinite", + "origin": "Herkunft", + "target_days": "Ziel-Tage", + "buy_from_cx": "Von CX Kaufen", + "buy_from_cx_warning": "Nur Warenhäuser als Ursprung erlauben den direkten Einkauf.", + "fit_ship": "Auf Schiff anpassen", + "hide_infinite": "Unendliche ausblenden", "json": "JSON" }, "buttons": { - "copy_json": "Copy XIT JSON", + "copy_json": "XIT JSON kopieren", "copy": "@:common.buttons.copy" }, "table": { From 844323ac0f1b3caae3794f2cf21c23e1e1df7be6 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 01:57:30 +0200 Subject: [PATCH 235/237] New translations xit.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/xit.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/locales/zh_CN/xit.json b/src/locales/zh_CN/xit.json index 7d505bd8..0c4d8253 100644 --- a/src/locales/zh_CN/xit.json +++ b/src/locales/zh_CN/xit.json @@ -1,15 +1,15 @@ { "form": { - "origin": "Origin", - "target_days": "Target Days", - "buy_from_cx": "Buy From CX", - "buy_from_cx_warning": "Only warehouse origin allows purchasing.", - "fit_ship": "Fit Ship", - "hide_infinite": "Hide Infinite", + "origin": "来源地", + "target_days": "目标天数", + "buy_from_cx": "从 CX 购买", + "buy_from_cx_warning": "只有来源地为仓库时才能采购。", + "fit_ship": "适配飞船", + "hide_infinite": "隐藏无限项", "json": "JSON" }, "buttons": { - "copy_json": "Copy XIT JSON", + "copy_json": "复制 XIT JSON", "copy": "@:common.buttons.copy" }, "table": { From 5942dbaa914a4c670b8eb35523544b89e39bb152 Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 14:00:56 +0200 Subject: [PATCH 236/237] New translations cx_info_table.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/cx_info_table.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/locales/zh_CN/cx_info_table.json b/src/locales/zh_CN/cx_info_table.json index 0f488d12..423cae7b 100644 --- a/src/locales/zh_CN/cx_info_table.json +++ b/src/locales/zh_CN/cx_info_table.json @@ -1,15 +1,15 @@ { - "universe": "UNIVERSE", + "universe": "全宇宙", "vwap": "@:terms.vwap", - "traded_volume": "Traded Volume", - "market_live_data": "Market Live Data", - "supply_vs_demand": "S / D", - "insights": "Insights", - "market_breadth": "Market Breadth", - "liquidity_ratio": "Liquidity Ratio", - "demand_vs_supply": "Demand / Supply", - "weighted_trend": "Weighted Trend", - "volume_adjusted_delta": "Volume-Adjusted Delta", - "price_cohesion": "Price Cohesion", - "variance_index": "Variance Index" + "traded_volume": "成交量", + "market_live_data": "实时市场数据", + "supply_vs_demand": "供应/需求", + "insights": "市场洞察", + "market_breadth": "市场广度", + "liquidity_ratio": "流动性比率", + "demand_vs_supply": "需求 / 供应", + "weighted_trend": "加权趋势", + "volume_adjusted_delta": "成交量调整差值", + "price_cohesion": "价格一致性", + "variance_index": "方差指数" } From 54ac3ab068b4487f0b616c79316bf203ae865aaa Mon Sep 17 00:00:00 2001 From: Jan Date: Sat, 9 May 2026 14:00:58 +0200 Subject: [PATCH 237/237] New translations account.json (Chinese Simplified) [ci skip] --- src/locales/zh_CN/account.json | 86 +++++++++++++++++----------------- 1 file changed, 43 insertions(+), 43 deletions(-) diff --git a/src/locales/zh_CN/account.json b/src/locales/zh_CN/account.json index f6fdc2c0..5fd0cafa 100644 --- a/src/locales/zh_CN/account.json +++ b/src/locales/zh_CN/account.json @@ -1,80 +1,80 @@ { "components": { "login": { - "title": "Login", - "error": "Error logging in. Please check your username and password.", + "title": "登录", + "error": "登录时出错。请检查您的用户名和密码。", "buttons": { - "login": "Login" + "login": "登录" }, "form": { - "username": "Username", - "password": "Password" + "username": "用户名", + "password": "密码" }, - "tos": "By using PRUNplanner you agree to the {tos_link}.", - "tos_link": "Terms of Service", - "forgot": "Forgot your password? Request a {forgot_link}.", - "forgot_link": "Password Reset" + "tos": "使用 PRUNplanner 即表示您同意 {tos_link}。", + "tos_link": "服务条款", + "forgot": "忘记密码?申请 {forgot_link}。", + "forgot_link": "重置密码" }, "registration": { - "title": "Account Information", - "tos": "PRUNplanner is free to use. By creating an account, you acknowledge and agree to the {tos_link}.", - "tos_link": "Terms of Service", + "title": "账户信息", + "tos": "PRUNplanner 可免费使用。创建账户即表示您已阅读并同意 {tos_link}。", + "tos_link": "服务条款", "result": { - "ok_header": "Welcome, {username}!", - "ok_message": "Registration succesful. You can now login to PRUNplanner.", - "error": "Error during registration." + "ok_header": "欢迎, 。{username}!", + "ok_message": "注册成功,现在可以登录 PRUNplanner。", + "error": "注册出错。" }, "buttons": { - "register": "Create Account" + "register": "创建账户" }, "form": { - "username": "Username", - "username_info": "Must be at least 3 characters long. Can't contain spaces.", - "password": "Password", - "password_info": "Must be at least 8 characters long.", - "email": "Email", - "email_placeholder": "Not mandatory, but recommended.", - "email_info": "Not mandatory. Increases your account security.", - "security_question": "Security Question", - "question": "Enter the name of planet {planet}. To find it, open a new Prosperous Universe buffer with the command {command}. You'll see the planets name listed under 'Name' in the planet information", - "planet_name": "Name" + "username": "用户名", + "username_info": "至少 3 个字符,不能包含空格。", + "password": "密码", + "password_info": "至少 8 个字符。", + "email": "邮箱", + "email_placeholder": "可选,但建议填写。", + "email_info": "可选,可提升账户安全性。", + "security_question": "安全问题", + "question": "输入星球名称 {planet}。在 Prosperous Universe 中使用指令 {command} 打开新缓冲区查找,你将在星球信息中“名称”下看到该星球", + "planet_name": "名称" } }, "password_reset": { - "title": "Reset your Password", - "info": "Please enter the code sent to your email, along with your new password.", + "title": "重置密码", + "info": "请输入系统发送到邮箱的验证码及新密码。", "buttons": { - "send": "Reset Password" + "send": "发送重置密码" }, "form": { - "email": "Email", - "code": "Code", - "password": "Password", - "password_info": "Must be at least 8 characters long." + "email": "邮箱", + "code": "验证码", + "password": "密码", + "password_info": "至少 8 个字符。" } }, "request_password_reset": { - "title": "Password Reset Request", - "info": "Enter the verified email address linked to your PRUNplanner account. If we recognize it, we'll send you a code to reset your password.", + "title": "重置密码请求", + "info": "输入与你的 PRUNplanner 账户绑定的已验证邮箱。如果识别成功,我们将发送验证码以重置密码。", "form": { - "email_placeholder": "Email Address" + "email_placeholder": "邮箱地址" }, "buttons": { - "send": "Request Password Reset" + "send": "发送重置请求" } }, "verify_email": { - "title": "Email Verification", - "info": "Please enter the verification code you received via email. Maybe check your spam folder.", + "title": "邮箱验证", + "info": "请输入系统发送到邮箱的验证码。若未收到,请检查垃圾邮件文件夹。", "buttons": { - "send": "Verify Email Address" + "send": "发送验证邮件" }, "form": { - "code_placeholder": "Verification Code" + "code_placeholder": "验证码" }, "result": { - "ok": "Email address verified.", - "error": "Invalid code or already verified." + "ok": "邮箱验证成功。", + "error": "验证码无效或已验证。" } } }