代码之家  ›  专栏  ›  技术社区  ›  Nikolay Georgiev

如何在Django CMS Admin中翻译应用程序名称?

  •  6
  • Nikolay Georgiev  · 技术社区  · 11 年前

    如何在Django CMS管理员中翻译应用程序名称?

    请参阅屏幕截图:

    Screenshot

    4 回复  |  直到 9 年前
        1
  •  32
  •   David Wolf light    2 年前

    更新: 对于Django 3+导入 gettext_lazy 而不是 ugettext_lazy 。像这样:

    from django.utils.translation import gettext_lazy as _
    

    好的。我已经找到了如何在不更改数据库名称的情况下翻译应用程序名称。 示例(内部 apps.py 您要翻译的应用程序的):

    from django.apps import AppConfig
    from django.utils.translation import ugettext_lazy as _
    
    class MyAppConfig(AppConfig):
        name = 'MyApp'
        verbose_name = _('Transalation of MyApp here')
    

    makemessages -a 并且在改变之后 django.po compilemessages 你就完了。在管理中点击刷新,你的应用程序名称就会被翻译。

        2
  •  4
  •   Vishnu    10 年前

    现在回答这个问题可能为时已晚,但我正在分享我的经验。

    将下面提到的代码添加到model.py中

    VERBOSE_NAME = _('Appname')
    

    使用后

    django-admin.py makemessages -a
    django-admin.py compilemessages
    

    这将在django.po中添加条目。

        3
  •  2
  •   Seyeong Jeong    5 年前

    我相信下面的答案对于Django 1.4或1.5是正确的。有关更现代的答案,请参阅 https://stackoverflow.com/a/32431808/1067717


    看一看 this previously asked question 关于Django国际化的类似主题。

    在内部,它使用 Model._meta.app_label 以显示应用程序名称。检查 admin view its template 以获取更多信息。

        4
  •  0
  •   Yohn    11 年前

    我不知道你用的是哪种CMS,所以我在下面给你一个示例代码。也许您可以这样更改models.py文件中的字段:

    class Entry(models.Model):
        title         = models.CharField(u'标题',max_length=300)
    
        # other fields here
    

    pic

    上面的代码在我的项目中运行得很好(django 1.4.2),CharField()中的第一个参数(字符串)将显示在我的Admin视图中,我认为这对你很有用。

    我的项目中的完整代码: https://github.com/tianyu0915/pythoner.net/blob/master/pythoner/wiki/models.py#L69