2011-04-04 74 views
4

我試圖將django-transmeta整合到我在Ubuntu 10.10上的django安裝中(系統上的python-django版本是1.2.3-1ubuntu0.2.10。 10.1) 按照項目主頁/摘要here中的說明,我最終得到了數據庫中的正確新字段,但是當我打開管理界面並嘗試添加對象時,翻譯後的字段「description」未顯示在管理面板和它只顯示。 展望源代碼和後位調試,變量傳遞給模板 ,它的值是似乎field.label_tagdjango-transmeta進入管理員,在該領域顯示「None」.label_tag

這裏面models.py類:

class Place(models.Model): 
__metaclass__ = TransMeta 
lat = models.FloatField(blank=True, null=True) 
lon = models.FloatField(blank=True, null=True) 
alt = models.FloatField(blank=True, null=True) 
description = models.CharField(max_length=100) 
address = models.CharField(max_length=50) 
city = models.CharField(max_length=60) 
state_province = models.CharField(max_length=30) 
country = models.CharField(max_length=50) 
attributes = models.ManyToManyField(Attribute, through='PlaceAttribute') 
is_online = models.BooleanField(default=False) 
class Meta: 
    translate = ('description',) 
def __unicode__(self): 
    return self.description 

在settings.py我加了這一點:

LANGUAGE_CODE = 'en-us' 

ugettext = lambda s: s # dummy ugettext function, as django's docs say 

LANGUAGES = (
    ('en-us', ugettext('English')), 
    ('it', ugettext('Italian')), 
    ('de', ugettext('Deutsch')), 
    ('fr', ugettext('French')), 
    ('ru', ugettext('Russian')), 
    ('cn', ugettext('Chinese')), 
    ('th', ugettext('Thai')), 
) 

TRANSMETA_DEFAULT_LANGUAGE = 'en-us' 

,這是結果的廣告截圖分鐘接口: (對不起,我是新來的,並在反垃圾郵件問題的原因不能發表圖片,還) admin screenshot here

在上述管理形式,它應該是這樣的:

Description en-us: 
Description it: 
Description de: 
.... 

有無你對這個問題有什麼想法?或者,也許這是一個錯誤?

爲了改善我的調試,你能否指點我在​​django管理員視圖中的field.label_tag生成的正確位置? (我對Django相當陌生)

如果需要某些調試數據,請告訴我,我很樂意提供它。

在此先感謝

法比奧

回答

5

它看起來像你錯過verbose_name屬性上的字段。

from django.utils.translation import gettext_lazy as _ 

class Place(models.Model): 
    __metaclass__ = TransMeta 
    # ... 
    description = models.CharField(max_length=100, verbose_name=_("Description")) 
    # ... 

    class Meta: 
     translate = ('description',) 

    def __unicode__(self): 
     return self.description 
+1

感謝Aminho,它是這樣的,現在它的工作,豎起大拇指;) 我不能投你的答案,但是,因爲我是新來的,但我會盡快來回到這個。 – FabioP 2011-04-04 14:18:20

+0

不用擔心投票,不要忘記使用'manage.py makemessages -l '爲每種語言生成消息,翻譯並編譯它們*如果您還想翻譯管理界面* – 2011-04-04 15:02:26