Init Language Picker

This commit is contained in:
Jamie Kyle 2023-11-06 13:19:23 -08:00 committed by GitHub
parent 754bb02c06
commit 89e66da351
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 610 additions and 61 deletions

View file

@ -26,6 +26,7 @@ function getLocaleMessages(locale: string): LocaleMessagesType {
export type LocaleDirection = 'ltr' | 'rtl';
export type LocaleType = {
availableLocales: Array<string>;
i18n: LocalizerType;
name: string;
direction: LocaleDirection;
@ -65,6 +66,7 @@ function getLocaleDirection(
}
function finalize(
availableLocales: Array<string>,
messages: LocaleMessagesType,
backupMessages: LocaleMessagesType,
localeName: string,
@ -80,6 +82,7 @@ function finalize(
logger.info(`locale: Text info direction for ${localeName}: ${direction}`);
return {
availableLocales,
i18n,
name: localeName,
direction,
@ -99,10 +102,12 @@ export function _getAvailableLocales(): Array<string> {
export function load({
preferredSystemLocales,
localeOverride,
hourCyclePreference,
logger,
}: {
preferredSystemLocales: Array<string>;
localeOverride: string | null;
hourCyclePreference: HourCyclePreference;
logger: LoggerType;
}): LocaleType {
@ -117,10 +122,11 @@ export function load({
const availableLocales = _getAvailableLocales();
logger.info('locale: Supported locales:', availableLocales.join(', '));
logger.info('locale: Preferred locales: ', preferredSystemLocales.join(', '));
logger.info('locale: Preferred locales:', preferredSystemLocales.join(', '));
logger.info('locale: Locale Override:', localeOverride);
const matchedLocale = LocaleMatcher.match(
preferredSystemLocales,
localeOverride != null ? [localeOverride] : preferredSystemLocales,
availableLocales,
'en',
{ algorithm: 'best fit' }
@ -132,6 +138,7 @@ export function load({
const englishMessages = getLocaleMessages('en');
return finalize(
availableLocales,
matchedLocaleMessages,
englishMessages,
matchedLocale,