Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么语言不能用英语翻译_Javascript_Angularjs - Fatal编程技术网

Javascript 为什么语言不能用英语翻译

Javascript 为什么语言不能用英语翻译,javascript,angularjs,Javascript,Angularjs,这是我的JS文件。我已经为单页编写了代码。它在单页上运行良好,但当我尝试在整个主题上运行时,它不起作用。它无法翻译这种语言 请告诉我错误是什么 函数SetLang(langkey) { 警报(“语言更改为“+langkey”); setItem(“选定的_语言”,langkey); } 我的工作代码是这样的 (function() { angular.module("MetronicApp").controller("deviceViewController",devi

这是我的JS文件。我已经为单页编写了代码。它在单页上运行良好,但当我尝试在整个主题上运行时,它不起作用。它无法翻译这种语言

请告诉我错误是什么

函数SetLang(langkey) { 警报(“语言更改为“+langkey”); setItem(“选定的_语言”,langkey); }
我的工作代码是这样的

(function() {
  angular.module("MetronicApp").controller("deviceViewController",deviceViewController)

  .factory("asyncLoader", asyncLoader)
  .config(config);


  //@config
  config.$inject = [ '$translateProvider' ];

  function config($translateProvider) {
//      $translateProvider.translations("ci", Language_ci);
//      $translateProvider.translations("en", Language_en);
//      $translateProvider.translations("hi", Language_hi);
//      $translateProvider.translations("sp", Language_sp);
      $translateProvider.preferredLanguage('en');
//      $translateProvider.translations('ci', {
//          DeviceId: '设备ID',
//          TimeStamp:'时间戳'
//      });

      $translateProvider.useLoader('asyncLoader');
   // $translateProvider.useLocalStorage();

    var langMap = {
      'en_AU': 'en',
      'en_CA': 'en',
      'en_NZ': 'en',
      'en_PH': 'en',
      'en_UK': 'en',
      'en_US': 'en',
      'ja_JP': 'ja',
      'en_hi': 'hi',
      'en_ci': 'ci',
      'en_ch': 'ci'
    };

    $translateProvider
    .registerAvailableLanguageKeys(['en', 'sp', 'hi', 'ci'], langMap)

    .determinePreferredLanguage();
    /*console.log($translateProvider.
    .determinePreferredLanguage());*/
                                //window.navigator.languages[0]
  }

  // @factory
  asyncLoader.$inject = [ '$q', '$timeout', '$http' ];
  function asyncLoader($q, $timeout, $http) {

    return function(options) {
      var deferred = $q.defer(), translations;

      var resturl = "lang"+options.key+".json";
      $http.get(
        resturl,{cache:false}).success(function(translations) {
          deferred.resolve(translations);
            //alert(translations);
          }).error(function(translations) {
            deferred.reject(translations);
          });

          $timeout(function() {
            deferred.resolve(translations);
          }, 2000);

          return deferred.promise;
        };

      }

  //@controller
  deviceViewController.$inject = [ '$translate', '$scope','$rootScope','$state'];

  function deviceViewController($translate, $scope,$rootScope,$state) {
    $scope.defaultlanguage = true;
    $scope.state= $state;


          $scope.SetLang = function(langkey) {
          var key = localStorage.getItem("Selected_Language");

              if (langkey === 'ci') {
              alert("Selected Key form Single Device View is " + langkey);
              $rootScope.lang = "ci";
              $scope.defaultlanguage = true;
              //changeLanguageFeedbackPanel(key);
                $translate.use(langkey);
              //  alert("Language Setted");
             }

             if (langkey === 'en') {
              alert("Selected Key form Single Device View is " + langkey);
              $rootScope.lang = "en";
              $scope.defaultlanguage = false;
              //changeLanguageFeedbackPanel(key);
              $translate.use(langkey);
            }

            if (langkey === 'hi') {
              alert("Selected Key form Single Device View is " + langkey);
              // alert("lang key is "+langKey);
              $rootScope.lang = "hi";
              $scope.defaultlanguage = false;
              $translate.use(langkey);

           }
          if (langkey === 'sp') {
              alert("Selected Key form Single Device View is " + langkey);
              $rootScope.lang = "sp";
              $scope.defaultlanguage = false;
             $translate.use(langkey);
          }
//          $translate.use(langkey);
      }
//      $scope.changeLanguage = function(langKey) {
//
//          if(langKey === 'en')
//          {
//              $rootScope.lang= "en";
//              $scope.defaultlanguage = true;
//              //changeLanguageFeedbackPanel(langKey);
//          }
//          if(langKey === 'sp')
//          {
//              //alert("clicked Spanish");
//              $rootScope.lang= "sp";
//              $scope.defaultlanguage = false;
//              //changeLanguageFeedbackPanel(langKey);
//          }
//          if(langKey === 'hi')
//          {
//              // alert("lang key is "+langKey);
//              $rootScope.lang= "hi";
//              $scope.defaultlanguage = false;
//          }
//          if(langKey === 'ci')
//          {
//              $rootScope.lang= "ci";
//              $scope.defaultlanguage = false;
//
//          }
//
//          $translate.use(langKey);
//      };
//

//      var key= localStorage.getItem("key");
////        $scope.SetLang= function (Key) {
//
//      if (key === 'ci') {
//          alert("Selected Key from Single Device View is " + Key);
//          $rootScope.lang = "ci";
//          $scope.defaultlanguage = true;
//          //changeLanguageFeedbackPanel(langKey);
//          $translate.use(key);
//      }
//
//      if (Key === 'en') {
//          alert("Selected Key from Single Device View is " + Key);
//          $rootScope.lang = "en";
//          $scope.defaultlanguage = true;
//          //changeLanguageFeedbackPanel(langKey);
//          $translate.use(key);
//      }
//      if (Key === 'hi') {
//          alert("Selected Key form Single Device View is " + Key);
//          // alert("lang key is "+langKey);
//          $rootScope.lang = "hi";
//          $scope.defaultlanguage = true;
//          $translate.use(key);
//
//      }
//      if (Key === 'sp') {
//          alert("Selected Key form Single Device View is " + Key);
//          $rootScope.lang = "sp";
//          $scope.defaultlanguage = true;
//          $translate.use(key);
//      }

      $scope.device_data=[
          {"deviceId":"temperature","timeStamp":"temperature","paramName":"temperature","paramValue":"151","paramUom":"Off Device"},
          {"deviceId":"temperature","timeStamp":"temperature","paramName":"temperature","paramValue":"151","paramUom":"Off Device"},
          {"deviceId":"temperature","timeStamp":"temperature","paramName":"temperature","paramValue":"151","paramUom":"Off Device"}
      ];

//    $scope.changeLanguage = function(langKey) {
//
//      if(langKey === 'en')
//      {
//        $rootScope.lang= "en";
//        $scope.defaultlanguage = true;
//          //changeLanguageFeedbackPanel(langKey);
//        }
//        if(langKey === 'sp')
//        {
//          //alert("clicked Spanish");
//          $rootScope.lang= "sp";
//          $scope.defaultlanguage = false;
//          //changeLanguageFeedbackPanel(langKey);
//        }
//        if(langKey === 'hi')
//        {
//          // alert("lang key is "+langKey);
//           $rootScope.lang= "hi";
//           $scope.defaultlanguage = false;
//        }
//        if(langKey === 'ci')
//        {
//          $rootScope.lang= "ci";
//          $scope.defaultlanguage = false;
//
//        }
//
//        $translate.use(langKey);
//      };
//
      $scope.Action=function()
      {
          alert("Action Clicked Successfully");
      }

      // On Click Action starts here
      $scope.doAction= function () {
          // body to perform action...

          alert("Action taken Successfully");
      }
}//Controller Ended

  })();
HTML内容:

(function() {
    'use strict';

    angular
        .module('app.translate')
        .run(translateRun)


    translateRun.$inject = ['$rootScope', '$translate'];
    function translateRun($rootScope, $translate){
      $rootScope.language = {
        listIsOpen: false,
        available: {
          'en': 'English',
          'es': 'Español',
          'de': 'Deutsch',
          'fr': 'Français',
          'ru': 'Русский',
          'ua': 'Українська'
        },
        init: function () {
          var proposedLanguage = $translate.proposedLanguage() || $translate.use();
          var preferredLanguage = $translate.preferredLanguage();
          $rootScope.language.selected = $rootScope.language.available[ (proposedLanguage || preferredLanguage) ];
        },
        set: function (localeId) {
          $translate.use(localeId);
          $rootScope.language.selected = $rootScope.language.available[localeId];
          $rootScope.language.listIsOpen = ! $rootScope.language.listIsOpen;
        }
      };
      $rootScope.language.init(); 
    }
})();

  • 你导入angularjs库了吗?是的,我已经导入了所有必要的库。你可以给我发送在我的代码中需要做的更改。首先,你不需要在你的部件中使用控制器。你必须把它做成一个模块系统,然后把它注入你想要的地方。
    <li class="menumain" is-open="language.listIsOpen">
        <a class="">
          <em class="fa-globe fa fa-2x"></em>
        </a>
     <ul role="menu" class="menumain-sub">
        <li ng-repeat="(localeId, langName) in language.available">
            <a ng-click="language.set(localeId, $event)" href="#">{{langName}}</a>
        </li>
     </ul>
    </li>