角度平移
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'
});
});
部分,因为我无法在配置中进行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。这是我使用的翻译文档网站。
相关文章:
- 没有找到相关文章