2017-12-28 15 views
2

多言語サポートAngular JSプロジェクトを開発中です。私はラベル名を特定の言語に翻訳したいと思う(ラベル名 - 検索サイト、訪問サイト、それはすでに価値がある)。このため私はAngular JSの翻訳を使用していません。私は新しいカスタムフィルターを書くつもりです。 (私は計画は別々のJSONファイルで異なる言語でのラベル名の値を持つことです。)私の見解ではAngular JSカスタムフィルタにアクセスするには

のAppフィルター

app.filter('langTrans', function() { 
//Instead of reading values, I only added demo values to test. 
var data ={"searchsites":"recherche ", "visitsite":"voir "} 

return function(data) { 
    //custom filter translation logic goes here 

    return "//value goes here "; 

} }); 

、私はパイプを使用してフィルタを呼んでいます。しかし、その代わりにすべての値をretrivingの、私は唯一の特定の要素の値を返す必要があります(例:最初のボタンのために私は唯一の検索サイト翻訳された値を取得する必要があります)

<li> 
    <md-button ng-href="#!/search">{{searchsites | langTrans}}</md-button> 
</li> 
<li> 
    <md-button ng-href="#!/visit">{{ visitsite | langTrans }}</md-button> 
</li> 
+0

何を '検索サイト '&' visitsite'には? –

+0

すでに値があります。 – coderaizer

+0

これらの変数にはどのような値がありますか? –

答えて

2

angular.module('app', []).filter('langTrans', function() { 
 
    var translate = [{ 
 
     'Language 1': { 
 
     'searchsites': 'Job Search', 
 
     'visitsites': 'View Jobs', 
 
     } 
 
    }, 
 
    { 
 
     'Language 2': { 
 
     'searchsites': 'Recherche d emploi', 
 
     'visitsites': 'Voir les offres', 
 
     } 
 
    }, 
 
    { 
 
     'Language 3': { 
 
     'searchsites': 'Пошук роботи', 
 
     'visitsites': 'Переглянути роботу', 
 
     } 
 
    } 
 
    ] 
 

 
    return function(input, language) { 
 
    return translate.filter(function(x){ return !!x[language]; })[0][language][input]; 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 

 
<div ng-app='app'> 
 
    {{'searchsites' | langTrans : 'Language 3'}} 
 
</div>

+0

お返事ありがとうございました。私はそれらを変更しました。しかし、それは動作していません。コンソールに関する問題もありません。何も表示されません。 – coderaizer

+0

@コーデアイザー、よろしいですか?私のコードは、おそらく動作します、あなたはそれを自分で試すことができます。あなたは引用符を忘れているかもしれませんか? –

+0

私のプログラムでは、すでに検索サイトと訪問者の価値があります。 – coderaizer

関連する問題