【问题标题】:django-admin.py makemessages -l fa doesn't crate .po filesdjango-admin.py makemessages -l fa 不创建 .po 文件
【发布时间】:2018-01-02 21:11:20
【问题描述】:

我想在我的应用程序中添加 fa(波斯语) 语言, 我在我的应用程序中创建了语言环境文件夹,并在其中创建了一个名为“fa”的文件夹。当我使用以下命令时,它运行时没有任何错误,但不会创建 .po 文件(我在我的应用程序文件夹中使用 cmd)

django-admin makemessages 

它只写这个

processing locale fa

我也用过这个命令,但是没用

django-admin.py makemessages -l fa

我使用的是 Windows 7


这是我的models.py

# -*- coding:utf-8 -*-
from django.db import models
from django.conf import settings
from django.utils.translation import ugettext_lazy as TR
class Post(models.Model):
    title = models.CharField(max_length=255,verbose_name=TR('title'),help_text=TR('add title'))
    content = models.TextField(verbose_name=TR('content'),help_text=TR('write here'))
    createtime = models.DateTimeField(TR('create time'),auto_now_add=True, auto_now=False,help_text=TR('create time'))
    updatetime = models.DateTimeField(TR('update time'),auto_now_add=False, auto_now=True,help_text=TR('update time'))
    author = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=TR('author'), on_delete=models.DO_NOTHING,help_text=TR('choose author'))
    slug = models.SlugField(unique=True, max_length=255,help_text=TR('add slug'))

    def __unicode__(self):
        return self.title

    def __str__(self):
        return self.title

    class Meta:
        verbose_name = TR('Post')
        verbose_name_plural = TR('Posts')

【问题讨论】:

  • 您是否在根应用程序中创建了语言环境文件夹?您是从 manage.py 脚本所在的根目录运行命令吗?
  • @devdob no,我在我的models.py和views.py和...所在的应用程序文件夹中运行命令,我还在那里创建了语言环境文件夹,我在其中创建了一个'fa文件夹'(我认为应该在那里创建包含 .po 文件的 LC_MESSAGES 文件夹)
  • 你需要在你的根项目中创建你的语言环境,在模板和静态旁边,然后你需要从你的项目根目录运行命令,manage.py 是。在这里查看注释docs.djangoproject.com/en/2.0/topics/i18n/translation/…
  • 语言环境在正确的位置。我确实在那里运行了命令,但什么也没发生

标签: python django cmd translation persian


【解决方案1】:

我解决了我的问题!

这是我更正的models.py

# -*- coding:utf-8 -*-
from django.db import models
from django.conf import settings
from django.utils.translation import ugettext_lazy as _
class Post(models.Model):
    title = models.CharField(max_length=255,verbose_name=_('title'),help_text=_('add title'))
    content = models.TextField(verbose_name=_('content'),help_text=_('write here'))
    createtime = models.DateTimeField(_('create time'),auto_now_add=True, auto_now=False,help_text=_('create time'))
    updatetime = models.DateTimeField(_('update time'),auto_now_add=False, auto_now=True,help_text=_('update time'))
    author = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=_('author'), on_delete=models.DO_NOTHING,help_text=_('choose author'))
    slug = models.SlugField(unique=True, max_length=255,help_text=_('add slug'))

def __unicode__(self):
    return self.title

def __str__(self):
    return self.title

class Meta:
    verbose_name = _('Post')
    verbose_name_plural = _('Posts')

我已将 Ugettext_lazy 作为 TR 导入!为了防止“_”之间的插入, 我在想我可以导入任何我想要的东西,但是当我把“TR”改成“_”时,问题就解决了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-28
    • 1970-01-01
    • 1970-01-01
    • 2011-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多