From 56991b704f4de8ba7f8c3bbe5b598c370c059a06 Mon Sep 17 00:00:00 2001
From: dutlist <166175391+AMelonInsideLemon@users.noreply.github.com>
Date: Wed, 26 Jun 2024 06:41:53 +0200
Subject: [PATCH 1/5] language change for items
---
.../custom/getItemListsController.ts | 19 +++--
src/services/itemDataService.ts | 82 ++++++++++++++++++-
static/webui/index.html | 16 ++--
static/webui/script.js | 65 ++++++++++++++-
4 files changed, 165 insertions(+), 17 deletions(-)
diff --git a/src/controllers/custom/getItemListsController.ts b/src/controllers/custom/getItemListsController.ts
index 962b8857..ed90e495 100644
--- a/src/controllers/custom/getItemListsController.ts
+++ b/src/controllers/custom/getItemListsController.ts
@@ -1,5 +1,5 @@
import { RequestHandler } from "express";
-import { getEnglishString } from "@/src/services/itemDataService";
+import { getString } from "@/src/services/itemDataService";
import {
ExportArcanes,
ExportGear,
@@ -16,20 +16,21 @@ interface ListedItem {
fusionLimit?: number;
}
-const getItemListsController: RequestHandler = (_req, res) => {
+const getItemListsController: RequestHandler = (req, res) => {
const weapons = [];
const miscitems = [];
+ const lang = req.query.lang?.toString()
for (const [uniqueName, item] of Object.entries(ExportWeapons)) {
if (item.productCategory !== "OperatorAmps") {
if (item.totalDamage !== 0) {
weapons.push({
uniqueName,
- name: getEnglishString(item.name)
+ name: getString(item.name, lang)
});
} else if (!item.excludeFromCodex) {
miscitems.push({
uniqueName: "MiscItems:" + uniqueName,
- name: getEnglishString(item.name)
+ name: getString(item.name, lang)
});
}
}
@@ -37,13 +38,13 @@ const getItemListsController: RequestHandler = (_req, res) => {
for (const [uniqueName, item] of Object.entries(ExportResources)) {
miscitems.push({
uniqueName: "MiscItems:" + uniqueName,
- name: getEnglishString(item.name)
+ name: getString(item.name, lang)
});
}
for (const [uniqueName, item] of Object.entries(ExportGear)) {
miscitems.push({
uniqueName: "Consumables:" + uniqueName,
- name: getEnglishString(item.name)
+ name: getString(item.name, lang)
});
}
@@ -52,7 +53,7 @@ const getItemListsController: RequestHandler = (_req, res) => {
for (const [uniqueName, upgrade] of Object.entries(ExportUpgrades)) {
mods.push({
uniqueName,
- name: getEnglishString(upgrade.name),
+ name: getString(upgrade.name, lang),
fusionLimit: upgrade.fusionLimit
});
if (upgrade.isStarter || upgrade.isFrivolous || upgrade.upgradeEntries) {
@@ -62,7 +63,7 @@ const getItemListsController: RequestHandler = (_req, res) => {
for (const [uniqueName, arcane] of Object.entries(ExportArcanes)) {
mods.push({
uniqueName,
- name: getEnglishString(arcane.name)
+ name: getString(arcane.name, lang)
});
}
@@ -72,7 +73,7 @@ const getItemListsController: RequestHandler = (_req, res) => {
.map(([uniqueName, warframe]) => {
return {
uniqueName,
- name: getEnglishString(warframe.name)
+ name: getString(warframe.name, lang)
};
}),
weapons,
diff --git a/src/services/itemDataService.ts b/src/services/itemDataService.ts
index 3bf039dd..1a30400d 100644
--- a/src/services/itemDataService.ts
+++ b/src/services/itemDataService.ts
@@ -1,7 +1,21 @@
import { getIndexAfter } from "@/src/helpers/stringHelpers";
import { logger } from "@/src/utils/logger";
import {
+ dict_de,
dict_en,
+ dict_es,
+ dict_fr,
+ dict_it,
+ dict_ja,
+ dict_ko,
+ dict_pl,
+ dict_pt,
+ dict_ru,
+ dict_tc,
+ dict_th,
+ dict_tr,
+ dict_uk,
+ dict_zh,
ExportRecipes,
ExportWarframes,
ExportWeapons,
@@ -75,6 +89,70 @@ export const getSuitByUniqueName = (uniqueName: string): IPowersuit | undefined
return ExportWarframes[uniqueName];
};
-export const getEnglishString = (key: string): string => {
- return dict_en[key] ?? key;
+export const getString = (key: string, lang: string | undefined): string => {
+ let dict;
+ switch (lang) {
+ case "de":
+ dict = dict_de
+ break;
+
+ case "es":
+ dict = dict_es
+ break;
+
+ case "fr":
+ dict = dict_fr
+ break;
+
+ case "it":
+ dict = dict_it
+ break;
+
+ case "ja":
+ dict = dict_ja
+ break;
+
+ case "ko":
+ dict = dict_ko
+ break;
+
+ case "pl":
+ dict = dict_pl
+ break;
+
+ case "pt":
+ dict = dict_pt
+ break;
+
+ case "ru":
+ dict = dict_ru
+ break;
+
+ case "tc":
+ dict = dict_tc
+ break;
+
+ case "th":
+ dict = dict_th
+ break;
+
+ case "tr":
+ dict = dict_tr
+ break;
+
+ case "uk":
+ dict = dict_uk
+ break;
+
+ case "zh":
+ dict = dict_zh
+ break;
+
+ case "en":
+ default:
+ dict = dict_en
+ break;
+ }
+
+ return dict[key] ?? key;
};
diff --git a/static/webui/index.html b/static/webui/index.html
index 533b2f20..59ec3bab 100644
--- a/static/webui/index.html
+++ b/static/webui/index.html
@@ -13,11 +13,17 @@
OpenWF WebUI
-
diff --git a/static/webui/script.js b/static/webui/script.js
index db5b831c..5ba3d5d1 100644
--- a/static/webui/script.js
+++ b/static/webui/script.js
@@ -85,7 +85,7 @@ single.on("route_load", function (event) {
});
window.itemListPromise = new Promise(resolve => {
- const req = $.get("/custom/getItemLists");
+ const req = $.get(`/custom/getItemLists?lang=${localStorage.getItem("lang")}`);
req.done(data => {
window.archonCrystalUpgrades = data.archonCrystalUpgrades;
@@ -926,3 +926,66 @@ function doPopArchonCrystalUpgrade(type) {
});
});
}
+
+function handleLangClick(lang) {
+ const languages = {
+ "de": "German",
+ "en": "English",
+ "es": "Spanish",
+ "fr": "French",
+ "it": "Italian",
+ "ja": "Japanese",
+ "ko": "Korean",
+ "pl": "Polish",
+ "pt": "Portuguese",
+ "ru": "Russian",
+ "tc": "Traditional Chinese",
+ "th": "Thai",
+ "tr": "Turkish",
+ "uk": "Ukrainian",
+ "zh": "Simplified Chinese"
+ };
+ const selectedLangText = languages[lang] || "English";
+
+ $(".currentLanguage").text(selectedLangText);
+
+ localStorage.setItem("lang", lang);
+ window.location.reload();
+}
+
+document.addEventListener('DOMContentLoaded', () => {
+ const languages = {
+ "de": "German",
+ "en": "English",
+ "es": "Spanish",
+ "fr": "French",
+ "it": "Italian",
+ "ja": "Japanese",
+ "ko": "Korean",
+ "pl": "Polish",
+ "pt": "Portuguese",
+ "ru": "Russian",
+ "tc": "Traditional Chinese",
+ "th": "Thai",
+ "tr": "Turkish",
+ "uk": "Ukrainian",
+ "zh": "Simplified Chinese"
+ };
+ const languageMenu = document.getElementById('languageMenu');
+
+ Object.keys(languages).forEach(lang => {
+ const listItem = document.createElement('li');
+ const linkItem = document.createElement('a');
+ linkItem.className = 'dropdown-item';
+ linkItem.href = '#';
+ linkItem.dataset.lang = lang;
+ linkItem.textContent = languages[lang];
+ linkItem.onclick = () => handleLangClick(lang);
+ listItem.appendChild(linkItem);
+ languageMenu.appendChild(listItem);
+ });
+
+ const savedLang = localStorage.getItem("lang") || "en";
+ const savedLangText = languages[savedLang];
+ $(".currentLanguage").text(savedLangText);
+});
--
2.47.2
From 955b39bf9e5f2680e5c79cf2f6524e8dd9eed192 Mon Sep 17 00:00:00 2001
From: AMelonInsideLemon
Date: Wed, 26 Jun 2024 04:46:32 +0000
Subject: [PATCH 2/5] Apply prettier changes
---
.../custom/getItemListsController.ts | 2 +-
src/services/itemDataService.ts | 62 ++++++++--------
static/webui/script.js | 72 +++++++++----------
3 files changed, 68 insertions(+), 68 deletions(-)
diff --git a/src/controllers/custom/getItemListsController.ts b/src/controllers/custom/getItemListsController.ts
index ed90e495..3fc6730b 100644
--- a/src/controllers/custom/getItemListsController.ts
+++ b/src/controllers/custom/getItemListsController.ts
@@ -19,7 +19,7 @@ interface ListedItem {
const getItemListsController: RequestHandler = (req, res) => {
const weapons = [];
const miscitems = [];
- const lang = req.query.lang?.toString()
+ const lang = req.query.lang?.toString();
for (const [uniqueName, item] of Object.entries(ExportWeapons)) {
if (item.productCategory !== "OperatorAmps") {
if (item.totalDamage !== 0) {
diff --git a/src/services/itemDataService.ts b/src/services/itemDataService.ts
index 1a30400d..730e0907 100644
--- a/src/services/itemDataService.ts
+++ b/src/services/itemDataService.ts
@@ -93,64 +93,64 @@ export const getString = (key: string, lang: string | undefined): string => {
let dict;
switch (lang) {
case "de":
- dict = dict_de
- break;
+ dict = dict_de;
+ break;
case "es":
- dict = dict_es
- break;
+ dict = dict_es;
+ break;
case "fr":
- dict = dict_fr
- break;
-
+ dict = dict_fr;
+ break;
+
case "it":
- dict = dict_it
- break;
+ dict = dict_it;
+ break;
case "ja":
- dict = dict_ja
- break;
+ dict = dict_ja;
+ break;
case "ko":
- dict = dict_ko
- break;
+ dict = dict_ko;
+ break;
case "pl":
- dict = dict_pl
- break;
+ dict = dict_pl;
+ break;
case "pt":
- dict = dict_pt
- break;
+ dict = dict_pt;
+ break;
case "ru":
- dict = dict_ru
- break;
+ dict = dict_ru;
+ break;
case "tc":
- dict = dict_tc
- break;
+ dict = dict_tc;
+ break;
case "th":
- dict = dict_th
- break;
+ dict = dict_th;
+ break;
case "tr":
- dict = dict_tr
- break;
+ dict = dict_tr;
+ break;
case "uk":
- dict = dict_uk
- break;
+ dict = dict_uk;
+ break;
case "zh":
- dict = dict_zh
- break;
-
+ dict = dict_zh;
+ break;
+
case "en":
default:
- dict = dict_en
+ dict = dict_en;
break;
}
diff --git a/static/webui/script.js b/static/webui/script.js
index 5ba3d5d1..99759335 100644
--- a/static/webui/script.js
+++ b/static/webui/script.js
@@ -929,21 +929,21 @@ function doPopArchonCrystalUpgrade(type) {
function handleLangClick(lang) {
const languages = {
- "de": "German",
- "en": "English",
- "es": "Spanish",
- "fr": "French",
- "it": "Italian",
- "ja": "Japanese",
- "ko": "Korean",
- "pl": "Polish",
- "pt": "Portuguese",
- "ru": "Russian",
- "tc": "Traditional Chinese",
- "th": "Thai",
- "tr": "Turkish",
- "uk": "Ukrainian",
- "zh": "Simplified Chinese"
+ de: "German",
+ en: "English",
+ es: "Spanish",
+ fr: "French",
+ it: "Italian",
+ ja: "Japanese",
+ ko: "Korean",
+ pl: "Polish",
+ pt: "Portuguese",
+ ru: "Russian",
+ tc: "Traditional Chinese",
+ th: "Thai",
+ tr: "Turkish",
+ uk: "Ukrainian",
+ zh: "Simplified Chinese"
};
const selectedLangText = languages[lang] || "English";
@@ -953,31 +953,31 @@ function handleLangClick(lang) {
window.location.reload();
}
-document.addEventListener('DOMContentLoaded', () => {
+document.addEventListener("DOMContentLoaded", () => {
const languages = {
- "de": "German",
- "en": "English",
- "es": "Spanish",
- "fr": "French",
- "it": "Italian",
- "ja": "Japanese",
- "ko": "Korean",
- "pl": "Polish",
- "pt": "Portuguese",
- "ru": "Russian",
- "tc": "Traditional Chinese",
- "th": "Thai",
- "tr": "Turkish",
- "uk": "Ukrainian",
- "zh": "Simplified Chinese"
+ de: "German",
+ en: "English",
+ es: "Spanish",
+ fr: "French",
+ it: "Italian",
+ ja: "Japanese",
+ ko: "Korean",
+ pl: "Polish",
+ pt: "Portuguese",
+ ru: "Russian",
+ tc: "Traditional Chinese",
+ th: "Thai",
+ tr: "Turkish",
+ uk: "Ukrainian",
+ zh: "Simplified Chinese"
};
- const languageMenu = document.getElementById('languageMenu');
+ const languageMenu = document.getElementById("languageMenu");
Object.keys(languages).forEach(lang => {
- const listItem = document.createElement('li');
- const linkItem = document.createElement('a');
- linkItem.className = 'dropdown-item';
- linkItem.href = '#';
+ const listItem = document.createElement("li");
+ const linkItem = document.createElement("a");
+ linkItem.className = "dropdown-item";
+ linkItem.href = "#";
linkItem.dataset.lang = lang;
linkItem.textContent = languages[lang];
linkItem.onclick = () => handleLangClick(lang);
--
2.47.2
From 50ae9463da386a6c3c218dd1ffb37308de8ede98 Mon Sep 17 00:00:00 2001
From: dutlist <166175391+AMelonInsideLemon@users.noreply.github.com>
Date: Wed, 26 Jun 2024 07:51:32 +0200
Subject: [PATCH 3/5] find dict once
---
.../custom/getItemListsController.ts | 18 +--
src/services/itemDataService.ts | 116 ++++++++----------
2 files changed, 60 insertions(+), 74 deletions(-)
diff --git a/src/controllers/custom/getItemListsController.ts b/src/controllers/custom/getItemListsController.ts
index 3fc6730b..0282ba6e 100644
--- a/src/controllers/custom/getItemListsController.ts
+++ b/src/controllers/custom/getItemListsController.ts
@@ -1,5 +1,5 @@
import { RequestHandler } from "express";
-import { getString } from "@/src/services/itemDataService";
+import { getDict, getString } from "@/src/services/itemDataService";
import {
ExportArcanes,
ExportGear,
@@ -19,18 +19,18 @@ interface ListedItem {
const getItemListsController: RequestHandler = (req, res) => {
const weapons = [];
const miscitems = [];
- const lang = req.query.lang?.toString();
+ const dict = getDict(req.query.dict?.toString());
for (const [uniqueName, item] of Object.entries(ExportWeapons)) {
if (item.productCategory !== "OperatorAmps") {
if (item.totalDamage !== 0) {
weapons.push({
uniqueName,
- name: getString(item.name, lang)
+ name: getString(item.name, dict)
});
} else if (!item.excludeFromCodex) {
miscitems.push({
uniqueName: "MiscItems:" + uniqueName,
- name: getString(item.name, lang)
+ name: getString(item.name, dict)
});
}
}
@@ -38,13 +38,13 @@ const getItemListsController: RequestHandler = (req, res) => {
for (const [uniqueName, item] of Object.entries(ExportResources)) {
miscitems.push({
uniqueName: "MiscItems:" + uniqueName,
- name: getString(item.name, lang)
+ name: getString(item.name, dict)
});
}
for (const [uniqueName, item] of Object.entries(ExportGear)) {
miscitems.push({
uniqueName: "Consumables:" + uniqueName,
- name: getString(item.name, lang)
+ name: getString(item.name, dict)
});
}
@@ -53,7 +53,7 @@ const getItemListsController: RequestHandler = (req, res) => {
for (const [uniqueName, upgrade] of Object.entries(ExportUpgrades)) {
mods.push({
uniqueName,
- name: getString(upgrade.name, lang),
+ name: getString(upgrade.name, dict),
fusionLimit: upgrade.fusionLimit
});
if (upgrade.isStarter || upgrade.isFrivolous || upgrade.upgradeEntries) {
@@ -63,7 +63,7 @@ const getItemListsController: RequestHandler = (req, res) => {
for (const [uniqueName, arcane] of Object.entries(ExportArcanes)) {
mods.push({
uniqueName,
- name: getString(arcane.name, lang)
+ name: getString(arcane.name, dict)
});
}
@@ -73,7 +73,7 @@ const getItemListsController: RequestHandler = (req, res) => {
.map(([uniqueName, warframe]) => {
return {
uniqueName,
- name: getString(warframe.name, lang)
+ name: getString(warframe.name, dict)
};
}),
weapons,
diff --git a/src/services/itemDataService.ts b/src/services/itemDataService.ts
index 730e0907..623d8476 100644
--- a/src/services/itemDataService.ts
+++ b/src/services/itemDataService.ts
@@ -89,70 +89,56 @@ export const getSuitByUniqueName = (uniqueName: string): IPowersuit | undefined
return ExportWarframes[uniqueName];
};
-export const getString = (key: string, lang: string | undefined): string => {
- let dict;
- switch (lang) {
- case "de":
- dict = dict_de;
- break;
-
- case "es":
- dict = dict_es;
- break;
-
- case "fr":
- dict = dict_fr;
- break;
-
- case "it":
- dict = dict_it;
- break;
-
- case "ja":
- dict = dict_ja;
- break;
-
- case "ko":
- dict = dict_ko;
- break;
-
- case "pl":
- dict = dict_pl;
- break;
-
- case "pt":
- dict = dict_pt;
- break;
-
- case "ru":
- dict = dict_ru;
- break;
-
- case "tc":
- dict = dict_tc;
- break;
-
- case "th":
- dict = dict_th;
- break;
-
- case "tr":
- dict = dict_tr;
- break;
-
- case "uk":
- dict = dict_uk;
- break;
-
- case "zh":
- dict = dict_zh;
- break;
-
- case "en":
- default:
- dict = dict_en;
- break;
- }
-
+export const getString = (key: string, dict: Record): string => {
return dict[key] ?? key;
};
+
+export const getDict = (lang: string | undefined) =>{
+ switch (lang) {
+ case "de":
+ return dict_de;
+
+ case "es":
+ return dict_es;
+
+ case "fr":
+ return dict_fr;
+
+ case "it":
+ return dict_it;
+
+ case "ja":
+ return dict_ja;
+
+ case "ko":
+ return dict_ko;
+
+ case "pl":
+ return dict_pl;
+
+ case "pt":
+ return dict_pt;
+
+ case "ru":
+ return dict_ru;
+
+ case "tc":
+ return dict_tc;
+
+ case "th":
+ return dict_th;
+
+ case "tr":
+ return dict_tr;
+
+ case "uk":
+ return dict_uk;
+
+ case "zh":
+ return dict_zh;
+
+ case "en":
+ default:
+ return dict_en;
+ }
+}
--
2.47.2
From 995ffc23cce4a252f5ed3e5efc92b7b1b71d8752 Mon Sep 17 00:00:00 2001
From: AMelonInsideLemon
Date: Wed, 26 Jun 2024 05:51:59 +0000
Subject: [PATCH 4/5] Apply prettier changes
---
src/services/itemDataService.ts | 32 ++++++++++++++++----------------
1 file changed, 16 insertions(+), 16 deletions(-)
diff --git a/src/services/itemDataService.ts b/src/services/itemDataService.ts
index 623d8476..e5be76dd 100644
--- a/src/services/itemDataService.ts
+++ b/src/services/itemDataService.ts
@@ -93,52 +93,52 @@ export const getString = (key: string, dict: Record): string =>
return dict[key] ?? key;
};
-export const getDict = (lang: string | undefined) =>{
+export const getDict = (lang: string | undefined) => {
switch (lang) {
case "de":
return dict_de;
case "es":
return dict_es;
-
+
case "fr":
return dict_fr;
-
+
case "it":
return dict_it;
-
+
case "ja":
return dict_ja;
-
+
case "ko":
return dict_ko;
-
+
case "pl":
return dict_pl;
-
+
case "pt":
return dict_pt;
-
+
case "ru":
- return dict_ru;
+ return dict_ru;
case "tc":
return dict_tc;
-
+
case "th":
return dict_th;
-
+
case "tr":
return dict_tr;
-
+
case "uk":
return dict_uk;
-
+
case "zh":
return dict_zh;
-
+
case "en":
default:
- return dict_en;
+ return dict_en;
}
-}
+};
--
2.47.2
From 374cc9824830f411676e38567de746a6c1f6ccce Mon Sep 17 00:00:00 2001
From: AMelonInsideLemon <166175391+AMelonInsideLemon@users.noreply.github.com>
Date: Wed, 26 Jun 2024 09:19:44 +0200
Subject: [PATCH 5/5] Update src/controllers/custom/getItemListsController.ts
Co-authored-by: Master
---
src/controllers/custom/getItemListsController.ts | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/controllers/custom/getItemListsController.ts b/src/controllers/custom/getItemListsController.ts
index 0282ba6e..e6284f8d 100644
--- a/src/controllers/custom/getItemListsController.ts
+++ b/src/controllers/custom/getItemListsController.ts
@@ -19,7 +19,7 @@ interface ListedItem {
const getItemListsController: RequestHandler = (req, res) => {
const weapons = [];
const miscitems = [];
- const dict = getDict(req.query.dict?.toString());
+ const dict = getDict(req.query.lang?.toString());
for (const [uniqueName, item] of Object.entries(ExportWeapons)) {
if (item.productCategory !== "OperatorAmps") {
if (item.totalDamage !== 0) {
--
2.47.2