From 4eb4bf99c3b90b9926f4bb45b7d62e9ddcb8c76e Mon Sep 17 00:00:00 2001 From: Jan Date: Wed, 6 May 2026 13:28:46 +0200 Subject: [PATCH 1/4] improve(i18n): wrapper localizations --- .../components/WrapperGameDataLoader.vue | 2 +- .../components/WrapperPlanningDataLoader.vue | 2 +- src/features/wrapper/useGameDataLoader.ts | 18 ++++++++++------ src/features/wrapper/usePlanningDataLoader.ts | 20 +++++++++++------- src/locales/en_US/terms.json | 4 ++++ src/locales/en_US/wrapper.json | 21 +++++++++++++++++++ 6 files changed, 51 insertions(+), 16 deletions(-) create mode 100644 src/locales/en_US/wrapper.json diff --git a/src/features/wrapper/components/WrapperGameDataLoader.vue b/src/features/wrapper/components/WrapperGameDataLoader.vue index aebb4b72..d37cbafe 100644 --- a/src/features/wrapper/components/WrapperGameDataLoader.vue +++ b/src/features/wrapper/components/WrapperGameDataLoader.vue @@ -36,7 +36,7 @@

- Loading Data... + {{ $t("wrapper.loading") }}

- Loading Data... + {{ $t("wrapper.loading") }}

