Skip to content

Instantly share code, notes, and snippets.

@fabulator
Created January 18, 2018 11:49
Show Gist options
  • Save fabulator/b79b7da8bd9749b4ca084b8c31264a74 to your computer and use it in GitHub Desktop.
Save fabulator/b79b7da8bd9749b4ca084b8c31264a74 to your computer and use it in GitHub Desktop.
Facebook like in all locales
import locales from './locales';
function loadFB(locale) {
return new Promise((resolve) => {
(function(d, s, id){
let js;
const fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = `https://connect.facebook.net/${locale}/sdk.js`;
fjs.parentNode.insertBefore(js, fjs);
js.onload = resolve;
}(document, 'script', `facebook-jssdk-${locale}`));
});
}
function initFB(appId) {
FB.init({
appId,
xfbml: false,
version: 'v2.5',
});
}
const APP_ID = 'XXXX';
const promises = [];
// prepare promises for every locale
Object.keys(locales).forEach((locale) => {
promises.push(() => {
// add new like to body
document.querySelector('body').innerHTML += `<div class="${locale}" style="display: inline-block; margin: 1px;"><div class="fb-like" data-href="https://developers.facebook.com/docs/plugins/" data-layout="button" data-action="like" data-size="large" data-share="false"></div></div>`;
// load facebook script with current locale
return loadFB(locale).then(() => {
return new Promise((resolve) => {
// init FB
initFB(APP_ID);
// parse like
FB.XFBML.parse(document.querySelector(`.${locale}`), () => {
setTimeout(() => {
// after like is parsed delete FB reference so new FB with new locale can be loaded
window.FB = null;
document.querySelector('#fb-root').remove();
resolve();
})
});
});
});
});
});
let i = 0;
function loadLikeButton() {
promises[i]().then(() => {
if (i < promises.length) {
i++;
loadLikeButton()
}
})
}
loadLikeButton();
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_PI": "English (Pirate)","en_GB": "English (UK)","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