0

私は、通貨の書式で数字をフォーマットしています。小数点とカンマ/ポイントは千を表します。angularjs指定された翻訳言語に従った通貨書式

app.directive('format', ['$filter', function ($filter) { 
    return { 
     require: '?ngModel', 
     link: function (scope, elem, attrs, ctrl) { 
      if (!ctrl) return; 
      ctrl.$formatters.unshift(function (a) { 
       return $filter(attrs.format)(ctrl.$modelValue) 
      }); 
      elem.bind('blur', function(event) { 
       var plainNumber = elem.val().replace(/[^\d|\-+|\.+]/g, ''); 
       elem.val($filter(attrs.format)(plainNumber)); 
      }); 
     } 
    }; 
}]); 

マイアプリには、通貨に関連する数字の表記が異なる2つの言語インターフェースがドイツ語と英語で用意されています。
フォーマットがユーザーの選択に合うように、ユーザーが選択した言語を考慮するにはどうすればよいですか?ここ

私の言語翻訳コードさ:

app.config(['$translateProvider', 
function ($translateProvider) {  
    $translateProvider.useStaticFilesLoader({ 
     prefix: 'assets/i18n/', 
     suffix: '.json' 
    });  
    $translateProvider.preferredLanguage('en');  
    $translateProvider.useLocalStorage(); 

}]); 

メインコントローラ:

$scope.language = { 
    listIsOpen: false, 
    available: { 
     'en': 'English', 
     'de_DE': 'Deutsch' 
    }, 
    init: function() { 
     var proposedLanguage = $translate.proposedLanguage() || $translate.use(); 
     var preferredLanguage = $translate.preferredLanguage(); 
     $scope.language.selected = $scope.language.available[(proposedLanguage || preferredLanguage)]; 
    }, 
    set: function (localeId, ev) { 
     $translate.use(localeId); 
     $scope.language.selected = $scope.language.available[localeId]; 
     $scope.language.listIsOpen = !$scope.language.listIsOpen; 
    } 
}; 

$rootScope.$on('$translateChangeSuccess', function() { 
    var lang = $translate.use(); 
    $http.get('assets/i18n/'+lang+'.json').success(function(data) { 
     $rootScope.i18nTranslationJSON = data; 
     $rootScope.$emit('myTranslationsLoaded'); 
    }); 
}); 
$scope.language.init(); 
+0

https://github.com/lgalfaso/angular-dynamic-locale – Phil

答えて

0

あなたは車輪の再発明しようとする前にネイティブ$localeサービスに見えることがありますか? 使用するlocaleの通貨、日付、および番号をフォーマットするネイティブフィルタがあります。

ページをリロードすることなくオンザフライで言語を変更するには、angular-dynamic-localeモジュールを使用できます。

関連する問題