django-transmeta

軟件截圖:
django-transmeta
軟件詳細信息:
版本: 0.6.11
上傳日期: 20 Feb 15
開發: Yaco Sistemas
許可: 免費
人氣: 1

Rating: 3.0/5 (Total Votes: 1)

Django的全美達是一個Django應用程序在Django的模型翻譯內容與NBSP;每一種語言被存儲並在數據庫級別不同的列自動管理。
使用全美達
創建翻譯模型
看看這個模型:
類圖書(models.Model):
 標題= models.CharField(MAX_LENGTH = 200)
 描述= models.TextField()
 機身= models.TextField(默認值='')
 價格= models.FloatField()
假設你想描述和身體翻譯。使用全美達後所產生的模式是:
來自全美達Transmeta的進口
類圖書(models.Model):
  __ metaclass__ =全美達
 標題= models.CharField(MAX_LENGTH = 200)
 描述= models.TextField()
 機身= models.TextField(默認值='')
 價格= models.FloatField()
 類元:
 翻譯=('說明','體',)
請確保您已設置默認值,可用的語言在你的settings.py:
LANGUAGE_CODE ='上課'
ugettext =拉姆達s:秒#假ugettext功能,Django的文檔說
語言=(
 ('上課',ugettext('西班牙')),
 ('恩',ugettext('英語')),

這是與./manage.py sqlall命令生成的SQL:
開始;
CREATE TABLE“fooapp_book”(
 “身份證”串行NOT NULL PRIMARY KEY,
 “稱號”VARCHAR(200)NOT NULL,
 “description_en”的文字,
 “description_es”文字NOT NULL,
 “body_es”文字NOT NULL,
 “body_en”文字NOT NULL,
 “價格”雙精度NOT NULL

;
COMMIT;
注:*全美達創建一個列每種語言。不要擔心需要新的語言在未來,全美達解決了這個問題你。 *如果一個場為null =假,並且不具有默認值,全美達將僅創建一個NOT NULL字段,缺省語言。字段其他輔助語言將是空。另外,主要語言將被要求在管理應用程序,而其他字段將是可選的(用空白=真)。這樣做是因為對內容翻譯正常的做法是先在主要語言添加內容,後來有翻譯人員翻譯成其他語言。 *您可以使用./manage.py使用syncdb創建數據庫模式。
打在Python外殼
全美達的每一個可用語言模型中定義的每個翻譯領域創建一個字段。字段名稱後綴的語言短代碼,例如:description_es,description_en,等等。此外,它創建了一個FIELD_NAME的getter檢索的活動語言的字段值。
讓我們玩了一下在Python shell來更好的理解它是如何工作:
>>>從fooapp.models進口圖書
>>> B = Book.objects.create(description_es = u'mi descripcion',description_en = u'my說明“)
>>> b.description
u'my說明“
>>>從django.utils.translation進口激活
>>>激活(“ES”)
>>> b.description
u'mi descripcion“
>>> b.description_en
u'my說明“
添加新的語言
如果你需要新的語言添加到現有的,你只需要改變你的settings.py,並要求全美達再次同步數據庫。例如,法國添加到我們的項目中,你需要將它添加到settings.py語言:
語言=(
 ('上課',ugettext('西班牙')),
 ('恩',ugettext('英語')),
 (“FR”,ugettext(“法國”)),

並執行一個特殊的sync_transmeta_db命令:
  ./ manage.py sync_transmeta_db
缺少語言從“fooapp.book”模式“說明”字段:FR
SQL同步“fooapp.book”模式:
  ALTER TABLE“fooapp_book”ADD COLUMN“description_fr”文本
(Y / N)[N]:要執行一個SQL確實ÿ
執行SQL ...完成
缺少語言從“fooapp.book”模式“體”字段:FR
SQL同步“fooapp.book”模式:
  ALTER TABLE“fooapp_book”ADD COLUMN“body_fr”文本
(Y / N)[N]:要執行一個SQL確實ÿ
執行SQL ...完成
並完成了!
添加新的翻譯領域
現在想像一下,使用這個Web應用程序(帶很多書創建)幾個月後,你需要做的書翻譯的價格(例如,由於書價取決於貨幣)。
要做到這一點,首先添加價格模型的翻譯領域列表:
類圖書(models.Model):
  ...
 價格= models.FloatField()
 類元:
 翻譯=('說明','體','價格',)
所有這一切現在剩下的是調用sync_transmeta_db命令來更新數據庫架構:
  ./ manage.py sync_transmeta_db
語言:
  1。西班牙語
  2。英語
選擇在其中把當前翻譯數據的語言。
什麼是當前數據的語言? (1-2):1
缺少語言從“fooapp.book”模式“價格”字段:ES,EN
SQL同步“fooapp.book”模式:
  ALTER TABLE“fooapp_book”ADD COLUMN“price_es”雙精度
  UPDATE“fooapp_book”SET“price_es”=“價格”
  ALTER TABLE“fooapp_book”ALTER COLUMN“price_es”SET NOT NULL
  ALTER TABLE“fooapp_book”ADD COLUMN“price_en”雙精度
  ALTER TABLE“fooapp_book”DROP COLUMN“價格”
(Y / N)[N]:要執行一個SQL確實ÿ
執行SQL ...完成
這是什麼命令的作用是地獄?
不僅sync_transmeta_db命令創建新翻譯領域的新數據庫列......從舊價格字段的數據複製到的語言之一,這就是為什麼命令要求您提供實際數據目標語言領域。
管理一體化
全美達透明顯示所有翻譯領域進入管理界面。這是容易的,因為模型有實際上許多領域(每個語言)​​。
改變在管理表單字段是一個相當普遍的任務,全美達包括canonical_fieldname效用函數一次申請這些變化對所有的語言領域。這是更好地用一個例子解釋:
來自全美達進口canonical_fieldname
類BookAdmin(admin.ModelAdmin):
 高清formfield_for_dbfield(個體經營,db_field,** kwargs):
 場=超(BookAdmin,個體經營).formfield_for_dbfield(db_field,** kwargs)
  db_fieldname = canonical_fieldname(db_field)
 如果db_fieldname ==“描述”:
 #這適用於所有description_ *領域
  field.widget = MyCustomWidget()
  ELIF field.name =='body_es“:
 #這僅適用於body_es場
  field.widget = MyCustomWidget()
 返回字段

特點

  • 在自動模式創建與翻譯領域。
  • 在可翻譯領域整合到Django的管理界面。
  • 在命令同步數據庫架構添加新的翻譯領域和新的語言。

什麼在此版本中是新的

  • 新增get_mandatory_fieldname功能。

什麼在0.6.9版本新

  • 支持的方法get_field_language的字段名用下劃線

什麼在0.6.8版本新

  • 修正了命令sync_transmeta_db一個小錯誤(UnboundLocalError:局部變量f的賦值之前引用)

什麼在0.6.7版本新

  • 更改的全美達標籤表示(verbose_name)

什麼在0.6.6版本新

  • 在改進和可用性命令sync_transmeta_db
  • 修正了一些bug
  • 文檔

什麼在0.6.5版本新

  • 在改進和可用性命令sync_transmeta_db
  • 在與最後的Django(命令sync_transmeta_db)
  • 工程
    與MySQL
  • 作品(命令sync_transmeta_db)

什麼在0.6.4版本新

  • 修正錯誤與繼承模式。

什麼在0.6.3版本新

  • 在允許使用TRANSMETA_LANGUAGES設置。
  • 在增加了兩個選項sync_transmeta_db:-y(假設是所有)和-d(默認語言代碼)

什麼在0.6.2版本新

  • 在工作時,默認的語言環境有拼​​寫變異為ES-ES或EN-US。

要求

  • 在Django的
  • 在Python中

顯影劑的其他軟件 Yaco Sistemas

django-form-admin
django-form-admin

14 Apr 15

trac2rst
trac2rst

15 Apr 15

transhette
transhette

11 May 15

Cmsutils
Cmsutils

14 Apr 15

意見 django-transmeta

評論沒有發現
添加評論
打開圖片!