[英]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个按钮,因此您可以在两种语言之间切换,并查看它是否正常工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.