皮顿翻译图书馆

python-i18n的Python项目详细描述


#python-i18n[![构建状态](https://travis-ci.org/tuvistavie/python-i18n.png?branch=master)(https://travis-ci.org/tuvistavie/python-i18n)[![覆盖状态](https://covertalls.io/repos/tuvistavie/python-i18n/badge.png?branch=master)(https://coveralls.io/r/tuvistavie/python-i18n?branch=master)[![代码气候](https://codeculate.com/github/tuvistavie/python-i18n/badges/gpa.svg)](https://codeculate.com/github/tuvistavie/python-i18n)



此库为python 3提供了开箱即用的i18n功能。使用情况主要基于raili18n库。



不太有用的用法是

导入i18n
i18n.add_translation('foo','bar')
i18n.t('foo')bar

使用翻译文件

yaml和json格式存储翻译。使用默认配置,如果您有以下“foo.en.yml”文件

hi:hello world!

在`/path/to/translations`文件夹中,您只需将该文件夹添加到翻译路径即可。

i18n.load廑path.append('/path/to/translations')
i18n.t('foo.hi')\hello world!

请注意,如果您安装了“yaml”模块,则使用yaml格式作为默认文件格式。
如果“yaml”和“json”模块都可用,并且您希望使用json存储翻译,请显式指定:`i18n.set('file_format','json')`

翻译键是“foo.hi”,而不仅仅是“hi”。这是因为转换文件名格式默认为{namespace}.{locale}.{format}`,所以文件的{namespace}部分用作转换。

若要从文件名格式中删除{namespace}`请更改“filename}格式”配置。

i18n.set('filename}格式','{locale}.{format}')

因此,文件密钥可以从“my.app.name.foo.my嫒u key”访问。


在默认配置中,占位符是通过在nTranslation字符串中插入“%{placeholder_name}”来使用的。下面是一个示例用法。

i18n.add_translation('hi','hello%{name}!')
i18n.t('hi',name='bob')你好,鲍勃!

通过向您的翻译传递一个'count'变量,它将被复数化。翻译值应该是至少有“one”和“many”键的单词。您可以在需要时添加“零”或“少”键,如果不存在,则改用“多”键。下面是一个示例用法。

i18n.add廑translation('mail廑number',{
'zero':'您没有任何邮件。',
'one':'您有一封新邮件。',
'few':'您只有%{count}封邮件。',
'many':'您有%{count}封新邮件。'
})
i18n.t('mail廑number',count=0)您没有任何邮件。
i18n.t(“邮件编号”,count=1)您有新邮件。
i18n.t(“邮件编号”,count=3)您只有3封新邮件。
i18n.t(“邮件编号”,count=12)您有12封新邮件。

离子('foo','bar',locale='en')
i18n.t('foo')bar

i18n结构文件有时来自另一个项目或不包含具有locale的根元素,例如'en'名称。

{
“foo”:“foobar”
}

用于翻译的基文件。
`python-i18n`具有跳过区域设置的特殊配置,例如从文件中跳过'en'根数据元素。








欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java应用程序图标未出现在系统托盘上   java如何将集合<Set>转换为ArrayList<ArrayList>   用于Android的java pjsip   java如何组合两个做相同事情但类型不同的方法?   java如何在类位于列表中时调用该类的方法   java在DirectOptions类中缺少选项   java如何处理compare()中的空字段?   向组织添加招摇过市支持时,PortForwarder中出现java异常。玻璃鱼。运动衫服务器   Eclipse的java应用程序引擎插件错误:400错误请求,我的邮件无效   java“主线程中出现异常/by zero”错误   java中的声明式编程   java是在Spring Boot中发送10万封电子邮件并在数据库中保持进度的最有效方法?   通过网络同时在两台安卓设备上显示java活动   java无法在jetty上部署jar