Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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/23.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 AngularJS中的动态语言选择_Javascript_Angularjs_Angular Translate - Fatal编程技术网

Javascript AngularJS中的动态语言选择

Javascript AngularJS中的动态语言选择,javascript,angularjs,angular-translate,Javascript,Angularjs,Angular Translate,嗨,我正在用Angularjs开发一个应用程序。本网站将使用两种语言。它们是阿拉伯语和英语。Belo是我选择语言时使用的逻辑。 如果浏览器默认语言为阿拉伯语,则以阿拉伯语显示网站。 如果浏览器默认语言不是阿拉伯语,则以英语显示网站 我还在网站上保留了阿拉伯语和英语的图片,以便在不同语言之间切换 <div class="language"><a href="#"><img src="images/arabic.png"></a></div&

嗨,我正在用Angularjs开发一个应用程序。本网站将使用两种语言。它们是阿拉伯语和英语。Belo是我选择语言时使用的逻辑。 如果浏览器默认语言为阿拉伯语,则以阿拉伯语显示网站。 如果浏览器默认语言不是阿拉伯语,则以英语显示网站

我还在网站上保留了阿拉伯语和英语的图片,以便在不同语言之间切换

  <div class="language"><a href="#"><img src="images/arabic.png"></a></div>
        <div class="language"><a href="#"><img src="images/en-english-language-browser-function-512.png"></a></div>

我不熟悉这个棱角分明的世界。我可以得到一些帮助来完成这个吗?任何帮助都将不胜感激。多谢各位

只需将当前语言存储在$scope变量中,并将其与ng src一起使用,即可动态设置图像的源。像这样:

<div class="language">
    <a href="#">
        <img ng-src="images/{{ lang === 'ar-sa' ? 'arabic.png' : 'en-english-language-browser-function-512.png' }}"/>
    </a>
</div>

这不是控制器的问题,您不应该使用控制器fot语言选择

您应该使用配置阶段进行此操作,smth如下所示

app.config(function($translateProvider) {
  $translateProvider.translations('en', {
    HEADLINE: 'Hello there, This is my awesome app!',
    INTRO_TEXT: 'And it has i18n support!',
    BUTTON_TEXT_EN: 'english',
    BUTTON_TEXT_DE: 'german'
  })
  .translations('de', {
    HEADLINE: 'Hey, das ist meine großartige App!',
    INTRO_TEXT: 'Und sie untersützt mehrere Sprachen!'
    BUTTON_TEXT_EN: 'englisch',
    BUTTON_TEXT_DE: 'deutsch'
  });
  $translateProvider.preferredLanguage('en');
});

为您的网站使用两个json文件,一个用于英语,另一个用于阿拉伯语。在每个文件中,您应该提供相同的键和不同的值,如:

英语 [ 标题:网站, img:你的英文img src路径 ]

阿拉伯语 [ 标题:网站阿拉伯文翻译, img:阿拉伯语的img src路径 ]

在$translateProvider.useStaticFileLoader中指定这两个文件使用角度平移加载器静态文件您可以在bower或npm中找到它

然后你就这样提到你的img:


就这样…

我怎样才能得到这个点击事件?例如,如果我点击英语,我应该在控制器中获得英语。我该怎么做?
app.controller('RoslpAppController', ['$scope', '$translate', 'toastr', '$window', function ($scope, $translate, toastr, $window) {
    debugger;
    $scope.lang = $window.navigator.language || $window.navigator.userLanguage;
    if ($scope.lang === 'ar-sa')
    {
        $translate.use('de_AR');
         //bind arabic.png
    }
    else
    {
        $translate.use('de_EN');
         //bind english.png
    }
}]);
app.config(function($translateProvider) {
  $translateProvider.translations('en', {
    HEADLINE: 'Hello there, This is my awesome app!',
    INTRO_TEXT: 'And it has i18n support!',
    BUTTON_TEXT_EN: 'english',
    BUTTON_TEXT_DE: 'german'
  })
  .translations('de', {
    HEADLINE: 'Hey, das ist meine großartige App!',
    INTRO_TEXT: 'Und sie untersützt mehrere Sprachen!'
    BUTTON_TEXT_EN: 'englisch',
    BUTTON_TEXT_DE: 'deutsch'
  });
  $translateProvider.preferredLanguage('en');
});