/ / AngularJS: Динамічний мовний інтерфейс - angularjs, інтернаціоналізація, локалізація, angular-translate

AngularJS: Динамічний мовний інтерфейс - angularjs, інтернаціоналізація, локалізація, кутовий переклад

Я використовую Кутовий динамічний регіон і Angular-Translate для інтернаціоналізації та локалізації (i18n) І працює добре.

Мені подобається ідея кутовий переклад це можливо змінити мову без оновлення сторінки.

  • Можна робити те ж саме з Кутовий динамічний регіон? Якщо це можливо, як я можу отримати це?

Всі слова з angular-translate змінюються автоматично, але не слова з angular_locale (програвач даних тощо), що користувачам потрібно оновити сторінку.

Дякую!

Відповіді:

8 для відповіді № 1

Тільки у випадку, якщо у вас немає необхідності використовувати Angular Dynamic locale, ви можете створити свій власний LocaleFactory таким чином:

 factory("LocaleFactory", function ( $locale, $translate) {
var locales = {
nl: {
"DATETIME_FORMATS": {
"AMPMS"     : [
"AM",
"PM"
],
"DAY"       : [
"zondag",
"maandag",
"dinsdag",
"woensdag",
"donderdag",
"vrijdag",
"zaterdag"
],
"MONTH"     : [
"januari",
"februari",
"maart",
"april",
"mei",
"juni",
"juli",
"augustus",
"september",
"oktober",
"november",
"december"
],
"SHORTDAY"  : [
"zo",
"ma",
"di",
"wo",
"do",
"vr",
"za"
],
"SHORTMONTH": [
"jan.",
"feb.",
"mrt.",
"apr.",
"mei",
"jun.",
"jul.",
"aug.",
"sep.",
"okt.",
"nov.",
"dec."
],

"fullDate"  : "EEEE d MMMM y",
"longDate"  : "d MMMM y",
"medium"    : "d MMM y HH:mm:ss",
"mediumDate": "d MMM y",
"mediumTime": "HH:mm:ss",
"short"     : "dd-MM-yyyy HH:mm",
"shortDate" : "dd-MM-yyyy",
"shortTime" : "HH:mm"
},
"NUMBER_FORMATS"  : {
"CURRENCY_SYM": "u20ac",
"DECIMAL_SEP" : ",",
"GROUP_SEP"   : ".",
"PATTERNS"    : [
{
"gSize"  : 3,
"lgSize" : 3,
"macFrac": 0,
"maxFrac": 3,
"minFrac": 0,
"minInt" : 1,
"negPre" : "-",
"negSuf" : "",
"posPre" : "",
"posSuf" : ""
},
{
"gSize"  : 3,
"lgSize" : 3,
"macFrac": 0,
"maxFrac": 2,
"minFrac": 2,
"minInt" : 1,
"negPre" : "u00a4u00a0",
"negSuf" : "-",
"posPre" : "u00a4u00a0",
"posSuf" : ""
}
]
}
}
};

return {
setLocale: function (key) {
$translate.use(key);
angular.copy(locales[key], $locale);
}
};
});

Точно так само ви можете додати інших місцевих жителів

Зателефонуйте setLocale, щоб змінити регіон

run(function (LocaleFactory) {
LocaleFactory.setLocale("nl");
});

Коли колись змінюється ваш регіон, ви можете зателефонувати до setLocale, вказавши ключовий регіон як аргумент. Він негайно змінить вашу мову