Improve server locale handling
This commit is contained in:
parent
215e8f1c4b
commit
8b691e10a9
@ -51,7 +51,7 @@ export class LocaleService
|
|||||||
{
|
{
|
||||||
if (this.localeConfig.gameLocale.toLowerCase() === "system")
|
if (this.localeConfig.gameLocale.toLowerCase() === "system")
|
||||||
{
|
{
|
||||||
return this.getPlatformLocale();
|
return this.getPlatformForClientLocale();
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.localeConfig.gameLocale.toLowerCase();
|
return this.localeConfig.gameLocale.toLowerCase();
|
||||||
@ -66,7 +66,7 @@ export class LocaleService
|
|||||||
{
|
{
|
||||||
if (this.localeConfig.serverLocale.toLowerCase() === "system")
|
if (this.localeConfig.serverLocale.toLowerCase() === "system")
|
||||||
{
|
{
|
||||||
return this.getPlatformLocale();
|
return this.getPlatformForServerLocale();
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.localeConfig.serverLocale.toLowerCase();
|
return this.localeConfig.serverLocale.toLowerCase();
|
||||||
@ -91,30 +91,59 @@ export class LocaleService
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the locale of the computer running the server
|
* Get the full locale of the computer running the server lowercased e.g. en-gb / pt-pt
|
||||||
* @returns langage part of locale e.g. 'en' part of 'en-US'
|
* @returns string
|
||||||
*/
|
*/
|
||||||
protected getPlatformLocale(): string
|
protected getPlatformForServerLocale(): string
|
||||||
{
|
{
|
||||||
const platformLocale = new Intl.Locale(Intl.DateTimeFormat().resolvedOptions().locale);
|
const platformLocale = new Intl.Locale(Intl.DateTimeFormat().resolvedOptions().locale);
|
||||||
|
|
||||||
if (!platformLocale)
|
if (!platformLocale)
|
||||||
{
|
{
|
||||||
this.logger.warning("System langauge could not be found, falling back to english");
|
this.logger.warning("System langauge could not be found, falling back to english");
|
||||||
|
|
||||||
return "en";
|
return "en";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.localeConfig.serverSupportedLocales.includes(platformLocale.baseName.toLowerCase()))
|
const localeCode = platformLocale.baseName.toLowerCase();
|
||||||
|
if (!this.localeConfig.serverSupportedLocales.includes(localeCode))
|
||||||
{
|
{
|
||||||
// Chek if base language (CN/EN) exists
|
// Chek if base language (e.g. CN / EN / DE) exists
|
||||||
if (this.localeConfig.serverSupportedLocales.includes(platformLocale.language))
|
if (this.localeConfig.serverSupportedLocales.includes(platformLocale.language))
|
||||||
{
|
{
|
||||||
return platformLocale.language;
|
return platformLocale.language;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.logger.warning(
|
this.logger.warning(
|
||||||
`Unsupported system langauge found ${platformLocale.baseName}, falling back to english`,
|
`Unsupported system langauge found: ${localeCode}, falling back to english`,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
return "en";
|
||||||
|
}
|
||||||
|
|
||||||
|
return localeCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the locale of the computer running the server
|
||||||
|
* @returns langage part of locale e.g. 'en' part of 'en-US'
|
||||||
|
*/
|
||||||
|
protected getPlatformForClientLocale(): string
|
||||||
|
{
|
||||||
|
const platformLocale = new Intl.Locale(Intl.DateTimeFormat().resolvedOptions().locale);
|
||||||
|
if (!platformLocale)
|
||||||
|
{
|
||||||
|
this.logger.warning("System langauge could not be found, falling back to english");
|
||||||
|
|
||||||
|
return "en";
|
||||||
|
}
|
||||||
|
|
||||||
|
const langaugeCode = platformLocale.language.toLowerCase();
|
||||||
|
if (!this.localeConfig.serverSupportedLocales.includes(langaugeCode))
|
||||||
|
{
|
||||||
|
this.logger.warning(
|
||||||
|
`Unsupported system langauge found: ${langaugeCode}, falling back to english`,
|
||||||
|
);
|
||||||
|
|
||||||
return "en";
|
return "en";
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -124,6 +153,6 @@ export class LocaleService
|
|||||||
return "cz";
|
return "cz";
|
||||||
}
|
}
|
||||||
|
|
||||||
return platformLocale.baseName;
|
return langaugeCode;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user