Skip to content

Commit 1bd2025

Browse files
committed
fix: correctly map resolved languages to Flyff short codes
1 parent 34a2d1b commit 1bd2025

9 files changed

Lines changed: 40 additions & 13 deletions

File tree

src/components/calculations/calculations.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ function Calculations() {
135135

136136
var shortCode = "en";
137137
if (i18n.resolvedLanguage) {
138-
shortCode = i18n.resolvedLanguage.split('-')[0];
138+
shortCode = Utils.getFlyffLanguageShortCodeFromLanguage(i18n);
139139
}
140140

141141
function setTarget(index) {

src/components/calculations/charts/barchart.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { Bar } from "react-chartjs-2";
22
import { useTranslation } from "react-i18next";
3+
import { getFlyffLanguageShortCodeFromLanguage } from '../../../flyff/flyffutils'
34

45
import HoverInfo from "../../shared/hoverinfo";
56

@@ -8,7 +9,7 @@ function BarChart({ chartData, title, info, label, sourceLink, percentage, highl
89

910
var shortCode = "en";
1011
if (i18n.resolvedLanguage) {
11-
shortCode = i18n.resolvedLanguage.split('-')[0];
12+
shortCode = getFlyffLanguageShortCodeFromLanguage(i18n);
1213
}
1314

1415
function getMinValue(ctx) {

src/components/calculations/charts/linechart.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ function LineChart({ chartData, title, info, label, sourceLink, skillId = 0 }) {
99

1010
var shortCode = "en";
1111
if (i18n.resolvedLanguage) {
12-
shortCode = i18n.resolvedLanguage.split('-')[0];
12+
shortCode = Utils.getFlyffLanguageShortCodeFromLanguage(i18n);
1313
}
1414

1515
const skillProp = skillId > 0 ? Utils.getSkillById(skillId) : null;

src/components/equipment/itemedit/itemedit.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ function ItemEdit({ itemElem }) {
1616
const { i18n } = useTranslation();
1717
var shortCode = "en";
1818
if (i18n.resolvedLanguage) {
19-
shortCode = i18n.resolvedLanguage.split('-')[0];
19+
shortCode = Utils.getFlyffLanguageShortCodeFromLanguage(i18n);
2020
}
2121

2222
if (itemElem == null) {

src/components/equipment/itemedit/petwindow.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ function PetWindow({ raisedPetDefinition, petLevels, editable = false, onEditLev
1818
const { i18n } = useTranslation();
1919
var shortLanguageCode = "en";
2020
if (i18n.resolvedLanguage) {
21-
shortLanguageCode = i18n.resolvedLanguage.split('-')[0];
21+
shortLanguageCode = Utils.getFlyffLanguageShortCodeFromLanguage(i18n);
2222
}
2323

2424
function toggleTooltip(enabled) {

src/components/shared/search.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ function Search() {
2020

2121
var shortCode = "en";
2222
if (i18n.resolvedLanguage) {
23-
shortCode = i18n.resolvedLanguage.split('-')[0];
23+
shortCode = Utils.getFlyffLanguageShortCodeFromLanguage(i18n);
2424
}
2525

2626
if (!isSearchOpen) {

src/components/skillsandbuffs/skilltreeicon.jsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { useRef } from 'react';
22
import { useTooltip } from '../../tooltipcontext';
33
import { createTooltip } from '../../flyff/flyfftooltip';
4+
import { getFlyffLanguageShortCodeFromLanguage } from '../../flyff/flyffutils';
45
import { useTranslation } from "react-i18next";
56

67
function SkillTreeIcon({ skill, disabled, level, clickHandle, rightClickHandle }) {
@@ -9,7 +10,7 @@ function SkillTreeIcon({ skill, disabled, level, clickHandle, rightClickHandle }
910
const { i18n } = useTranslation();
1011
var shortCode = "en";
1112
if(i18n.resolvedLanguage) {
12-
shortCode = i18n.resolvedLanguage.split('-')[0];
13+
shortCode = getFlyffLanguageShortCodeFromLanguage(i18n);
1314
}
1415

1516
const levelText = level == skill.levels.length ? "MAX" : level;

src/flyff/flyfftooltip.jsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ function setupItem(itemElem, i18n) {
3333
const itemProp = itemElem.itemProp;
3434
var shortLanguageCode = "en";
3535
if (i18n.resolvedLanguage) {
36-
shortLanguageCode = i18n.resolvedLanguage.split('-')[0];
36+
shortLanguageCode = Utils.getFlyffLanguageShortCodeFromLanguage(i18n);
3737
}
3838

3939
const isUltimate = itemProp.rarity == "ultimate";
@@ -488,7 +488,7 @@ function setupSkill(skill, i18n) {
488488
const out = [];
489489
var shortLanguageCode = "en";
490490
if (i18n.resolvedLanguage) {
491-
shortLanguageCode = i18n.resolvedLanguage.split('-')[0];
491+
shortLanguageCode = Utils.getFlyffLanguageShortCodeFromLanguage(i18n);
492492
}
493493

494494
const skillLevel = Context.player.skillLevels[skill.id] ?? skill.levels.length;
@@ -706,7 +706,7 @@ function setupPartySkill(partySkill, i18n) {
706706
const out = []
707707
var shortLanguageCode = 'en'
708708
if (i18n.resolvedLanguage) {
709-
shortLanguageCode = i18n.resolvedLanguage.split('-')[0]
709+
shortLanguageCode = Utils.getFlyffLanguageShortCodeFromLanguage(i18n);
710710
}
711711

712712
out.push(<span style={{ color: "#2fbe6d", fontWeight: 600 }}>{partySkill.name[shortLanguageCode] ?? partySkill.name.en}</span>);
@@ -724,7 +724,7 @@ function setupHousingNpc(housingNpc, i18n) {
724724
const out = [];
725725
var shortLanguageCode = "en";
726726
if (i18n.resolvedLanguage) {
727-
shortLanguageCode = i18n.resolvedLanguage.split('-')[0];
727+
shortLanguageCode = Utils.getFlyffLanguageShortCodeFromLanguage(i18n);
728728
}
729729

730730
out.push(<span style={{ color: "#2fbe6d", fontWeight: 600 }}>{housingNpc.name[shortLanguageCode] ?? housingNpc.name.en}</span>);

src/flyff/flyffutils.js

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,13 @@ export const ATTACK_FLAGS = {
9090
REGION: 1 << 15 // AoE skill.
9191
};
9292

93+
export const LANGUAGE_CODE_MAP = {
94+
"zh-tw": "tw",
95+
"zh-cn": "cns",
96+
"zh": "cns",
97+
"pt-br": "br",
98+
};
99+
93100
export function getClassById(id) {
94101
return classes[id];
95102
}
@@ -123,7 +130,7 @@ export function getStatNameByIdOrDefault(id, i18n) {
123130

124131
var shortLanguageCode = "en";
125132
if (i18n.resolvedLanguage) {
126-
shortLanguageCode = i18n.resolvedLanguage.split('-')[0];
133+
shortLanguageCode = getFlyffLanguageShortCodeFromLanguage(i18n);
127134
}
128135

129136
return stat[shortLanguageCode] ?? stat.en;
@@ -412,7 +419,7 @@ export function getStatAwakeTitle(itemElem, i18n) {
412419

413420
var shortLanguageCode = "en";
414421
if (i18n.resolvedLanguage) {
415-
shortLanguageCode = i18n.resolvedLanguage.split('-')[0];
422+
shortLanguageCode = getFlyffLanguageShortCodeFromLanguage(i18n);
416423
}
417424

418425

@@ -467,3 +474,21 @@ export function getGuid() {
467474
(c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16)
468475
);
469476
}
477+
478+
/**
479+
* Get the Flyff language short code based on the resolved i18n language.
480+
*
481+
* @param {object} i18n Localization
482+
* @returns {string} The mapped Flyff language short code, or the base language, or "en" as fallback.
483+
*/
484+
export function getFlyffLanguageShortCodeFromLanguage(i18n) {
485+
const lang = i18n.resolvedLanguage.toLowerCase();
486+
487+
// Return mapped code if available
488+
if (LANGUAGE_CODE_MAP[lang]) {
489+
return LANGUAGE_CODE_MAP[lang];
490+
}
491+
492+
const baseLang = lang.split("-")[0];
493+
return baseLang || "en";
494+
}

0 commit comments

Comments
 (0)