角度平移

Angular translate

本文关键字:      更新时间:2023-12-25

在我的应用程序中,我想添加将页面翻译成用户在浏览器中设置的所有语言的功能,如果没有可用的语言,请翻译成默认的英语。。。问题是浏览器与语言支持不一致。我找到了一个解决方法,我对一些返回用户语言的Web服务进行http调用。这是在app.run 中完成的

app.run(function($rootScope, UserDataService, $translate){
UserDataService.getUserBrowserLanguage().then(function(language){

    var langArr = language.split(',').map(function(el){
            return el.split(';')[0].split(/-|_/)[0];
        });

    $translate.fallbackLanguage(langArr)
    $translate.preferredLanguage(langArr[0]);
    $translate.use(langArr[0]);
});

});

和应用内配置:

app.config(function ($routeProvider, $translateProvider) {
    $translateProvider.useStaticFilesLoader({
        prefix: '/languages/',
        suffix: '.json'
    });
});

部分,因为我无法在配置中进行http调用,它失败了…:/语言已加载,但翻译没有更改。。。我做错了什么?这里是plunker:

http://plnkr.co/edit/41SngK2tCTeaq8IhMbcM

它不显示任何内容没有翻译。。。为什么?:(如果有任何帮助,我将非常高兴。

对于您的问题,由于以下错误,视图没有显示任何内容:

少数错误:首先,ng应用程序应该移动到html标签。

<html ng-app="translateApp">

其次,如果使用控制器中的变量,则应该使用ng控制器。

<div ng-controller="mainCtrl">

最后,当您将一个变量从视图绑定到控制器时,该变量应该在$scope上。

  $scope.translation = $translate.instant('GENERAL');

用我的评论修复了你的plunker:plunker。

至于$translate的工作方式,我对这项服务并不熟悉,但我会尝试看看。

编辑:我研究了$translate服务,目的是给你一个完整的答案,包括修复你使用translate的方式,所以首先我在尝试使用translate.instant之前超时了2秒,原因是我让translate在配置中加载JSON文件。

我添加了两个按钮,这样你就可以在语言之间切换,看看它是否正常工作。

享受吧!这是最新的工作Plunker。这是我使用的翻译文档网站。

相关文章:
  • 没有找到相关文章