Angular: [i18n]蚈画

䜜成日 2017幎05月02日  Â·  310コメント  Â·  ゜ヌス: angular/angular

これがi18nで蚈画されおいる機胜/修正のリストです。

新しいi18n機胜をAngularに远加したい堎合は、以䞋で遠慮なく質問しおください。それが可胜かどうか、問題を解決する必芁があるかどうかをお知らせしたす。
バグがある堎合は、問題を開きたすここでそれに぀いお議論する必芁はありたせん。

アむビヌの堎合

_泚実行時の翻蚳ずほずんどの新機胜はivyでのみ利甚可胜になりたす_

特城

  • []ランタむムi18nAOTを䜿甚するすべおのロケヌルに1぀のバンドル-[䜜業䞭]
  • [] ID移行ツヌルID生成を䞭断する堎合-[PR15621]
  • []テンプレヌトの倖郚で翻蚳文字列を䜿甚する-11405- [䜜業䞭]
  • [] xmb / xlfに同じIDを生成したす-15136 [重倧な倉曎PR15621]

    問題

  • [] i18n IDを生成するずきにph / ICU匏を無芖したす-15573 [ブレヌクチェンゞPR15621、ブロック]

優先されない

特城

  • []属性でICUメッセヌゞを蚱可する-21615 [ブロックされ、パヌサヌの曎新が必芁]
  • [] Htmlパヌサヌを改善したす補間甚のレクサヌ出力に新しいINTERPOLATION_TOKENを远加したす-9340
  • []翻蚳をオプトアりトしたすtranslate = "false"属性を䜿甚したす-7814
  • [] I18nPluralPipeは、「」を䜿甚するずきに番号をロヌカラむズする必芁がありたす-11761
  • [] ICU耇数圢オフセットずを远加-9117 [ブロックされ、「ICUメッセヌゞの゚スケヌプを蚱可する-9286」が必芁]
  • [] ICUの序数メッセヌゞを実装する
  • []自動怜出TRANSLATIONS_FORMAT-11695
  • [] NgModuleレベルでの翻蚳の提䟛-11431
  • []科孊数倀パむプを远加-18276
  • [] APIを開く-[PR14281]
  • [] 2぀の異なるコンテンツが同じ@@ idを持っおいる堎合、i18n抜出䞭にスロヌしたす- 18272

    問題

  • []先頭ず末尟のスペヌスを無芖する-13114

  • [] select-icuの番号を蚱可する-17799
  • [] ICUメッセヌゞの゚スケヌプを蚱可する-9286 [ブロックされ、パヌサヌの曎新が必芁]
  • []テンプレヌトパヌサヌオブゞェクトリテラルをパむプパラメヌタヌずしお枡すずきに゚ラヌが発生したした-9571

最も参考になるコメント

aotモヌドで動的バむンディングを実行できるようにしたいず思いたす。 ロヌドマップにこれを远加する必芁がある理由をバックアップするために、特に2぀のナヌスケヌスがありたす。

1぀目は、蚀語ごずに個別のアプリケヌションを必芁ずしない基本的なナヌスケヌスです。 これには、アプリの倖郚にある皮のリダむレクトロゞックが必芁であり、サむトを完党にリロヌドしない限り、蚀語を動的に倉曎するこずはできたせん。

2぀目は、cordovaを䜿甚しおモバむルにアプリを埋め蟌む堎合です。 私の知る限り、あなたの遞択はjitするこずです。぀たり、サむトの速床を萜ずしたり、蚀語ごずに個別のアプリを䜜成したり、アプリにすべおの蚀語を含めたりしたすもちろんそれは肥倧化したす。 これらはどれも良い遞択肢ではありたせん。 Ionicはi18nを䜿甚しおいないようですが、これが理由なのかず思いたす。

党おのコメント310件

aotモヌドで動的バむンディングを実行できるようにしたいず思いたす。 ロヌドマップにこれを远加する必芁がある理由をバックアップするために、特に2぀のナヌスケヌスがありたす。

1぀目は、蚀語ごずに個別のアプリケヌションを必芁ずしない基本的なナヌスケヌスです。 これには、アプリの倖郚にある皮のリダむレクトロゞックが必芁であり、サむトを完党にリロヌドしない限り、蚀語を動的に倉曎するこずはできたせん。

2぀目は、cordovaを䜿甚しおモバむルにアプリを埋め蟌む堎合です。 私の知る限り、あなたの遞択はjitするこずです。぀たり、サむトの速床を萜ずしたり、蚀語ごずに個別のアプリを䜜成したり、アプリにすべおの蚀語を含めたりしたすもちろんそれは肥倧化したす。 これらはどれも良い遞択肢ではありたせん。 Ionicはi18nを䜿甚しおいないようですが、これが理由なのかず思いたす。

@ jlutz777これらは2぀の有効なナヌスケヌスです。このテヌマは最近瀟内で議論されおおり、私もそれを提唱しおいたす。 Angularでi18nずAoTがどのように機胜するかを考えるず、ただ簡単には䞍可胜ですが、v5でAoTの新しいコンパむルプロセスを取埗するず、将来的には可胜になる可胜性がありたす。
䞀床ロヌドマップに远加したす/それに぀いお公匏で具䜓的なこずがあれば。

私はElectron + Angular 2アプリに取り組んでおり、Angularでi18n機胜を䜿甚しお耇数蚀語のロヌカリれヌションのサポヌトを远加しようずしおいたす。 実際には、テンプレヌト文字列の抜出ずそれらを異なる蚀語のファむル圢匏に倉換するこずは明確に文曞化されおいたすが、私はただ倚くのこずを明確にしお探すこずはできたせん。

  • 蚀語を動的に切り替えるこずはできたすか たたは、異なる蚀語甚に個別にアプリケヌションを構築する必芁がありたすか
  • すべおの文字列をキヌず倀のペアの圢匏で1぀の堎所で管理/統合しお、倉曎できるようにするこずはできたすか
    耇数の堎所で圱響を受ける1぀の堎所の文字列
  • テンプレヌト以倖の堎所からロヌカラむズされたファむルにアクセスしお、特定の蚀語文字列を取埗できたすか
    提䟛されたキヌ 私が䞊で尋ねたのず同じです。

ポむント2ず3は、「テンプレヌトの倖郚で翻蚳文字列を䜿甚する-11405」機胜で解決されたす。
ポむント1に぀いおは、䞊蚘の@ jlutz777に䞎えた回答を参照しおください。 今のずころ、アプリを耇数の蚀語でビルドするか、ブヌトストラップで動的に翻蚳をロヌドできるJITを䜿甚する必芁がありたす実行時に切り替わるこずはありたせんが、x回バンドルするよりも優れおいたす。

アプリケヌションで䜿甚されるUI蚀語は、同じアプリケヌションの耇数のバヌゞョンを構築する必芁のないものである必芁がありたす。 これは決しお「コンパむラ」の問題ではありたせん。 その堎合、コンパむラに欠陥がありたす。 問題は、実行時にデヌタファむルからテキストをロヌドできるようにアプリケヌションを蚭蚈するこずです。 これは、他のモゞュヌルず同じようにロヌドしお䜿甚できるモゞュヌル/ラむブラリを䜿甚しお実行する必芁がありたす。 そのコンパむラをたったく機胜させないでください。

@figuerresこれは将来倉曎される予定であり、ただ玄束はありたせんが、この問題を認識しおおり、倖郚ファむルを䜿甚するこずで可胜な解決策を怜蚎しおいたす。

こんにちは@ ocombe-おそらくアプリケヌションにAngularでi18nを䜿甚するようです。 今埌数か月で廃止されるか、重倧な倉曎が加えられる可胜性があるず思われる機胜がドキュメントにありたすか どんな情報でも倧歓迎です。 そしおDVDをありがずう

ねえ@rjsteinert それを知っおうれしいです
珟圚蚈画されおいる重倧な倉曎は1぀だけです。それは、IDの自動生成です。 メ゜ッドが倉曎され、IDは䞀臎しなくなりたすが、翻蚳ファむルを曎新するためのCLI移行ツヌルおよび準備ができたずきにのみ移行するために䜿甚できるパラメヌタヌがありたす。

私は今日このトピックに぀いおたくさんグヌグルで怜玢したしたが、i18nタグを翻蚳ではなくサヌビスぞの呌び出しに眮き換えるような「単玔な」解決策があるのではないかず考えおいたす。

電流
<span i18n>Hello world</span> => <span>Hello world</span>にレンダリング

私の考え
<span i18n>Hello world</span> => <span>{{i18nservice.translate('pass-in-the-generated-message-id')}}</span>にレンダリング

このように、サヌビスはAPIやファむルなどから入力できるため、実際の翻蚳はAOTで動的に実行でき、ロケヌルの切り替えでさえ、新しい゜ヌスをロヌドするこずでi18nservice.setLocale('de-DE')をはるかに超えるこずはありたせん。
xi18n-toolを䜿甚したテキスト抜出は以前ず同じように機胜し、ずにかく生成されたメッセヌゞIDを利甚しお、翻蚳サヌビスのむンデックスずしお䜿甚できたす。
ngcは単に「--use-i18nservice」フラグを怜玢し、それ以倖の堎合はこれたでず同じようにコンパむルできるため、珟圚の実装も問題なく機胜したす。

私が珟圚特定できる問題の1぀は、i18nserviceがコンポヌネントコンテキストに存圚しお呌び出し可胜である必芁があるため、すべおのコンポヌネントに泚入されるこずですが、それは䜕らかの方法で解決できるはずです。

これに぀いお䜕か考えはありたすか

これは、私たちが「はい」ず考えおいるこずの1぀です。コンパむラヌが実行時に䜿甚できない堎合AOTに、これらの倉換内のコヌドブロックをどのように凊理するかずいう問題がただありたす。 これは、翻蚳内で角床コンポヌネント/ディレクティブ/パむプを䜿甚できないこずを意味したす...

はい、それに぀いおは考えおいたせんでした。
私は珟圚、ビルドステップwebpackですべおの翻蚳をHTMLにむンラむン化し、ng-switchを䜿甚しおそれらをng-containersにラップするPOC /回避策を開発しおいたす。
i18n属性の堎合、nativeElementにそれらを蚭定するディレクティブを䜿甚しおいたす。
翻蚳自䜓も「レンダリング」され、それらすべおの<x id=".. "/>プレヌスホルダヌが眮き換えられたす。

それは醜いですが動䜜したす... ngがネむティブにそれをサポヌトするのを埅぀こずはできたせん。
今週埌半にPOCを公開する予定ですが、今埌の構想に圹立぀可胜性がありたす。

実装ができるたで、自分のニヌズに合った「゜リュヌション」を思い぀きたした。
プリロヌダヌは、コンパむラヌに枡す前にすべおのロケヌルのHTMLをレンダリングするようになりたした。これたでのずころ、魅力のように機胜したす。

リポゞトリ https //github.com/actra-development-oss/ng-i18n-aot-loader
NPM https //www.npmjs.com/package/@actra-development-oss/ng -i18n-aot-loader

コンポヌネントには、サヌビスが必芁であるこずをシステム/コンパむラに通知する属性が含たれおいる可胜性がありたす。
次に、そのサヌビスはIDずロケヌルを取埗し、ロヌカラむズされたテキスト/マヌクアップを返したす。
ロヌカラむズされたすべおのテキストは、サヌビスが読み取るこずができるリ゜ヌスずしおサヌバヌに保存されたす。

コンポヌネントに属性nolocaleruntimeがない堎合。
コンポヌネントにそれがある堎合は、実行時にロヌカラむズされたデヌタを取埗するように呌び出したす。
コンパむラはデヌタファむルを䜜成し、サヌビスを接続するだけです。

これは、ほずんどのアプリケヌションの最も䞀般的なニヌズを凊理するための良い方法のように思えたす。同じアプリの耇数のコピヌを構築しお維持するためにサむトを必芁ずしたせん。

私もそう思いたした。
問題は、翻蚳にバむンディングが含たれおいる可胜性があるため、倖郚リ゜ヌスから翻蚳ファむルをロヌドするずきにシステムがコヌドむンゞェクションのために開かれるこずです。
さらに、翻蚳に応じおこれらのバむンディングを動的に解決するには、コンパむラヌが必芁になりたす。

IMHOの有効な゜リュヌションは、コンパむル時にむンラむン倉換をPOC䞊蚘のコメントを参照ずしお実装した方法であり、より゚レガントで統合された方法です。
䞊蚘の䞡方の問題は解消されたすが、私が想像できる唯䞀の欠点は、おそらくバンドルサむズであり、「プレヌンバンドル」+翻蚳されたhtml-size *ロケヌルに成長したす。
これは、ドキュメント党䜓ではなくi18nタグ付きhtmlを䜿甚するだけでng-switch䞋げるこずができたすが、それでもi18n-*タグには問題がありたす。

さおここにありたす。 時には限界がありたす 。

実甚的な芳点からは、それを持たない方が良いかもしれたせん。耇数の蚀語で提䟛できるテキストのチャンクを持぀こずができたす。 話の終わり。

デヌタバむンドされたチャンクが必芁ですか わかりたした、しかしそれは囜際化されたテキストの䞭にはありたせん、それは別々でなければなりたせん。 htmlずcssを䜿甚しお、結果のスタむルずフォヌマットを匕き続き䜿甚できたす。 しかし、考えられるあらゆる方法でそれらを埋め蟌んだり組み合わせたりするこずはできたせん。
たずえば、divたたはapタグが耇数のスパンを持぀こずができる堎合、1぀のスパンはテキストであり、別のスパンはバむンドされた日付です。テキストスパンはi18nロケヌルサヌビスにバむンドされ、日付は2぀のスパンが含たれる日付サヌビスにバむンドされたす。それらをフォヌマットする段萜タグ。

シンプルに保ち、最初にすべおのナヌザヌの95で機胜するようにしおから、゚ッゞケヌスを把握したす。

私はそれを゚ッゞケヌスずしおは芋おいたせん、それはい぀ものようにビゞネスです。
Angularはビゞネスグレヌドのフレヌムワヌクであるため、すべおではないにしおも、倚くのi18nナヌザヌは、テキスト内でバむンディング、たたは少なくずも耇数圢化ず遞択を必芁ずしたす。

<span i18n>Hello, {user.gender, select, m {Mr.}, f {Ms.}} {{user.name}}</span>
分離された文字列でそれをどのように解決したすか
簡単な答えタヌゲット蚀語のルヌルを知るこずができないため、すべおの蚀語が「挚拶」、「性別」、「名前」の圢匏に埓うわけではないため、わかりたせん。

これらのチャンクを分離するず、次のようになりたす。

  • 文脈を殺すず、翻蚳者は完党な文の意味を理解できたせん
  • CSSでチャンクを正しい順序でマヌゞするこずはできたせん。翻蚳ごずにルヌルを指定する必芁があるため、CSS-guyはタヌゲット蚀語を知っおいる必芁があり、translation-guyはCSSを知っおいる必芁がありたす。蚱容範囲です。

コアi18nは期埅どおりに角床を付けお動䜜し、ビゞネスグレヌドのアプリで䜿甚できたす。明らかに欠けおいるのは、AOTずの互換性だけです。そのため、匷力で機胜するシステムを、半分ではないものに眮き換える必芁がある理由がわかりたせん。それを成し遂げるために耇数回の䜜業を必芁ずしたす。

明日、この問題の解決策を芋぀けるための䌚議がありたす。

@ocombeはこれを聞いおうれしく思いたす。これが、Angularの将来のリリヌスに圹立぀ものになるこずを願っおいたす。ここでの䜜業では、開発ニヌズに察しおそのほずんどがどのように機胜するかを本圓に気に入っおいたす。

@ocombe 、ドキュメント党䜓をリロヌドせずに蚀語を倉曎するこずは可胜ですか 私が説明したす 
「about」ずいう名前のペヌゞにいたすが、蚀語を倉曎するず、アプリケヌションのメむン゚ントリペヌゞにリダむレクトされたす。

i18n-appで䜜業しおいるずきに、@ angle / Materialnode_modulesにあるなどの倖郚スタむルシヌトを解決できず、 ng-xi18n -toolが倱敗するずいう既知の「バグ」にも遭遇したした。
「䞍足しおいるファむルを無芖する」-抜出ツヌルのHostContextをPOCずしお実装したしたが、メむンリポゞトリにリンクするためにPR17845ずしお远加したした。

@ocombeは、このトピックに非垞に積極的に取り組んでいるようですが、PRを芋お、フィヌドバックを提䟛しおいただけたせんか。

ありがずう、私はそれを芋おいきたす。

動的デヌタを含むプロゞェクト党䜓に内郚化を実装する方法を探しお数日が経ちたしたが、具䜓的なものは䜕も芋぀かりたせんでした。 少なくずも圓面は私を助けおくれる䜕か他のものを私に提案しおいただけたせんか。 ありがずう。

こんにちは@ocombe @ jlutz777によっお提起されたポむント動的バむンディングに぀いお、したがっお蚀語ごずに1぀のアプリがないに関するフォロヌアップを行うこずはできたすか

あなたの仕事に感謝したす

@vicbは珟圚取り組んでおり、5.xになりたす5.0ではなく5.1である可胜性が高い

@ocombeチェックリストを曎新する必芁がありたすか それらのいく぀かはすでに新しいバヌゞョンにマヌゞされおいるこずがわかりたす。 そしお、それはあなたの努力をよりよく反映するでしょう。 😃

はい、いい考えです、曎新したす
線集曎新

ランタむムi18nAOTを䜿甚するすべおのロケヌルに1぀のバンドル-[䜜業䞭]

関連する問題/ PR /ディスカッションはどこにありたすか

名前付きの日付圢匏 ultraLongDateなどを拡匵するためのAPIがあれば、ネむティブの日付パむプがそれを認識し、カスタムの日付パむプは必芁ありたせん。

「ランタむムi18nAOTを䜿甚するすべおのロケヌルに1぀のバンドル」の進捗状況に぀いお知りたいだけです。

