首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django,django模型翻译

Django,django模型翻译
EN

Stack Overflow用户
提问于 2017-02-22 20:30:48
回答 1查看 332关注 0票数 0

我是模型翻译的新手,我有一个问题。在创建模型并在translation.py中注册要翻译的字段后,当我执行manage.py makemigrations myapp命令时,模型翻译应用程序不会将已翻译的字段添加到模型中。不过,这些字段在表中。

模型转换:已注册0个模型用于转换() pid: 8333。

在我的setting.py

代码语言:javascript
复制
from django.utils.translation import ugettext_lazy as _
gettext = lambda s: s
LANGUAGES = (
    ('hi', _('Hindi')),
    ('en', _('English')),

    ('ru', _('Russian')),
    ('ur', _('Urdu')),
    ('zh', _('Chinese')),
)



LOCALE_PATHS = (
    os.path.join(BASE_DIR, 'locale'),
)

LANGUAGE_CODE = 'hi'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.8/howto/static-files/
from modeltranslation.translator import translator
STATIC_URL = '/static/'

MODELTRANSLATION_DEFAULT_LANGUAGE = 'hi'

MODELTRANSLATION_LANGUAGES = ('hi', 'en')

MODELTRANSLATION_FALLBACK_LANGUAGES = ('hi', 'en')

MODELTRANSLATION_PREPOPULATE_LANGUAGE = 'hi'


MODELTRANSLATION_TRANSLATION_FILES = (
    'i18ntest.translation',
)

在我的models.py

代码语言:javascript
复制
from django.db import models
from django.utils.translation import ugettext_lazy
from django.conf import settings

    class MyThing(models.Model):
        name = models.CharField(help_text=ugettext_lazy('This is the help text'),max_length = 150,null = True, blank = True)
        def __unicode__(self):
        return self.name

# Create your models here.


    class Profile(models.Model):
        name = models.CharField(max_length = 150,null = True, blank = True)

        def __unicode__(self):
            return self.name

在我的translations.py

代码语言:javascript
复制
from modeltranslation.translator import register,translator, TranslationOptions

from i18ntest.models import MyThing

@register(MyThing)

    class MyThingTranslationOptions(TranslationOptions):
        fields = ('name',

)

#translator.register(MyThing, MyThingTranslationOptions)

我在django 1.10中使用了django-modeltranslation 0.12

而服务器状态是

代码语言:javascript
复制
(envi18n) vinod@vinod-H81M-S:~/vinod/i18n/i18n$ ./manage.py runserver
modeltranslation: Registered 0 models for translation () [pid: 9065].
modeltranslation: Registered 0 models for translation () [pid: 9068].
Performing system checks...

System check identified no issues (0 silenced).
February 22, 2017 - 12:26:35
Django version 1.10, using settings 'i18n.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
EN

回答 1

Stack Overflow用户

发布于 2017-04-28 20:52:20

翻译文件名中有一个拼写错误。我必须是translation.py,单数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42391572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档