i18n

软件截图:
i18n
软件详细信息:
版本: 0.1
上传日期: 14 Apr 15
开发: Antonio Cuni
许可: 免费
人气: 17

Rating: 3.0/5 (Total Votes: 1)

国际化是一个包,试图简化工作流程和国际化应用程序的开发和NBSP;这是一个瘦包装围绕现有的工具,特别是gettext和巴贝尔。
基本用法
#demo.py

从i18n.translator进口翻译
supported_languages​​ = ['it_IT','fr_FR目录','de_DE这个']
#激活意大利语翻译
TR =翻译('/路径/到/根',supported_languages​​,“it_IT”)
打印TR ._(“世界,你好!”)
其中/路径/到/根/为你的项目的根目录。当实例化,翻译类自动创建一个目录名为/路径/到/根/那里的翻译存储的语言。
提取邮件
在此之前实际的翻译,你需要从源文件中提取信息,通过国际化的模块,这是围绕pybabel提取物和pybabel更新的包装上调用提取命令:
 蟒蛇-m国际化--root = /路径/要/根--languages​​ = it_IT,fr_FR,则de_DE这个提取物
提取查找所有包裹里面的信息调用_(),gettext的()或ngettext(),并产生一个名为语言/ template.pot。这是一个标准的gettext PO file`其中包含的所有应用程序中的发现消息。
此外,提取物()也为每个受支持的语言,语言/ $ CODE / LC_MESSAGES / messages.po,其中$ CODE是在supported_languages​​(it_IT,fr_FR目录和de_DE这个在上面的例子中列出的语言之一,创建了一个消息目录文件)。
编录文件现在已经准备好使用的许多现有的工具之一翻译,例如QT语言学家或poEdit的。对于该应用程序的正确运行,整个语言/层级需要被保留。我们建议与属于该应用程序的其它文件跟踪版本控制系统的各种messages.po文件一起。
更新讯息
在应用程序的开发,则一定会增加新的消息将被翻译。提取命令会自动处理这种情况:如果发现存在编录文件,其内容(包括现有的翻译)合并与新提取的邮件。
编译目录
有必要使用他们的gettext之前,编译目录文件。默认情况下,我们的翻译对象自动编译所有的语言/中发现的目录,产生相应的.mo文件。编译完成,只有当目录文件已被修改。这意味着,在大多数情况下,你不必担心目录的编制。
如果你更喜欢有这一步更多的控制,你可以通过自动编译= False以译者的构造和命令行手动编译它们:
 蟒蛇-m国际化--root = /路径/要/根--languages​​ = it_IT,fr_FR,则de_DE这个编译
在数据库中存储翻译
对于一些应用,让以限定新的翻译和/或替代默认的用户是有用的。 I18N支持该用例与DBTranslator类,这是转换的子类。当翻译,DBTranslator首先在数据库:如果没有找到该邮件,将其委托给标准的gettext行为。
DBTranslator基于SQLAlchem​​y的。它的构造函数需要一个额外的发动机​​参数:
从i18n.dbtranslator进口DBTranslator
从SQLAlchem​​y的进口create_engine
发动机= create_engine('源码:///db.sqlite“)
ROOT =“/路径/到/根”
语言= ['it_IT','fr_FR目录“]
DEST_LANGUAGE ='it_IT“
TR = DBTranslator(ROOT,语言,DEST_LANGUAGE,发动机=引擎)
打印TR ._(“世界你好”)
DBTranslator自动创建数据库表translation_entries。然后,它是由该应用程序提供一个用户界面,以操纵该表。为了进行测试,您可以使用add_translation()方法插入的DB一个新的翻译:
tr.add_translation(“it_IT”,“世界你好”,“侨盟”)
打印TR ._(“世界你好”)#打印“侨盟”
如何使用全球翻译
根据设计,国际化尝试完全避免任何全局状态。这意味着,你可以实例尽可能多的翻译和DBTranslator只要你想,每一个涉及到不同的目录和/或数据库。这对于测试特别有用。
然而,在实践中大多数项目要使用哪个知道在项目中的所有组件的消息的全球翻译。该程序演示了一种方式来做到这一点translate.py模块:
进口PY
从i18n.translator进口翻译
#设置项目的根目录中包含这个文件
ROOT = py.path.local(__ __文件)。dirpath()
语言= ['it_IT','fr_FR目录','de_DE'对应]
TR =转换器(ROOT,语言,'it_IT“)
_ = tr._
ngettext = tr.ngettext
如果__name__ =='__main__':
  tr.cmdline(sys.argv中)
这样,应用程序的其他部分可以简单地导入和使用_()和ngettext()从translate.py。或者,您的喜好,直接进口的潮流对象和使用TR ._()和tr.ngettext()翻译的消息。
最后两行代码实现了便捷的方式来调用提取物和通过命令行编译,而无需手动指定的根目录和支持的语言。只要运行:
 蟒蛇translate.py提取物#...或编译

要求

  • 在Python中

类似的软件

gtranslator
gtranslator

14 Apr 15

X-Unikey
X-Unikey

3 Jun 15

setup-gettext
setup-gettext

3 Jun 15

显影剂的其他软件 Antonio Cuni

pdbpp
pdbpp

11 May 15

意见 i18n

评论没有发现
添加评论
打开图片!