Я не смог найти документацию в i18n (для Angular2), которая выходит за рамки отображения переведенного текста в HTML. Что мне нужно сделать, так это получить переведенный текст прямо в моем коде. В Angular 1, используя функцию ng-translate, было легко получить ее с помощью услуги $ translate. Я не могу найти эквивалент в новом i18n для Angular 2. Я что-то упустил?Angular2 i18n - Как получить перевод с помощью кода
ответ
Это ссылка выпустить на GitHub о планах i18n:
https://github.com/angular/angular/issues/9104
на 06-11-2016 @ zh99998 спросил:
как получить i18n строку в скрипте? например:
let _THIS_IS_A_I18N_STRING = ??? alert(_THIS_IS_A_I18N_STRING);
и @vicb (angular2 член) говорит:
@ zh99998 @marcalj Это невозможно с текущим осущ. Не могли бы вы создать правильный запрос функции в трекере проблем , заполнив шаблон проблемы и добавив варианты использования (и ссылку на другую реализацию , если применимо).
Спасибо.
Похоже, что в настоящее время нет возможности использовать переводы в коде.
Несмотря на то, есть библиотека для angular2 похоже на $translate
:
https://github.com/ocombe/ng2-translate
Использования похоже на $translate
(от Документов):
translate.get('HELLO', {value: 'world'}).subscribe((res: string) => { console.log(res); //=> 'hello world' });
Использование похоже на translate
фильтра (из документов):
<div>{{ 'HELLO' | translate:param }}</div>
В моем случае (ng1/NG2 гибридное приложение), это было лучшим решением, так как я могу использовать одни и те же файлы перевода для обоих угловых версий.
Я искал ту же тему. Похоже, Angular i18n не поддерживает использование готового поведения для перевода строки в код ts.
https://github.com/angular/angular/issues/11405
Мы внедрили услугу перевода и использовать трубу вместе. Есть и другие библиотеки, например. ngx-translate использовать перевод в исходном коде. Ниже приведен угловой проектный документ об i18n.
https://docs.google.com/document/d/1LH7lJ1GjRgpGUjzNb6Eg4xrPooRdi80QOTYYh8z_JyY/edit#
В главе «Предшествующий уровень техники», некоторые библиотеки, перечислены в таблице для сравнения, но ни один из них не поддерживают АОТ.
Интересный код - обязательно посмотрите. Благодарю. – pierrebo
Это могло быть интересно, но мы уже реализовали все с родным i18n, поэтому мы не хотим добавлять другую библиотеку ... спасибо в любом случае! – pierrebo
Действительно, сторонняя библиотека для обработки чего-то, что изначально доступна, звучит очень странно. Действительно ли нет доступа к переводам в код !? – Johan