用javascript翻译

时间:2015-01-22 07:05:47

标签: javascript angularjs node.js gruntjs gettext

我有一个angulerjs / grunt / gettext / node.js应用程序。我已经生成了pot文件但是如何让我的程序自动翻译?我看到你可以使用pootle,zanata等上传它们,但是没有找到足够的在线帮助。提前谢谢

1 个答案:

答案 0 :(得分:0)

我不知道Pootle或Zanata。但是,一旦你有.json格式的翻译文件,我会告诉你一种基于用户代理自动翻译的方法。

您可以像这样以角度提供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>

注意:我没有测试代码,仅用作参考