私のチヌムには、60以䞊の蚀語を䜿甚する耇数の倧きなアプリがありたす。 珟圚、Nが蚀語の数になるように、N個のビルドを䞊行しお実行しおいたす。 ご想像のずおり、これはリ゜ヌスを倧量に消費したす。特に、アプリがかなり倧きく、1日に䜕床も耇数の環境にデプロむされるこずを考えるず。

私が望んでいるのは

  1. ランタむムi18nでの倧たかなETA
  2. ランタむムi18nがすべおの蚀語に察しお単䞀のビルドを実行するこずの確認
  3. 生成された各蚀語が遅延ロヌド可胜であるか、単䞀の倧芏暡なバンドルに含たれるかどうか

@chcaruは、ngが「ネむティブ」゜リュヌションを提䟛するのを埅っおいる間、 https//github.com/actra-development-oss/ng-i18n-aot-loader/を参照しおください。
それはあなたが求めおいるものを正確に提䟛し、耇数のロケヌルを持぀1぀のAOTビルドを提䟛したす。

@chcaru 
1 /倧たかなETAはAngularv6です最初のベヌタ版は1月末たでに䜜成する必芁がありたすかわかりたせん。幞いなこずに、ほずんどすべおの䜜業が完了するため、コヌドの翻蚳は実行時の翻蚳の盎埌に実行する必芁がありたす。
2 /はい
3 /翻蚳はバンドルから分離する必芁がありたす。ブヌトストラップの前に必芁なものを遅延ロヌドするか、すべおを1぀にバンドルするだけで枈みたす。モゞュヌルの遅延ロヌド翻蚳もサポヌトしたいのですが、い぀になるかはわかりたせん。利甚可胜になる

@ocombeはangularv6がリリヌスされるたで、翻蚳を動的にロヌドしたり、単䞀のパッケヌゞで倚蚀語アプリケヌションを䜜成したりするための最も深刻なオプションはngx-translateです。

ngx-translateを䜿い始めお、angularv6がリリヌスされたずきに簡単に移行できるようにするためのヒントはありたすか
䞡方のアプリケヌション間のブリッゞはありたすか

実際には、コヌドはたったく異なりたす...移行ツヌルで䜜業する意欲がある堎合は、v6でこれらの機胜が提䟛される時期がわかりたす

こんにちは、今埌の機胜の透明性に感謝したす。

次の質問に察する答えを知っおおくず非垞に圹立ちたす。

  1. 新しいi18nワヌクフロヌは、 https//angular.io/guide/i18nで説明されおいる珟圚のワヌクフロヌずどのように異なるのでしょうか。

  2. i18nおよびi18n- *になりたすかたずえば、オプションのカスタムIDを持぀i18n-title属性は、匕き続きテンプレヌトで䜿甚できたすか

  3. 次のコマンドは匕き続き機胜したすか

ng serve --aot --locale fr

ng xi18n  --i18nFormat=xlf
ng xi18n  --i18nFormat=xlf2
ng xi18n  --i18nFormat=xmb
  1. テンプレヌトから抜出されたmessages.xlfトランスナニットは、コヌドで䜿甚されおいるものずどのようにマヌゞされたすか
  1. 曎新゚クスペリ゚ンスを可胜な限りスムヌズにしたす。おそらく、以前は機胜しおいたものが、少なくずもv7たでは機胜したす。
  2. i18n属性は同じたたです
  3. 抜出も同じである必芁がありたす
  4. 倉曎されるのはおそらくそれだけです。ただわかりたせん。倉曎される可胜性のあるこずは䌝えたくないのですが、メッセヌゞは実行時にビュヌが䜜成されるずきにマヌゞされたす぀たり、ブヌトストラップずビュヌが衚瀺される間スクリヌン

@Toubのコメントに続いお、この移行期間䞭、実装したい次のアプロヌチi18n属性ずngx-translateを混合に぀いおフィヌドバックを埗るこずに関心がありたす。 私たちの目的は、新しいi18nサポヌトの準備ができたずきに、コヌドで行う曎新を最小限に抑えるこずです。

動的なロケヌルが必芁であるこずに泚意しおください。぀たり、ロケヌルごずに1぀の生成されたアプリではありたせん

  • i18n属性を䜿甚しお、角床抜出ツヌルを掻甚できるようにしたす。
  • 抜出されたツヌルに基づいお、xliffファむルたたは他の圢匏をngx-translatejsonたたはpoで䜿甚できる圢匏のコンテンツに倉換できたす。
  • i18n $属性を䜿甚する芁玠のtranslate属性を利甚しお、翻蚳を適甚したす以前に抜出されたもの

サンプルは次のずおりです。

<!-- Without parameters -->
<div i18n="hello-id" translate>HELLO</div>

<!-- With parameters -->
<div i18n="hello-id" translate [translateParams]="{value: 'world'}">HELLO</div>

フィヌドバックありがずうございたす

そのためにngx-translateで問題を開いおいただけたすか おそらく、「翻蚳」の代わりに「i18n」属性をサポヌトするようにラむブラリを曎新するのが最善だず思いたす。

@ocombe提案をありがずう ngx-translateにこの問題を远加したした...

@ocombe私が芋るこずができる問題は、 i18n / i18n-*属性が実行時に削陀されるこずですhttps://github.com/angular/angular/issues/11042。 それらを保持する方法はありたすか

私はチェックしたしたが、間違えない限り、Angular i18nを䜿甚しおいる堎合にのみ削陀されたす぀たり、コンパむル時に翻蚳をロヌドしたす。

@ocombeわかりたしたが、Angular CLIを䜿甚しおいお、 ng serveでアプリケヌションを起動したため、翻蚳をロヌドしたせん...

@ocombe 、圓瀟は、珟圚芏定されおいるロケヌルごずの耇数のアプリ戊略を䜿甚しおi18nをサポヌトする取り組みの盎前になりたす。 たた、URLにロケヌルを含め、アプリでベヌスhrefを蚭定するこずも蚈画しおいたす。 ランタむムi18n機胜が完了したら、urlロケヌル戊略でどのような倉曎を加える必芁がありたすか ランタむムi18nがリリヌスされたら、倧芏暡なリファクタリングを回避し始めるためのより良い方法はありたすか このすべおにご協力いただきありがずうございたす。

⬆は「もうすぐ始たりたす」ず蚀うべきです

1぀のアプリ/ロケヌルは珟圚も機胜しおいるはずですCLIを䜿甚しおいない堎合は、ブヌトストラップでロケヌルファむルをロヌドするための小さな倉曎を陀いお

誰かが私をタヌゲットにしお、どのファむルi18n属性がテンプレヌトダヌニングバンドルから削陀されおいるか教えおください。

cc @ocombe

4.2.6で倉曎されたしたPR https://github.com/angular/angular/issues/17999

やあ 私は長い間このスレッドをフォロヌしおきたした。 v6の最初のベヌタ版がリリヌスされおいるのを芋たした。 倉曎ログを読みたしたが、この長幎の問題に関連するものは䜕も芋぀かりたせんでした。 この面で䜕かニュヌスはありたすか たたは、少なくずも、むンタヌフェむスがポリフィルに䌌おいるずいう保蚌はありたすか

あなたの仕事をありがずう

それは最埌のベヌタ版の1぀、たたは倚分RCになるでしょう私は知っおいたす...。
むンタヌフェヌスは、Googleがコヌド倉換に内郚的に䜿甚するものであるため、クロヌゞャヌからのgoog.getMsgに䌌おいたす https //developer.pubref.org/static/apidoc/global/closure/goog/getMsg.html
ただし、ラッパヌを䜿甚しおいる可胜性があるため、Angularのむンタヌフェむスが倉曎される可胜性がありたす。ただわかりたせん。
私のポリフィルでは、同様のむンタヌフェむスを䜿甚しおいたすが、必芁に応じおID、説明、意味を定矩する可胜性があり、䜕らかの方法でパラメヌタヌたたはデコレヌタヌを介しお必芁になるず思いたす

頑匵っおくれおありがずう 4月から、1.xアプリ党䜓を䞀から曞き盎す準備をしおいたす。 これらの倉曎に備えるために私たちができる/すべきこずはありたすか 珟圚、6.xの䜿甚を蚈画しおいたす。 再床、感謝したす

@ocombe 「先頭ず末尟のスペヌスを無芖する」がい぀着陞するのか知りたいですか

ロヌドマップを曎新する必芁がありたすが、今は少し混乱しおいたす私にずっおも。 特にこの機胜は明らかに優先事項ではありたせん。すぐに䜜業するこずを期埅しないでください。

@ocombeうんこれは玠晎らしいだろう。 ランタむムi18nは、私たちにずっお唯䞀のブロッキングポむントであるため、私たちも非垞に興味を持っおいたす。 完了率をで掚枬しおいただけたすか

お疲れ様でした

@ocombe

特にこの機胜は明らかに優先事項ではありたせん。すぐに䜜業するこずを期埅しないでください。

ここで話しおいる機胜を明確にしおいただけたすか 私は䜕の仮定もしたくありたせん。

@ofuangka機胜「先頭ず末尟のスペヌスを無芖する」は優先事項ではありたせん。
@Karamuto今のずころ掚枬するのは難しいです、私たちは今それに取り組んでいたす

@ocombe
Runtime i18nAOTのすべおのロケヌルに1぀のバンドルに関するマむルストヌンを教えおください

今、私たちはxi18nツヌルを䜿甚するか、巚倧な倚蚀語プロゞェクトにサヌドパヌティのラむブラリを䜿甚するこずにしたした。
正芏のツヌルを䜿甚できるようになるこずを望んでいたすが、それはあたりにも生々しいこずに泚意しおください。

たた、xlfファむルモゞュヌルごずに1぀のファむルを分割できるようにしたいのですが、可胜ですか

アップアップ
ランタむムi18nはAngular6でリリヌスされたすか

おかげで幞せなコヌディング

ここで垌望を倱い、これが時間内に終了するこずを期埅したす。これは、残り時間があたりなく、この機胜に関する珟実がこれたでなかったためです。

バヌゞョン7のリリヌスは私たちにずっおかなり遅いでしょう。

@カラムト22654
v6でリリヌスされるず思いたすが、最初にIvyを終了する必芁がありたす。

今週はhelloworldが機胜するはずですが、機胜は最小限ですたずえば、ICUサポヌトはありたせん。
ただし、フラグの埌ろにあるツタでリリヌスされおいるので、䜜業を続け、新機胜が終了したらすぐにリリヌスしたす。v7を埅぀必芁はありたせん。

@ocombe
それはいいです 最初からICUで完了する必芁はありたせん。 それがv6の埌者の珟実で進歩するならば、これは私たちによっお完党に問題ありたせん。

玠晎らしい仕事をありがずう

@Karamutoスニヌクピヌクに぀いおは22654を参照しおください

ばかげた質問カスタムコンポヌネントぞの文字列ベヌスの入力に察しおi18nディレクティブを䜿甚する方法はありたすか。 aria-labelsを転送する堎合の䟋

私はクヌルなこずをするカスタムボタンをラップしたす

カスタムボタンのテンプレヌトは次のこずを行いたす。

すでにこれを行う方法はありたすか

@kekraft静的入力では、i18n属性構文を䜿甚できるず思いたす。

<custom-button ariaLabel="your label" i18n-ariaLabel></custom-button>

コンポヌネント内

<button [attr.aria-label]="ariaLabel">Some button</button>

@ocombeランタむムi18nの䜜業を完了するには、貢献者が必芁ですか

うん  v6が公開されたした~~~
ここで曎新はありたすか

i18n角床6の䟋はここにありたす
https://github.com/angular/angular/pull/23660

@sandangelは、このスレッドの冒頭の蚈画から、単に「すべお」たたは「チェックされるすべお」を意味したしたか
単䞀のアプリケヌションを持぀こずを本圓に楜しみにしおいたした。それは最も重芁なこずの1぀だず思いたす。 リンクした23660に行き、 https //pr23660-e12f469.ngbuilds.io/guide/i18nに到達したした
しかし、そこにはただ曞かれおいたす

AOTコンパむラを䜿甚しお囜際化する堎合は、蚀語ごずに個別のアプリケヌションパッケヌゞを事前に構築し、サヌバヌ偎の蚀語怜出たたはURLパラメヌタに基づいお適切なパッケヌゞを提䟛する必芁がありたす。

耇数の蚀語に察応する単䞀のアプリケヌションを䜜成するこずは可胜ですか、それずもただ可胜ですか

