angular-gettext不会从.PO文件中选择字符串

时间:2019-07-12 15:18:15

标签: angularjs django angular-gettext grunt-angular-gettext

我已经根据文档安装了所有内容。根据文档,有些事情正在运行。是否有类似Django翻译的功能,如果您选择了lang,就会自动替换特定语言的翻译?

Index.html

<!DOCTYPE HTML>
<html>
{% load static %}
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.min.js"></script>
<script src="{% static 'first.js'%}"></script>
<script src="{% static '/angular-gettext/dist/angular-gettext.js'%}"></script>

<script type="text/javascript" >
    angular.module('first').run(function (gettextCatalog) {
    gettextCatalog.setCurrentLanguage('fr');
    gettextCatalog.debug = true;
    gettextCatalog.setStrings('fr', {
    "Hello!":"Bonjour !"});

});

</script>

</head>
<body>
<div ng-app="first">
    <translate>Hello!</translate> Sagar
    <h1 translate>Hello!</h1>

</div>

</body>
</html>

PO文件

msgid ""
msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"X-Generator: Poedit 2.2.3\n"
"Last-Translator: \n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
"Language: fr\n"

#: ui/templates/admin/firsttranslate/index.html:24
#: ui/templates/admin/firsttranslate/index.html:26
msgid "Hello!"
msgstr "Halo !"

运行代码时,它将搜索Hello并替换为 Bonjour ,但我希望像Django一样自动将其替换 预先感谢。

1 个答案:

答案 0 :(得分:0)

我忘了提到Gruntfile.js中文件的路径

'use strict';

module.exports = function (grunt) {
grunt.initConfig({
    nggettext_extract: {
        pot: {
            files: {
                'po/template.pot': ['ui/templates/admin/firsttranslate/*.html', 'js/first.js']
            }
        },
    },

    nggettext_compile: {
        all: {
            files: {
                'js/translations.js': ['fr/LC_MESSAGES/djangojs.po']
            }
        },
    },
});

grunt.loadNpmTasks('grunt-angular-gettext');

grunt.registerTask('default', ['nggettext_extract', 'nggettext_compile']);
};