Что выбрать для локализации Angular 9, @ngx-translate или @angular/localize?
Доброго времени, подскажите пожалуйста что лучше выбрать для локализации Aangular приложения.
Я обратил внимание что, библиотека @angular/localize создаёт в продакшене несколько приложений. Что не совсем подходит но есть форматирование date, валют .
@ngx-translate - неплохо работает для динамического переключения языков, но как я понимаю нет форматирования для date, валют.
Кто что подскажет от себя, так очень спорно всё при гуглении и не понятно что лучше выбрать ?
Задача: Мультиязычность для трёх языков, и готовые варианты форматирование .
yaroslav1996, нативную используйте, все остальные хуже.
Все json-переводилки просто хранят пары "ключ-значение", нативная в этом плане намного круче - она хранит место, откуда взят перевод, два опциональных поля для пояснения и опциональный ключ. То что генерятся наборы файлов для каждого перевода - это не недостаток (и не преимущество) - просто храните язык пользователя в куке и отдавайте ему нужный набор файлов на основе куки.
Единственный, но существенный, недостаток у встроенной - не было переводов текста в скриптах. Но в девятом ангуларе это исправили, хотя и с небольшими ограничениями и с костылями, но тексты в скриптах переводятся.
ngx-translate уже пару лет как объявлена умершей, поддерживается слабо
Андрей, Круто, очень развернутый ответ благодарю. Почему был интересен ngx translate, так как у нас была идея чтобы динамически добавлять языки а также переводы из панели управления. То есть аналог как в некоторых CMS реализовано, также проект будет стартовать как универсальное приложение так как нам очень важно SEO. Со стандартным модулем это возможно провернуть?, сорри может глупый вопрос. важно выбрать правильное направление
yaroslav1996, на первый взгляд добавлять языки и переводы без пересборки приложения не получится.
Насчёт seo - у вас приложение при старте не будет заполнено текстом, вместо текста будут заглушки. При медленном интернете, пока страница и перевод не загрузятся полностью - пользователь либо увидит служебные данные ngx translate, либо вместо текста будет просто белое пространство.
Некоторые считают, что это негативно сказывается на seo, но некоторые другие считают что нет) Как оно на самом деле - я не знаю. Со встроенным модулем такого не будет - сразу загрузятся нужные данные.
В любом случае, ngx-translate лучше точно не брать, создатель и главный разработчик его почти не занимается поддержкой (вроде перешёл в ангулар). Подробнее - тут https://github.com/ngx-translate/core/issues/783
Если стандартное решение не нравится, то лучше уж в @ngneat/transloco, как советовали, хотя это очень молодой проект (существует менее года), и может кардинально измениться.