Как стать автором
Обновить

Комментарии 10

НЛО прилетело и опубликовало эту надпись здесь
Это означает, что при создании интернет магазина мы можем один раз написать {{amount | currency}}, подключить необходимую локаль и не думать о том, как будет выглядеть сумма покупки для России и США. AngularSJ сам сделает это за вас:

1 234,56 руб — в России
$1,234.56 — в США

Это конечно круто, белорусы будут рады.
А если серьезно — как в реальности работает этот механизм в angular?
Это обычный ангуляровский фильтр docs.angularjs.org/api/ng/filter/filter, не понимаю зачем автор поста делает решение через костыль. Ну и задача локализации гораздо сложнее, есть сортировки для ng-repeat, есть множестенные формы, есть значение по умолчанию, есть места где надо сразу вывести текст в двух локалях, ну и главная проблема — seo, локаль нужно брать из урла, а не писать в конфиге.

Ну, автор написал, что это велосипед, но непонятно, зачем такое демонстрировать, если он приносит больше проблем, чем поясняет или помогает в задаче.
Пусть здесь полежит.

Gulp plugin for parsing angular templates with angular-gettext attributes (translate) and replacing contents with translated .po files passed as an argument. It allows to translate templates as much as possible during build process and reduce the amount of work each browser does during templates rendering.
Приписываем в html слово translate возле тех строк, которые необходимо перевести;

Это чревато проблемами в будущем:
— невозможно одну и ту же строку перевести по-разному. Напр.: login = вход = войдите
— правка строки вынуждает править ключи во всех переводах. Напр.: Hello {{name}} стало Hello {{user.name}}
— далеко не все переводы содержатся в шаблонах. Сообщения ошибок и т.п. часто берутся из js

Angular-Translate так же имеет грунтовый плагин, выдирающий строки с ключами из кода. А так же богатое АПИ и документацию на русском. Я бы пристальнее к нему присмотрелся ;-)
1. Как перевести атрибуты элемента? (
<img src="" title="{{title}}"/>
будет работать?)
2. Как автоматически переключить стили? (замена CSS файлов)
3. Можно ли накладывать пачку json`ов? Например, сначала грузим:
{
    name: "Имя" 
}

Потом грузим:
{
    family: "Фамилия"
}

И получаем на выходе конфиг:
{
    name: "Имя" 
    family: "Фамилия"
}

4. Можно ли задавать иерархию и вложения? Например:
{
    name: {
        first: "Миша"
        last: "Катя"
    }
    family: "Фамилия"
}

{{ name.first }}

5. Если у нас ключ перевода привязан к DOM, значит он сохранит ссылку на элемент в памяти. Если мы удалим DOM элемент у нас будет утечка памяти? Было:
<div><div>{{name}}</div></div>

Стало:
<div></div>

Система же локализации не оставит у себя ссылку на удаленный элемент?
У меня вопрос, касающийся как локализации на фронте в частности, так и ко всей идеи разворачивания приложения в браузере, в целом. вместо «старомодного» отдавания готовой страницы с бекенда.
Давно интересовалися темой: научились ли поисковики это дело красиво индексировать?
Помнится пару тройку лет назад из-за отрицательного ответа на этот вопрос была похоронена не одна идея «одностраничного» приложения…
Не научились и не собираются и правильно делают. Изменение содержания должны отражаться в URL и именно страницу в таком виде должен отдавать сервер.
[зануда]
['$scope', 'translationService', function ($scope, translationService){

Объясните мне — зачем вы так делаете?
Еще есть мнение что way «app = angular.module» сейчас не является разработчиками рекомендуемым
[/зануда]
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории