django-transmeta

Programinė įranga Screenshot:
django-transmeta
Programinė detalės:
Versija: 0.6.11
Įkėlimo datą: 20 Feb 15
Kūrėjas: Yaco Sistemas
Licencija: Nemokamai
Populiarumas: 1

Rating: 3.0/5 (Total Votes: 1)

django-Transmeta yra Django app neverčiamas turinio Django modeliais. & Nbsp; Kiekvienoje kalba yra saugomi ir valdomi automatiškai į kitą kolonėlę bazės lygiu.
Naudojant Transmeta
Kurti neverčiamas modelius
Žvilgtelėkite į šį modelį:
klasė knyga (models.Model):
& Nbsp; title = models.CharField (MAX_LENGTH = 200)
& Nbsp; apibūdinimas = models.TextField ()
& Nbsp; kūno = models.TextField (numatytasis = '')
& Nbsp; kaina = models.FloatField ()
Tarkime, jūs norite įsitikinti, aprašymas ir kūno neverčiamas. Gautas modelis po naudojant Transmeta yra:
nuo Transmeta importo Transmeta
klasė knyga (models.Model):
& Nbsp; __ metaclass__ = Transmeta
& Nbsp; title = models.CharField (MAX_LENGTH = 200)
& Nbsp; apibūdinimas = models.TextField ()
& Nbsp; kūno = models.TextField (numatytasis = '')
& Nbsp; kaina = models.FloatField ()
& Nbsp; klasės meta:
& Nbsp; išversti = ("aprašymas", "kūno",)
Įsitikinkite, kad turite nustatyti numatytuosius ir turimus kalbų savo settings.py:
LANGUAGE_CODE = 'es'
ugettext = lambda S: S # manekenu ugettext funkcija, kaip Django anketa docs pasakyti
KALBOS = (
& Nbsp; (-ai ", ugettext (ispanų)),
& Nbsp; ("LT", ugettext (Anglų)),
)
Tai SQL sukurtas su ./manage.py sqlall komandą:
BEGIN;
CREATE TABLE "fooapp_book" (
& Nbsp; "id" serijos NOT NULL pirminis raktas,
& Nbsp; "antraštė" varchar (200) NOT NULL,
& Nbsp; "description_en" tekstas,
& Nbsp; "description_es" tekstas NOT NULL,
& Nbsp; "body_es" tekstas NOT NULL,
& Nbsp; "body_en" tekstas NOT NULL,
& Nbsp; "kaina" dvigubo tikslumo NOT NULL
)
;
ĮSIPAREIGOJAME;
Pastabos: * Transmeta sukuria vieną stulpelį kiekvienai kalbai. Nesijaudinkite, kuriems naujų kalbų ateityje Transmeta išsprendžia šią problemą už jus. * Jei vienas laukas yra niekinis = false ir neturi numatytąją vertę, Transmeta sukurs tik vieną NOT NULL lauką, už numatytąją kalbą. Laukai kitų antrinių kalbomis bus nullable. Be to, pagrindinė kalba bus reikalaujama admin app, o kiti laukai bus neprivaloma (su tuščia = true). Tai buvo padaryta todėl, kad normalus požiūris turinio vertimo pirmiausia papildykite ją į pagrindinę kalbą, o vėliau turi vertėjai versti į kitas kalbas. * Jūs galite naudoti ./manage.py syncdb sukurti duomenų bazės schemą.
Žaidžia python lukštais
Transmeta sukuria vieną lauką už kiekvieną turimą kalbą kiekvieną neverčiamas srityje apibrėžtą modelį. Lauko vardai priesagomis su kalbos trumpuosius kodus, pvz description_es, description_en, ir taip toliau. Be to, ji sukuria FIELD_NAME Getter, kad priimtumėte lauko reikšmę į aktyvią kalbą.
Pažaiskime truputį į python lukštais, kad geriausiai suprasti, kaip tai veikia:
& Gt; & gt; & gt; nuo fooapp.models importuoti knygą
& Gt; & gt; & gt; b = Book.objects.create (description_es = u'mi Descripción "description_en = u'my aprašymas")
& Gt; & gt; & gt; b.description
u'my aprašymas "
& Gt; & gt; & gt; nuo django.utils.translation importo Suaktyvinti
& Gt; & gt; & gt; įjungti ("es")
& Gt; & gt; & gt; b.description
u'mi Descripción "
& Gt; & gt; & gt; b.description_en
u'my aprašymas "
Įrašyta naujų kalbų
Jei jums reikia pridėti naujų kalbų esamų jums tereikia pakeisti savo settings.py ir paklausti Transmeta sinchronizuoti DB dar kartą. Pavyzdžiui, jei norite pridėti French mūsų projektą, jums reikia jį pridėti prie kalbomis settings.py:
KALBOS = (
& Nbsp; (-ai ", ugettext (ispanų)),
& Nbsp; ("LT", ugettext (Anglų)),
& Nbsp; (fr "ugettext (Prancūzijos)),
)
Ir vykdyti specialią sync_transmeta_db komandą:
& Nbsp; ./ manage.py sync_transmeta_db
Trūksta kalbas "Aprašymas" srityje nuo "fooapp.book" modelis: fr
SQL sinchronizuoti "fooapp.book" schemą:
& Nbsp; ALTER TABLE "fooapp_book" Pridėti stulpelyje "description_fr" tekstą
Ar esate tikri, kad norite paleisti ankstesnę SQL: (Taip / Ne) [N]: Y
Vykdoma SQL ... Priimta
Trūksta kalbas "kūno" srityje nuo "fooapp.book" modelis: fr
SQL sinchronizuoti "fooapp.book" schemą:
& Nbsp; ALTER TABLE "fooapp_book" Pridėti stulpelyje "body_fr" tekstą
Ar esate tikri, kad norite paleisti ankstesnę SQL: (Taip / Ne) [N]: Y
Vykdoma SQL ... Priimta
Ir padaryti!
Įrašyta naujų neverčiamas laukus
Dabar įsivaizduokite, kad po kelių mėnesių, naudojant šį žiniatinklio programą (su daug knygų sukurtą), jums reikia padaryti knyga kainų neverčiamas (pavyzdžiui, dėl to knyga kaina priklauso nuo valiutos).
Norint tai pasiekti, pirmiausia pridėti kainą modelio neverčiamas laukų sąrašo:
klasė knyga (models.Model):
& Nbsp; ...
& Nbsp; kaina = models.FloatField ()
& Nbsp; klasės meta:
& Nbsp; išversti = ("aprašymas", "kūno", "kaina")
Visa tai liko dabar paskambinus sync_transmeta_db komandą atnaujinti DB schemą:
& Nbsp; ./ manage.py sync_transmeta_db
Galimos kalbos:
& Nbsp; 1. Ispanų
& Nbsp; 2. Anglų
Pasirinkite, kurioje įdėti dabartinius neišverstus duomenis kalbą.
Kas iš dabartinių duomenų kalba? (1-2): 1
Trūksta kalbas "kaina" srityje nuo "fooapp.book" modelis: es, lt
SQL sinchronizuoti "fooapp.book" schemą:
& Nbsp; ALTER TABLE "fooapp_book" Pridėti stulpelyje "price_es" dvigubo tikslumo
& Nbsp; UPDATE "fooapp_book" SET "price_es" = "kaina"
& Nbsp; ALTER TABLE "fooapp_book" ALTER stulpelyje "price_es" SET NOT NULL
& Nbsp; ALTER TABLE "fooapp_book" Pridėti stulpelyje "price_en" dvigubo tikslumo
& Nbsp; ALTER TABLE "fooapp_book" drop skiltyje "kaina"
Ar esate tikri, kad norite paleisti ankstesnę SQL: (Taip / Ne) [N]: Y
Vykdoma SQL ... Priimta
Kas po velnių ši komanda daro?
sync_transmeta_db komanda ne tik sukuria nauja duomenų bazė stulpelius naują neverčiamas srityje ... tai kopijuoti duomenis iš senojo kainų srityje į vieną iš kalbų, ir tai, kodėl komanda paprašys jūsų tikslas kalbos srityje faktiniais duomenimis.
Administratorius integracija
Transmeta skaidriai rodo visus laukus neverčiamas į admin sąsaja. Tai lengva, nes modeliai turi iš tiesų daugelyje sričių (po vieną kiekvienam kalba).
Pakeitus formos laukus į admin yra gana bendra užduotis ir Transmeta apima canonical_fieldname naudingumo funkciją taikyti šias permainas visų kalbų srityse vienu metu. Tai geriau paaiškinti su pavyzdžiu:
nuo Transmeta importo canonical_fieldname
klasė BookAdmin (admin.ModelAdmin):
& Nbsp; def formfield_for_dbfield (savarankiškai, db_field ** kwargs):
& Nbsp; laukas = super (BookAdmin, savarankiškai) .formfield_for_dbfield (db_field ** kwargs)
& Nbsp; db_fieldname = canonical_fieldname (db_field)
& Nbsp; jei db_fieldname == "aprašymas":
& Nbsp; # tai taikoma visiems description_ * srityse
& Nbsp; field.widget = MyCustomWidget ()
& Nbsp; Elif field.name == 'body_es ":
& Nbsp; # tai taikoma tik body_es srityje
& Nbsp; field.widget = MyCustomWidget ()
& Nbsp; grąžinimo srityje

Įranga :

  • Automatinis schemos sukūrimas su verčiamomis srityse.
  • neverčiamas laukai integruota į Django admin sąsaja.
  • Komandų sinchronizuoti duomenų bazės schemą pridėti naujus neverčiamas laukus ir naujų kalbų.

Kas naujo , šioje laidoje:

  • Pridėta get_mandatory_fieldname funkcija.

Kas naujo versijos 0.6.9:

  • Parama metodas get_field_language už laukų pavadinimus su apatinius

Kas naujo versijos 0.6.8:

  • Nustatyti truputį klaidą į komandų sync_transmeta_db (UnboundLocalError: vietinis kintamasis "f" paminėta prieš priskyrimo)

Kas naujo versijos 0.6.7:

  • Keisti atstovavimą (verbose_name) iš Transmeta etikečių

Kas naujo versijos 0.6.6:

  • Patobulinimai ir praktiškumo į komandų sync_transmeta_db
  • Fix kai klaidas
  • Dokumentacija

Kas naujo versijos 0.6.5:

  • Patobulinimai ir praktiškumo į komandų sync_transmeta_db
  • Darbai su paskutiniu Django (komanda sync_transmeta_db)
  • Darbai su mysql (komanda sync_transmeta_db)

Kas naujo versijos 0.6.4:

  • Išspręsti klaidą su paveldėjimo modelių.

Kas naujo versijos 0.6.3:

  • Leisti naudoti TRANSMETA_LANGUAGES nustatymus.
  • Pridėta du variantai sync_transmeta_db: -y (prisiimti taip visiems) ir -D (numatytasis kalbos kodas)

Kas naujo versijos 0.6.2:

  • Darbai, kai numatytoji lokalė turi rašybos variantus, kaip es-ES arba EN-JAV.

Reikalavimai :

  • Django
  • Python

Kita programinė įranga kūrėjas Yaco Sistemas

Cmsutils
Cmsutils

14 Apr 15

trac2rst
trac2rst

15 Apr 15

django-form-admin
django-form-admin

14 Apr 15

Komentarai django-transmeta

Komentarai nerastas
Pridėti komentarą
Pasukite ant paveikslėlio!