2017-09-11 10 views
5

私のアプリでは、多くの翻訳文字列にユーザー名を含める必要があります。たとえば :Hello {{user_name}}! {{user_name}}が表示されますので角度変換プロバイダ - 一般変数を置き換える方法はありますか?

属性を設定する方法は{{"TRANSLATE_ID" | translate:{user_name:myUserName}}}

です)(ユーザー名は、文字列の名前の位置は、言語に依存するため、翻訳文字列の一部である必要があります) 100を超える翻訳文字列では、user_nameパラメータを何度も送信したくありません。私はこのパラメータを1つだけ設定する方法を持っていたいと思います。

translateProviderが文字列を設定したときにuser_nameが非同期に設定され(サーバーからフェッチされた)、利用できないため、{{user_name}}文字列を置き換えることができません。

おかげ

答えて

0

AngularTranslateあなたは約束によって、HTML自体からまたはコントローラ内のタグを翻訳することができます。あなたが望むことをするエレガントな方法は、コントローラのメソッド/関数を作成して、必要な方法で変換を処理し、このメソッド/関数をhtmlで呼び出してパラメータとしてユーザー名を渡すことです。

「Hello、USERNAME!」のように、JSONの翻訳ファイルのユーザー名を「USERNAME」として指定し、コントローラでAngularTranslateを使用して作成したメソッドで翻訳を行ってから、文字列の置換を行ってUSERNAMEメソッドパラメータ(実際のユーザ名)を取得し、この文字列をメソッドの戻り値として使用します。これはHTMLで呼び出されます。

これが役に立ちます。

関連する問題