from django.utils.translation import ugettext_lazy as _
_(u"I am off to school at '%s' o'clock" % time)
Run Code Online (Sandbox Code Playgroud)
这有点奇怪,因为我会像这样翻译整行
"I am off to school at \'%s\' o'clock"
Run Code Online (Sandbox Code Playgroud)
现在如果翻译者错误地删除了''%s \',它会破坏代码.
我应该把句子分成两部分吗?但这可能会让翻译人员无法理解句子的背景.
_(u"I am off to school at ") + '%s' + _(u"o'clock") % time
Run Code Online (Sandbox Code Playgroud)
有更好的方法吗?
如果使用命名字符串插值而不是位置字符串插值,如果翻译器从其翻译的字符串中忘记其中一个参数,则应该保护您免受异常的影响.
来自django文档的一个例子:
def my_view(request, m, d):
output = _('Today is %(month)s %(day)s.') % {'month': m, 'day': d}
return HttpResponse(output)
Run Code Online (Sandbox Code Playgroud)
注意字符串替换中使用的{'name':'value'}字典.
因此,只要有多个参数,就应该使用命名字符串插值(例如,%(天)s)而不是位置插值(例如,%s或%d).如果使用位置插值,则翻译将无法重新排序占位符文本.
| 归档时间: |
|
| 查看次数: |
3172 次 |
| 最近记录: |