babel/distutils命令帮助管理javascript翻译。
doublespeak的Python项目详细描述
双重语言
doublespeak允许您将javascript中的可翻译消息提取到 单独的po文件,然后让您将它们编译成json文件,这些文件可以 例如与 gettext.js
动机
许多现代python web应用程序还包括大量 javascript中的可翻译字符串。
因为这个javascript代码在浏览器中运行,而不是在 运行python代码的服务器需要 在单独的gettext po文件中的可翻译消息 然后可以生成json/javascript转换文件以加载到 浏览器。
不幸的是,Babel,它 提供distutils命令以创建邮件目录,并提取和 编译消息,不允许为 同一个包中有相同的语言。
doublespeak允许您通过提供新的babel/distutils 可用于从中提取可翻译消息的命令 javascript,并将它们与应用程序的其他部分分开 翻译。
新的distutils命令:
DoubleSpeak提供的新distutils命令是:
- init_js_catalog-初始化一个新的gettext catalog, 专门针对js消息。
- extract_js_消息-从js中提取消息并将其放入 目录。
- {STR 1 } $UpDATEJSX目录< /强> -用消息更新现有目录 从新的js代码。
- compile_js_catalog-创建已编译的.mo和json文件 从.po文件中
babel的用户会注意到这些命令与 巴贝尔提供的:
- init_目录
- 提取消息
- 更新目录
- 编译目录
一些doublespeak命令只是巴贝尔的包装。 命令。它们提供的好处是您可以配置它们 独立于babel命令,例如setup.cfg 文件。
配置
下面是一个setup.cfg文件示例,它演示了如何 配置标准的babel命令和新的doublespeak命令:
[compile_catalog] # Change to a relevant domain domain = mypackage directory = src/mypackage/i18n/locales [compile_js_catalog] # Note that the Javascript files have a different domain. You'll need to use # this domain in your Javascript code, instead of using the domain above, # declared for the Python code. domain = mypackagejs # Contrary to compile_catalog, this commands takes both input and output directories, so that you can write the JSON translation files to a separate directory, where you might have the rest of your Javascript code. input_dir = src/mypackage/i18n/locales output_dir = src/mypackage/browser/resources/js/i18n [extract_messages] # Change to your organisation copyright_holder = Acme Inc. output_file = src/mypackage/i18n/locales/en/LC_MESSAGES/mypackage.po charset = UTF-8 add-comments = i18n [extract_js_messages] keywords = __ no-default-keywords = True copyright_holder = Acme Inc. output_file = src/mypackage/i18n/locales/en/LC_MESSAGES/mypackagejs.po charset = UTF-8 add-comments = i18n [init_catalog] domain = mypackage input_file = src/mypackage/i18n/locales/en/LC_MESSAGES/mypackage.po output_dir = src/mypackage/i18n/locales [init_js_catalog] domain = mypackagejs input_file = src/mypackage/i18n/locales/en/LC_MESSAGES/mypackagejs.po output_dir = src/mypackage/i18n/locales [update_catalog] domain = mypackage input_file = src/mypackage/i18n/locales/en/LC_MESSAGES/mypackage.po output_dir = src/mypackage/i18n/locales [update_js_catalog] domain = mypackagejs input_file = src/mypackage/i18n/locales/en/LC_MESSAGES/mypackagejs.po output_dir = src/mypackage/i18n/locales
更改
0.3(2016-03-07)
- 输出文件javascript现在是jshint happy。
0.2(2016-03-04)
- 简化生成的javascript翻译文件。
- 添加“output prefix”选项为生成语言的文件名添加前缀 .js文件,默认为''。
- 添加“统计”和“使用模糊”与巴贝尔的编译目录相同。
- 基于.po文件而不是.mo文件构建js文件。
0.1(2016-02-26)
- 初次发布。