web-dev-qa-db-ja.com

ngx-translateとi18nの違い

(Angular)アプリを翻訳する方法は複数ありますが、主な方法は次のとおりです。

ngx-translate

そして

Angular 2ネイティブi18n

私の知る限り、i18nはSEOの方がわかりやすいURLブラウジングのおかげで簡単です

例えば

app.com/de

app.com/en

一方、ngx-translateを使用すると、言語を簡単に切り替えることができます。

Ngx-translateの作成者はAngular i18nで雇われました。主な違いは何ですか(pro/cons)?

16
Domi

この問題があなたの質問に答えていると思います: https://github.com/ngx-translate/core/issues/495

13
Sarah Cassar

@ ocombe によると、 ngx-translate ライブラリの背後にある考え方は、Angularが追いつくまで、その後i18nのサポートを提供することでした。現在のところ、Angular i18nとこのライブラリにはいくつかの違いがあります。

  • Angularは一度に1つの言語でのみ動作します。言語を変更するには、アプリケーションを完全にリロードする必要があります。 JITサポートはJITで動作することを意味するだけですが、コンパイル中にテンプレートのテキストを置き換えるので、このライブラリはバインディングを使用するため、bootstrapで翻訳を提供する必要があります。欠点はバインディングがメモリを消費することであるため、Angularの方がパフォーマンスが向上します。ただし、コンポーネントにOnPushを使用すると、おそらく違いに気付かない

  • 現在のところ、Angularはテンプレートでi18nの使用のみをサポートしています。コードで使用できる機能に取り組んでいますが、まだ開発中です。このライブラリは、コードとテンプレートの両方で機能します

  • AngularはXLIFFまたはXMB(どちらもXML形式)をサポートしますが、このlibはデフォルトでJSONをサポートしますが、必要な形式をサポートする独自のローダーを作成できます(たとえば、POファイルのローダーがあります)

  • 角度はICU式(複数および選択)をサポートしますが、 ngx-translate ライブラリはサポートしません

  • Angularはangularコードを含むhtmlプレースホルダーをサポートしますが、このライブラリは通常のhtmlのみをサポートします(コンパイル時にではなく、実行時に実行され、Angular AngularJSにあったような)

  • ngx-translate ライブラリのAPIは、実行時に実行されるため、より多くのもの(オブザーバブル、イベントなど)を提供できるため、より完全になりますAngular does '持っている(ただし、翻訳を変更できないことを考えると、実際には必要ありません)

4
Chuma Umenze

TranslocoAngular-I18nNgx-translateTransloco Readmeファイル:

https://github.com/ngneat/transloco#comparison-to-other-libraries

1
itay oded