= ref(false); const stepConfigs: GameDataStepConfigsType = [ { key: "material", - name: `Material Data`, + name: t("wrapper.gamedata.material_data"), enabled: () => !!props.loadMaterials, load: () => { return queryStore.execute("GetMaterials", undefined); @@ -40,7 +44,7 @@ export function useGameDataLoader( }, { key: "exchange", - name: `Exchange Data`, + name: t("wrapper.gamedata.exchange_data"), enabled: () => !!props.loadExchanges, load: () => { return queryStore.execute("GetExchanges", undefined); @@ -49,7 +53,7 @@ export function useGameDataLoader( }, { key: "building", - name: `Building Data`, + name: t("wrapper.gamedata.building_data"), enabled: () => !!props.loadBuildings, load: () => { return queryStore.execute("GetBuildings", undefined); @@ -58,7 +62,7 @@ export function useGameDataLoader( }, { key: "recipe", - name: `Recipe Data`, + name: t("wrapper.gamedata.recipe_data"), enabled: () => !!props.loadRecipes, load: () => { return queryStore.execute("GetRecipes", undefined); @@ -67,7 +71,7 @@ export function useGameDataLoader( }, { key: "planet", - name: `Planet '${props.loadPlanet}' Data`, + name: t("wrapper.gamedata.planet_data", { name: props.loadPlanet }), enabled: () => !!props.loadPlanet, load: () => { return queryStore.execute("GetPlanet", { @@ -78,7 +82,9 @@ export function useGameDataLoader( }, { key: "planetMultiple", - name: `Planet '${props.loadPlanetMultiple?.join(", ")}' Data`, + name: t("wrapper.gamedata.planet_multiple_data", { + names: props.loadPlanetMultiple?.join(", "), + }), enabled: () => !!props.loadPlanetMultiple, load: () => { return queryStore.execute("GetMultiplePlanets", { diff --git a/src/features/wrapper/usePlanningDataLoader.ts b/src/features/wrapper/usePlanningDataLoader.ts index 2b287a6f..690b59b9 100644 --- a/src/features/wrapper/usePlanningDataLoader.ts +++ b/src/features/wrapper/usePlanningDataLoader.ts @@ -1,5 +1,7 @@ import { computed, reactive, ref, Ref, watch, watchEffect } from "vue"; +import { useI18n } from "vue-i18n"; + // Stores & Repository import { useQueryRepository } from "@/lib/query_cache/queryRepository"; import { useQueryStore } from "@/lib/query_cache/queryStore"; @@ -38,6 +40,8 @@ export function usePlanningDataLoader( Loading both is not permitted as it doesn't make sense. */ + const { t } = useI18n(); + if ( props.sharedPlanUuid && (props.empireList || props.planUuid || props.planetNaturalId) @@ -92,7 +96,7 @@ export function usePlanningDataLoader( const stepConfigs: PlanningStepConfigsType = [ { key: "sharedPlan", - name: "Shared Plan Configuration", + name: t("wrapper.planning_data.shared_plan"), enabled: () => !!props.sharedPlanUuid, load: () => queryStore.execute("GetSharedPlan", { @@ -102,7 +106,7 @@ export function usePlanningDataLoader( }, { key: "empireList", - name: "Empires Configurations", + name: t("wrapper.planning_data.empires"), enabled: () => !!props.empireList, load: () => queryStore.execute("GetAllEmpires", undefined), onSuccess: (data: IPlanEmpireElement[]) => { @@ -118,7 +122,7 @@ export function usePlanningDataLoader( }, { key: "plan", - name: "Plan Configuration", + name: t("wrapper.planning_data.plan"), enabled: () => !!props.planUuid, load: () => queryStore.execute("GetPlan", { @@ -128,7 +132,7 @@ export function usePlanningDataLoader( }, { key: "planList", - name: "All Plan Configurations", + name: t("wrapper.planning_data.plans_all"), enabled: () => !!props.planList, load: () => queryStore.execute("GetAllPlans", undefined), onSuccess: (data: IPlan[]) => { @@ -142,7 +146,7 @@ export function usePlanningDataLoader( }, { key: "planet", - name: "Planet Data", + name: t("wrapper.planning_data.planet_data"), // If sharedPlanId, wait for sharedPlan; else if planetId, no depends; else never dependsOn: props.sharedPlanUuid ? "sharedPlan" : undefined, enabled: () => !!(props.sharedPlanUuid || props.planetNaturalId), @@ -166,7 +170,7 @@ export function usePlanningDataLoader( }, { key: "cx", - name: "CX Configurations", + name: t("wrapper.planning_data.cx"), enabled: () => !!props.loadCX, load: () => queryStore.execute("GetAllCX", undefined), onSuccess: (d: ICX[]) => { @@ -178,14 +182,14 @@ export function usePlanningDataLoader( }, { key: "sharedList", - name: "Shared Plan Configurations", + name: t("wrapper.planning_data.shared_list"), enabled: () => !!props.loadShared, load: () => queryStore.execute("GetAllShared", undefined), onSuccess: (data: IShared[]) => emits("data:shared", data), }, { key: "empirePlans", - name: "Empire Plans", + name: t("wrapper.planning_data.empire_plans"), enabled: () => !!props.empireUuid, load: () => queryStore.execute("GetEmpirePlans", { diff --git a/src/locales/en_US/terms.json b/src/locales/en_US/terms.json index f69c44b3..455ede2d 100644 --- a/src/locales/en_US/terms.json +++ b/src/locales/en_US/terms.json @@ -5,12 +5,14 @@ "cx": "CX | CXs", "cx_plural": "CXs", "planets": "Planet | Planets", + "planet_plural": "Planets", "faction": "Faction", "cogc": "COGC", "permits": "Permit | Permits", "permits_plural": "Permits", "profit": "Profit", "revenue": "Revenue", + "exchanges": "Exchange | Exchanges", "cost": "Cost", "profit_per_area": "Profit / Area", "hq": "HQ", @@ -21,6 +23,8 @@ "production": "Production", "consumption": "Consumption", "materials": "Material | Materials", + "buildings": "Building | Buildings", + "recipes": "Recipe | Recipes", "materials_plural": "Materials", "surface": "Surface", "gravity": "Gravity", diff --git a/src/locales/en_US/wrapper.json b/src/locales/en_US/wrapper.json new file mode 100644 index 00000000..b7917532 --- /dev/null +++ b/src/locales/en_US/wrapper.json @@ -0,0 +1,21 @@ +{ + "loading": "Loading Data...", + "gamedata": { + "material_data": "@:terms.materials Data", + "exchange_data": "@:terms.exchanges Data", + "building_data": "@:terms.buildings Data", + "recipe_data": "@:terms.recipes Data", + "planet_data": "@:terms.planets '{name}' Data", + "planet_multiple_data": "@:terms.planet_plural '{names}' Data" + }, + "planning_data": { + "shared_plan": "Shared @:terms.plan Configuration", + "empires": "@:terms.empire Configuration", + "plan": "@:terms.plan Configuration", + "plans_all": "All @:terms.plans_plural Configuration", + "planet_data": "@:terms.planets '{name}' Data", + "cx": "@:terms.cx '{name}' Configuration", + "shared_list": "Shared @:terms.plans_plural Configurations", + "empire_plans": "@:terms.empire @:terms.plans_plural Configurations" + } +} From 317fe62cba8d1b2babdc9f77ff99d16ef63d8404 Mon Sep 17 00:00:00 2001 From: Jan Date: Wed, 6 May 2026 13:57:35 +0200 Subject: [PATCH 2/4] improve(i18n): cx overlay table --- .../cx/components/MaterialCXOverviewTable.vue | 50 ++++---- src/locales/en_US/cx_info_table.json | 15 +++ src/locales/en_US/market_exploration.json | 41 ++++++ src/locales/en_US/terms.json | 12 +- src/views/tools/MarketExplorationView.vue | 118 +++++++++++++----- 5 files changed, 185 insertions(+), 51 deletions(-) create mode 100644 src/locales/en_US/cx_info_table.json create mode 100644 src/locales/en_US/market_exploration.json diff --git a/src/features/cx/components/MaterialCXOverviewTable.vue b/src/features/cx/components/MaterialCXOverviewTable.vue index 4ddf4031..1cf4da0f 100644 --- a/src/features/cx/components/MaterialCXOverviewTable.vue +++ b/src/features/cx/components/MaterialCXOverviewTable.vue @@ -72,17 +72,17 @@ CI1 IC1 NC1 - UNIVERSE + {{ $t("cx_info_table.universe") }} - VWAP + {{ $t("cx_info_table.vwap") }} - 7D + {{ $t("terms.7d") }} - 30D + {{ $t("terms.30d") }} - Trend + {{ $t("terms.trend") }} - Traded Volume + {{ $t("cx_info_table.traded_volume") }} - 7D + {{ $t("terms.7d") }} - 30D + {{ $t("terms.30d") }} - Market Live Data + + {{ $t("cx_info_table.market_live_data") }} + - Ask + {{ $t("terms.ask") }} - Bid + {{ $t("terms.bid") }} - Spread + {{ $t("terms.spread") }} - S / D + {{ $t("cx_info_table.supply_vs_demand") }} - Delta + {{ $t("terms.delta") }} - Insights + {{ $t("cx_info_table.insights") }} @@ -255,7 +257,7 @@
- Market Breadth + {{ $t("cx_info_table.market_breadth") }} {{ @@ -279,7 +281,7 @@
- Liquidity Ratio + {{ $t("cx_info_table.liquidity_ratio") }} - Demand / Supply + {{ $t("cx_info_table.demand_vs_supply") }}
- Weighted Trend + {{ $t("cx_info_table.weighted_trend") }} - Volume-Adjusted Delta + {{ + $t( + "cx_info_table.volume_adjusted_delta" + ) + }}
- Price Cohesion + {{ $t("cx_info_table.price_cohesion") }} - Variance Index + {{ $t("cx_info_table.variance_index") }}
diff --git a/src/locales/en_US/cx_info_table.json b/src/locales/en_US/cx_info_table.json new file mode 100644 index 00000000..0f488d12 --- /dev/null +++ b/src/locales/en_US/cx_info_table.json @@ -0,0 +1,15 @@ +{ + "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" +} diff --git a/src/locales/en_US/market_exploration.json b/src/locales/en_US/market_exploration.json new file mode 100644 index 00000000..5428c412 --- /dev/null +++ b/src/locales/en_US/market_exploration.json @@ -0,0 +1,41 @@ +{ + "view_title": "Market Exploration", + "title": "Market Exploration", + "switch_material": "Switch Material", + "kpis": { + "universe_vwap_7d": "Universe VWAP @:terms.7d", + "universe_traded_7d": "Universe Traded Volume @:terms.7d", + "universe_market_delta": "Universe Market 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" + }, + "chart": { + "title": "Market Chart", + "intervals": { + "daily": "Daily", + "weekly": "Weekly", + "monthly": "Monthly" + } + }, + "market_data": { + "title": "Market Data" + }, + "overview": { + "title": "Material Market Overview", + "table": { + "material": "@:terms.materials", + "vwap_7d": "@:terms.vwap @:terms.7d", + "vwap_30d": "@:terms.vwap @:terms.30d", + "trend": "Trend", + "volume_7d": "@:terms.volume @:terms.7d", + "volume_30d": "@:terms.volume @:terms.30d", + "details": "Details" + } + } +} diff --git a/src/locales/en_US/terms.json b/src/locales/en_US/terms.json index 455ede2d..23851bb8 100644 --- a/src/locales/en_US/terms.json +++ b/src/locales/en_US/terms.json @@ -37,5 +37,15 @@ "fertility": "Fertility", "popr": "POPR", "fio": "FIO", - "api_key": "API Key" + "api_key": "API Key", + "supply": "Supply", + "demand": "Demand", + "vwap": "VWAP", + "volume": "Volume", + "7d": "7D", + "30d": "30D", + "trend": "Trend", + "ask": "Ask", + "bid": "Bid", + "spread": "Spread" } diff --git a/src/views/tools/MarketExplorationView.vue b/src/views/tools/MarketExplorationView.vue index bb7ff2e8..1b0f1120 100644 --- a/src/views/tools/MarketExplorationView.vue +++ b/src/views/tools/MarketExplorationView.vue @@ -1,9 +1,13 @@