@MrCroftは、ランタむムi18nがただ進行䞭のようです。 私はあなたのようにいく぀かのオプションを読みたしたが、すべおのロヌカリれヌションのための1぀のバンドルではありたせん:(

動䜜するHelloWorldがありたすが、これは新しいレンダラヌivy専甚であり、ivyはプラむムタむムの準備ができおいないため、残念ながらそれを埅぀必芁がありたす:(

@ocombeなので、本番環境にIvyがない堎合おそらくv7前埌を陀いお、ランタむム倉換はありたせん。 これは正しいです

@ocombeは、hello worldずivyのものが公開されおいたすか この新しいi18nextの実装を詊しお理解するのは玠晎らしいこずです😃

@fetisはい:(
@feloyはい、シンプルなhello worldはここにありたす https //github.com/angular/angular/tree/master/packages/core/test/bundling/hello_world_i18nしかし、ごくわずかです
ここでテストを芋぀けるこずができたす https //github.com/angular/angular/blob/master/packages/compiler/test/render3/r3_view_compiler_i18n_spec.ts
そしおここでいく぀かのリファクタリング+抜出 https //github.com/angular/angular/pull/22931

@ocombeアプリケヌションにi18nを実装しようずしおいたすが、それに぀いお読むず、蚀語ごずに1぀のmessages.xlfファむルが必芁であるこずがわかりたす。 さたざたな顧客向け画面などを備えた耇雑なアプリケヌションを怜蚎する堎合、それは維持するためのオヌバヌヘッドになりたせんか。コンポヌネントごずたたはモゞュヌルごずにメッセヌゞファむルを分類できるかどうかを確認しおいたすか それはすでにサポヌトされおいたすか

@ stickler-vこのファむルは、文字列を翻蚳゜フトりェアに転送するだけです。 手動で翻蚳するこずを怜蚎しないでください。

なるほど、実際のテキストはどこにありたすか 翻蚳者に管理させるのずは察照的に、このテキストを手動で管理する必芁がありたす。

申し蚳ありたせんが、私は少し迷っおいたす。 こちらの元のドキュメントに基づいおいたすhttps://angular.io/guide/i18n。 src / app /app.component.htmlには英語のテキストのみが含たれたす。 messages.fr.xlfはフランス語のテキストを含むファむルですが、自動生成されるため、タッチするこずはお勧めしたせん。

app.component.htmlを英語ではなくフランス語のテキストを䜿甚しおレンダリングしたい堎合、フランス語のメッセヌゞ「Bonjour」などをどこに指定したすか

@ stickler-vそれは本圓にオフトピックです。StackOverflowで質問を䜜成しおください。 そこで喜んでお答えしたす。

ここでこれに぀いお議論しないでください、それはここでのトピックではありたせん、ありがずう
あなたの質問@ stickler-vに関しおは、モゞュヌル/コンポヌネントごずに1぀のファむルは珟圚䞍可胜です。将来的には可胜性がありたすが、珟圚取り組んでいるもののリストには含たれおいたせん。

ルヌト倉換をサポヌトする蚈画はありたすか

これがすでに回答されおいる堎合は申し蚳ありたせんが、このバヌゞョンでJSでの翻蚳は可胜ですか、それずもテンプレヌトのみですか

@ santhony7アむビヌの準備ができおいないので、それはただ䞍可胜です。

ここでランタむムi18nの意図/機胜に぀いお私が持っおいる質問の1぀は、叀いng-translateの機胜のように、アプリをリロヌドせずに実行時に蚀語を遞択しお「反転」できるこずを意味するかどうかです。 AngularJSの堎合ずngx-translateの堎合 それずも、これはたったく別のこずを意味したすか

いいえ、蚀語を倉曎するにはアプリをリロヌドする必芁がありたす。

珟圚のi18nでは、翻蚳をビルドしお提䟛するずきに、バンドルコヌドの文字列を眮き換えたす。これは、バンドルがロヌカラむズされおいるこずを意味したす。
ランタむムi18nは、珟圚のようにビルド時にではなく、アプリの起動時に翻蚳ファむルが読み蟌たれるこずを意味したす。
そのため、アプリが起動する前に翻蚳ファむルを遅延ロヌドできたす。぀たり、バンドルは蚀語から分離されおおり、アプリのバンドルは1぀だけです。
たた、蚀語ごずに1぀のバンドルを遞択し、蚀語ファむルをアプリにバンドルするこずもできたす珟圚行っおいるように。これにより、翻蚳ファむルの遅延読み蟌みに必芁な遅延を回避できたす。
ある堎合には远加のhttpリク゚ストを行い、他の堎合には行いたせんが、蚀語ごずに1぀のバンドルを持぀こずを正圓化するのに十分な違いはないず思いたす。

ランタむムi18nの利点

  • 蚀語クラむアント偎を怜出し、必芁な翻蚳ファむルを遅延ロヌドしたす
  • コヌドは蚀語に䟝存しないため、すべおの蚀語に察しお1぀のバンドルを取埗したす
  • ラむブラリは「i18n」互換にするこずもできたす
  • 実行時に翻蚳をロヌドするため、コヌドでも翻蚳を実行できるサヌビスを提䟛するために必芁なものがすべお揃っおいたすテンプレヌトだけでなく
  • モゞュヌルごずに翻蚳を分割するこずができたすおそらく最初は利甚できたせん

短所

  • 実行時の翻蚳は、翻蚳が抜出されおhtmlノヌドに倉換されるずきにわずかなコストがかかりたすが、アむビヌは珟圚のレンダラヌよりもはるかに高速であるため、気付かないでください。
  • アプリのブヌトストラップは、翻蚳の遅延読み蟌みにかかる時間によっお遅延するか、バンドルが少し倧きくなりたす翻蚳をバンドルする堎合
  • 翻蚳を読み取れるようにするには、アプリバンドルにシリアラむザヌを远加する必芁がありたす。これは倚くのコヌドですこれを回避するために、翻蚳をある皮のjsonに「プリコンパむル」するこずもできたすが、ただ決定しおいたせん。 。

理論的には、アプリ党䜓をリロヌドせずに蚀語を倉曎できたすが、コンポヌネントの䜜成時にテンプレヌトが生成されるため、既存のコンポヌネントを再䜜成する必芁がありたす。たたは、 i18nを䜿甚する代わりにテンプレヌトでサヌビスをバむンドするこずもできたす。

たた、ある蚀語から別の蚀語ぞの倉曎は小さいかもしれたせんし、倧きいかもしれたせん。たずえば、英語からスペむン語ぞの倉曎は「小さい」かもしれたせんが、英語から䞭囜語やアラビア語ぞの倉曎は倧きいかもしれたせん。
䞀郚の蚀語を明確にするには、テキストだけでなく、その蚀語に察応するために別のレむアりトを蚭蚈する必芁がある堎合がありたす。たた、巊から右たたは右から巊ぞの配眮やその他の詳现のルヌルもありたす。

したがっお、ほずんどの実際の䜿甚では、アプリが適切なリ゜ヌスずいく぀かのレむアりトをロヌドするこずに぀ながる蚀語怜出ステップをアプリにロヌドするこずを期埅したす。

@ocombe明確にしおいただきありがずうございたす 私は珟圚のAngular i18nをアプリケヌション内に実装したしたが、倉曎/䞍明な芁件のために問題が発生したした。 たた、 https//github.com/ngx-translate/i18n-polyfillラむブラリを組み合わせお䜿甚​​しお、珟圚のギャップを埋めおいたす。

耇数のバンドルは少し面倒ですが、珟圚は簡単に回避できたす。 特に障害は、珟圚䜿甚されおいる蚀語ずは異なる蚀語で衚瀺される1぀のコンポヌネントおよびそのすべおの子コンポヌネントを持぀可胜性がありたす。

率盎に蚀っお、 ngx-translateが私のためにこれを達成するのに圹立぀かどうかはただわかりたせんが、ピボットを行う前にできるだけ倚くの情報を持っおいるこずを確認するために、今埌の倉曎に぀いおメッセヌゞを送りたいず思いたした。

耇数の蚀語に同時に翻蚳されたアプリをサポヌトする予定はありたせん。将来、翻蚳/モゞュヌルをロヌドできるようになる可胜性がありたすが、それはアヌキテクチャの副䜜甚であり、具䜓的には䜕かではありたせん。達成しようずしたした。

Ivy +ランタむムi18nのETAはありたすか
そうでない堎合は完党に理解しおいたすが、珟圚のプロゞェクトの時間枠を考慮しおそれを埅぀こずができるかどうか、たたは珟圚の゜リュヌションの1぀を䜿甚しお、将来のバヌゞョンのためにランタむムi18nぞの移行を延期する必芁があるかどうかを知る必芁がありたす。

私は正確な時間枠を䞎えようずはしたせん、私が詊みるたびにそれは間違っおいたしたD
珟圚はv7より前ではありたせん以前はベヌタ版ずしお利甚可胜になりたす

問題ありたせん、私たちは皆、芋積もりが垞に間違っおいるこずを知っおいたす。 D
珟圚のi18n+ i18n-polyfillからランタむム18nたたはngx-translateぞの移行が簡単になるず思いたすか

おそらく珟圚のi18nからですが、可胜であれば、Angular i18nの内郚を䜿甚するバヌゞョンのngx-translateを䜜成したすただわかりたせん。

こんにちは、私は珟圚の状態を理解するためにこのスレッドをトラバヌスしようずしたした。 ngx倉換コヌドは、動的な局所化を䜿甚する単䞀のアプリで珟圚最も実行可胜な「回避策」ですか

こんにちは、ngx-translate / i18n-polyfillを䜿甚しお実行時にロヌカリれヌションを倉曎するこずは可胜ですか

@suchg実行時ではありたせん。 実行時に翻蚳を行うこずはできたすが、䜿甚するロケヌルを倉曎するこずはできたせん。

@mjschranz迅速な返信をありがずう
今のずころ、実行時の翻蚳でさえ問題ありたせん。 同じ䟋を教えおください。
https://github.com/ngx-translate/i18n-polyfillで共有されおいる䟋を詊しおみたしたが、Chromeブラりザヌの蚀語を倉曎したしたが、うたくいきたせんでした。
翻蚳のための特定の方法はありたすか

倖郚ラむブラリではなく、Angularに぀いおここで議論を続けおください。 それに぀いおサポヌトが必芁な堎合は、githubリポゞトリにメッセヌゞを投皿しおください

ねえ、機胜が将来どのようになるかに぀いお、他の远跡の問題や蚭蚈ドキュメントはありたすか おそらく、実装を支揎したり、v7での移行が可胜な限りスムヌズになるように準備したりするこずができたす。

こんにちは、私は珟圚Angular 5を実行しおおり、プロゞェクトに倚蚀語を远加する必芁がありたす。
私は今私のために働く解決策を远加したした、それはほずんど゚レガントです。 https://github.com/angular/angular/issues/24549。

理想的には、カントリヌスニファヌサヌビスホスト名マップルックアップに基づくに基づいお蚀語ファむルを遅延ロヌドしたいず思いたす。
それがAngular6で可胜であれば、それは玠晎らしいこずです。

@mattiLeBlancコンポヌネントやサヌビスからのメッセヌゞなど、動的メッセヌゞをどのように解決したすか

@zverbeta AngularCoreたたはこのディスカッションのコンテキストを完党に理解しおいないこずをお詫び申し䞊げたす。 私は初心者のために私の文脈からのみそれにアプロヌチするこずができたす。

あなたの質問に答えお、URLたたは蚀語queryparamから掚枬できるロケヌルに基づいお、翻蚳ファむルxlfを適切な方法で遅延ロヌドするこずにのみ関心があるず思いたす。 私は珟圚、ロケヌルを決定するためにURLマップを䜿甚しおいたす。

コンポヌネントたたはサヌビスからのメッセヌゞは、マヌクアップにi18nのタグを付けるようにタグ付けされたせん。 私はWordpressずPHP甚のi18nの経隓がありたす。 そこで、 __( 'text' to translate, 'text domain' )アプロヌチを䜿甚しお、正しい翻蚳を取埗したす。 この__()は、メッセヌゞファむルを䜜成するCLIコマンドによっおスキャンするこずもできたす。

これはあなたが蚀及しおいる問題の1぀ですか

たずえば、このマヌクアップのブロックで気付いたこずが1぀ありたす怠惰で、各サブ芁玠にi18nを远加したくなかったため。

<div class="eligibility-banner" i18n="@@eligbilityBanner" fxLayout="column" fxLayout.gt-xs="row" fxLayoutAlign.gt-xs="center center" fxLayoutAlign="center start">
        <div class="requirement-text" fxFlex="20">To be eligible, you:</div>

        <div fxLayout="column" fxFlex="80" fxLayout.gt-xs="row" fxLayoutAlign="center start">
          <div fxLayout="row" fxLayoutAlign="center center" class="requirement" fxFlex="33">
              <pro-svg icon="icon-check-circle" className="icon-check" width="44" height="44"></pro-svg>
              <div class="text">own an Australian business (with a valid ABN/ACN)</div>
          </div>
          <div fxLayout="row" fxLayoutAlign="center center" class="requirement" fxFlex="33">
              <pro-svg icon="icon-check-circle" className="icon-check" width="44" height="44"></pro-svg>
              <div class="text">are over 18 years old</div>
          </div>
          <div fxLayout="row" fxLayoutAlign="center center" class="requirement" fxFlex="33">
              <pro-svg icon="icon-check-circle" className="icon-check" width="44" height="44"></pro-svg>
              <div class="text">are an Australian Citizen or Permanent Resident</div>
          </div>
        </div>
      </div>

぀たり、divブロック党䜓をmessage.xlfにコピヌしたす。
それは倚くのマヌクアップ汚染です。 もちろん、テキストを保持する各タグでi18nを䜿甚できたす。

この䟋では、 _e()コマンドを䜿甚するずかなりうたくいくず思いたす。 echoコマンドでテキストを折り返すず、折り返されたすべおのテキストが収集されたす。 xml内のすべおのマヌクアップコピヌを取り陀くこずができたす。
その文字列に動的なものを远加する必芁がある堎合は、文字列内のプレヌスホルダヌを䜿甚しおパむプするこずができたす sprintfの堎合ず同じように。

<p>{{ __( 'I would like a nice %s, please', fruit ) }}</p> 

ここで、 fruitは、倀が__( 'apple')たたは__( 'pear)の倉数です。
3぀のテキストは最終的にXMLになり、個別に翻蚳できたす。

それは圹に立ちたすか i18n属性を远加するのず非垞によく䌌おいたすが、もう䞀床読んだ埌でわかりたす:)

最埌に、いく぀かの圢匏を芋おみたしょう。 XLIFF 2はかなり芋栄えが良く、1.2よりも少しきれいです。 XMBは、1995幎にスタむル蚭定されたように芋える、玛らわしい、恐ろしいドキュメントのように芋えたす。
XLIFF 2を䜿甚しおいるずきに、バヌゞョン1.2のようにTARGETテキストがレンダリングされないこずに気づきたした。

.potファむルず.moファむルを芋たこずがありたすか 非垞にシンプルなフォヌマットで、POEditツヌルで翻蚳しお䜿甚するこずもできたす。

トグルボタンを䜿甚しお、アプリケヌションを英語ずスペむン語に倉換する必芁がありたす。 すべおの倉曎を行い、ファむルを個別に䜜業したした。 .dist / enずdist / esの䞋に2぀のビルドを䜜成したした。展開のために䜕をする必芁があるか、䞡方のビルドを切り替える方法を教えおもらえたすか

トグルボタンをクリックしお䜕をする必芁がありたすか

@ shobhit12345https//stackoverflow.comに支揎リク゚ストを投皿しおください

@zverbeta --prodでビルドするず、24549に投皿した゜リュヌションが機胜したせん。 おそらく利甚できないrequireを䜿甚しおいるので、明らかなこずですか
--prodフラグがないず、webpack関連のコヌドが含たれおいるため、゜リュヌションは機胜したすか

@mattiLeBlancこのlibhttps //github.com/ngx-translate/i18n-polyfillを芋぀けたした。これにより、動的テキストの問題が解決したす。

こんにちは、i 18 nを䜿甚しお動的な倀補間を倉換する方法。

    <source>This amount is for <x id="INTERPOLATION" equiv-text="{{policyName}}"/> policy #<x id="INTERPOLATION_1" equiv-text="{{policyGroupId}}"/></source>
    <target>Esta cantidad es para <x id="INTERPOLATION" equiv-text="{{**policyName**}}"/> política #<x id="INTERPOLATION_1" equiv-text="{{policyGroupId}}"/></target>

おい 䜜業䞭のタスクを远跡および/たたは支揎できる堎所はありたすか タグに取り組んでいるもの

ランタむムi18nのベヌタ版をリリヌスするための時間枠に関する曎新はありたすか

@marcelnemコメントが芋぀かりたせんが、iirc ocombeは、ランタむムi18nがivyにマヌゞされおいるため、ivyフラグを䜿甚しおv7ベヌタでテストできる可胜性があるず述べたした。

ランタむム郚分は実行されたすが、コンパむラ郚分は実行されたせん。぀たり、ivyではただテストできたせん。

こんにちは、私はAngular 6i18nを䜿甚しおいたす。 私は倚蚀語で䜜業しおいたす。぀たり、クックブックに埓いたした。
https://v2.angular.io/docs/ts/latest/cookbook/i18n.html#

珟圚の実装ではAOTを䜿甚しおいるため、messages.xlfファむルずmessages.pt.xlfを生成したした。 私が走るず、すべおがうたく機胜しおいたす

ng serve --configuration = pt

期埅どおりにテキストが翻蚳されたす。 しかし、私はそれが機胜する方法に非垞に悪いこずがあるように感じたす。 私はおそらく䜕かが欠けおいたす。 私が理解しおいる限り、翻蚳する新しい文字列を远加しおi18n属性でマヌクするたびに、「ng xi18n」を実行するmessages.xlfファむルを再生成しおから、messages.pt.xlfを手動で曎新する必芁がありたす。 xlfファむルには゜ヌスがある行番号も保持されおいるため、行を倉曎した堎合は、ファむルを再生成しおptファむルを手動で曎新する必芁があるようです。

<context context-type="linenumber">16</context>

それは賢く芋えたせん、それは私にそれを機胜させ続けるために倚くの䜙分な仕事を䞎えるでしょう。 私の懞念を理解しおいたすか 私は䜕かが足りないのですか
Angular 7 i18nには、Ivyが組み蟌たれた倧きなアップデヌトがあるこずを知っおいたすが、それを埅぀必芁がありたすか

よろしくお願いしたす、
ファビオ

psこれが話題から倖れおいないこずを心から願っおいたすが、そうであるず感じたら、少なくずも方向性を教えおください。 たずえば、これをどこに尋ねればよいですか たたは、私の疑問に答える可胜性のあるリンクがある堎合。

@fabiopcarvalho私が気付いたのは、HTMLレむアりトの倉曎を远跡しやすくするために、すべおの翻蚳にカスタムIDを䜿甚するのが賢明だずいうこずです。

ただし、はい、翻蚳ファむルを定期的に曎新する必芁がありたす。

@fabiopcarvalho xliffmergeを䜿甚しお、翻蚳のマヌゞを支揎したす

完璧です、私はそのツヌルを䜿甚したした、そしおそれはうたくいきたした。 私もIDを䜿甚しおいたす
圌らは助けになりたす。
返信いただきありがずうございたす 

2018幎8月30日朚曜日、PedroRomeroの[email protected]は次のように曞いおいたす。

@fabiopcarvalhohttps //github.com/fabiopcarvalho私はxliffmergeを䜿甚しおいたす
https://github.com/martinroob/ngx-i18nsupportを䜿甚しお、マヌゞを支揎しおください
翻蚳の

—
あなたが蚀及されたので、あなたはこれを受け取っおいたす。
このメヌルに盎接返信し、GitHubで衚瀺しおください
https://github.com/angular/angular/issues/16477#issuecomment-417407822 、
たたはスレッドをミュヌトしたす
https://github.com/notifications/unsubscribe-auth/AWOWQ6vpjOb0Ntgpv7TUngRrBBsUIkVjks5uWCV7gaJpZM4NOSBk
。

属性aria-labelはアクセシビリティで倚く䜿甚されるため、属性でICUメッセヌゞを蚱可するこずはアクセシビリティにずっお重芁です。 フォロヌアップに問題はありたすか

その問題はないず思いたすが、開けおもらえたすか 珟圚、ツタのICU匏に取り組んでいるので、TODOを远加したしたが、機胜のリク゚ストの方が良いでしょう。

完璧な感謝ですGithub怜玢は本圓に悪いです

新しいバヌゞョンのi18nを䜿甚しお、たずえばHTTP経由で倖郚゜ヌスから翻蚳ファむルを遅延ロヌドするこずはできたすか

@ocombeは、Runtime i18nAOTを䜿甚するすべおのロケヌルに1぀のバンドルで䜜業しおいるずおっしゃっおいたした。 私たちが埅っおいるのは1幎以䞊前です。 その機胜がAngular7リリヌスで提䟛されるず期埅できるのはい぀ですか

@ Sef1995それは私たちが可胜にしたいこずの1぀です
@AhmadShahid v7ずは独立しおリリヌスされるivyが必芁であり、ivyはv7のリリヌスの準備ができおいたせん。 ツタの䞀郚はすでにv6にフラグの埌ろにありたすが、完党な機胜ではないため、実際のアプリケヌションでは䜿甚しないでください。 ivyのリリヌス日はただありたせん。

@ocombe簡単な質問ですが、今日の時点でi18nangular6を実装するず、異なるビルド蚀語ごずに1぀が必芁になりたすが、ivyが出おi18nランタむムになるず、劎力が倱われたすか ぀たり、i18nの実装方法は、今埌の実装方法ずは異なるのでしょうか。 事前にいく぀かのスプリントを蚈画し、䜜業に優先順䜍を付けようずしおいたす。 ありがずう

回避できるのであれば、重倧な倉曎を加えたくありたせん。 抜出された翻蚳のIDは、長い間抱えおいたバグを修正するずきに倉曎される可胜性がありたすが、移行ツヌルを提䟛したす。 100互換性があるずは蚀えたせんが、必芁に応じお新しいオプションを䜿甚できるため、ほずんどの機胜が同じように機胜するこずを期埅しおいたす。

@ocombe簡単な質問ですが、今日の時点でi18nangular6を実装するず、異なるビルド蚀語ごずに1぀が必芁になりたすが、ivyが出おi18nランタむムになるず、劎力が倱われたすか ぀たり、i18nの実装方法は、今埌の実装方法ずは異なるのでしょうか。 事前にいく぀かのスプリントを蚈画し、䜜業に優先順䜍を付けようずしおいたす。 ありがずう

こんにちは。webpackrequireを䜿甚しお、1぀のビルドでファむルを動的に䞀時的な回避策ずしおロヌドできたす。
䟋はここにありたす https //github.com/angular/angular/issues/24549#issuecomment -402013622

AOT = trueはwebpackのものを削陀するため、-prod --aot = falseを䜿甚しおビルドする必芁がありたす。

@ocombeこんにちは、

A7リリヌス候補が出たした。玄束どおり、ランタむム倉換をテストしたすか Runtime i18n (one bundle for all locales with AOT) 。 どうすればこれをテストできたすか。 助けおください

ありがずう

v7はすでにリリヌスされおいたすが、 @ sheikalthafからの質問を2番目にしおいたす。

@sheikalthaf @Shuyinsama䞊蚘のいく぀かのコメントず最初のメッセヌゞで説明したように
ランタむムi18nには、v7ずは独立しおリリヌスされるivyが必芁です。 ツタの䞀郚はすでにv7にフラグの埌ろにありたすが、完党な機胜ではないため、実際のアプリケヌションでは䜿甚しないでください。 ivyのリリヌス日はただありたせん。

@ocombe 動的i18nキヌを芪コンポヌネントから子コンポヌネントに枡すのはどうですか。

子コンポヌネント
<div i18n="{{labelTextKey}}">{{labelText}}</div>

芪コンポヌネント
<app-input [labelText]="'Second name'" [labelTextKey]="'@<strong i="13">@LabelSecondName</strong>'" ..></app-input>

私はそれを枡すこずができたすが、i18n倉換はビルド時に行われるため、倉数はその状態のたた空です。 したがっお、翻蚳は行われたせん。

そのような堎合の曎新はありたすか

@bobKasbi

子コンポヌネントにi18nタグは必芁ありたせん。次のように、芪で䜿甚できたす。

<app-input i18n-labelText="@@LabelSecondName" labelText="Second name"></app-input>

@cjsase うたく機胜しおいたす。 どうもありがずう ほが2日で苊劎しおいたした。

これに基づく https //github.com/angular/angular/issues/21706#issuecomment -430435254

  • v7ではツタを期埅するべきではありたせん。 v8は2019幎3月/ 4月に予定されおいたす。 v7でivyを期埅すべきでない堎合、2019幎4月にivyがリリヌスされるたで、囜際化i18nに䜕を䜿甚するかに぀いおの掚奚事項/コンセンサスはありたすか

これは誀った情報です。 コアチヌムは、IVyが2019幎にリリヌスされるずは決しお蚀いたせんでした。代わりに、コアチヌムは次のように述べたした私の匷調

テストおよび怜蚌された堎合は垞に、マむナヌバヌゞョンでリリヌスする必芁がありたす

ivyが有効になっおいるAngular7.1.0-beta.0アプリがあるずしたしょう。ペヌゞを曎新せずに、動的蚀語倉曎を前面から発行するセットアップを行うこずはできたすか

はいの堎合はどうですか このドキュメント https //github.com/angular/angular/blob/master/aio/content/guide/i18n.md
およびこのドキュメント https //angular.io/guide/i18n

これを特集したせんか

最新/将来のi18n-angularアプリの䜜成方法はどこで孊ぶこずができたすか

@tatsujbいいえ、それは䞍可胜であり、ivyずruntimei18nでも䞍可胜です。 今のずころ、蚀語を倉曎したい堎合は、Angularアプリをリロヌドする必芁がありたす

わかりたしたが、ドキュメントは4マむナスのようなangularのキメラバヌゞョンに適甚されたす。

それらが私のセットアップに適甚されるずは思わないし、倉曎をどの皋床正確に有効にするかに぀いおも説明しおいたせん。

倉曎はバック゚ンドによっお匷制される必芁があるず私は考えおいたす。

私の堎合、AngularはJava-Springバック゚ンドによっお本番モヌドで提䟛されたす。 旗のアむコンを抌しお蚀語を倉曎するずどうなるかずいう倧きな線は䜕ですか

ナヌザヌをwww.yourdomain.com/cn/に移動したす。ここでは、Angularアプリ党䜓が䞭囜語でコンパむルされおいたす。 最終的に、サポヌトするすべおの蚀語甚にコンパむルされたAngularアプリ党䜓が完成したす。

@ocombe @ santhony7これはどうですか https //github.com/actra-development-oss/ng-i18n-aot-loader

これを詊しおみたせんか

7.1.0-beta.0ずの互換性が悪いですか、それずもたずもな互換性がありたすか

@ocombe @ santhony7これはどうですか https //github.com/actra-development-oss/ng-i18n-aot-loader

これを詊しおみたせんか

7.1.0-beta.0ずの互換性が悪いですか、それずもたずもな互換性がありたすか

代わりにngx-translateを䜿甚するこずをお勧めしたす。 私は䞡方を䜿甚したしたが、ngx-translateは保守がはるかに簡単です。

@digismack 2぀の違いは少し怖いですが、ngx-translateは公匏のangular-i18nのものをすべお削陀し、たったく䜿甚しないずいうこずです。 それはそれ自身の独立した回路党䜓であり、jsonファむルは翻蚳の゜ヌスに぀いおはるかに具䜓的ではありたせん。

たた、2぀のデモのうちngx-translateははるかに遅いようですが、保守が簡単だったずはどういう意味ですか

ng-i18n-aot-loaderの開発者ずしおの@tatsujb少なくずもロヌダヌを統合するこずは、実装がかなり難しいこずを私は知っおいたす。
それ以倖はすべお、元の角床のあるi18nパラダむムに埓っおいるため簡単です。

タグ構造などに重倧な倉曎がない限り、v7で動䜜するはずです。

ngx-translateを実装しようずしおいたす私は翻蚳可胜な堎所ごずに翻蚳可胜な堎所に行かなければなりたせん。 すでに蚈画しおいたi18nタグを䜿甚できないのは、私には少しばかげおいたす。

私はあなたを信頌するこずは間違った遞択だず思い始めおいたす、 @ digismack

@tatsujbこの問題をフォロヌしおいる人は58人です。 個人的には、i18nに関するAngularチヌムからの最新情報をフォロヌしおいたす。 OPの内容に関連しない限り、おしゃべりを止めおいただければ幞いです。

新しいi18n機胜をAngularに远加したい堎合は、以䞋で遠慮なく質問しおください。それが可胜かどうか、問題を解決する必芁があるかどうかをお知らせしたす。
バグがある堎合は、問題を開きたすここでそれに぀いお議論する必芁はありたせん。

他のラむブラリで問題が発生した堎合は、StackOverflowで質問するこずをお勧めしたす。

問題を曞いたりコメントしたりするのは私の習慣ではありたせん...しかし、私はそうしたす
怜蚎䞭
@gtbuchananずCOはタむプAの人です。
@tatsujbなど文句を蚀う/コメントする/期埅する人はB型の人です

タむプAあなたはい぀も同じこずを繰り返すのに疲れおいたせんか 私にずっお、あなたはタむプBよりも迷惑です。

AngularタむプBにi18nの機胜がないため、問題を「サブスクラむブ」するだけの人よりもむラむラしたす友達を䜜るために、Facebookにいいねを獲埗する堎合は、わかりたせん。ここにはその堎所がありたせん。 、あなたは蚀葉を倉えたり、それを蚀っおいる䜕かを発明したりしたせん...

タむプAは、賌読を解陀したり、曎新を埅ったり、倉曎ログをすばやく確認したり、ブログやニュヌスを読んだりできるず思いたす。Angularチヌムがそれを倧きなフォントARIAL 72pixelに入れお、ts + runtime i18nからi18n動的翻蚳を導入するようにしおくださいAngularに倧きな機胜がありたせん 圌らはそれをあたり考慮しおいなかったので、今日私たちは正しいi18nを持っおいたせん、これはグヌグルかそこらの戊略であり、これは倉えるこずができたせん

人々Bは2幎前にこの機胜を埅っおいたす、 https //github.com/angular/angular/issues/9104#issue -159302131はい、angular 2.X以降です

欲求䞍満のタむプBを尊重し、邪悪にならないでください。 誰もi18nに぀いお倚くの䞍満を蚀わないのなら、i18nの改善は今埌䜕幎も考慮されないず思いたすが、これもオヌプン゜ヌスのaprtです 批評家に文句を蚀う 戊略は倉わる可胜性がありたす だから人々に文句を蚀わせお、賌読をやめおください、あなたはこの問題を賌読せずにあなたの情報を芋぀けるこずができる他の人よりも最高です

タむプBは、できるたで文句/コメントを続けおください それは人々のニヌズを理解する唯䞀の最良の方法です

ストラむクストラむク笑

@tatsujbそれはすべお個人的な奜みに垰着したす。 ng-i18n-aot-loaderを最埌に実装したずき、それを機胜させるには、排出されたビルドを実行し、webpack構成をカスタマむズする必芁がありたした。 倚分それはもはやそうではありたせん。 ただし、排出されたビルドを実行するず、AngularCLIツヌルは䜿甚できなくなりたした。 したがっお、長期的にはngx-translateを実装し、動䜜が少し異なるずいう事実に察凊する方が簡単であるこずがわかりたした。

@gtbuchananあなたの痛みを感じたすが、この「チャタリング」は、OPの投皿で蚀及されおいる機胜の範囲に盎接関係しおいたす。 Runtime i18n (one bundle for all locales with AOT)の時間枠がずれ続けおいるため、人々は珟圚の解決策を探すためにこのスレッドに来おいたす。

@ocombe 、デヌタベヌスから翻蚳を取埗する新しいプロゞェクトを開始しようずしおいたす。
私たちのAngularモゞュヌルは遅延しおロヌドされたす。たた、I18Nに関しおAngularが提䟛するものに可胜な限り近づけたいず考えおいたす。

Angular I18Nのサポヌトが蚈画どおりに最新リリヌスに反映されなかったため、新しいプロゞェクトを䜜成しようずしおいる私たちや他の人たちに䜕かアドバむスはありたすか

たずえば、I18Nの準備が敎うたでは、ngx-translateを䜿甚できたすが、そのプロゞェクトのgithubの問題のどこかで、遅延読み蟌みをサポヌトしないこずを読みたした。これは、私たちにずっおは目立たないものです。

䞀方、AngularのI18Nサポヌトはただプラむムタむムの準備ができおいたせん。

今埌のプロゞェクトで䜕を䜿甚するかに぀いお、正しい方向を瀺すいく぀かのヒントを実際に理解したす-ngx-translate vs

持っおいる必芁がありたす

  • 遅延読み蟌み

あった方がよい

  • ICU匏

メルシヌ

この問題のフォロワヌのために、 @ ocombeはangularconnectでのランタむムi18nに぀いお数時間で話したす。 未解決の質問の少なくずもいく぀かはそこで答えられるず思いたす。 利甚可胜なラむブストリヌムがありたす

@ ctaepper-情報ありがずうございたす

@guygitこれはngx-translateたたはangular-l10nの堎合がありたす。 これが私が䜜成した比范衚ですhttps://medium.com/@sergeyfetiskin/tools-to-translate-your-angular-app-c021e25ff26a

私たちのアプリでは、いく぀かの制限がありたすが、Angularを䜿甚するこずにしたした。

@fetisありがずうございたした-芋おみたす:-)

翻蚳ファむル甚のXLIFFファむルの遞択に぀いお疑問に思う-GoogleTranslateToolkitずFlutter / Dart i18nはどちらもARBファむルをサポヌトし、XLIFFをサポヌトしおいたせん。 ARBファむルのサポヌトは予定されおいないず聞きたしたが、これはもう䞀床怜蚎される可胜性があるのではないかず思いたす。 たたは、誰か @ocombe がAngularがXLIFFファむルず察話する堎所を指し瀺すこずができれば、ARBサポヌトを統合するのがどれほど難しいかを調べるこずができたす。

状況によっおは、モバむルアプリにFlutter / Dartを䜿甚し、WebアプリにAngularを䜿甚する予定です。可胜な限り、モバむルずWebの䞡方で翻蚳ファむルを共有したいず考えおいたす。 ARB-> Angularに含めるこずを怜蚎する意欲がない堎合は、XLIFFコンバヌタヌ。

@localpcguyコンバヌタヌのようなものを曞くこずになった堎合は、すでに倚くの圢匏から/ぞの倉換を提䟛しおいるhttps://github.com/translate/translateに投皿するこずに興味があるかもしれたせん。

ちなみに、 ocombeは数か月前に、POファむルおよびJSONをサポヌトするために懞呜にプッシュするず述べたした。 XLIFFで動䜜するオッケヌっぜいツヌルを芋぀けるのに苊劎したので、い぀かそれが起こるこずを願っおいたす。

XLIFFで動䜜するオッケヌっぜいツヌルを芋぀けるのに苊劎したからです。

@PowerKiKiそれは単に真実ではありたせん。 ほずんどすべおのオンラむン翻蚳管理ツヌルはXLIFF圢匏をサポヌトしおいたす。 たた、.x​​liffを手動で線集したくない堎合は、無料のデスクトップ翻蚳プログラムもありたす。

@fetis私は話題から倖れるのは嫌いですが、ツヌルでXLIFFを䜿甚するこずに関しおかなりの苊痛を感じたした。 ここで私のコメントを参照しおください https //github.com/angular/angular/issues/20193#issuecomment -345755889

そのようなツヌルぞの参照を提䟛しおください。ただ良いものは芋぀からず、XLIFF 2をサポヌトするものもただ芋぀かっおいたせん。SmartCatはきれいに芋えたすが、文字列を曎新するず、目を凝らしたくなりたす。

あなたは私たちが知らないこずを知っおいるようです:)

Pootleはhttps://github.com/translate/translateを䜿甚しおおり、Gettextpoファむルには非垞に優れおいたしたが、プレヌスホルダヌ/タグをサポヌトしおおらず、誰かからの投皿を埅っおいたす。

私はこの号を長い間賌読しおいたす。 この点での進歩はAngularチヌムの優先事項ではないようであり、蚀語ごずにアプリを1回コンパむルし、動的な翻蚳を行うためにフヌプを実行する必芁はありたせん。 可胜であれば、他のi18nラむブラリを䜿甚するカスタムパむプを䜜成するこずをお勧めしたす。 玔粋であるため、このパむプはアプリを耇数回コンパむルするのず同じくらい効率的です。 たた、Angularに䟝存しないi18nを䜿甚するこずで、コヌドから簡単に動的な倉換を行うこずができたす。 もう1぀の利点は、翻蚳がAngularに䟝存しなくなるこずです。そのため、必芁に応じお䞀郚のコンポヌネントを他のフレヌムワヌクに移行したり、自由に翻蚳圢匏やツヌルを遞択したりするこずができたす。 私はhttps://airbnb.io/polyglot.js/を䜿甚しおいお、非垞に満足しおいたす。アプリをAngular i18nからpolyglotに移行しおいる堎合でも、結果ず削陀に満足するこずはできたせん。 Angulari18nずの䟝存関係の

これをあなたのメヌルの通知ずしお受け取り、私の意芋を気にしない人には申し蚳ありたせんが、あなたの通知を長い間読んでいたので、賌読を解陀する前に別れを告げなければならないず感じおいたす:)

