Module.define('localize', [jQuery, 'settings', 'langs', 'core'], function ($, settings, langs, core) { var currentDateFormat = settings.dateFormat, formatDates = function (dateFormat) { if (dateFormat) { currentDateFormat = dateFormat; } $('#extended .entry .date').each(function () { var $this = $(this), time = $this.data('time'), formattedDate = time ? new Date(time).toString(currentDateFormat) : ''; $this.text(formattedDate); }); }, localize = function (langs, lang, useBrowserLang) { var storedLang = amplify.store(settings.store.lang), browserLang, selected, key; if (langs[storedLang]) { lang = storedLang; } else if (useBrowserLang) { browserLang = navigator.language || navigator.browserLanguage; if (browserLang) { if (langs[browserLang]) { lang = browserLang; } else if (browserLang.length > 2 && langs[browserLang.substr(0, 2)]) { lang = browserLang.substr(0, 2); } } } if (!langs[lang]) { lang = 'en'; } selected = langs[lang]; if (selected) { $.each(selected, function (key, value) { $('.l10n-' + key).text(value); }); $('.lang').text(lang); $('.langOption').removeClass('current'); $('.langOption.' + lang).addClass('current'); core.hash({lang: lang}); } formatDates(selected.dateFormat || settings.dateFormat); }, initLangSelector = function (langs) { var $langOptions = $('#langSelector .langOptions'), sortedLangsKeys = [], $ul; $.each(langs, function (lang) { sortedLangsKeys.push(lang); }); sortedLangsKeys.sort(); $ul = $('