i18n; l10n; javascript sucks