Add config for localeDirectionTestingOverride

This commit is contained in:
Jamie Kyle 2023-12-12 11:41:14 -08:00 committed by GitHub
parent a472b18d6e
commit 5acacfeb16
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 27 additions and 37 deletions

View file

@ -78,34 +78,6 @@ function getLocaleDirection(
return 'ltr';
}
function finalize(
availableLocales: Array<string>,
messages: LocaleMessagesType,
backupMessages: LocaleMessagesType,
localeName: string,
hourCyclePreference: HourCyclePreference,
localeDisplayNames: LocaleDisplayNames,
logger: LoggerType
): LocaleType {
// We start with english, then overwrite that with anything present in locale
const finalMessages = merge(backupMessages, messages);
const i18n = setupI18n(localeName, finalMessages);
const direction = getLocaleDirection(localeName, logger);
logger.info(`locale: Text info direction for ${localeName}: ${direction}`);
return {
availableLocales,
i18n,
name: localeName,
direction,
messages: finalMessages,
hourCyclePreference,
localeDisplayNames,
};
}
export function _getAvailableLocales(): Array<string> {
return JSON.parse(
readFileSync(
@ -118,11 +90,13 @@ export function _getAvailableLocales(): Array<string> {
export function load({
preferredSystemLocales,
localeOverride,
localeDirectionTestingOverride,
hourCyclePreference,
logger,
}: {
preferredSystemLocales: Array<string>;
localeOverride: string | null;
localeDirectionTestingOverride: LocaleDirection | null;
hourCyclePreference: HourCyclePreference;
logger: LoggerType;
}): LocaleType {
@ -151,15 +125,22 @@ export function load({
const matchedLocaleMessages = getLocaleMessages(matchedLocale);
const englishMessages = getLocaleMessages('en');
const languageDisplayNames = getLocaleDisplayNames();
const localeDisplayNames = getLocaleDisplayNames();
return finalize(
// We start with english, then overwrite that with anything present in locale
const finalMessages = merge(englishMessages, matchedLocaleMessages);
const i18n = setupI18n(matchedLocale, finalMessages);
const direction =
localeDirectionTestingOverride ?? getLocaleDirection(matchedLocale, logger);
logger.info(`locale: Text info direction for ${matchedLocale}: ${direction}`);
return {
availableLocales,
matchedLocaleMessages,
englishMessages,
matchedLocale,
i18n,
name: matchedLocale,
direction,
messages: finalMessages,
hourCyclePreference,
languageDisplayNames,
logger
);
localeDisplayNames,
};
}