本文整理汇总了Python中django.utils.translation.pgettext方法的典型用法代码示例。如果您正苦于以下问题:Python translation.pgettext方法的具体用法?Python translation.pgettext怎么用?Python translation.pgettext使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类django.utils.translation
的用法示例。
在下文中一共展示了translation.pgettext方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _make_blocktrans
# 需要导入模块: from django.utils import translation [as 别名]
# 或者: from django.utils.translation import pgettext [as 别名]
def _make_blocktrans(self, singular, plural=None, context=None, trans_vars=None,
count_var=None):
if trans_vars is None:
trans_vars = {} # pragma: no cover
if self.environment.finalize:
finalized_trans_vars = {
key: self.environment.finalize(val) for key, val in trans_vars.items()
}
else:
finalized_trans_vars = trans_vars
if plural is None:
if context is None:
return ugettext(force_text(singular)) % finalized_trans_vars
else:
return pgettext(force_text(context), force_text(singular)) % finalized_trans_vars
else:
if context is None:
return ungettext(
force_text(singular), force_text(plural), trans_vars[count_var]
) % finalized_trans_vars
else:
return npgettext(
force_text(context), force_text(singular), force_text(plural),
trans_vars[count_var]
) % finalized_trans_vars
示例2: formfield_for_dbfield
# 需要导入模块: from django.utils import translation [as 别名]
# 或者: from django.utils.translation import pgettext [as 别名]
def formfield_for_dbfield(self, db_field, **kwargs):
submission = kwargs.pop('obj', None)
label = None
if submission:
if db_field.name == 'participation':
kwargs['queryset'] = ContestParticipation.objects.filter(user=submission.user,
contest__problems=submission.problem) \
.only('id', 'contest__name')
def label(obj):
return obj.contest.name
elif db_field.name == 'problem':
kwargs['queryset'] = ContestProblem.objects.filter(problem=submission.problem) \
.only('id', 'problem__name', 'contest__name')
def label(obj):
return pgettext('contest problem', '%(problem)s in %(contest)s') % {
'problem': obj.problem.name, 'contest': obj.contest.name,
}
field = super(ContestSubmissionInline, self).formfield_for_dbfield(db_field, **kwargs)
if label is not None:
field.label_from_instance = label
return field
示例3: add_truncation_text
# 需要导入模块: from django.utils import translation [as 别名]
# 或者: from django.utils.translation import pgettext [as 别名]
def add_truncation_text(self, text, truncate=None):
if truncate is None:
truncate = pgettext(
'String to return when truncating text',
'%(truncated_text)s...')
truncate = force_text(truncate)
if '%(truncated_text)s' in truncate:
return truncate % {'truncated_text': text}
# The truncation text didn't contain the %(truncated_text)s string
# replacement argument so just append it to the text.
if text.endswith(truncate):
# But don't append the truncation text if the current text already
# ends in this.
return text
return '%s%s' % (text, truncate)
示例4: __init__
# 需要导入模块: from django.utils import translation [as 别名]
# 或者: from django.utils.translation import pgettext [as 别名]
def __init__(self, environment):
super(DjangoI18n, self).__init__(environment)
environment.globals['_'] = ugettext
environment.globals['gettext'] = ugettext
environment.globals['pgettext'] = pgettext
示例5: _parse_trans
# 需要导入模块: from django.utils import translation [as 别名]
# 或者: from django.utils.translation import pgettext [as 别名]
def _parse_trans(self, parser, lineno):
string = parser.stream.expect(lexer.TOKEN_STRING)
string = nodes.Const(string.value, lineno=string.lineno)
is_noop = False
context = None
as_var = None
for token in iter(lambda: parser.stream.next_if(lexer.TOKEN_NAME), None):
if token.value == 'noop' and not is_noop:
if context is not None:
parser.fail("noop translation can't have context", lineno=token.lineno)
is_noop = True
elif token.value == 'context' and context is None:
if is_noop:
parser.fail("noop translation can't have context", lineno=token.lineno)
context = parser.stream.expect(lexer.TOKEN_STRING)
context = nodes.Const(context.value, lineno=context.lineno)
elif token.value == 'as' and as_var is None:
as_var = parser.stream.expect(lexer.TOKEN_NAME)
as_var = nodes.Name(as_var.value, 'store', lineno=as_var.lineno)
else:
parser.fail("expected 'noop', 'context' or 'as'", lineno=token.lineno)
if is_noop:
output = string
elif context is not None:
func = nodes.Name('pgettext', 'load', lineno=lineno)
output = nodes.Call(func, [context, string], [], None, None, lineno=lineno)
else:
func = nodes.Name('gettext', 'load')
output = nodes.Call(func, [string], [], None, None, lineno=lineno)
if as_var is None:
return nodes.Output([output], lineno=lineno)
else:
return nodes.Assign(as_var, output, lineno=lineno)
示例6: add_truncation_text
# 需要导入模块: from django.utils import translation [as 别名]
# 或者: from django.utils.translation import pgettext [as 别名]
def add_truncation_text(self, text, truncate=None):
if truncate is None:
truncate = pgettext(
'String to return when truncating text',
'%(truncated_text)s...')
if '%(truncated_text)s' in truncate:
return truncate % {'truncated_text': text}
# The truncation text didn't contain the %(truncated_text)s string
# replacement argument so just append it to the text.
if text.endswith(truncate):
# But don't append the truncation text if the current text already
# ends in this.
return text
return '%s%s' % (text, truncate)
示例7: render
# 需要导入模块: from django.utils import translation [as 别名]
# 或者: from django.utils.translation import pgettext [as 别名]
def render(self, context, nested=False):
if self.message_context:
message_context = self.message_context.resolve(context)
else:
message_context = None
tmp_context = {}
for var, val in self.extra_context.items():
tmp_context[var] = val.resolve(context)
# Update() works like a push(), so corresponding context.pop() is at
# the end of function
context.update(tmp_context)
singular, vars = self.render_token_list(self.singular)
if self.plural and self.countervar and self.counter:
count = self.counter.resolve(context)
context[self.countervar] = count
plural, plural_vars = self.render_token_list(self.plural)
if message_context:
result = translation.npgettext(message_context, singular,
plural, count)
else:
result = translation.ungettext(singular, plural, count)
vars.extend(plural_vars)
else:
if message_context:
result = translation.pgettext(message_context, singular)
else:
result = translation.ugettext(singular)
data = dict([(v, _render_value_in_context(context.get(v, ''), context)) for v in vars])
context.pop()
try:
result = result % data
except (KeyError, ValueError):
if nested:
# Either string is malformed, or it's a bug
raise TemplateSyntaxError("'blocktrans' is unable to format "
"string returned by gettext: %r using %r" % (result, data))
with translation.override(None):
result = self.render(context, nested=True)
return result
示例8: render
# 需要导入模块: from django.utils import translation [as 别名]
# 或者: from django.utils.translation import pgettext [as 别名]
def render(self, context, nested=False):
if self.message_context:
message_context = self.message_context.resolve(context)
else:
message_context = None
tmp_context = {}
for var, val in self.extra_context.items():
tmp_context[var] = val.resolve(context)
# Update() works like a push(), so corresponding context.pop() is at
# the end of function
context.update(tmp_context)
singular, vars = self.render_token_list(self.singular)
if self.plural and self.countervar and self.counter:
count = self.counter.resolve(context)
context[self.countervar] = count
plural, plural_vars = self.render_token_list(self.plural)
if message_context:
result = translation.npgettext(message_context, singular,
plural, count)
else:
result = translation.ungettext(singular, plural, count)
vars.extend(plural_vars)
else:
if message_context:
result = translation.pgettext(message_context, singular)
else:
result = translation.ugettext(singular)
default_value = context.template.engine.string_if_invalid
def render_value(key):
if key in context:
val = context[key]
else:
val = default_value % key if '%s' in default_value else default_value
return render_value_in_context(val, context)
data = {v: render_value(v) for v in vars}
context.pop()
try:
result = result % data
except (KeyError, ValueError):
if nested:
# Either string is malformed, or it's a bug
raise TemplateSyntaxError("'blocktrans' is unable to format "
"string returned by gettext: %r using %r" % (result, data))
with translation.override(None):
result = self.render(context, nested=True)
return result
示例9: render
# 需要导入模块: from django.utils import translation [as 别名]
# 或者: from django.utils.translation import pgettext [as 别名]
def render(self, context, nested=False):
if self.message_context:
message_context = self.message_context.resolve(context)
else:
message_context = None
tmp_context = {}
for var, val in self.extra_context.items():
tmp_context[var] = val.resolve(context)
# Update() works like a push(), so corresponding context.pop() is at
# the end of function
context.update(tmp_context)
singular, vars = self.render_token_list(self.singular)
if self.plural and self.countervar and self.counter:
count = self.counter.resolve(context)
context[self.countervar] = count
plural, plural_vars = self.render_token_list(self.plural)
if message_context:
result = translation.npgettext(message_context, singular,
plural, count)
else:
result = translation.ngettext(singular, plural, count)
vars.extend(plural_vars)
else:
if message_context:
result = translation.pgettext(message_context, singular)
else:
result = translation.gettext(singular)
default_value = context.template.engine.string_if_invalid
def render_value(key):
if key in context:
val = context[key]
else:
val = default_value % key if '%s' in default_value else default_value
return render_value_in_context(val, context)
data = {v: render_value(v) for v in vars}
context.pop()
try:
result = result % data
except (KeyError, ValueError):
if nested:
# Either string is malformed, or it's a bug
raise TemplateSyntaxError(
"'blocktrans' is unable to format string returned by gettext: %r using %r"
% (result, data)
)
with translation.override(None):
result = self.render(context, nested=True)
if self.asvar:
context[self.asvar] = result
return ''
else:
return result
示例10: get_queryset
# 需要导入模块: from django.utils import translation [as 别名]
# 或者: from django.utils.translation import pgettext [as 别名]
def get_queryset(self):
most_recent_moniker, most_recent = pgettext("value::plural", "MOST RECENT"), False
if self.query in (most_recent_moniker, most_recent_moniker.replace(" ", "_")):
most_recent = True
self.query = ''
qs = (
self.queryset
.select_related(None)
.defer('description', 'family_members_visibility')
.select_related('owner', 'owner__user')
.defer('owner__description', 'owner__email_visibility')
)
self.result = geocode(self.query)
if self.query and self.result.point:
if any([self.result.country and not self.result.country_code, self.result.state, self.result.city]):
return (qs
.annotate(distance=Distance('location', self.result.point))
.order_by('distance'))
elif self.result.country: # We assume it's a country
self.paginate_first_by = 50
self.paginate_orphans = 5
self.country_search = True
return (qs
.filter(country=self.result.country_code.upper())
.order_by('-owner__user__last_login', '-id'))
position = geocoder.ip(self.request.META['HTTP_X_REAL_IP']
if settings.ENVIRONMENT != 'DEV'
else "188.166.58.162")
position.point = Point(position.xy, srid=SRID) if position.xy else None
logging.getLogger('PasportaServo.geo').debug(
"User's position: %s, %s",
position.address if position.ok and position.address else "UNKNOWN",
position.xy if position.ok else position.error
)
if position.point and not most_recent:
# Results are sorted by distance from user's current location, but probably
# it is better not to creep users out by unexpectedly using their location.
qs = qs.annotate(internal_distance=Distance('location', position.point)).order_by('internal_distance')
else:
qs = qs.order_by('-owner__user__last_login', '-id')
return qs
示例11: render
# 需要导入模块: from django.utils import translation [as 别名]
# 或者: from django.utils.translation import pgettext [as 别名]
def render(self, context, nested=False):
if self.message_context:
message_context = self.message_context.resolve(context)
else:
message_context = None
tmp_context = {}
for var, val in self.extra_context.items():
tmp_context[var] = val.resolve(context)
# Update() works like a push(), so corresponding context.pop() is at
# the end of function
context.update(tmp_context)
singular, vars = self.render_token_list(self.singular)
if self.plural and self.countervar and self.counter:
count = self.counter.resolve(context)
context[self.countervar] = count
plural, plural_vars = self.render_token_list(self.plural)
if message_context:
result = translation.npgettext(message_context, singular,
plural, count)
else:
result = translation.ungettext(singular, plural, count)
vars.extend(plural_vars)
else:
if message_context:
result = translation.pgettext(message_context, singular)
else:
result = translation.ugettext(singular)
default_value = context.template.engine.string_if_invalid
def render_value(key):
if key in context:
val = context[key]
else:
val = default_value % key if '%s' in default_value else default_value
return render_value_in_context(val, context)
data = {v: render_value(v) for v in vars}
context.pop()
try:
result = result % data
except (KeyError, ValueError):
if nested:
# Either string is malformed, or it's a bug
raise TemplateSyntaxError(
"'blocktrans' is unable to format string returned by gettext: %r using %r"
% (result, data)
)
with translation.override(None):
result = self.render(context, nested=True)
if self.asvar:
context[self.asvar] = result
return ''
else:
return result
示例12: render
# 需要导入模块: from django.utils import translation [as 别名]
# 或者: from django.utils.translation import pgettext [as 别名]
def render(self, context, nested=False):
if self.message_context:
message_context = self.message_context.resolve(context)
else:
message_context = None
tmp_context = {}
for var, val in self.extra_context.items():
tmp_context[var] = val.resolve(context)
# Update() works like a push(), so corresponding context.pop() is at
# the end of function
context.update(tmp_context)
singular, vars = self.render_token_list(self.singular)
if self.plural and self.countervar and self.counter:
count = self.counter.resolve(context)
context[self.countervar] = count
plural, plural_vars = self.render_token_list(self.plural)
if message_context:
result = translation.npgettext(message_context, singular,
plural, count)
else:
result = translation.ungettext(singular, plural, count)
vars.extend(plural_vars)
else:
if message_context:
result = translation.pgettext(message_context, singular)
else:
result = translation.ugettext(singular)
default_value = context.template.engine.string_if_invalid
def render_value(key):
if key in context:
val = context[key]
else:
val = default_value % key if '%s' in default_value else default_value
return render_value_in_context(val, context)
data = {v: render_value(v) for v in vars}
context.pop()
try:
result = result % data
except (KeyError, ValueError):
if nested:
# Either string is malformed, or it's a bug
raise TemplateSyntaxError("'blocktrans' is unable to format "
"string returned by gettext: %r using %r" % (result, data))
with translation.override(None):
result = self.render(context, nested=True)
if self.asvar:
context[self.asvar] = result
return ''
else:
return result
示例13: product_view
# 需要导入模块: from django.utils import translation [as 别名]
# 或者: from django.utils.translation import pgettext [as 别名]
def product_view(request, slug):
product = get_object_or_404(Product, slug=slug).specific
if product.draft and not request.user.is_authenticated:
raise Http404("Product does not exist")
product_dict = product.to_dict()
criteria = [
'uses_encryption',
'security_updates',
'strong_password',
'manage_vulnerabilities',
'privacy_policy',
]
total_score = 0
num_criteria = len(criteria)
# Calculate the minimum security score
for i in range(num_criteria):
value = product_dict[criteria[i]]
if value == 'Yes':
total_score += 1
if value == 'NA':
total_score += 0.5
# make sure featured updates come first
product_dict['updates'] = list(
product.updates.all().order_by(
'-featured',
'pk'
)
)
return render(request, 'product_page.html', {
'categories': BuyersGuideProductCategory.objects.all(),
'product': product_dict,
'mediaUrl': MEDIA_URL,
'coralTalkServerUrl': settings.CORAL_TALK_SERVER_URL,
'pageTitle': pgettext(
'This can be localized. This is a reference to the “*batteries not included” mention on toys.',
'*privacy not included') + f' - {product.name}',
'security_score': total_score,
'full_security_score': num_criteria
})