也杯

この点での進歩はAngularチヌムの優先事項ではないようであり、蚀語ごずにアプリを1回コンパむルし、動的な翻蚳を行うためにフヌプを実行する必芁はありたせん。

ランタむムi18nはAngularチヌムにずっお倧きな優先事項です。 ただし、ブロッキングの問題は新しいIvyレンダラヌです。 プロゞェクトの進捗はこれたでのずころ順調で、おそらくIvy for Angular8が期埅できたす。これは関係者党員にずっお難しい状況であるこずを理解しおいたす。 蚈画はありたすが、アむビヌが完成しない限り実斜するこずはできたせん。

ロンドンで開催された最近のAngularConnectカンファレンス2018の講挔、特にOlivierCombeによる「Runtimei18n」ずAlexRickabaughによる2日目の基調講挔をご芧ください。

確かに私の経隓は@intellixに䌌おいたす。

XLIFF 1.2は10幎前のものですが、オヌプン゜ヌスプロゞェクトでのサポヌトはかなり貧匱なようです。 https://github.com/translate/pootle/issues/4762およびhttps://github.com/translate/pootle/issues/1811によるず、Pootleはpalceholdersをサポヌトしおいたせん。 Weblateもそれらをサポヌトしおいたせんが、 PRはたもなくサポヌトを远加する可胜性がありたす。

デスクトップでは、VirtaalはXLIFFプレヌスホルダヌをサポヌトしおいたすが、最新リリヌス0.7.1は6幎前のものであり、私が聞いたずころによるず、最新のmacOSでは動䜜しなくなりたした。 残念ながら、それはよく維持されたプロゞェクトの印象を䞎えたせん。いく぀かの非垞に叀いPRは、明らかに単玔であるにもかかわらず、ただマヌゞされるのを埅っおいたす。 そしお、過去数幎間のコミット掻動は非垞に少ないです。

数日前にリリヌスされたPoedit2.2がXLIFF1.2ず2.0をサポヌトしおいるこずを知りたした。 珟圚むンストヌル䞭にsnapcraft.ioCDNから゚ラヌが発生するため、残念ながらテストできたせん。 しかし、これはデスクトップナヌザヌにずっお最良の解決策かもしれたせん。

@fetisプレヌスホルダヌをサポヌトするXLIFF1.2、さらにはXLIFF 2.0を線集するためのオヌプン゜ヌスたたは少なくずも無料で䜿甚できるプロゞェクトを芋぀けた堎合は、ここにリストしおください。 私がテストした他のすべおは、たったく機胜しおいないか、䜿甚するのが非垞に耇雑でした。

@ intellix @ PowerKiKiこれが私が知っおいるリストです。 私たちの目暙は、さたざたな囜の翻蚳者/同僚ず協力できるオンラむン翻蚳プラットフォヌムです。 すべおの共同䜜業者にデスクトップ゜フトりェアをむンストヌルし、XLIFFファむルの同期を管理するプロセスを実行するこずは私たちの遞択ではありたせん。 そのため、デスクトップツヌルやプラットフォヌムはテストしたせんでした。

アプリケヌション
OmegaT
https://omegat.org/

セルフホスト
https://weblate.org/en/+有料ホスティング
https://pootle.translatehouse.org/
https://pontoon.mozilla.org/

プラットフォヌム
Crowdin
https://crowdin.com/
CLIサポヌト

WebTranslateIt
https://webtranslateit.com/
CLIサポヌト

Transifex
https://www.transifex.com/

PhraseApp
https://phraseapp.com/

Lokalise
https://lokalise.co/
CLIサポヌト

_手頃な䟡栌で十分な機胜を提䟛するため、プロゞェクトのLokaliseで終了するず思いたす。_

〜POEditor〜
https://poeditor.com/pricing/
宣蚀されたXLIFFサポヌトはAngular圢匏では機胜したせん

オヌプン゜ヌス゜リュヌションを探しおいるなら、このリストは私に圹立぀かもしれたせんhttps://opensource.com/article/17/6/open-source-localization-tools

サむドノヌド
XLIFF 2.0をサポヌトするオンラむンプラットフォヌムは芋圓たりたせんでしたが、それは私にずっお倧きな驚きでした。 XLIFF 1.2は正匏に非掚奚ずしおマヌクされおおり、業界の誰もv2をサポヌトしおいたせん。

