AngularJS如何使用浏览器语言检测?

Erd*_*tin 23 angularjs

嗨,我用http.get从数据库中获取文本.如何使用浏览器检测?如何使用if子句?我不想使用translate.toogle()

    var mainCtrl = function ($scope, $http, $sce, $location,$timeout,$routeParams, toastr) {

    $scope.showPage = false;     
    $timeout(function(){
        $scope.showPage = true;
            },2000);


        $scope.trustedHtml = function (plainText) {
            return $sce.trustAsHtml(plainText);
        }

        $http.get('admin/api/?s=getAbout').success(

         ##### if browser En_en
            function(r){
                $scope.about = r.text_en;

         ##### if browser De_de
            function(r){
                $scope.about = r.text_de;
            }
        );

};
Run Code Online (Sandbox Code Playgroud)

ali*_*ari 28

您可以使用navigator.language以下方式获取浏览器语言

var lang = $window.navigator.language || $window.navigator.userLanguage; 
if (lang === 'en-US') {
  console.log("language is english");
}
Run Code Online (Sandbox Code Playgroud)

  • $ window.navigator.language只是浏览器的UI语言,而不是可接受的语言. (3认同)
  • 我会使用 if(lang.indexOf('en') != -1) 因为有:en-Au、en-SG、en-GB ...等。 (2认同)

Anu*_*jee 12

navigator.languages
    ? navigator.languages[0]
    : (navigator.language || navigator.userLanguage)
Run Code Online (Sandbox Code Playgroud)

是最好的方式.

ref: 用于检测浏览器语言首选项的JavaScript