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, html,
"system.identity.family", "system.identity.family",
CONFIG.l5r5e.families.get( 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 ([k, v]) => v === this.actor.system.identity.clan
)?.[0] )?.[0]
) )

View File

@@ -232,7 +232,7 @@ export class TwentyQuestionsDialog extends FormApplication {
html, html,
"step2.family", "step2.family",
CONFIG.l5r5e.families.get( 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 ([k, v]) => v === this.object.data.step1.clan
)?.[0] )?.[0]
) )

View File

@@ -84,7 +84,7 @@ export class HelpersL5r5e {
* @return {string[]} * @return {string[]}
*/ */
static getLocalizedClansList() { 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)) .filter(([k, v]) => !["title", "label"].includes(k))
.map(([k, v]) => v); .map(([k, v]) => v);
} }
@@ -101,6 +101,20 @@ export class HelpersL5r5e {
return Array.from(comp.index).map((v) => v.name); 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 the list of Roles
* @return {string[]} * @return {string[]}