不区分大小写的翻译

6 投票
2 回答
3261 浏览
提问于 2025-04-16 02:20

我在我的应用程序中,有些地方显示字符串是正常大小写,有些地方则是全大写:

{% trans item.name %}
{% trans item.name.upper %}

我使用.po/.mo文件来指定翻译:

msgid "Welcome"  
msgstr "歓迎"

但翻译似乎对大小写很敏感。比如说,'Welcome' 被翻译成 '歓迎',但是 'WELCOME' 却没有被翻译。有没有简单的方法可以让它不区分大小写地翻译呢?这样做看起来比每个翻译都提供两次要干净一些。

2 个回答

0

一种实现显示效果的方法是使用CSS。
举个例子:

<style>
   p.uppercase {text-transform: uppercase;}
   p.lowercase {text-transform: lowercase;}
   p.capitalize {text-transform: capitalize;}
</style>

在Django页面中,可以使用:

<p class="uppercase">{% trans 'Welcome' %}</p>
6

唯一“简单”的方法就是始终使用全大写或全小写的字符串,然后进行翻译。不过据我所知,Django和Gettext都不支持不区分大小写的处理。

你应该问问自己……这样做真的正确吗?我的意思是,在某些语言中,单词的意思可能会因为大小写的不同而改变。所以我在想,自动添加大写的翻译可能是个更好的解决方案。这样的话,如果某种语言需要的话,你至少可以进行调整。

撰写回答