【发布时间】:2012-05-03 06:43:54
【问题描述】:
据说here Babel 可以为 Python 和 Javascript 文件提取 gettext 消息。
Babel 带有一些内置的提取器:python(它提取 来自 Python 源文件的消息)、javascript 和忽略(其中 什么都不提取)。
命令行提取器记录在here - 但没有使用示例。
同样在上面的same pointer 中,提到了一个用于提取的配置文件,但没有太多扩展。
当我在带有 js 文件的目录上运行提取器的基本命令时,我只生成了 .PO 标头,但没有消息。
$ pybabel extract /path/to/js-dir
# Translations template for PROJECT.
# Copyright (C) 2012 ORGANIZATION
# This file is distributed under the same license as the PROJECT project.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PROJECT VERSION\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2012-04-22 19:39+1000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 0.9.6\n"
$
这是我尝试提取消息的 js 文件中的示例片段:
else if(data.status == "1"){
var follow_html = gettext('Follow');
object.attr("class", 'button follow');
object.html(follow_html);
var fav = getFavoriteNumber();
fav.removeClass("my-favorite-number");
if(data.count === 0){
data.count = '';
fav.text('');
}else{
var fmts = ngettext('%s follower', '%s followers', data.count);
fav.text(interpolate(fmts, [data.count]));
}
}
如果有人可以提供准确的 CLI 选项和配置设置以使提取工作正常进行,我将不胜感激。
【问题讨论】:
-
你在 js 中使用的 gettext/ngettext 函数是什么?我现在处于同一阶段 - 我有 babel 为 html 和 python 工作,但不是 js
-
其实这是一个 OS 项目(Askbot)——你可以在这里查看github.com/ASKBOT/askbot-devel
-
我发现了我的问题,顺便说一句:stackoverflow.com/questions/10647449/…
标签: javascript python localization gettext python-babel