web-dev-qa-db-ja.com

Angular)のi18n翻訳ファイルの更新

私は現在、会社で使用しているAngularアプリにロケールを追加しているところです。いくつか考えた後、Angular 5を使用することにしました。 +ネイティブi18nサポート。

しかし、私が理解していることから、翻訳ファイルがng xi18n --outputPath src/locale/ --locale enで生成されるたびに、新しいファイルが作成されます。つまり、新しいi18nタグが追加されるたびに、古い翻訳がすでに含まれている以前のXLFファイルを新しい翻訳とマージする必要があります。

これは非常に面倒に思えるので、私の質問です。新しいトランスユニットを既存のXLFファイルに追加する方法はありますか?それとも、これら2つをマージできるツールはすでにありますか?

7
seBaka28

編集された回答

xliffmerge ツールを使用できます。 HTMLに新しい翻訳を追加した後、翻訳ファイルをマージできます

これが チュートリアル 角度の

基本的に、通常の抽出コマンドを実行した後、xliffmergeを呼び出して、翻訳ファイルを生成する言語を渡します。

ng xi18n --outputPath src/locale/ --locale en && xliffmerge --profile xliffmerge.json en fr

ツールのjson構成を指定できます

{
  "xliffmergeOptions": {
  "srcDir": "src/locale",
  "genDir": "src/locale"
   }
}

元の回答

翻訳にカスタムIDを設定してみてください

https://angular.io/guide/i18n#set-a-custom-id-for-persistence-and-maintenance

<h1 i18n="@@introductionHeader">Hello i18n!</h1>

抽出コマンドを実行すると、新しいブロックが追加されるだけで、既存のブロックには影響しません。

ところで、メインの選択肢(ngx-translate)のメンテナーは実際にはネイティブアプローチでangularチームと協力しているので、ネイティブオプションを使用するのは良い選択だと思います

8
David

以前の解決策で問題が発生しました:ERROR: language [...] node_modules\@ngx-i18nsupport\ngx-i18nsupport\xliffmerge\xliffmerge" is not valid

xliffmergeangular-clihttps: //github.com/martinroob/ngx-i18nsupport i18nを抽出/マージします。 package.jsonにコマンドを生成し、angular.jsonに新しいタスクの構成を生成します。マージ時にコンテキストグループとメモを保持します。

選択した出力パスpackage.jsonangular.json"src/locale"のデフォルト設定を変更する必要がありました。

0
svassr