Babel/distutils命令帮助管理JavaScript翻译。
项目描述
双言
双言允许您从JavaScript中提取可翻译的消息到单独的PO文件,然后允许您将它们编译为JSON文件,例如可以与gettext.js一起使用。
动机
许多现代Python Web应用程序也包括大量的可翻译的JavaScript字符串。
因为这段JavaScript代码在浏览器中运行,而不是在Python代码运行的服务器上,所以有必要将其可翻译的消息放在单独的gettext PO文件中,然后您可以从中生成JSON/Javascript翻译文件以在浏览器中加载。
遗憾的是,Babel,它提供了distutils命令来创建消息目录并提取和编译消息,但不允许你在同一个包中为同一语言创建不同的目录。
双言允许您这样做,它提供了新的Babel/distutils命令,您可以使用这些命令从JavaScript中提取可翻译的消息,并将它们与您的应用程序的其他翻译内容分开。
新的distutils命令
双言提供的新distutils命令包括
init_js_catalog - 初始化一个用于JS消息的新gettext目录。
extract_js_messages - 从JS中提取消息并将它们放入目录中。
update_js_catalog - 使用较新JS代码中的消息更新现有目录。
compile_js_catalog - 从.pot文件创建编译后的.mo和JSON文件。
Babel的用户会注意到这些命令与Babel提供的命令非常相似
init_catalog
extract_messages
update_catalog
compile_catalog
双言的一些命令实际上是Babel命令的包装器。它们提供的优势是您可以独立于Babel命令来配置它们,例如在您的setup.cfg文件中。
配置
以下是一个示例setup.cfg文件,展示了如何配置标准Babel命令和新双言命令
[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友好。
0.2 (2016-03-04)
简化生成的JavaScript翻译文件。
添加“output-prefix”选项以作为生成语言.js文件名的前缀,默认为''。
添加“statistics”和“use-fuzzy”以与Babel的compile_catalog保持一致。
基于.pot文件而不是.mo文件构建js文件。
0.1 (2016-02-26)
初始版本。
项目详情
doublespeak-0.3.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0da58fb20a2da5fd8e9b6d87fed5ca7cf77ffdfa83d0189e2e3a45ab2f90c5a0 |
|
MD5 | 317bb9209ef60ae928212762aceb825c |
|
BLAKE2b-256 | ec504f94e438a54d1d77a13d2e6c2a95fac9635dc8bf169d5132e7158a2c590e |