POEditがXLIFFサポヌトを宣蚀したず聞いおうれしいです。私はそれを.poファむルに䜿甚したした。それは玠晎らしいこずでした。

PSここで話題を倖しお申し蚳ありたせんが、同時にアプリからXLIFFファむルを取埗するこずは旅の䞀郚にすぎず、アプリのラむフサむクルを通じおそれを翻蚳しお維持する必芁がありたす。 ですから、それは重芁な議論です。 私はどこかに移動するこずを提案したす、私はこのリストを䞭皋床の蚘事ずしお眮くこずができ、そこで議論を続けるこずができたす。

@localpcguy倚くのフォヌマットがありたすが、それはすべお、サポヌトできるフォヌマットの数にかかっおいたす。 シリアラむザヌの䜜成ず保守には時間がかかりたす。 Xliff 2は他の誰かによっおPRずしお远加されたので、サポヌトを远加したしたそうでなければ、サポヌトするのに時間がかかりたせんでした。
抜出ずマヌゞの2぀のためのシリアラむザヌが必芁です。
これに぀いおはAngularConnectで話しおいたせんが、倖郚シリアラむザヌを䜿甚できるようになるこずを願っおいたす。 ivyを䜿甚しおランタむムマヌゞでこれを行うのは非垞に簡単ですが、コンパむラヌに倉曎を加えるずきにシリアラむザヌを曎新する必芁があるため、抜出は䟝然ずしお耇雑です。
それを行う方法に぀いおいく぀かのアむデアがありたすが、ツタが着地したら、チヌムず話し合う必芁がありたす。 私が本圓にやりたいのは、少なくずもJSONサポヌトを远加しお、Angular i18nを䜿甚しおngx-translateを曞き盎すこずができるようにするこずですそしお倚くの人がそれを望んでいるため。

@ocombeに感謝したすそしお他のすべおの入力、私はさたざたなビュヌを芋るのが奜きです。 14185はあなたがおっしゃったPRだったようですが、ARBサポヌトの远加を怜蚎したいのであれば、それでも良い出発点ですか それは提出された堎合に朜圚的にマヌゞされる可胜性があるものですか

@localpcguy明日ミヌティングがあり、それおよびその他のこずに぀いお話し合いたす。どうなるかをお知らせしたす。

さお、これがうたくいくず私たちが考えるものです抜出のために、私たちはある皮のjson圢匏翻蚳甚の公匏のjson圢匏なのでARBでさえあるかもしれたせんで文字列を抜出したす。 jsonは本圓に䜿いやすいですそしお実行時に、あなたがあなたのフォヌマットを理解するあなた自身のロヌダヌを曞くために䜿うこずができるある皮のむンタヌフェヌスを提䟛したす。

぀たり、これは、アプリにロヌダヌを提䟛できる限り、翻蚳に任意の皮類の圢匏を自由に䜿甚できるこずを意味したすか

たあこれは玠晎らしいでしょう+1

はい、詳现な最適化にアクセスするこずはできたせんビルド時に文字列を眮き換えお、蚀語ごずに1぀のバンドルを䜜成したす。぀たり、翻蚳はコンポヌネントでコヌド分割されたすが、任意の皮類の遅延読み蟌み゜リュヌションを䜿甚できたす。アプリの起動時にすべおの翻蚳を読み蟌む限りコンポヌネントを䜜成する前に同期的に読み蟌む必芁がありたす
たた、最終的には手動でコヌド分割し、新しいコンポヌネントをロヌドするずきに非同期でルヌタヌにロヌドするこずもできたす。これは、ivyが提䟛する新しい遅延読み蟌み機胜を䜿甚しお行いたすJasonはAngular Connectでデモを行いたした。

Ivyでオンザフラむで蚀語を切り替えるベヌタデモビデオやラむブストリヌムだけをファむルするのではないを期埅できたすか POCの最終前のツタをたずめようずするこずは、集䞭砲火を怜出するための優れた方法かもしれたせん。

開発者の汗をlive-i18nに泚入する前に、より固たった石のツタを埅぀ずいうアプロヌチに同意しないわけではありたせん。1人の小芏暡POCは、次の圢で莫倧な利益を埗るには少量の汗だず思いたす。先芋性があり、ラむブi18nが2020幎にプッシュされるのを回避できる可胜性がありたす。

倖郚ナヌザヌ向けのランタむムサヌビスはただ完了しおいたせん。クロヌゞャ goog.getMsg を䜿甚するコヌドしかありたせん。これは、Googleアプリでツタをテストするために必芁なものだからです。
私はこれから数ヶ月間これに取り組んでいきたす。 これは、おそらくただivyでi18nを䜿甚できないこずを意味したす。
ランタむムi18nのコヌドは昚日マヌゞされたばかりであり、i18nのコンパむラコヌドは数日以内にマヌゞされるはずです私たちはそこに到達しおいたす。 次に、先ほど説明した新しいロヌダヌや、コヌドで翻蚳を䜿甚するサヌビスなど、倖郚の人々向けの新しいサヌビスに取り組みたす。

その堎で蚀語を切り替える堎合でも、アプリを完党にリロヌドするか、ルヌトを倉曎する必芁がありたす既存のすべおのコンポヌネントがクリヌンアップされたす。 私はただPOCに取り組んでみたせん。

その堎で蚀語を切り替える堎合でも、アプリを完党にリロヌドするか、ルヌトを倉曎する必芁がありたす既存のすべおのコンポヌネントがクリヌンアップされたす。 私はただPOCに取り組んでみたせん。

それは公平です...ただし、アプリの完党なリロヌドたたぱンドナヌザヌの目にシヌムレスを実珟するもの、別名、ストア、認蚌、URLを倱うこずはありたせんたあ... /en/...を考慮しないは必芁ありたせん

@tatsujbアプリのリロヌドはペヌゞのリロヌドではありたせん。StackBlitzは線集のたびにアプリをリロヌドしたすが、目に芋えるず思いたすか

アプリをリロヌドするずいうこずは、アプリをアンマりントしおから同じ䜍眮にアプリをマりントするこずを意味したす。これは、SSR-CSR移行CSR-CSRず同等であり、適切なキャッシュアヌキテクチャが怜蚎されおいる堎合は、埌続のブヌトストラッププロセスで非同期タスクが発生しないようにする必芁がありたす。

したがっお、この正しい蚭定で。 倉数倀ず認蚌およびスクロヌル可胜なdivのスクロヌル量を保存したすか

@tatsujb Angularで䜜成されたむンスタンスの倖郚、たずえば字句倉数やりィンドりプロパティに保存されおいる限り。

@trotylペヌゞなしでアプリをリロヌドするにはどうすればよいですか

@saithisアプリケヌションは垞にplatformBootstrap().bootstrapModuleFactory() たたは他の同等のものでブヌトストラップしたす。い぀でもどこでも呌び出すこずができたす。呌び出し時に魔法はありたせんAngular CLIには珟圚コヌド眮換の制限があり、もはやアむビヌの問題。

スクリプトの呌び出し時に熱心にブヌトストラップし、それを氞久に保持するアンマりントしないこずは、SPAの䞀般的な方法にすぎたせんが、誰もあなたにそうするこずを匷制しおいたせん。

線集誰かがそうしおいる堎合は、メモリリヌクを防ぐためにブヌトストラップされたNgModuleRefを砎棄する必芁もありたす。 これらはトピックから倖れた質問であり、他のチャネルで議論する方がよいでしょう。ここでi18nの議論を远跡する方がよいでしょう。

@trotylありがずう、ブヌトストラップが再び機胜するこずを知りたせんでした。

@ocombeここでスパムを削陀できたすか そしお私のコメントも。

  1. @fetisぞあなたのような人々は、リリヌスのために問題ずサブスクラむブのフォロヌを解陀する必芁がありたす
    image

  2. @Andrulkoぞ私たちは気にしたせん

  3. @angularに蚀ったように私は完党に理解しおいたすここで文句を蚀いたす たずえば、vXではなくv7のツタが欲しかった、たたはv7の倧幅な改善を販売しないで、応答できなかった堎合、たたは期限を守るために7.xに配眮する堎合などです...これは公平ではありたせん。 はい、オプションは䜕も発衚しないこずである必芁があり、これも悪い考えであるず誰も文句を蚀うこずはありたせん。フレヌムワヌクで自分の堎所を䜜る必芁がありたす。 はい、v2以降正しいi18nを埅っおいたす。倧きなアプリのこの必須の偎面では、50000文字列を含む囜際的なりェブアプリのような倧きなアプリのAngular察応を販売できたせんでした。もちろん、これを読むのは奜きではありたせんが、思いやりがなく、良いです信仰、私たちがi18nを考慮せず、他のすべおの偎面でビルド時間/開発時間が遅い堎合、角床は玠晎らしいず蚀えたす。 もちろん、決定者に話しかけるず、特定の方向が䞊郚で倉わるはずです。 ビッググヌグルから私たちはこのような倧きな間違いを犯すこずができなかったので、私たち批刀するからの最高の䟋倖。 私はグヌグルの開発者が䟋倖のように芋える-賢い人々は間違いなくこのこずは経隓豊富な開発者やグヌグルのような開発者にずっおは起こらないはずだ 私の䞖界的な意芋では、䌁業がそれを遞択し、民間䌁業にオヌプン゜ヌスずは䜕かを販売/説明するずきに、倧きなアプリの角床を100販売するこずはありたせん

  4. @特にビゞネス䌚瀟で働いおいない人のために私は確かにオヌプン゜ヌスを尊重しおいないので私のコメントが嫌いですか倧きなアプリの準備ができおいたす80ではなく100...私たちは䟝存しおいたす

船を離れるので、これが私の最埌のコメントです 登録を解陀する+次のプロゞェクトでAngularを遞択しないあなたが勝者であるず蚀えたす。オヌプン゜ヌスプロゞェクトには私たちのような人は必芁ありたせん

そんな情熱 バランスを取るために...私たちはアプリをAngular6で曞き盎し、6蚀語で囜際化しおおり、わずかな䞍䟿を感じおいたす。 確かに、ビルド時間の短瞮ずその堎での翻蚳は確かに玠晎らしいこずですが、私たちにずっお䞖界の終わりではありたせん。 i18nではないフレヌムワヌクの98は玠晎らしいです。 玠晎らしい仕事の人 新機胜を楜しみにしおいたす。

たた、新しい゚ンタヌプラむズポヌタルでAngularを䜿甚した玠晎らしい経隓もありたす。 i18nは、スむスでは4぀の蚀語をサポヌトする必芁があるため、必芁な最埌の機胜です。 ここでの問題はコミュニケヌションにあるず思いたす。 プロゞェクトの蚈画に぀いおは、1幎前にi18のリリヌスをより正確に芋積もるこずができれば、それを蚈画しお他の可胜性を怜蚎するこずができたはずです。 ずはいえ、曎新をお埅ちしおおりたす。 :-)

角床を守るために、このように本番環境で簡単に䜿甚できたす私が芋぀けた最良の解決策

  1. 翻蚳された倉数テキストを独自のコンポヌネントでラップしお、翻蚳ロゞックをどこかに移動したす
parent-component.component.html

<app-route-translation
  [routeData]="routeData"
></app-route-translation>

route-translation.component.html

<span
  i18n="route text|Navigation text for route@@routeText"
>{
  routeData.langKey, select,

  home-1 {Home 1}
  home-1-1 {Home 1-1}
  home-1-2 {Home 1-2}
  home-2 {Home 2}
  home-2-1 {Home 2-1}
  home-2-2 {Home 2-2}
  home-root {Home root}
  lazyPage {Lazy page}
  notFound {404}

  other {Other}
}</span>
  1. 次のようなangular.jsonでビルド構成フォルダヌを構成したす
"prod-en": {
  ...
   "outputPath": "dist/en/",
  ...
},
"prod-ru": {
  ...
   "outputPath": "dist/ru/",
  ...
}
  1. さたざたな蚀語甚にアプリをコンパむルするには、このようにDockerビルドファむルを構成したす
FROM node:8 as build-stage
WORKDIR /app
COPY angular-util .
RUN npm install
RUN npm run ng build -- --configuration=prod-en
RUN npm run ng build -- --configuration=prod-ru

FROM nginx
WORKDIR /usr/share/nginx/html
COPY --from=build-stage /app/dist .
COPY nginx.conf /etc/nginx/conf.d/default.conf
  1. このnginx.confを䜿甚しお、サブドメむンen.site-name.com、ru.site-name.comなどでアプリを提䟛したす。ここで、 set $subdomain ru;のruをデフォルトのロケヌルに眮き換える必芁がありたす
server {
  listen 80;
  set $subdomain ru;
  if ($host ~ ^(\w+)\.) {
    set $subdomain $1;
  }
  location / {
    root /usr/share/nginx/html/$subdomain;
    try_files $uri $uri/ /index.html =404;
  }
}

詳现に぀いおは、こちらをご芧ください
https://github.com/ivanivanyuk1993/angular-util/tree/master/src/app/util/shared/route-list
https://github.com/ivanivanyuk1993/titans-shoulders-project/tree/master/container-description/ui-container-description

このコメントに賛成です。 完璧ではないかもしれたせんが、それでも私がWebで芋぀けたこのトピックに関する最も圹立぀投皿です。

こんにちは、みんな、

私は自分のプロゞェクトにi18n翻蚳を䜿甚しおいたす。 私は次の分野に疑問を持っおいたす

  1. 異なるラむブラリ甚に異なるxlf゜ヌスファむルを生成するこずは可胜ですかng generate library libraryNameコマンドを䜿甚しお䜜成
  2. 遞択たたは耇数化に囜際化を䜿甚しおいる間、生成されたxlf゜ヌスファむルは、さたざたな遞択肢のトランスナニットIDを䜜成したす。 さたざたな代替案のテンプレヌトを介しおIDを提䟛するこずも可胜ですか䞋の画像に瀺されおいるように
    image

いく぀かの答えを手䌝っおくれたせんか。

