mirror of
https://github.com/digitalocean/nginxconfig.io.git
synced 2025-08-10 18:41:36 +08:00
Make language packs load async (#204)
* Webpack magic to make language packs async * Fix jest failing * Ensure the native language names are always present * Add loading state for language packs
This commit is contained in:
committed by
GitHub
parent
9b0a7dc4ac
commit
de76ad9a43
@@ -46,7 +46,6 @@ class MockLocales {
|
||||
}
|
||||
|
||||
static setDateTimeLocale(locale) {
|
||||
const newDateTimeFormat = new Intl.DateTimeFormat(locale);
|
||||
MockLocales.IntlBackup = Intl;
|
||||
if (!locale) {
|
||||
// eslint-disable-next-line no-global-assign
|
||||
@@ -54,6 +53,7 @@ class MockLocales {
|
||||
return this;
|
||||
}
|
||||
|
||||
const newDateTimeFormat = new Intl.DateTimeFormat(locale);
|
||||
// eslint-disable-next-line no-global-assign
|
||||
Intl = {
|
||||
DateTimeFormat() {
|
||||
@@ -97,13 +97,13 @@ describe('browserLanguage', () => {
|
||||
MockLocales.setDateTimeLocale(undefined);
|
||||
|
||||
MockLocales.setNavigatorLanguages(['zh-CN', 'zh','en-US','en']);
|
||||
expect(browserLanguage()).toEqual('zhCN');
|
||||
expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('zhCN');
|
||||
|
||||
MockLocales.setNavigatorLanguages(['zh-TW','zh','en-US','en']);
|
||||
expect(browserLanguage()).toEqual('zhTW');
|
||||
expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('zhTW');
|
||||
|
||||
MockLocales.setNavigatorLanguages(['zh', 'en-US', 'en']);
|
||||
expect(browserLanguage()).toEqual('en');
|
||||
expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en');
|
||||
|
||||
MockLocales.restoreDateTimeLocale();
|
||||
});
|
||||
@@ -112,7 +112,7 @@ describe('browserLanguage', () => {
|
||||
MockLocales.setDateTimeLocale(undefined);
|
||||
|
||||
MockLocales.setNavigatorLanguages(['ja-JP', 'ja', 'en-US']);
|
||||
expect(browserLanguage()).toEqual('en');
|
||||
expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en');
|
||||
|
||||
MockLocales.restoreDateTimeLocale();
|
||||
});
|
||||
@@ -121,7 +121,7 @@ describe('browserLanguage', () => {
|
||||
MockLocales.setDateTimeLocale(undefined);
|
||||
|
||||
MockLocales.setNavigatorLanguages(['ja-JP', 'ja', 'zh']);
|
||||
expect(browserLanguage()).toEqual('zhCN');
|
||||
expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('zhCN');
|
||||
|
||||
MockLocales.restoreDateTimeLocale();
|
||||
});
|
||||
@@ -130,7 +130,7 @@ describe('browserLanguage', () => {
|
||||
MockLocales.setDateTimeLocale(undefined);
|
||||
|
||||
MockLocales.setNavigatorLanguages(['ja-JP','ja']);
|
||||
expect(browserLanguage()).toBeFalsy();
|
||||
expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toBeFalsy();
|
||||
|
||||
MockLocales.restoreDateTimeLocale();
|
||||
});
|
||||
@@ -140,7 +140,7 @@ describe('browserLanguage', () => {
|
||||
MockLocales.setNavigatorLanguages(undefined);
|
||||
MockLocales.setNavigatorLanguage(undefined);
|
||||
MockLocales.setDateTimeLocale(undefined);
|
||||
expect(browserLanguage()).toBeFalsy();
|
||||
expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toBeFalsy();
|
||||
MockLocales.restoreDateTimeLocale();
|
||||
});
|
||||
|
||||
@@ -148,7 +148,7 @@ describe('browserLanguage', () => {
|
||||
MockLocales.setNavigatorLanguage('en');
|
||||
MockLocales.setNavigatorLanguages(undefined);
|
||||
MockLocales.setDateTimeLocale(undefined);
|
||||
expect(browserLanguage()).toEqual('en');
|
||||
expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en');
|
||||
MockLocales.restoreDateTimeLocale();
|
||||
});
|
||||
|
||||
@@ -156,14 +156,14 @@ describe('browserLanguage', () => {
|
||||
MockLocales.setNavigatorLanguage(undefined);
|
||||
MockLocales.setNavigatorLanguages(['en-US','en']);
|
||||
MockLocales.setDateTimeLocale(undefined);
|
||||
expect(browserLanguage()).toEqual('en');
|
||||
expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en');
|
||||
MockLocales.restoreDateTimeLocale();
|
||||
});
|
||||
|
||||
test('navigator is `undefined` and Intl locale is `en-US`',() => {
|
||||
MockLocales.setNavigator(undefined);
|
||||
MockLocales.setDateTimeLocale('en-US');
|
||||
expect(browserLanguage()).toEqual('en');
|
||||
expect(browserLanguage(['en', 'zhCN', 'zhTW'])).toEqual('en');
|
||||
MockLocales.restoreDateTimeLocale();
|
||||
MockLocales.restoreNavigator();
|
||||
});
|
||||
|
Reference in New Issue
Block a user