Created
January 18, 2018 11:49
-
-
Save fabulator/b79b7da8bd9749b4ca084b8c31264a74 to your computer and use it in GitHub Desktop.
Facebook like in all locales
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 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(); |
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_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