it-swarm.com.de

Unterschiede ngx-translate vs i18n

Es gibt mehrere Methoden, um eine (Angular) App zu übersetzen. Die wichtigsten Hauptmethoden sind:

ngx-translate

und

Angular 2 native i18n

Soweit ich wusste, ist i18n aufgrund der sauberen URL-Suche mit SEO einfacher für SEO

z.B

app.com/de 

app.com/de

andererseits ist es mit ngx-translate einfacher, zwischen den Sprachen zu wechseln.

Ich weiß, dass der Schöpfer von ngx-translate von Angular für ihren i18n angestellt wurde .Kann mir jemand sagen, was die Hauptunterschiede sind (Pro/Cons)?

12
Domi

Ich glaube, dass dieses Problem Ihre Frage beantwortet: https://github.com/ngx-translate/core/issues/495

12
Sarah Cassar

Es gibt einen ziemlich vollständigen Vergleich zwischen Transloco , Angular-I18n und Ngx-translate in der Readme-Datei von Transloco:

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

1
itay oded

Laut @ocombe , Die Idee hinter der Bibliothek ngx-translate war immer die Unterstützung von i18n, bis Angular aufholt, danach wird diese Bibliothek wahrscheinlich verworfen. Im Moment gibt es noch einige Unterschiede zwischen Angular i18n und dieser Bibliothek:

  • Angular funktioniert immer nur mit einer Sprache. Sie müssen die Anwendung vollständig neu laden, um die Sprache zu ändern. Die JIT-Unterstützung bedeutet nur, dass sie mit JIT funktioniert. Sie müssen die Übersetzungen jedoch immer noch beim Bootstrap bereitstellen, da der Text in den Vorlagen während der Kompilierung ersetzt wird. Diese Bibliothek verwendet Bindungen, sodass Sie die Übersetzungen jederzeit ändern können . Der Nachteil ist, dass Bindungen Gedächtnis benötigen, so dass der Angular - Weg performanter ist. Wenn Sie jedoch OnPush für Ihre Komponenten verwenden, werden Sie den Unterschied wahrscheinlich nie bemerken

  • Angular unterstützt derzeit nur die Verwendung von i18n in Ihren Vorlagen. Ich arbeite an der Funktion, mit der Sie sie in Ihrem Code verwenden können, aber es wird noch gearbeitet. Diese Bibliothek funktioniert sowohl in Code als auch in Vorlagen

  • Angular unterstützt entweder XLIFF oder XMB (beide sind XML-Formate), während diese Bibliothek standardmäßig JSON unterstützt. Sie können jedoch Ihren eigenen Loader schreiben, um jedes gewünschte Format zu unterstützen (z. B. ein Loader für PO-Dateien).

  • Angular unterstützt ICU -Ausdrücke (plurals und select), die Bibliothek ngx-translate jedoch nicht

  • Angular unterstützt HTML-Platzhalter, einschließlich Winkelcode, während diese Bibliothek nur reguläres HTML unterstützt (da sie zur Laufzeit und nicht während der Kompilierung ausgeführt wird und in Angular kein $ compile wie in AngularJS vorhanden ist).

  • Die API der Bibliothek ngx-translate ist umfassender, da sie zur Laufzeit ausgeführt wird. Sie kann mehr Dinge (Observables, Events, ...) anbieten, die Angular nicht hat (aber nicht wirklich) Notwendigkeit gegeben, dass Sie die Übersetzungen nicht ändern können)

0
Chuma Umenze