这是我的函数,用来显示延迟。延迟可以是正的(如果有延迟)也可以是负的。此函数以timedelta作为参数。在
def delta_string(delta):
days = delta.days
hours = delta.seconds/3600
if days < 0 and hours > 0:
days = days + 1
hours = 24 - hours
days_string = ungettext("%(day)s day","%(day)s days", abs(days)) % {'day': days}
hours_string = ungettext("%(hour)s hour","%(hour)s hours", hours) % {'hour': hours}
return "%s, %s" % (days_string, hours_string)
当然,所有字符串都在po文件中翻译(并编译)。然而,结果却很奇怪——有时翻译是正确的,有时是错误的。示例:
35 days, 9 hours; -4 dni, 1 godzina; 0 days, 11 hours; 19 days, 13 hours; 34 dni, 9 hours; -1 dzień, 6 hours; -1 dzień, 2 godzin; -5 days, 4 godzin; 3 dni, 19 hours
等等。上面的所有输出都显示在同一页上。可能出了什么问题?我也试过ungettext_lazy,试过u“string”-没有结果。在
与其推出自己的解决方案,不如使用Django内置的^{} template filter (如果需要在模板中使用此功能)或
django.utils.timesince
中的timesince
函数。这些将为您处理翻译。在相关问题 更多 >
编程相关推荐