pyramid.i18n
¶
- class TranslationString(msgid, domain=None, default=None, mapping=None, context=None)[源代码]
的构造函数 translation string . 翻译字符串是一个类似Unicode的对象,具有一些额外的元数据。
此构造函数接受一个名为
msgid
.msgid
必须是 message identifier 用于转换字符串。一定是Aunicode
对象或str
以默认系统编码编码的对象。此对象构造函数的可选关键字参数包括
domain
,default
和mapping
.domain
代表 translation domain . 默认情况下,转换域为None
,指示此翻译字符串与默认翻译域(通常messages
)default
表示显式 默认文本 对于此翻译字符串。当转换字符串无法转换时,将显示默认文本。通常,msgid
翻译字符串的默认文本为双职责。但是,使用此选项可以为此翻译字符串提供不同的默认文本。当转换字符串的默认值太复杂或太长,无法用作消息标识符时,此功能非常有用。如果default
是提供的,它必须是unicode
对象或str
用默认系统编码的对象(通常指ASCII)。如果default
是None
(其默认值)msgid
此转换字符串使用的值将假定为default
.mapping
如果提供,则必须是类似字典的对象,该对象表示 translation string 替换标记 在中找到的实例msgid
(或)default
)此转换字符串的值。context
代表 translation context . 默认情况下,翻译上下文为None
.在构造翻译字符串之后,它的行为与其他大多数字符串一样
unicode
对象;msgid
当值被视为unicode
对象。只有当它ugettext
方法将被转换。其默认值可用作
default
对象的属性,其 translation domain 可作为domain
属性,以及mapping
可作为mapping
属性。否则,对象的行为与Unicode字符串非常相似。
- TranslationStringFactory(factory_domain)[源代码]¶
创建一个工厂,该工厂将生成翻译字符串,而无需向工厂传递每个调用
domain
价值。将单个参数传递给此类的构造函数:domain
. 此值将用作domain
价值观translationstring.TranslationString
由生成的对象__call__
属于这一类。这个msgid
,mapping
和default
提供给__call__
此类实例的方法具有的含义与translationstring.TranslationString
- class Localizer(locale_name, translations)[源代码]¶
提供与当前请求的区域设置名称相关的翻译和复数的对象。一
pyramid.i18n.Localizer
对象是使用pyramid.i18n.get_localizer()
功能。- locale_name¶
此本地化程序的区域设置名称(例如
en
或en_US
)
- pluralize(singular, plural, n, domain=None, mapping=None)[源代码]¶
通过使用两个 message identifier 对象作为单数/复数对,并且
n
值,该值表示使用gettext复数形式支持出现在消息中的数字。这个singular
和plural
对象应为字符串。没有理由将转换字符串对象用作参数,因为所有元数据都被忽略。n
表示元素的数目。domain
是用来做复数的翻译域,和mapping
是应该在结果上使用的插值映射。如果domain
未提供,使用默认域(通常messages
)例子::
num = 1 translated = localizer.pluralize('Add ${num} item', 'Add ${num} items', num, mapping={'num':num})
如果使用getText复数支持,则对于具有n以外的复数规则的语言,这是必需的!= 1,
singular
参数必须是翻译文件中定义的消息_id。在这种情况下不使用复数参数。例子::
num = 1 translated = localizer.pluralize('item_plural', '', num, mapping={'num':num})
- translate(tstring, domain=None, mapping=None)[源代码]¶
翻译为 translation string 添加到当前语言,并将任何 替换标记 在结果中。这个
translate
方法接受三个参数:tstring
(必填),domain
(可选)和mapping
(可选)。调用时,它将把tstring
使用当前区域设置的转换字符串。如果无法确定当前区域设置,则返回默认值的插值结果。可选的domain
参数可用于指定或重写tstring
(在以下情况下有用tstring
是普通字符串而不是转换字符串)。可选的mapping
参数可以指定或重写tstring
插值贴图,在以下情况下非常有用tstring
参数是简单字符串,而不是转换字符串。例子::
from pyramid.i18n import TranslationString ts = TranslationString('Add ${item}', domain='mypackage', mapping={'item':'Item'}) translated = localizer.translate(ts)
例子::
translated = localizer.translate('Add ${item}', domain='mypackage', mapping={'item':'Item'})
- get_localizer(request)[源代码]¶
自 1.5 版本弃用: 使用
pyramid.request.Request.localizer
直接属性。检索一个pyramid.i18n.Localizer
与当前请求的区域设置名称相对应的对象。
- negotiate_locale_name(request)[源代码]¶
协商并返回 locale name 与当前请求关联。
- get_locale_name(request)[源代码]¶
自 1.5 版本弃用: 使用
pyramid.request.Request.locale_name
直接代替。返回 locale name 与当前请求关联。
- default_locale_negotiator(request)[源代码]¶
默认值 locale negotiator . 返回区域设置名称或
None
.首先,谈判代表寻找
_LOCALE_
请求对象的属性(可能由视图或侦听器为 event )如果属性存在而它不存在None
,将使用其值。然后它寻找
request.params['_LOCALE_']
价值。然后它寻找
request.cookies['_LOCALE_']
价值。最后,谈判代表回来了
None
如果无法通过前面的任何检查确定区域设置(当区域设置协商器返回时None
,这意味着 default locale name 应该使用。)
- make_localizer(current_locale_name, translation_directories)[源代码]¶
创建一个
pyramid.i18n.Localizer
对象,该对象与在翻译目录列表中找到的翻译中提供的区域设置名称相对应。
见 国际化与本土化 有关使用的详细信息 Pyramid 应用程序中的国际化和本地化服务。