// Available language packs
var locales = [
	'ar',
	'bg_BG',
	'ca',
	'cs_CZ',
	'da',
	'de',
	'el',
	'es',
	'et',
	'eu',
	'fa_IR',
	'fi',
	'fr_FR',
	'gl',
	'he_IL',
	'hr',
	'hu_HU',
	'id',
	'is_IS',
	'it',
	'ja',
	'km_KH',
	'ko_KR',
	'lt',
	'nb_NO',
	'nl',
	'pl',
	'pt_BR',
	'pt_PT',
	'ro',
	'ru',
	'sk',
	'sl_SI',
	'sv_SE',
	'th_TH',
	'tr_TR',
	'uk',
	'vi_VN',
	'zh_CN',
	'zh_TW'
];

function setLocale(editor) {
	var locale = 'en';
	
	var matches = window.location.href.match(/locale=([^&]+)/);
	if (matches) {
		let code = matches[1].replace('-', '_');
		// Exact match
		if (locales.includes(code)) {
			locale = code;
		}
		else {
			let prefix = code.substr(0, 2);
			// Match on first two characters, exact
			if (locales.includes(prefix)) {
				locale = prefix;
			}
			// Match on first two characters with additional country code (e.g., 'fa' -> 'fa_IR')
			else {
				for (let l of locales) {
					if (l.substr(0, 2) == prefix) {
						locale = l;
						break;
					}
				}
			}
		}
	}
	
	editor.settings.language = locale;
}