Python 本地化:通过迭代字典来应用ugettext';行不通

Python 本地化:通过迭代字典来应用ugettext';行不通,python,django,dictionary,localization,Python,Django,Dictionary,Localization,我试图通过声明一个英语字符串字典来本地化字符串 english_strings = { "smtp_text": { "server": "SMTP Server", "port":"SMTP Port", "error_u

我试图通过声明一个英语字符串字典来本地化字符串

english_strings = {
                      "smtp_text":
                          {
                              "server": "SMTP Server",
                              "port":"SMTP Port",
                              "error_unreachable_port":"Host or Port not reachable"
                          }
                  }
然后迭代字典,在每个“值”上应用ugettext(..)。然而,这不起作用,词典也没有改变

  from django.utils.translation import ugettext
  smtp = english_strings["smtp_text"]
  for key  in smtp.keys()  :
        smtp[key] = ugettext(smtp[key])
然而,以下方法是有效的

smtp["server"] = ugettext( smtp["server"] )
smtp["port"] = ugettext( smtp["port"] )

我会错过什么?

让我明白。。。你在使用django.utils.translation.ugettext吗?是的,让我来更新这个问题。嗯。。。对我来说这听起来很奇怪,我不明白你为什么用这种方式定义你的翻译,以及你期望发生什么(你所说的“它起作用”“它不起作用”是什么意思?)。。。无论如何,您应该避免在迭代集合时更改集合,尝试创建一个新的空字典,并将计算数据存储在其上“它不工作”,因为在消息文件中创建的集合没有我应用utext(..)的字符串