Created
January 23, 2018 11:12
-
-
Save fabulator/8d7e97bbd605de84e89783eed9bfe74d to your computer and use it in GitHub Desktop.
Automatic detect locale for Facebook widgets
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import facebookLocales from './locales'; | |
import { | |
LocaleResolver, | |
NavigatorDetector, | |
FallbacksTransformer, | |
DefaultLocaleTransformer, | |
AllowOnlyTransformer, | |
} from 'locales-detector'; | |
class UnderscoreTransformer { | |
transform(locales: Array<string>): Array<string> { | |
return locales.map((locale) => { | |
return locale.replace('-', '_'); | |
}); | |
} | |
} | |
class FindDefaultRegionTransformer { | |
transform(locales: Array<string>): Array<string> { | |
return locales.map((locale) => { | |
if (locale.length === 2) { | |
const found = Object.keys(facebookLocales).filter(key => key.indexOf(locale) !== -1); | |
if (found.length) { | |
return found[0]; | |
} | |
} | |
return locale; | |
}); | |
} | |
} | |
const locale = (new LocaleResolver([new NavigatorDetector], [ | |
new FallbacksTransformer(), // convert language region version to language, [en-GB] => [en-GB, en] | |
new DefaultLocaleTransformer('en_GB'), // create default locale | |
new UnderscoreTransformer(), // convert - to _ | |
new FindDefaultRegionTransformer(), // convert simple language to facebook locale cs => cs_CZ | |
new AllowOnlyTransformer(Object.keys(facebookLocales)), // delete all locales that are not supported by facebook | |
])).getLocales()[0]; | |
console.log(locale); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
export default JSON.parse('{"so_SO": "Af-Soomaali","af_ZA": "Afrikaans","az_AZ": "Azərbaycan dili","id_ID": "Bahasa Indonesia","ms_MY": "Bahasa Melayu","jv_ID": "Basa Jawa","cx_PH": "Bisaya","bs_BA": "Bosanski","br_FR": "Brezhoneg","ca_ES": "Català","cs_CZ": "Čeština","co_FR": "Corsu","cy_GB": "Cymraeg","da_DK": "Dansk","de_DE": "Deutsch","et_EE": "Eesti","en_GB": "English (UK)","en_PI": "English (Pirate)","en_US": "English (US)","en_UD": "English (uʍop əpısdՈ)","es_LA": "Español","es_ES": "Español (España)","eo_EO": "Esperanto","eu_ES": "Euskara","tl_PH": "Filipino","fo_FO": "Føroyskt","fr_CA": "Français (Canada)","fr_FR": "Français (France)","fy_NL": "Frysk","ff_NG": "Fula","ga_IE": "Gaeilge","gl_ES": "Galego","gn_PY": "Guarani","ha_NG": "Hausa","hr_HR": "Hrvatski","rw_RW": "Ikinyarwanda","is_IS": "Íslenska","it_IT": "Italiano","sw_KE": "Kiswahili","ht_HT": "Kreyòl Ayisyen","ku_TR": "Kurdî (Kurmancî)","lv_LV": "Latviešu","fb_LT": "Leet Speak","lt_LT": "Lietuvių","la_VA": "lingua latina","hu_HU": "Magyar","mg_MG": "Malagasy","mt_MT": "Malti","nl_NL": "Nederlands","nl_BE": "Nederlands (België)","nb_NO": "Norsk (bokmål)","nn_NO": "Norsk (nynorsk)","uz_UZ": "O\'zbek","pl_PL": "Polski","pt_BR": "Português (Brasil)","pt_PT": "Português (Portugal)","ro_RO": "Română","sc_IT": "Sardu","sn_ZW": "Shona","sq_AL": "Shqip","sz_PL": "ślōnskŏ gŏdka","sk_SK": "Slovenčina","sl_SI": "Slovenščina","fi_FI": "Suomi","sv_SE": "Svenska","vi_VN": "Tiếng Việt","tr_TR": "Türkçe","zz_TR": "Zaza","el_GR": "Ελληνικά","be_BY": "Беларуская","bg_BG": "Български","ky_KG": "кыргызча","kk_KZ": "Қазақша","mk_MK": "Македонски","mn_MN": "Монгол","ru_RU": "Русский","sr_RS": "Српски","tg_TJ": "Тоҷикӣ","uk_UA": "Українська","ka_GE": "ქართული","hy_AM": "Հայերեն","he_IL": "עברית","ur_PK": "اردو","ar_AR": "العربية","ps_AF": "پښتو","fa_IR": "فارسی","cb_IQ": "کوردیی ناوەندی","sy_SY": "ܣܘܪܝܝܐ","tz_MA": "ⵜⴰⵎⴰⵣⵉⵖⵜ","am_ET": "አማርኛ","ne_NP": "नेपाली","mr_IN": "मराठी","hi_IN": "हिन्दी","as_IN": "অসমীয়া","bn_IN": "বাংলা","pa_IN": "ਪੰਜਾਬੀ","gu_IN": "ગુજરાતી","or_IN": "ଓଡ଼ିଆ","ta_IN": "தமிழ்","te_IN": "తెలుగు","kn_IN": "ಕನ್ನಡ","ml_IN": "മലയാളം","si_LK": "සිංහල","th_TH": "ภาษาไทย","lo_LA": "ພາສາລາວ","my_MM": "မြန်မာဘာသာ","km_KH": "ភាសាខ្មែរ","ko_KR": "한국어","zh_TW": "中文(台灣)","zh_CN": "中文(简体)","zh_HK": "中文(香港)","ja_JP": "日本語","ja_KS": "日本語(関西)"}'); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment