【发布时间】:2015-01-22 07:05:46
【问题描述】:
我有一个 angulerjs / grunt / gettext / node.js 应用程序。我已经生成了 pot 文件,但是如何让我的程序自动翻译?我看到您可以使用 pootle、zanata 等上传它们,但没有找到足够的在线帮助。提前谢谢你
【问题讨论】:
标签: javascript angularjs node.js gruntjs gettext
我有一个 angulerjs / grunt / gettext / node.js 应用程序。我已经生成了 pot 文件,但是如何让我的程序自动翻译?我看到您可以使用 pootle、zanata 等上传它们,但没有找到足够的在线帮助。提前谢谢你
【问题讨论】:
标签: javascript angularjs node.js gruntjs gettext
我不认识 Pootle 或 Zanata。但是,一旦您拥有 .json 格式的翻译文件,我会告诉您一种基于用户代理自动翻译它的方法。
您可以像这样使用 Angular 的 Lang 服务: http://jsfiddle.net/e5nhttcf/
module.factory('Lang',['$q', '$http', function($q){
var lang = {};
lang.literals = {};
lang.current = navigator.language;
lang.getLiterals = function(){
var deferred = $q.defer();
$http.get(location.origin + "/getlang/"+lang.current).success(function(data, status, headers, config){
if(data){
lang.literals = data;
deferred.resolve();
}
});
return deferred.promise;
};
return lang;
}
}]);
首先,在初始化应用程序时调用 getLiterals。
然后,您只需将工厂注入控制器并将文字分配给局部变量。然后在 html 中,您可以引用本地化文字:
<div> {{literals.greetings}} </div>
注意:我没有测试代码,仅供参考
【讨论】: