記錄一下angular translate的使用快速筆記。
環境設定
請引用angular-translate.min.js
使用模組 pascalprecht.translate
使用模組 pascalprecht.translate
語言檔
透過 $translateProvider新增多國語系檔對應的內容,你可以另存以下的js至zh_TW.js檔
angular.module('myApp.controllers').config(function ($translateProvider) { $translateProvider .useSanitizeValueStrategy('escaped') .translations('zh_TW', { TRANSLATION_ID: 'Hello world !!', TRANSLATION_ID_2: 'Hello world !! {{value}}', TRANSLATION_ID_3: 'Hello world !! {{value1}},{{value2}}', }); });
$translate service處理多語系
$translate('').then(function(translation) { //translation為取得的鍵值 });
Filter處理多語系
{{ 'TRANSLATION_ID' | translate }}
動態取代多國語言參數
使用filter
{{ 'TRANSLATION_ID_2' | translate:'{"value": 'Ken' }' }}
使用filter與多個參數
{ 'TRANSLATION_ID_3': 'Hello world !! {{value1}},{{value2}}' }
如果要多參數時,請在新增一個json變數至scope,如 $scope.translationData = {value1: 'Ken',value2: 'Ken2'}
{{ 'TRANSLATION_ID_3' | translate: translationData }}
使用directive表示式 在元素內透過translate與translate-values二個directive進行資料繫結
translate="TRANSLATION_ID_3" translate-values="{ value1: translationData.value1,value2: translationData.value2 }
事件
可以取得當語言變更的事件$rootScope.$on('$translateChangeSuccess', function () { // Language has changed });
啟動app設定語言方法
myApp.config(['$translateProvider','$windowProvider', function($translateProvider,$windowProvider) { var defaultLanguage = 'zh_TW';//你定義的語系檔名稱
$translateProvider.use(defaultLanguage); }])
沒有留言:
張貼留言
留個話吧:)