diff --git a/src/i18n/countries.js b/src/i18n/countries.js index 8acad6450..f1a487165 100644 --- a/src/i18n/countries.js +++ b/src/i18n/countries.js @@ -14,6 +14,7 @@ import plLocale from 'i18n-iso-countries/langs/pl.json'; import ptLocale from 'i18n-iso-countries/langs/pt.json'; import ruLocale from 'i18n-iso-countries/langs/ru.json'; import ukLocale from 'i18n-iso-countries/langs/uk.json'; +import viLocale from 'i18n-iso-countries/langs/vi.json'; import { getPrimaryLanguageSubtag } from './lib'; @@ -39,6 +40,7 @@ COUNTRIES.registerLocale(ptLocale); COUNTRIES.registerLocale(ruLocale); // COUNTRIES.registerLocale(thLocale); // Doesn't exist in lib. COUNTRIES.registerLocale(ukLocale); +COUNTRIES.registerLocale(viLocale); /** * Provides a lookup table of country IDs to country names for the current locale. diff --git a/src/i18n/lib.js b/src/i18n/lib.js index 867d0509f..283235ec8 100644 --- a/src/i18n/lib.js +++ b/src/i18n/lib.js @@ -17,6 +17,7 @@ import '@formatjs/intl-pluralrules/locale-data/pt'; import '@formatjs/intl-pluralrules/locale-data/ru'; import '@formatjs/intl-pluralrules/locale-data/th'; import '@formatjs/intl-pluralrules/locale-data/uk'; +import '@formatjs/intl-pluralrules/locale-data/vi'; import '@formatjs/intl-relativetimeformat/polyfill'; import '@formatjs/intl-relativetimeformat/locale-data/ar'; @@ -33,6 +34,7 @@ import '@formatjs/intl-relativetimeformat/locale-data/pt'; import '@formatjs/intl-relativetimeformat/locale-data/ru'; import '@formatjs/intl-relativetimeformat/locale-data/th'; import '@formatjs/intl-relativetimeformat/locale-data/uk'; +import '@formatjs/intl-relativetimeformat/locale-data/vi'; const cookies = new Cookies(); const supportedLocales = [ @@ -51,7 +53,8 @@ const supportedLocales = [ 'pt-br', // Portuguese (Brazil) 'ru', // Russian 'th', // Thai - 'uk', // Ukrainian + 'uk', // Ukrainian, + 'vi', // Vietnamese ]; const rtlLocales = [ 'ar', // Arabic @@ -220,6 +223,7 @@ const messagesShape = { ru: PropTypes.objectOf(PropTypes.string), // Russian th: PropTypes.objectOf(PropTypes.string), // Thai uk: PropTypes.objectOf(PropTypes.string), // Ukrainian + vi: PropTypes.objectOf(PropTypes.string), // Vietnamese }; const optionsShape = { diff --git a/src/i18n/lib.test.js b/src/i18n/lib.test.js index b9285226b..75b82ec9f 100644 --- a/src/i18n/lib.test.js +++ b/src/i18n/lib.test.js @@ -80,7 +80,7 @@ describe('lib', () => { messages: {}, }); - expect(console.warn).toHaveBeenCalledTimes(15); + expect(console.warn).toHaveBeenCalledTimes(16); expect(console.warn).toHaveBeenCalledWith('Missing locale: ar'); expect(console.warn).toHaveBeenCalledWith('Missing locale: es-419'); expect(console.warn).toHaveBeenCalledWith('Missing locale: fr'); @@ -94,6 +94,7 @@ describe('lib', () => { expect(console.warn).toHaveBeenCalledWith('Missing locale: ru'); expect(console.warn).toHaveBeenCalledWith('Missing locale: th'); expect(console.warn).toHaveBeenCalledWith('Missing locale: uk'); + expect(console.warn).toHaveBeenCalledWith('Missing locale: vi'); }); }); @@ -198,6 +199,7 @@ describe('lib', () => { expect(isRtl('es-419')).toBe(false); expect(isRtl('de')).toBe(false); expect(isRtl('ru')).toBe(false); + expect(isRtl('vi')).toBe(false); }); });