Fix Character sheet errors when using a non-supported language (#56)

This commit is contained in:
Vlyan
2024-09-16 09:22:29 +02:00
parent 7a2587083b
commit 33f2b372a4
3 changed files with 17 additions and 3 deletions

View File

@@ -86,7 +86,7 @@ export class CharacterSheetL5r5e extends BaseCharacterSheetL5r5e {
html,
"system.identity.family",
CONFIG.l5r5e.families.get(
Object.entries(game.i18n.translations.l5r5e.clans).find(
Object.entries(game.l5r5e.HelpersL5r5e.getLocalizedRawObject("l5r5e.clans")).find(
([k, v]) => v === this.actor.system.identity.clan
)?.[0]
)

View File

@@ -232,7 +232,7 @@ export class TwentyQuestionsDialog extends FormApplication {
html,
"step2.family",
CONFIG.l5r5e.families.get(
Object.entries(game.i18n.translations.l5r5e.clans).find(
Object.entries(game.l5r5e.HelpersL5r5e.getLocalizedRawObject("l5r5e.clans")).find(
([k, v]) => v === this.object.data.step1.clan
)?.[0]
)

View File

@@ -84,7 +84,7 @@ export class HelpersL5r5e {
* @return {string[]}
*/
static getLocalizedClansList() {
return Object.entries(game.i18n.translations.l5r5e.clans)
return Object.entries(game.l5r5e.HelpersL5r5e.getLocalizedRawObject("l5r5e.clans"))
.filter(([k, v]) => !["title", "label"].includes(k))
.map(([k, v]) => v);
}
@@ -101,6 +101,20 @@ export class HelpersL5r5e {
return Array.from(comp.index).map((v) => v.name);
}
/**
* Get the raw object from localization, with fallback if the selected language is unknown
* @param {string} key
* @returns {*}
*/
static getLocalizedRawObject(key) {
let object = foundry.utils.getProperty(game.i18n.translations, key);
if (!!object) {
return object;
}
object = foundry.utils.getProperty(game.i18n._fallback, key);
return object ?? key;
}
/**
* Return the list of Roles
* @return {string[]}