2016-12-13 2 views
4

Я не смог найти документацию в i18n (для Angular2), которая выходит за рамки отображения переведенного текста в HTML. Что мне нужно сделать, так это получить переведенный текст прямо в моем коде. В Angular 1, используя функцию ng-translate, было легко получить ее с помощью услуги $ translate. Я не могу найти эквивалент в новом i18n для Angular 2. Я что-то упустил?Angular2 i18n - Как получить перевод с помощью кода

ответ

0

Это ссылка выпустить на 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 гибридное приложение), это было лучшим решением, так как я могу использовать одни и те же файлы перевода для обоих угловых версий.

+1

Это могло быть интересно, но мы уже реализовали все с родным i18n, поэтому мы не хотим добавлять другую библиотеку ... спасибо в любом случае! – pierrebo

+0

Действительно, сторонняя библиотека для обработки чего-то, что изначально доступна, звучит очень странно. Действительно ли нет доступа к переводам в код !? – Johan

0

Я искал ту же тему. Похоже, Angular i18n не поддерживает использование готового поведения для перевода строки в код ts.

https://github.com/angular/angular/issues/11405

Мы внедрили услугу перевода и использовать трубу вместе. Есть и другие библиотеки, например. ngx-translate использовать перевод в исходном коде. Ниже приведен угловой проектный документ об i18n.

https://docs.google.com/document/d/1LH7lJ1GjRgpGUjzNb6Eg4xrPooRdi80QOTYYh8z_JyY/edit#

В главе «Предшествующий уровень техники», некоторые библиотеки, перечислены в таблице для сравнения, но ни один из них не поддерживают АОТ.

+0

Интересный код - обязательно посмотрите. Благодарю. – pierrebo