@learnersLicense 

  1. cliが凊理するプロゞェクトごずに1぀の翻蚳ファむルを抜出できるはずです。 ずはいえ、珟圚、翻蚳はラむブラリでは機胜したせん぀たり、ラむブラリを消費する人は、そのラむブラリの翻蚳をロヌドできなくなりたす。 これは、コヌド倉換を䜿甚しお実装する次の機胜のToDoリストの䞀番䞊にありたす。
  1. それは䞍可胜だず思いたす。 プレヌスホルダヌに特別なコメントを付けお名前を付けるこずができたす <div i18n>Some value: {{ valueA // i18n(ph="PH_A") }}</div>しかし、ICU匏、 @ AndrewKushnirでは機胜しないず思いたすか
    そのための機胜リク゚ストを行うか、 https//github.com/angular/angular/issues/24080に類䌌しおいるように芋えるコメントを远加するこずができたすICU匏にdesc /意味を远加しおください

あなたのラむブラリを消費する誰かは、そのラむブラリのあなたの翻蚳をロヌドするこずができなくなりたす

これを回避する1぀の方法は次のずおりです。
1ラむブラリにi18nをxliffに抜出しお翻蚳させる
2ラむブラリパッケヌゞず䞀緒にxliffファむルを出荷する

3コンシュヌマヌも独自のxliffファむルを抜出したす
4コンシュヌマヌはxliffをxmlパヌサヌにロヌドしたす。 node_modulesから発生するトランスナニットをすべお削陀したす
5コンシュヌマヌはそれがxliffであるずラむブラリヌxliffを連結したす

぀たり、ラむブラリを消費する人は、そのラむブラリの翻蚳を読み蟌めなくなりたす。

このステヌトメントを誀解しおいるかもしれたせんが、 xlfファむルを䜜成するずきに、䌚瀟のアプリケヌションの翻蚳蚭定で、他のプロゞェクトのテンプレヌトで指定されたキヌが含たれおいるこずを知っおいたす。 頭に浮かぶのはhttps://github.com/ng-bootstrap/ng-bootstrapです

珟時点では、これは䞍可胜のようです。

<my-button i18n-title="@@SHARED_GO_LABEL" [title]="'Go'" [button-style]="'primary'" (click)="navigateToForm()"></my-button>

これらの倉曎の範囲内で、これは察凊されたすかたたは私は䜕か間違ったこずをしおいたすか

@ mikejr83

それは可胜です。 title [title]="'Go'" title="Go" $ずしお割り圓おる必芁がありたす

@ocombeず@ ewok-janitorの回答ず提案に感謝したす。 👍

@ocombeラむブラリの翻蚳が利甚可胜になるたでの暫定的な日付はありたすか

今のずころ日付はありたせん。 ivyの最初のリリヌスでは、機胜の同等性を実珟しようずしおいたす。 新しい機胜コヌドの翻蚳やラむブラリのサポヌトを含むはすぐに䜜業したすたたは実際には前に䜜業を開始したすが、ivyがアルファ版でリリヌスされおも終了したせん。 ivyがデフォルトになる前に利甚可胜になりたす。

xliffファむルの修正はすでにありたすか https://github.com/angular/angular/issues/17506
参照が修正されおいない限り、この圢匏を䜿甚するこずはたったく䞍可胜です。

@ocombeルヌト倉換をサポヌトする蚈画はありたすか

はい、それは数回芁求されたした、それは圓面の蚈画ではありたせんが、やるべきこずのリストにありたす

こんにちは、ivyがベヌタ版でリリヌスされたずきにランタむムi18nを䜿甚する方法に関するドキュメントはありたすか

@marcelnem 、このURLを確認するず、すべおのドキュメントポむントが保留になっおいたす。

https://is-angular-ivy-ready.firebaseapp.com/#/status

@ocombeあなたが今Googleでやっおいる玠晎らしい仕事。 Angular i18nは、最初からngx-translateのような「䜕か」である必芁がありたした。 Angular 8/9がリリヌスされたら、ngx-translateからAngular i18nスタむルに移行するための移行ガむド、自動ツヌル、機胜比范などがあるのだろうかず思っおいたした。

こんにちはocombe
あなたが䞊で述べたこの機胜に぀いおあなたに確認する必芁がありたす
ランタむムi18nAOTを䜿甚するすべおのロケヌルに1぀のバンドル-[䜜業䞭] >>これはただ進行䞭ですか、それずも終了しおいたすか

ただ進行䞭の堎合は、回避策を教えおください。
ありがずう

䞊蚘で曞いた@ocombeは、蚀語パッケヌゞはlacyloadingによっおロヌドする必芁があるず述べおいたす。 蚀語パックをindex.htmlに盎接ロヌドするこずも可胜ですか アプリケヌションがAWSLambda䞊で実行され、コンパむルされたAngularファむルがS3バケットに保存される堎合があるためです。 これがたったく機胜するこずは実際にはすでに回避策ですが、Angularは別のホストからファむルをレむシヌロヌドできないため、レむシヌロヌドを䜿甚するこずはできたせん。 したがっお、Angularが必芁ずするすべおのファむルは、index.htmlスクリプトを介しおS3ホストを远加する堎所にすでに含たれおいる必芁がありたす。

@ nidhi8953それはただWIPであり、ivyで利甚できるようになりたす。今のずころ、Google内でのみ機胜したす翻蚳には内郚でClosureCompilerを䜿甚しおいるため。 翻蚳を凊理するランタむムサヌビスは、倖の䞖界にずっお非垞に実隓的なものです。 いく぀かのこずをテストしたい堎合は、次の䟋を参照しおください https //github.com/angular/angular/blob/master/packages/core/test/bundling/hello_world_i18n/index.ts関数は理由によりただプラむベヌトです。近い将来、名前が倉曎され、倉曎される予定です。 珟圚の目暙は、v8がリリヌスされたら月末にAPIの堅実なセットで䜜業を開始し、v9がリリヌスされるたでv8党䜓でこれを繰り返すこずです。この時点で、APIは安定しおいるず芋なされたす。

@vekunz珟圚の蚈画に埓えば、そうなる可胜性がありたす。ずにかく、アプリケヌションのブヌトストラップで翻蚳ファむルをロヌドする必芁があるからです。

@ocombe Ivy珟圚は8.0.0-rc.3を䜿甚し、耇数のビルドのAngular 7メ゜ッドを䜿甚しおi18nを実装できたすか たたは、Ivy甚のi18n APIがリリヌスされるたで、Angular 7を䜿い続ける必芁がありたすか 可胜であれば、Ivyを利甚するず同時に、新しいランタむムメ゜ッドが利甚可胜になるたでi18nの叀い方法を䜿甚したいず思いたす。

曎新詊しおみた埌、 ng xi18n抜出https//github.com/angular/angular-cli/issues/14225を参照もi18nを䜿甚したビルドも効果がありたせん。 .xlfファむルぱクスポヌトされず、単語は翻蚳されたせん。 ただし、tsconfig.app.jsonでenableIvyオプションをfalseに蚭定するず、どちらもバヌゞョン8.0.0-rc.3で正垞に機胜したす。 これは、Angularのアップグレヌドパスに埓うこずができ、i18nを倱うこずなく、差分ロヌドなどの新しい利点のいく぀かを取埗し、i18nが機胜したらIvyをオンにする準備ができおいるこずを意味したす。

@jacobbowdoinは、ivyがオンの堎合は機胜したせんが、アクティブ化されおいない堎合は機胜したす。
叀い抜出/読み蟌みシステムをivyで動䜜させたかったのですが、それは䞀時的なものであったため、チヌムによっお優先順䜍ずしお決定されたせんでした理解できるので、必須のものを最初に動䜜させるこずが優先順䜍です。

こんにちは@ocombe 、私たちは今i18nを開発したいので、ランタむムを埅぀こずはできたせん-i18n。 それでもngx-translateの䜿甚をお勧めしたすか i18n-polyfillず䞀緒に䜿甚するのは理にかなっおいたすか i18n-polyfillを䜿甚するず、runtime-i18nぞの移行が容易になりたすか

ngx-translateを䜿甚する堎合は、i18n-polyfillを䜿甚しないでください。 テンプレヌトにAngulari18nを䜿甚する堎合にのみ、これを䜿甚するのが理にかなっおいたす。
ngx-translateは䟝然ずしお関連性があり、䜿いやすいです。 耇数のビルドロケヌルごずに1぀をサポヌトするために、すべおのむンフラストラクチャを配眮する必芁はありたせん。

こんにちは@ocombe 、ステヌタスの曎新はありたすか

-ランタむムi18n
-テンプレヌトの倖郚で翻蚳文字列を䜿甚する-11405

珟圚、゜ヌスコヌドの翻蚳を埅぀べきか、i18n-polyfillを䜿甚すべきかに぀いお議論しおいたすすでにi18nから始めたした。 数週間は簡単に埅぀こずができるので、おおよそのタむムラむンをいただければ幞いです。 どうもありがずうございたした

@halilovicedvin Googleアプリでivyがデフォルトになるずすぐに、倖郚ナヌザヌ向けのランタむムi18nサヌビスの䜜業を開始したす。そのため、間もなくv9のどこかで䜜業を開始したす。
人々は䜕日か䌑むので、私は倏が終わるたでそれを圓おにしたせん

@halilovicedvin数週間前にi18n-polyfillを䜿甚しおi18nを開始したしたが、うたく機胜しおいたす。 runtime-i18nがi18n-polyfillず同じように䜿甚されるこずを願っおいたす

@vekunz ngx-translateをi18n-polyfillず䞀緒に䜿甚するず、runtime-i18nに簡単に移行できるようになるこずも期埅しおいたしたが、 @ ocombe https://github.com/angular/angular/issuesからのコメントの埌です。 / 16477issuecomment-498239301ポリフィルを蚭定するための远加の䜜業が正圓化されるかどうかはわかりたせん。 たぶん、ngx-translateだけを䜿甚するでしょう。

@vekunzそれを蚭定したあなたの経隓は䜕ですか

@ marcelnemi18n -polyfillでngx-translateを䜿甚するこずはできたせん。 i18n-polyfillは、angular-i18nでのみ䜿甚できたす。

i18n-polyfillのセットアップは確かに非垞に簡単でした。 ドキュメントはそれほど正確ではありたせんが、䜕を倉曎すればよいかがすぐにわかりたした。

@vekunzわかりたした、ありがずうございたす。 i18n-polyfillの目的が䜕であるかわかりたせん。 公匏のAngulari18nず同様に、アプリを耇数回ビルドし、 http// myapp / en 、 http// myapp / de 、 http// myapp / fr 、...で耇数回デプロむする必芁がありたすか

@marcelnemはい、i18n-polyfillを䜿甚した耇数のビルドも必芁です。 目的は、angular-i18nを䜿甚するず、珟圚htmlテンプレヌト内でのみ翻蚳を䜿甚でき、typescriptコヌド内では䜿甚できないこずです。 i18n-polyfillはangular-i18nを拡匵しお、タむプスクリプトコヌド内の翻蚳も䜿甚したす。
Angular 9秋に登堎では、angular-i18nはtypescript内の翻蚳もサポヌトしたすが、それたでの間、これにはi18n-polyfillが必芁です。

@vekunzは、これに぀いおもう少し詳しく説明しおいただけたすか。「ドキュメントはそれほど正確ではありたせんが、䜕を倉曎すればよいかがすぐにわかりたした。」 私はおそらく来週i18n-polyfillを調べおいるので、どんな情報でも高く評䟡されるでしょう。 どうも

@halilovicedvin @marcelnemこのGitHubの問題のメむントピックではないため、私はそれを説明するペヌストビンドキュメントを䜜成したしたhttps://pastebin.com/Xib6X6E9

@ocombe xi18nツヌルを䜿甚しお、プロゞェクト/リポゞトリ党䜓ではなく、翻蚳を生成するためのsrcフォルダヌのみに入力パスを制限できたすか

@ocombe IvyはAngular8で耇数のロケヌルをサポヌトしおいたすか蚀語ファむルではなく、ロケヌル定矩のみ。たずえば、日付パむプの堎合 他のチヌムは珟圚ngx-translateでAngularを䜿甚しおいたすが、1぀のサヌドパヌティコンポヌネントには正しいロケヌルが必芁です。 1぀のオプションは、prodモヌドでJITコンパむラヌを䜿甚するこずですが、これはあたり良くありたせん。 しかし、すべおの蚀語の新しいバンドルをコンパむルするこずもできたせん。これは非垞に倚くのこずになるためです。

@vekunzいいえ、耇数のロケヌルを蚭定するこずはできたせん。コンパむルされたバンドルごずにロケヌルを蚭定する必芁がありたすcli構成ファむルで蚭定できたす
それはあなたが聞きたかったものではないこずを私は知っおいたす、しかしそれは今のずころそれがどのようであるかです

@ocombe䜕か教えおいただけたすかAngularのチヌムはそれを問題ずしお特定しおいないこずは知っおいたすが、Angularを䜿甚するず、近い将来、アプリをリロヌドせずに実行時に蚀語を倉曎できるようになるず思いたす。単䞀のバンドルで、正しい翻蚳をロヌドしおテキストリテラルずバむンドする可胜性がありたすか

はい、バンドルが1぀ありたすが、翻蚳はブヌストラップで読み蟌たれたすアプリが読み蟌たれるずき。 既存のアヌキテクチャでは、すでに翻蚳を䜿甚しおいるコンポヌネントをリロヌドせずに、翻蚳を「ホット」リロヌドするのは非垞に耇雑です。
これが䞍可胜だず蚀っおいるわけではありたせんが、残念ながら近い将来に起こるずは思いたせん。

迅速な察応をしおくれた@ocombeに感謝したす:)良い仕事を続けおください+1

ある角床のある䌚議AngularConnectだず思いたすから@ocombeのプレれンテヌションがどこかにあり、そこで圌はi18nずIvyに぀いお話したした、そしおそこで圌はそれを非垞によく説明したした、なぜこれはずおも耇雑なのですか 私はビデオを芋぀けるこずを詊みるこずができたす。

私はそれを芋぀けたず思いたすhttps://www.youtube.com/watch?v=miG-ghJhFPc

ivyでランタむムi18nを埅っおいる人にずっお、v9の珟圚の蚈画は、翻蚳をivyで機胜させるこずですが、ビルドステップずしおのみ機胜したす珟圚のビュヌ゚ンゞンの堎合ず同様。 これは、今のずころただ1ビルド/ロケヌルであり、コヌド倉換は行われないテンプレヌト倉換のみこずを意味したす。

残念。 さお、それが䟡倀があるもののために、あなたのハヌドワヌクに感謝したす

@ocombeは、ランタむムコヌド倉換のポリフィルを匕き続き維持したすか

はい壊れた堎合、私はそれに新しいものを远加したせんが

i18nが長い間二玚垂民であったこずはちょっず残念です...誰もがネむティブの英語ロケヌル環境で働いおいるわけではありたせん。 

同意したす。Angular甚の新しい匷力なi18n゜リュヌションを開発できるように、私を埌揎する䌚瀟を芋぀けようずしおいたす私にはたくさんのアむデアがありたす。
興味のある人のこずを考えたら、Twitter@ocombeたたはメヌル[email protected]で知らせおください🙂

@ocombeお仕事もありがずうございたした。 💚あなたがチヌムを去らなければならないずいうのは少し驚くべきニュヌスです。 あなたがI had to ...ず蚀ったように、それは私があなたに盎接あなたに䞻な理由が䜕であったかを尋ねるように導きたす。 私はそれらの間接的なヒントや圓お掚量が嫌いなので、それがあなたぞのそのような盎接的な質問の理由です。

私はAngularチヌムで働く倖郚の請負業者であり、Googleのフルタむムの埓業員ではありたせんでした。そのため、チヌムのニヌズに応じお、い぀でも契玄を終了できたす。
圌らはプロゞェクトを支揎するために瀟内で新しい人を募集しおおり、i18nやその他のトピックを支揎する適切な人を芋぀けるず確信しおいるので、Angularの将来に぀いお心配する必芁はありたせんvisage_légÚrement_souriantそれはただの䞀時的な埌退

@ocombeご説明ありがずうございたす。

列挙型やconst配列、たたは.model.tsファむルなどのクラス倖でi18ni18n-polyfillを䜿甚する方法を教えおもらえたすか

定数に぀いおは、私はただそれらをクラスに入れおいたす。 私は代替案を知りたせん/

@ocombe ngx-translate、i18npolyfill、およびAngularチヌムを䜿甚したAngularのi18nでのすべおのハヌドワヌクに感謝したす。
重芁なアプリケヌションで必芁ずされるように、私たちは毎日あなたの仕事を䜿甚しおナヌザヌに翻蚳を提䟛したす。
あなたが前進するこずに幞運を祈りたす。

定数に぀いおは、私はただそれらをクラスに入れおいたす。 私は代替案を知りたせん/

うヌん..それらをクラスに移動する堎合は、䜿甚する倉数を静的にする必芁がありたす。 しかし、静的倉数にi18nを䜿甚するこずはできたせん。

゚クスポヌトクラス䟋{
コンストラクタヌプラむベヌトi18nI18n{}
静的倉数= i18n 'text'; //クラスExampleの非静的であるため、ここではi18nを䜿甚できたせん
}

悲しいニュヌス...この「匱䜓化」Angular ...他の人が蚀うように、玠晎らしい仕事をしおくれた@ocombeのおかげで、幞運を祈りたす。

興味がありたすが、ngx-translateを䜿甚するこずのデメリットは䜕ですか 人々が探しおいる機胜を正確に実珟できるようです

䞍利な点は次のずおりです。

  • バンドルサむズを増やしたすビルド時にコヌドを眮き換えるのではなく、倖郚ラむブラリ+倖郚ファむルずしおの翻蚳
  • 公匏ではありたせん私が死んだ堎合、libは廃止され、同じレベルのサポヌトではありたせん
  • xliff / xmbをサポヌトしおいたせんただし、プラグむンを介しおjsonおよびその他の圢匏をサポヌトしおおり、それをサポヌトするためにxliff / xmbプラグむンを䜜成できたす
  • 翻蚳の遅延読み蟌み/分割時にバグが発生する可胜性がありたす修正する必芁はありたせん
  • 構文は、公匏の実装ず比范しおより耇雑です
  • パフォヌマンス翻蚳の初期ロヌドにより、テキストが1秒間消え、䜕かが倉曎されたかどうかを確認するために実行時にコンテンツを監芖する必芁があるため、メモリの負荷が高くなる可胜性がありたす

そうは蚀っおも、倚くの人にずっおは十分なようです🙂

角床がどのようにアクセシビリティを促進し、投資するのか䞍思議ですが、そのパッケヌゞには蚀語が含たれおいたせん。 これは単䞀蚀語環境からの決定であるず実感しおいたす。

通垞、3〜4の蚀語を亀換可胜に提䟛する必芁がある環境から来お、倖郚ラむブラリを䜿甚するよりも明らかな利点があるこの機胜の発衚以来、私は蟛抱匷くこの機胜のリリヌスを埅っおいたした。 このニュヌスで、私は翻蚳を完党に管理するための私たちの戊略を再考する必芁がありたす。

@ocombe Googleがあなたを請負業者ずしお雇わない可胜性はありたせんか😉

@DmitryEfimenko珟圚ngx-translateを䜿甚しおおり、非垞に満足しおいたす。

@ocombe Googleが倖郚の開発者/コミュニティからこの機胜を受け入れる可胜性はどのくらいありたすか 私たちはあたりにも長い間埅っおいるず思いたす。

あなたがそれに真剣に取り組んでいお、それに取り組むこずに時間を費やしたいのであれば、圌らがこの機胜に取り組むための助けを受け入れる可胜性が高いず私は蚀うでしょう

あなたがそれに真剣に取り組んでいお、それに取り組むこずに時間を費やしたいのであれば、圌らがこの機胜に取り組むための助けを受け入れる可胜性が高いず私は蚀うでしょう

@ocombe @IgorMinar Ivy i18nのボランティア掻動を提䟛したいのですが、機䌚があれば教えおください。

あなたがそれに真剣に取り組んでいお、それに取り組むこずに時間を費やしたいのであれば、圌らがこの機胜に取り組むための助けを受け入れる可胜性が高いず私は蚀うでしょう

私は貢献したいず思っおいたすが、タスクの範囲ず耇雑さを完党に知りたせん。 元のメッセヌゞのリストを仕様/芁件ずしお䜿甚できたすか

いいえ、このリストは廃止されたした。
これを敎理する方法を確認できるように、2人が興味を持っおいるこずをチヌムに知らせたす。

@ocombe私たち2人以䞊だず思いたす。

Angularチヌムに必芁なものは

  • 芁件リスト/いく぀かの仕様
  • 倧たかな耇雑さの芋積もり
  • コミュニケヌションのための1〜2人のメンタヌ

そのコミュニティず䞀緒に開発を敎理し、タスクを分割するこずができたす

https://hackmd.io/UfFN_wyVT-Ob1p70nA3N_Q?viewで私が知っおいるこずがありたす

@fetis䜜業を分割しすぎるのは良い考えではないかもしれたせん。特に、競合の可胜性が高い䞀郚のコア䜜業では、コミュニケヌションずコンテキスト共有にも倚倧なコストがかかりたす。

それでも驚いたのは、XLIFFがプロずしおリストされおいるこずですむしろ、ngx-translateのXLIFFの欠劂はデメリットです。 Google翻蚳やその他のGoogleサヌビスは、翻蚳文字列のJSON衚珟であるARBファむルを䜿甚しおいるようです。 たずえば、INTLがARBファむルで実装されおいるFlutter / Dartを䜿甚しおモバむルアプリを構築したした。 Angularチヌムがこれを怜蚎するずきに、Google゚コシステム内の他のアむテムずの盞互運甚を改善するために、これを考慮に入れるずよいでしょう。

䜜業を分割しすぎるのは良い考えではないかもしれたせん。特に、競合の可胜性が高い䞀郚のコア䜜業では、コミュニケヌションずコンテキスト共有にも倚倧なコストがかかりたす。

同意したすが、この党䜓を1人で劥圓な時間内に玍品できるずは思いたせん。 スコヌプが倧きすぎる

䜜業を分割しすぎるのは良い考えではないかもしれたせん。特に、競合の可胜性が高い䞀郚のコア䜜業では、コミュニケヌションずコンテキスト共有にも倚倧なコストがかかりたす。

同意したすが、この党䜓を1人で劥圓な時間内に玍品できるずは思いたせん。 スコヌプが倧きすぎる

@fetis私はあなたず䞀緒に働くこずができたす。 私たちはプロゞェクトでAngulari18nを本圓に䜿甚したいず思っおいたすが、それは非垞に限られおいたす。

これを敎理する方法を確認できるように、2人が興味を持っおいるこずをチヌムに知らせたす。

@ocombe Angularチヌムからのフィヌドバックはありたすか

私は圌らに知らせたした、そしお圌らは興味を持っおいるように芋えたした、しかし圌らが倖郚の助けを受け入れるこずができる前に圌らはそれらすべおのための具䜓的な蚈画を考え出す必芁がありたすそうでなければあなたはおそらく必芁なこずに取り組む぀もりはありたせん。
@petebacondarwinがこれから匕き継ぎたす

こんにちは@ocombe 、私はコメントを調べおいたしたが、* ngForで䜿甚しおいる間、i18nタグの動的IDを䜜成するためのプロビゞョニングがただないこずを倧たかに理解したした。 他にオプションや回避策はありたすか たたは、ngx-translateのみを䜿甚する必芁がありたす。

@swapnilvaidankar回避策はないず思いたす。

@ swapnilvaidankar-これが䜕を意味するのか説明できたすか

* ngForで䜿甚しながら、i18nタグの動的IDを䜜成したす

ご存知のずおり、静的テキストを他の蚀語に翻蚳するには、以䞋のようにHTML芁玠タグでi18n属性を䜿甚する必芁がありたす。

<h1 i18n = "Card Header | Title for the under construction card@@constructionheader">Under Construction</h1>

これにより、以䞋のようにxlfファむルスニペットが生成され、任意の蚀語のタヌゲットを蚭定できたす。 ここで私は以䞋のようにフランス語に翻蚳したした、

  <trans-unit id="constructionheader" datatype="html">
    <source>Under Construction</source>
    <target>En construction</target>
    <context-group purpose="location">
      <context context-type="sourcefile">src/app/app.component.html</context>
      <context context-type="linenumber">3</context>
    </context-group>
    <note priority="1" from="description"> Title for the under construction card</note>
    <note priority="1" from="meaning">Card Header </note>
  </trans-unit>

ただし、ドロップダりンリストの堎合、i18n属性を䜿甚するのは難しいようです。
たずえば、名刺、チラシ、小冊子などの補品のリストをドロップダりンリストたたは単玔なリストに衚瀺したい堎合、どのようにしお動的IDを生成できたすかタグなので、補品名をフランス語やその他の蚀語に翻蚳できたす。

私はこのように詊したした、

これは、以䞋のようにxlfファむルスニペットを生成したすが、これを䜿甚しお補品名を他の蚀語に翻蚳する方法がわかりたせん。鬌ごっこ

  <trans-unit id="product" datatype="html">
    <source><x id="INTERPOLATION" equiv-text="{{ product }}"/></source>
    <context-group purpose="location">
      <context context-type="sourcefile">src/app/product/product.component.html</context>
      <context context-type="linenumber">6</context>
    </context-group>
    <note priority="1" from="description"> product name from List</note>
    <note priority="1" from="meaning">product name </note>
  </trans-unit>

あなたがでIDを芋るこずができるならば、ここでの問題タグは「補品」のみです。 ただし、ドロップダりンリストで利甚できる補品のリストに埓っお、IDが動的に生成されるこずを期埅しおいたした。

動的コンテンツたたはコンテンツのリストを凊理するずきはい぀でも、これを実珟する方法がわかりたせん。

詳しい説明でごめんなさい。
ここで問題を理解しおいただければ幞いです。

ありがずう、
Swapnil

そのための問題を開いおいただけたすか ここでは実際にはトピックではなく、他の誰かが同じものを探しおいる堎合は、それを芋぀けるのが簡単になりたす

@swapnilvaidankar i18n属性は、動的コンテンツではなく静的テキスト翻蚳を察象ずしおいたす。 あなたの䟋では、「補品」は゜ヌスコヌドtsファむルで定矩されおいるから来おおり、ngx-translateを䜿甚する必芁があるたたはtsファむルで盎接補品名を翻蚳しおいるか、Httpリク゚ストから来おいたす次に、翻蚳された補品名をバック゚ンドから提䟛する必芁がありたす。

そのために新しい問題は必芁ないず思いたす。 これは、すでに䜕床も芁求されおいるTSファむルの実行時の翻蚳を芁求するだけです。

@swapnilvaidankarオプションの数が限られおいお、すでに知っおいる堎合は、テキストをレンダリングする単玔なngSwitchでコンポヌネントを䜜成できたす。 この回避策を䜿甚しお、魅力のように機胜したす。

@ fetis-問題は、これらの䞀般的な問題が特定の事柄に぀いおの議論に远いやられるのが非垞に簡単なこずです。 新しい問題を䜜成するず、この問題の邪魔をせずにその議論を続けるための新しいスレッドが提䟛されたす。

@fetisええ、この問題は䜕床も䜕床も芋たしたが、適切な解決策が芋぀かりたせんでした。 私もngSwitchに出くわしたしたが、私の堎合は適切な解決策ではありたせんでした。 ただし、回避策に感謝したす。

@ocombeここではなく、他の堎所で同じこずを議論するために、これを問題ずしお投皿する必芁があるず思いたす。 👍

ご回答ありがずうございたした。

@ petebacondarwin @ swapnilvaidankarここにあなたが探しおいる問題https://github.com/angular/angular/issues/11405がありたす
2.0.0以降-rc.6ずころで

こんにちは@ocombe 、この問題はただ最新ですか IvyがAngular9のデフォルトになるようですので、i18nのステヌタスはどうなっおいるのでしょうか い぀生産準備が敎うか芋積もりをお願いしたす。 Angular 9、10、11では Angular 9がない堎合、Angular 9およびIvyはi18nなしで出荷されたすか、それずも叀いi18nを䜿甚したすか

珟圚の状態に関する詳现に぀いおは、このhttps://github.com/angular/angular/issues/11405の問題を参照しおください。 珟圚の状態に぀いおこの号で読む䟡倀のあるコメント

たた、これはチェックする䟡倀がありたす。

image

v9ではスむッチを切り替えお、デフォルトでivyを䜿甚するようにしおいたすが、完党に機胜しおいないシナリオがいく぀かある可胜性があり、それらのプロゞェクトは今のずころview-engineに固執するず予想されたす。
私たちはv9.0.0リリヌスでi18nを皌働させるために取り組んでいたすが、タむトになるでしょう。

「ランタむムi18nすべおのロケヌルに1぀のバンドル」の珟圚のステヌタスは䜕ですか

@ Ivajkin-この問題が最新の状態に保たれおいないこずをお詫び申し䞊げたす。

「ランタむムi18n」は䞀般的に求められる機胜ですが、人によっお意味が異なる堎合がありたす。
新しいi18n $localizeアプロヌチでは、実行時に実際の倉換を行うこずが可胜になりたす。

Angularアプリケヌションがブヌトストラップする前に、考えられるすべおのメッセヌゞを倉換するだけではない堎合、ランタむムは実際にはかなり耇雑になる可胜性がありたす。 これを行う堎合は、コンパむル時の倉換に察する新しいアプロヌチが必芁になる可胜性がありたす。

新しいi18nでは、翻蚳はビルドパむプラむンの最埌でAngularコンパむラではなく行われたす。これは、ラむブラリなどで未翻蚳のメッセヌゞを提䟛し、最終的なアプリケヌションをビルドするずきにのみ翻蚳を実行できるこずを意味したす。

これはすべおv9.0.0で機胜しおいたす。

https://github.com/angular/angular/tree/master/packages/localizeをチェックしお、珟圚の堎所を確認しおください。

@petebacondarwin新しいコンパむル時の倉換に぀いお少し詳しく説明しおいただけたせんか。 これにより、すべおのロケヌルで機胜する単䞀のバンドルAOTを䜿甚を構築できたすか

新しいアプロヌチでは、Angularコンパむラ内で翻蚳を行う代わりに、グロヌバルな$localizeテンプレヌト文字列タグハンドラヌを介しお翻蚳する必芁のあるメッセヌゞに単玔に「タグ付け」したす。 これらのタグ付けされた文字列は、あらゆる皮類のバンドルずミニファむに耐えるため、ビルドパむプラむンの最埌でも存圚し、怜出可胜です。 これらのファむルは、アプリケヌションに含めるために他のチヌムに送信するラむブラリのバンドルである可胜性がありたす。

珟圚、いく぀かのオプションがありたす。

aこれらのタグ付きメッセヌゞを静的に識別し、翻蚳に眮き換えるツヌルを実行したす。 これにより、JavaScriptから$localize参照が効果的に削陀され、配垃甚の最小限のコヌドバンドルが残りたす。 この「コンパむル時のむンラむン化」ツヌルは、倚数の翻蚳を取埗し、翻蚳する蚀語ごずにバンドルのコピヌを生成できたす。 ビルドパむプラむンの最埌で実行できるため、サポヌトするすべおの蚀語でビルドの他の偎面を実行する必芁がありたせん。

b $localizeタグがブラりザで実行されるコヌドに含たれるようにし、 $localizeの実装を䜿甚しお実行時にメッセヌゞを倉換したす。 このアプロヌチの欠点は、 $localize呌び出しだけでなく、 $localize倉換実装も含たれおいる必芁があるため、ブラりザヌぞのペむロヌドが倧きくなるこずです。 たた、翻蚳自䜓をブラりザに送信する必芁がありたす。 このアプロヌチの利点の1぀は、実行時に翻蚳の遅延読み蟌みをサポヌトするこずです。 ただし、httpサヌバヌたたはビルドサヌバヌで倉換を実行するず、より効率的なランタむム゚クスペリ゚ンスが埗られるこずは議論の䜙地がありたす。

ランタむムオプションbお願いしたす。 珟圚ngx-translateで行っおいるように、翻蚳をJSONファむルずしおロヌドし、実行時に蚀語を切り替えるこずができたす。

説明ありがずう。 aアプロヌチはより「角床のある」ものですが、bアプロヌチおよび䞀般的な遅延読み蟌みの倧きな利点は、ナヌザヌによる翻蚳を動的に定矩/倉曎できるこずでもありたすアプリの倉曎された翻蚳はすぐに䜿甚できたす 。 私がそれを正しく理解しおいれば、アプロヌチaでの翻蚳の小さな倉曎は、新しい再構築を意味したす。

これは、事前定矩されたAngularコンポヌネントを䜿甚しお静的に生成されたペヌゞから、ナヌザヌが望むようにプログラマヌが定矩したAngularコンポヌネントを含むナヌザヌ生成テンプレヌトに切り替えるのず同じ利点ですこの方法で定矩されたテンプレヌトもデヌタベヌスからロヌドされたす... 。

たた、デフォルトでロヌド時にaアプロヌチが䜿甚される可胜性に぀いおも考えたかもしれたせん。 実行時の翻蚳芁求が発生した堎合たずえば、バック゚ンドが新しい翻蚳の送信を開始する堎合、bアプロヌチのように、マヌクされたブロックこれたで静的テキストを含むがクロヌルされ、動的に眮き換えられ始めたす。 したがっお、bは必芁な堎合にのみアクティブ化され、すべおの翻蚳可胜なパヌツは手順aに埓っお準備されたす。 このようなアプロヌチは、bアプロヌチ自䜓よりも負担が倧きく、この方法で盎接実行できるわけではないこずは理解しおいたすが、これはナヌザヌの実際のニヌズに近いものになりたす。

あなたがリストしたオプションに察しお、私はそのような動的な機胜を実珟するために、特定の堎合にアプリケヌションのパフォヌマンスの玄25を犠牲にする぀もりですもちろん、私はどこでもこの動的なアプロヌチを䜿甚したせん。 したがっお、AOTロヌカラむズされたテンプレヌトが0.4秒でレンダリングされた堎合、動的テンプレヌトの堎合、0.5秒で生成された堎合でも、翻蚳の倉曎に察するそのような即時の応答が必芁なアプリでは蚱容できるず思いたす。

@demisxは䞡方のアプロヌチがv9で利甚可胜になりたすが、オプションaのみが最初に完党にサポヌトされ䞋䜍互換性のため、Angularチヌムによっお完党に承認される前にオプションbのために新しいものが開発される可胜性がありたす。
私のラむブラリLoclは、オプションbv9がリリヌスされたずきに、Angularチヌムがそのギャップを埋めるたで、誰でも䜿甚できるようにするためのいく぀かのヘルパヌを提䟛したす

このようなランタむム倉換は、コンポヌネントがレンダリングされるず、新しい倉換がロヌドされた堎合でもそのテキストを動的に倉曎できないずいう意味で「リアクティブ」ではないこずに泚意しおください。

翻蚳されたメッセヌゞは、 $localizeタグ付き文字列に関しお静的です。 したがっお、コンポヌネントを再レンダリングする必芁がありたす。 たた、IVYでのテンプレヌトのキャッシュによっおは、再レンダリングだけでは䞍十分な堎合がありたす。

これは、実行時の倉換の動䜜が必ずしも盎感的であるずは限らないため、実行時の倉換を実装するのが難しい理由の1぀です。

ビルドで静的倉換を開始し、埌でランタむム倉換を远加するハむブリッドアプロヌチに぀いお。 これは、コンパむル時のむンラむン化で$localizeタグが削陀されず、テンプレヌト化された文字列リテラル郚分が曎新された堎合に実行可胜になる可胜性がありたす。 ただし、これにより、コンパむル時間のコストず远加のバンドルサむズのコストが発生したす。

Angular 9 RC1でng xi18nを実行するず、「申し蚳ありたせんが、i18nはただIvyに実装されおいたせん」ず返されたすが、倉曎ログには、珟圚_some_i18nサポヌトが実装されおいるこずが瀺されおいたす。 今のずころ、翻蚳ファむルを手動で曎新する必芁があるず思いたすか

@ neil-119珟圚、抜出はivyモヌドではサポヌトされおいたせん。 抜出を実行するには、ivyを無効にする必芁がありたす。 ただし、再床有効にしお、抜出された翻蚳ファむルを䜿甚するこずができたす。

最終的なv9リリヌスに抜出が含たれる予定であるこずを願っおいたす。

@ neil-119 AngularCLIは抜出にVEを自動的に䜿甚する必芁がありたす。 それが機胜するために䜕もする必芁はありたせん。 たた、それをテストしおいるので、壊れおいるこずに驚いおいたす。 再珟で問題を開くこずができたすか

珟圚、抜出はivyモヌドではサポヌトされおいたせん。

たたはいいえ、それはショヌストッパヌです。 珟圚、文字列抜出による自動化されたプロセスがありたす。 翻蚳を自動的に抜出できない堎合、どうすればIvyに移行できたすか
sconfig.json every timeを操䜜したすか これは私にはよく聞こえたせん。

@ fetis-私は間違っおいたした。 CLIを䜿甚しおいる堎合は、ivyが有効になっおいる堎合でも、 ng xi18nの呌び出しは期埅どおりに機胜するはずです。

@petebacondarwinありがずう。 珟圚のプロゞェクトでIvyを詊しおみる぀もりなので、これをすぐに確認したいず思いたす

こんにちは、コンポヌネントangular 9.0.0-rc.1で䜿甚しようずしたした

$localize `some string to localize`;

@ angle / locale / initの゜ヌスコヌドでdocずしお芋぀かりたした。

自分の蚀語で通垞どおりにビルドしようずするず、この゚ラヌが発生したす
No translation found for "4145296873012977836" ("some string to localize").

その文字列の翻蚳を提䟛するにはどうすればよいですか
私が期埅しおいるのは、ngxi18nがコンポヌネントコヌドからこのテキストを含む.xlfファむルを生成するこずです。 それは正しいですか、それずも私は䜕かが欠けおいたすか

こんにちは@ Ks89- テンプレヌトではなくアプリケヌションコヌドからのメッセヌゞの抜出は、v9ではサポヌトされおいたせん。
しかし、あなたが卑劣な堎合は、それを回避するこずができたす。 4145296873012977836はメッセヌゞのIDであるため、翻蚳ファむルでこのIDを䜿甚しお翻蚳を提䟛するず、翻蚳時に䜿甚されたす。

@petebacondarwinこの機胜がAngularに远加されるのはい぀ですか
コンポヌネントの実行時の翻蚳を本圓に䟿利にするこずが本圓に重芁だず思いたす。

.xlfファむルを翻蚳者に送信するず、すべおの文字列をすばやく远加しお、その結果をアプリに非垞に簡単に適甚できるず期埅しおいたす。

答えおくれおありがずう

9.1で期埅したす

すべおのコンポヌネントのChangeDetectionStrategyに関係なく、アプリ党䜓を匷制的に再レン​​ダリングする方法があれば、これらの動的な問題を簡単に解決できたす。

@petebacondarwin Angular 9は、新しい$ localeizeタグ関数ずずもにリリヌスされたしたが、メッセヌゞは抜出されおいたせん。 以前、Angular9.1でこれを期埅できるずおっしゃいたした。 この予枬はただ有効ですか$ localeAPIが安定しおいるず期埅できたすか

テンプレヌトから翻蚳を抜出できたす。
コヌドでも$localizeを䜿甚する堎合は、Loclを参照しおください https //github.com/loclapp/locl/
@locl/cliを䜿甚するず、コヌドずテンプレヌトから抜出できたす

@ vekunz-予枬はただ有効です。 さらに、 @ ocombeが指摘しおいるように、珟圚のCLI翻蚳抜出メカニズムは、Angularテンプレヌト内のすべおの翻蚳぀たり、 i18nタグでマヌクされおいるものに察しお問題なく機胜したす。 珟圚、コアツヌルを䜿甚しお抜出できないのは、独自のコヌド内サヌビスやコンポヌネントなどでの$localizeの呌び出しだけです。

$localize呌び出し自䜓は安定したAPIです。

特にコンパむル時に倉換ず抜出を行うツヌルはただ公開されおいたせん。 ただし、@ ocombeがLoclで行っおいるように独自のツヌルを構築するこずを蚈画しおいない限り、これは問題ではありたせん。

@petebacondarwinに感謝したす。これにより、コヌドからのテキストを抜出甚の「非衚瀺」コンポヌネントテンプレヌトに耇補できたす。 そうすれば、抜出ず翻蚳の䞡方が機胜するはずですよね

@ocombe抜出がAngular9.1で機胜するずいう予枬では、私たちのマネヌゞャヌはあなたの゜リュヌションにお金を払わないでしょう。 特に、蚀語や翻蚳されたルヌトをラむブで切り替える必芁がないためです。

コヌドからのテキストを抜出甚の「非衚瀺」コンポヌネントテンプレヌトに耇補できたす

はい、確かに、この回避策は今のずころ機胜したす。

私は混乱しおいたすランタむム倉換は9.1でも可胜ですか それずも、テンプレヌトの倖に抜出するだけですか たたはこれらのどれも

私にずっお、ランタむム倉換はキラヌ機胜です。 耇数のバンドルをデプロむし、ナヌザヌにペヌゞ党䜓をリロヌドさせるこずは、䜿い勝手が良くないず思いたす。

@JustDoItSascha
実行時の翻蚳を瀺す簡単なデモを䜜成したした。
https://stackblitz.com/edit/ivy-vjqzd9?file=src%2Fapp%2Fapp.component.ts

やあ JavaScriptがむンポヌトを解析しおいる間に文字列が倉換されるため、main.tsでloadTranslationsを呌び出そうずしおいたすが、それだけでは䞍十分です。

main.tsは、AppComponentをむンポヌトするAppModuleをむンポヌトしたすここでは$localizeを䜿甚しおいたす。

それを機胜させるために私はやっおいたす

loadTranslations(......);
import('./app/app.module').then(m => platformBrowserDynamic(). bootstrapModule(m.AppModule);

これで機胜したすが、Angularの「complier.js」バンドルがベンダヌバンドルに含たれるようになりたす。

それを回避する方法はありたすか ありがずう

珟圚、 loadTranslationsはアプリケヌションを起動する前に呌び出す必芁があるため、 polyfills.tsで呌び出すこずができたす。 たた、他の翻蚳セットをロヌドする堎合は、ペヌゞをリロヌドする必芁がありたす。 理由をもう少し理解したい堎合は、 https//blog.ninja-squad.com/2019/12/10/angular-localize/で説明したす。

珟圚、 loadTranslationsはアプリケヌションを起動する前に呌び出す必芁があるため、 polyfills.tsで呌び出すこずができたす。

それよりもさらに悪いこずに、モゞュヌルファむルをむンポヌトする前に呌び出す必芁がありたす。そのため、polyfills.tsメむンのアプリファむルの前に実行されたすに配眮するず機胜したすが、 「メむン」ファむルの堎合、モゞュヌルに動的なimport(...)を䜿甚する必芁がありたす

@vekunz今のずころ私のlibを䜿甚しないのは良い理由です😊Loclは単なる抜出ではないず蚀われおいたすが、i18nを簡玠化するために他の倚くのツヌルを远加する぀もりです

Angularにランタむムi18nを実装する意図はありたすか 私たちはほが3幎間この機胜を期埅しおきたしたが、今ではIvyがここにあり、ただ半分しか焌けおいたせん。

Angularにランタむムi18nを実装する意図はありたすか 私たちはほが3幎間この機胜を期埅しおきたしたが、今ではIvyがここにあり、ただ半分しか焌けおいたせん。

私の理解では、アむビヌは倚くの点で、これから起こるこずを可胜にするものです。 i18nニヌドルがIvyのリリヌスで信じられないほど動きたしたが、それは将来の倧きな倉化の可胜性を解き攟぀はずです。 それは私の読んだこずであり、ずにかく私の垌望です。

@ Karasuni-かなりの混乱があるため、コアAngularフレヌムワヌクにずっおランタむム倉換が実際に䜕を意味するのかを明確にする必芁があるず思いたす。

v9で行った倉曎には、 $localizeベヌスの倉換が含たれたす。 これの䞻な目的は、翻蚳をAngularコンパむラから切り離しお、倚くの優れた改善を可胜にするこずでした。

これの最初のものは、v9のすべおのナヌザヌがすぐに利甚できるもので、翻蚳されたアプリケヌションの生成を高速化するこずです。 以前は、アプリを翻蚳する蚀語ごずにビルドパむプラむン党䜓を実行する必芁がありたした。 これで、アプリケヌションのメむンコンパむルを1回実行するだけで、ビルドの出力で蚀語ごずに倧幅に短い最終的な翻蚳プロセスが実行されたす。 これをサポヌトするために、新しい@angular/localizeパッケヌゞ、Angularコンパむラヌ内の倉曎、およびAngular CLI内での䜜業の党負荷があり、これを可胜な限りシヌムレスで透過的にしたす。

次に、 $localizeタグを分散コヌドに残すこずができるため、ブラりザヌでコンパむル時ではなく実行時に倉換を実行するこずもできるようになりたした。 これは、コアAngularフレヌムワヌクでランタむム倉換ずしお意味するものです。 ただし、これの最終的な結果は、コンパむル時の倉換ず実質的に同じであるこずに泚意しおください。 翻蚳は1回だけ行われたす。 実行時に蚀語を倉曎したい堎合は、アプリケヌション党䜓を再起動する必芁がありたすたずえば、リロヌドを介しお。 これには、プロゞェクトが倚数の翻蚳ファむルを含む単䞀の配垃可胜ファむルを展開できるずいう利点がありたす。これは、すべおの異なる翻蚳を事前に生成したくない少数のナヌスケヌスで圹立ちたす。 @ocombeや他の人がここで指摘しおいるように、翻蚳を十分に早くロヌドするこずに関しおいく぀かのトリッキヌな問題がありたす。 これを行うための詳现に぀いおは、 https//www.locl.app/を怜蚎しおください。

この「ランタむム」倉換は、遅延ロヌドされたルヌトでも䜿甚できるため、蚭定方法によっおは、異なる蚀語で異なるルヌトを䜿甚できる堎合があるこずに泚意しおください。

すべおのシナリオで機胜するこの翻蚳の読み蟌みに察する単䞀のアプロヌチはないため、これをCLIに焌き付けたり、これをサポヌトするための安定したパブリックAPIを提䟛したりするこずはただありたせん。 ナヌスケヌスをよりよく理解できれば、これに察するサポヌトをさらに远加できる可胜性がありたす。 それたでの間、自分で解決するこずに挑戊したくない堎合は、Loclのようなものが圹立぀かもしれたせん。

最埌に、実行時の倉換された文字列の動的な倉曎は、コアのAngularフレヌムワヌクでは蚭蚈䞊特にサポヌトされおいないこずに泚意しおください。 翻蚳された文字列をAngularの倉曎怜出システムにフックするず、ほずんどのアプリケヌションに過床の負担がかかり、パフォヌマンスが䜎䞋したす。 コミュニティずのやり取りから、蚀語の倉曎時にアプリケヌションを再起動する以䞊に、これが実際に必芁ずなる実際のシナリオはほずんど芋られたせんでした。 これがアプリケヌションの芁件である堎合は、テンプレヌトの文字列にカスタムビルドのパむプを䜿甚しお翻蚳を取埗し、その堎で$localizeを呌び出しお翻蚳するこずで実珟できたすが、次のようにはなりたせん。これは非垞にパフォヌマンスが高いでしょう。 それ以倖の堎合は、 https//netbasal.gitbook.io/transloco/のようなより動的なアプロヌチを怜蚎できたす。


Angularの次のマむナヌバヌゞョンで行われる䞻な倉曎は、翻蚳抜出の改善です。これにより、TSコヌドからロヌカラむズされた文字列を識別しお抜出できるようになりたす。珟圚、CLI抜出はテンプレヌト内のロヌカラむズされた文字列のみを凊理したす。

䞊蚘のように、実行時の倉換を改善するための倉曎は、遅くずも9.1以降になるたで衚瀺されたせん。

最埌に、実行時の倉換された文字列の動的な倉曎は、コアのAngularフレヌムワヌクでは蚭蚈䞊特にサポヌトされおいないこずに泚意しおください。 翻蚳された文字列をAngularの倉曎怜出システムにフックするず、ほずんどのアプリケヌションに過床の負担がかかり、パフォヌマンスが䜎䞋したす。 コミュニティずのやり取りから、蚀語の倉曎時にアプリケヌションを再起動する以䞊に、これが実際に必芁ずなる実際のシナリオはほずんど芋られたせんでした。

私は誀解されおいるかもしれたせんが、このスレッドだけでも、アプリケヌションを再構築したり再ロヌドしたりするこずなく、実行時に蚀語をラむブで倉曎できるこずに倚くの人が明確に関心を瀺したした。 それずも、ここにいる党員がruntime translationの異なる定矩を持っおいたすか

蚀語を切り替えるためだけにアプリケヌションをリロヌドしたくありたせん。 たずえば、ナヌザヌがフォヌムのあるペヌゞを衚瀺しおいる堎合、翻蚳の切り替えのためにペヌゞ党䜓をリロヌドするず、ナヌザヌに䞍快感を䞎えるこずになりたす。

ただ明確にしたす。 私が蚀いたかったのは、倚くの人が私のずころに来お、アプリケヌションでラむブ蚀語を倉曎するこずが絶察に必芁だず蚀っおきたずいうこずです。 しかし、理由を掘り䞋げるず、そうではないこずがわかりたす。 これを必芁ずするシナリオがないず蚀っおいるわけではありたせんが、昚幎の私の経隓では、ほずんど遭遇しおいたせん。

質問アプリの特定のフォヌムに移動するずきに、ナヌザヌが蚀語を切り替える必芁があるのはなぜですか

ラむブスむッチングも必芁ないず思いたす。 どのくらいの頻床でりェブサむトの蚀語を倉曎したすか 通垞、最倧で1回です。 そしお今回は、ペヌゞのリロヌドはそれほど重芁ではありたせん。 @petebacondarwinが蚀ったように、ラむブスむッチングのほずんどすべおのシナリオは、実際のシナリオずは関係がなく、「あるず䟿利」なだけです。

それずも、ここにいる党員がランタむム翻蚳の異なる定矩を持っおいたすか

実行時の翻蚳が絶察に必芁です。 お客様は、ビルドサヌバヌだけでなく、珟堎で翻蚳を線集および曎新できる必芁がありたす。 したがっお、コンパむル時ではなく、ランタむムです。

ペヌゞの読み蟌み埌の実際の蚀語の切り替えは䟿利です。

ただ明確にしたす。 私が蚀いたかったのは、倚くの人が私のずころに来お、アプリケヌションでラむブ蚀語を倉曎するこずが絶察に必芁だず蚀っおきたずいうこずです。 しかし、理由を掘り䞋げるず、そうではないこずがわかりたす。 これを必芁ずするシナリオがないず蚀っおいるわけではありたせんが、昚幎の私の経隓では、ほずんど遭遇しおいたせん。

質問アプリの特定のフォヌムに移動するずきに、ナヌザヌが蚀語を切り替える必芁があるのはなぜですか

あなたはそれが確かな芁件ではないずいうこずは正しいかもしれたせん。 ロヌド時に翻蚳をデプロむしようず詊みるかもしれたせんが、倖郚ラむブラリを䜿甚しお、珟圚蚀語を動的に切り替えるこずができるアプリケヌションのナヌザヌ゚クスペリ゚ンスを完党に倉換したすリロヌドしたり、ペヌゞ内の䜍眮を倉曎したりする必芁はありたせん。 翻蚳は非垞に長い間癜熱したトピックでした。

重芁な質問がありたす。翻蚳ファむルを非同期でロヌドできたすか 再構築せずに曎新できるこずが重芁であるため、私の翻蚳はすべおデヌタベヌスに保存されたす。

はい、非同期でロヌドできたすが、ロヌドされるたでアプリケヌションの開始を遅らせる必芁がありたす

ただ明確にしたす。 私が蚀いたかったのは、倚くの人が私のずころに来お、アプリケヌションでラむブ蚀語を倉曎するこずが絶察に必芁だず蚀っおきたずいうこずです。 しかし、理由を掘り䞋げるず、そうではないこずがわかりたす。 これを必芁ずするシナリオがないず蚀っおいるわけではありたせんが、昚幎の私の経隓では、ほずんど遭遇しおいたせん。
質問アプリの特定のフォヌムに移動するずきに、ナヌザヌが蚀語を切り替える必芁があるのはなぜですか

あなたはそれが確かな芁件ではないずいうこずは正しいかもしれたせん。 ロヌド時に翻蚳をデプロむしようず詊みるかもしれたせんが、倖郚ラむブラリを䜿甚しお、珟圚蚀語を動的に切り替えるこずができるアプリケヌションのナヌザヌ゚クスペリ゚ンスを完党に倉換したすリロヌドしたり、ペヌゞ内の䜍眮を倉曎したりする必芁はありたせん。 翻蚳は非垞に長い間癜熱したトピックでした。

技術的には、アプリ党䜓をリロヌドしおも、ナヌザヌを元の堎所に留めるこずができたす。
どこかに保存され、起動時に取埗される状態駆動型アプリngxs、ngrx、たたはその他の状態管理ラむブラリを䜿甚が「必芁」です。

唯䞀のトリックはスクロヌル䜍眮を維持するこずですが、それも実行可胜です。

@petebacondarwin私はあなたに同意するず蚀わなければなりたせん。 アプリを䜿甚するずきに蚀語間でアプリを氞続的に切り替える実際の゚ンドナヌザヌ開発フェヌズのテスタヌを陀くはわかりたせん。 確かに、圌らはおそらく最初にそれを別のもので開いた堎合にそれを行いたすが、埌でそれはたれなケヌスです。

それずも、ここにいる党員がランタむム翻蚳の異なる定矩を持っおいたすか

実行時の翻蚳が絶察に必芁です。 お客様は、ビルドサヌバヌだけでなく、珟堎で翻蚳を線集および曎新できる必芁がありたす。 したがっお、コンパむル時ではなく、ランタむムです。

ペヌゞの読み蟌み埌の実際の蚀語の切り替えは䟿利です。

顧客が䜕をしおいるのかはわかりたせんが、「翻蚳の線集は本番Webサむトでラむブで行う」ずいうのは䞀般的なシナリオのようには思えたせん。

蚀語をラむブで倉曎するこず_ペヌゞのリロヌドなし_がそのような取匕のブレヌカヌになるずは思いたせん。
ナヌザヌの蚀語の倉曎は1回だけ行われたす。

考えおみおください、あなたは䜕回あなたの電話の蚀語を倉えたしたか おそらく䞀床か、デフォルトの蚀語でロヌルしただけです。

ペヌゞをリロヌドせずにラむブ倉曎を行うために蚀語の倉曎を監芖するず、ナヌザヌの存続期間䞭ほずんど䜿甚されないものに察しお、パフォヌマンスが倧幅に䜎䞋したす。

最終的に、私にずっおは3぀のこずになりたす。

  1. テンプレヌトずTSファむルから翻蚳を抜出したす。

    • ゜ヌス蚀語アセットを曎新したす。

    • 翻蚳も曎新したす_耇数の蚀語がある堎合、fr、en、de ...すべおの蚀語を新しい翻蚳キヌず削陀されたキヌで曎新したす。_

  2. すべおの翻蚳に察しお1぀のビルド_ビルド時間が倍増しない限り、翻蚳ごずに1぀のビルドを持぀こずも問題ありたせん。_
  3. 利甚可胜な蚀語を取埗し、リロヌドで蚀語を倉曎したす。

@烏野
非同期で翻蚳をフェッチしおから、Angularアプリを読み蟌むこずができたす。
import(...)を䜿甚しおapp.moduleを非同期でロヌドする方法に぀いおは、䞊蚘の私のコメントを参照しおください。

個人的には、りィキペディアを䜿甚しお、自分が知っおいる映画のタむトルが別の蚀語に「翻蚳」されおいるこずを把握しおいたす。

この時代では、バむリンガルたたはトリリンガルであるこずは圓たり前のこずではありたせん米囜内を陀いお、害はありたせん。

ナヌザヌは、完党にもっずもらしい蚀語を切り替えお生きたいず思うかもしれたせん。 りィキペディアの䟋は、これを有効にしたこずの肯定的な結果です。パフォヌマンスの名目で日の目を芋るために、他の朜圚的な甚途を生きる前に抑制しなければならない理由がわかりたせん。

ocombeのngx-translateでさえ、「パフォヌマンスの䜎い翻蚳」の皆さんにずっおは非垞に優れた䟋である必芁があり、日垞のナヌザヌにずっおは十分に高速に実行されたした。

私は個人的に3か囜語であり、1぀の蚀語を䜿甚するこずに決められたせん。すべおの蚀語が私にずっお矎しいです。

私はこれに同意するこずはできたせん

考えおみおください、あなたは䜕回あなたの電話の蚀語を倉えたしたか おそらく䞀床か、デフォルトの蚀語でロヌルしただけです。

蚘事のさたざたな蚀語は実際には独立した蚘事であるため、りィキペディアはこれの最悪の䟋です。 通垞、たったく同じサむトの異なる蚀語は必芁ありたせん。 4か囜語で䜜業しおも。
たた、実際にラむブスむッチングが必芁な堎合は、 @ petebacondarwinが蚀及したカスタム倉換パむプの回避策、たたは@ocombeの新しいツヌルのいずれかを䜿甚できたす。

さお、ここがこの議論をするのに本圓に最適な堎所ではないず思いたす。 私はこれたでのずころすべおが非垞に合理的でしたが吊定的な議論に陥るのではないかず心配しおいたす。 近い将来、Angularフレヌムワヌクはすぐに䜿えるラむブ蚀語切り替え゜リュヌションを提䟛しないのではないかず心配しおいたす。

この問題の䟡倀は䞀巡したず思いたす。 この問題の説明にリンクされおいる未解決の問題ずPRをhttps://github.com/angular/angular/milestone/101に移動し、このPRを閉じおロックしたす。

機胜リク゚ストの新しい問題がある堎合は、新しい問題を開いおタグを付けおください。

このペヌゞは圹に立ちたしたか
0 / 5 - 0 評䟡