(Angular)アプリを翻訳する方法は複数ありますが、主な方法は次のとおりです。
そして
私の知る限り、i18nはSEOの方がわかりやすいURLブラウジングのおかげで簡単です
例えば
app.com/de
app.com/en
一方、ngx-translateを使用すると、言語を簡単に切り替えることができます。
Ngx-translateの作成者はAngular i18nで雇われました。主な違いは何ですか(pro/cons)?
この問題があなたの質問に答えていると思います: https://github.com/ngx-translate/core/issues/495
@ 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 '持っている(ただし、翻訳を変更できないことを考えると、実際には必要ありません)
Transloco、Angular-I18nとNgx-translateTransloco Readmeファイル:
https://github.com/ngneat/transloco#comparison-to-other-libraries