Отличия ngx-translate от i18n

Существует несколько методов перевода (Angular) приложения, основные из которых:

ngx-translate

а также

Angular 2, нативный i18n

Насколько я понял, i18n проще для SEO из-за чистого просмотра URL-адресов с

e.g

app.com/de

app.com/en

с другой стороны, с помощью ngx-translate легче переключаться между языками.

Я знаю, что создатель ngx-translate был нанят Angular для своего i18n. Кто-нибудь может сказать мне, в чем заключаются основные отличия (за / против)?


person Domi    schedule 05.07.2017    source источник
comment
Это про AngularJs или Angular 2? Если речь идет об AngularJs, существует также Angular translate. В противном случае, если вы настроили таргетинг только на Angular 2, удалите тег angularjs из своего вопроса.   -  person indexoutofbounds    schedule 05.07.2017
comment
Для записи вы также можете использовать github.com/robisim74/angular-l10n   -  person theFreedomBanana    schedule 25.08.2017


Ответы (4)


Я считаю, что эта проблема отвечает на ваш вопрос: https://github.com/ngx-translate/core/issues/495

person Sarah Cassar    schedule 10.07.2017
comment
Это не ответ, это должен быть комментарий. - person FindOutIslamNow; 19.04.2018
comment
Пожалуйста, избегайте ответов только по ссылкам. Этот мета-ответ meta.stackexchange.com/a/8259 подробно объясняет, почему это плохая практика, от гниения ссылок до Ссылки - это фантастика, но они никогда не должны быть единственной информацией в вашем ответе и за его пределами. - person ANeves thinks SE is evil; 22.10.2018

Согласно @ocombe, идея, лежащая в основе библиотека ngx-translate всегда обеспечивала поддержку i18n, пока Angular не догонит, после этого эта библиотека, вероятно, будет устаревшей. На данный момент есть несколько различий между Angular i18n и этой библиотекой:

  • Angular работает только с одним языком за раз, вам нужно полностью перезагрузить приложение, чтобы изменить язык. Поддержка JIT означает только то, что он работает с JIT, но вам все равно нужно предоставлять переводы при начальной загрузке, потому что он заменит текст в ваших шаблонах во время компиляции, тогда как эта библиотека использует привязки, что означает, что вы можете изменить переводы в любое время. . Обратной стороной является то, что привязки занимают память, поэтому способ Angular более производительный. Но если вы используете OnPush для своих компонентов, вы, вероятно, никогда не заметите разницы.

  • Angular пока поддерживает только i18n в ваших шаблонах, я работаю над функцией, которая позволит вам использовать ее в вашем коде, но она все еще находится в стадии разработки. Эта библиотека работает как в коде, так и в шаблонах

  • Angular поддерживает либо XLIFF, либо XMB (оба являются форматами XML), тогда как эта библиотека поддерживает JSON по умолчанию, но вы можете написать свой собственный загрузчик для поддержки любого формата, который вы хотите (например, есть загрузчик для файлов PO)

  • Angular поддерживает выражения ICU (множественное число и select), но Библиотека ngx-translate не поддерживает

  • Angular поддерживает заполнители html, включая код angular, тогда как эта библиотека поддерживает только обычный html (потому что он выполняется во время выполнения, а не во время компиляции, и в Angular нет $ compile, как это было в AngularJS)

  • API библиотеки ngx-translate) библиотека более полная, потому что она выполняется во время выполнения, она может предлагать больше вещей (наблюдаемые, события, ...), которых нет в Angular (но на самом деле это не нужно, учитывая, что вы не можете изменять переводы)

person Chuma Umenze    schedule 05.11.2018

На данный момент это старый вопрос, но я думаю, что ответ требует обновления.

ngx-translate в значительной степени заброшен. Автор ngx-translate, ocombe, усиленно работает в Google над улучшением встроенного метода Angular. Он перевел ngx-translate только на обслуживание. По состоянию на эту дату (май 2021 года) он не выполнял никаких работ по обслуживанию ngx-translate в течение 11 месяцев, включая обновления для Angular 11.

ngx-translate больше не подходит для проектов, которые только начинают интернационализировать Angular.

person Eric E AT MT    schedule 06.05.2021

В документации Transloco есть довольно полное сравнение между Transloco, Angular-I18n и Ngx-translate:

https://ngneat.github.io/transloco/

person itay oded    schedule 24.08.2019
comment
ссылка мертва - person TouDick; 27.11.2019
comment
Эта ссылка работает: netbasal.gitbook.io/transloco/comparison-to-other- библиотеки - person Alex Che; 29.01.2020
comment
К сожалению, больше нет. - person jowey; 25.11.2020
comment
у нас появился новый сайт документации: ngneat.github.io/transloco - person itay oded; 04.01.2021