繁体   English   中英

角度翻译

[英]Angular translate

在我的应用程序中,我想添加功能以将页面翻译成用户在浏览器中设置的所有语言,如果没有可用语言,则将其翻译为默认英语...问题是浏览器与语言支持不一致。 我找到了解决方法,我对一些返回用户语言的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'
    });

});

部分,因为我无法在config中进行http调用,并且失败...:/语言已加载,但翻译未更改...我在做什么错? 这是个笨蛋:

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

它不显示任何内容,没有翻译...为什么? :(任何帮助我都会很高兴。

至于您的问题,由于以下错误,该视图未显示任何内容:

几个错误:首先,应将ng-app移至html标签。

<html ng-app="translateApp">

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

<div ng-controller="mainCtrl">

最后,将变量从视图绑定到控制器时,变量应位于$ scope上。

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

通过我的评论修正了您的pl夫: Plunker

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

编辑:我研究了$ translate服务,以便为您提供完整的答案,包括修复您使用Translate的方式,因此,首先我在尝试使用transform.instant之前放置了2秒的超时,原因是我让翻译在配置中加载JSON文件。

我添加了2个按钮,因此您可以在两种语言之间切换,并查看它是否正常工作。

请享用! 这是更新的工作Plunker 这是我使用的翻译文档站点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM