django-transmeta

نرم افزار تصویر:
django-transmeta
جزئیات نرم افزار:
نسخه: 0.6.11
ها تاریخ: 20 Feb 15
توسعه دهنده: Yaco Sistemas
پروانه: رایگان
محبوبیت: 1

Rating: 3.0/5 (Total Votes: 1)

.

جنگو-Transmeta استفاده یک برنامه جنگو برای محتوای قابل ترجمه در مدل های جنگو و nbsp است. هر زبان ذخیره شده است و به طور خودکار در ستون های مختلف در سطح پایگاه داده مدیریت.
با استفاده از Transmeta استفاده
ایجاد مدل های ترجمه
در این مدل نگاه کنید:
کلاس کتاب (models.Model):
& nbsp؛ از عنوان = models.CharField (MAX_LENGTH = 200)
و nbsp؛ توضیحات = models.TextField ()
& nbsp؛ در بدن = models.TextField (به طور پیش فرض = '')
را لمس کنید و. قیمت = models.FloatField ()
فرض کنید می خواهید مطمئن توضیحات و ترجمه بدن. در نتیجه پس از استفاده از Transmeta استفاده مدل است:
از Transmeta استفاده واردات Transmeta استفاده
کلاس کتاب (models.Model):
و nbsp؛ __ metaclass__ = Transmeta استفاده
& nbsp؛ از عنوان = models.CharField (MAX_LENGTH = 200)
و nbsp؛ توضیحات = models.TextField ()
& nbsp؛ در بدن = models.TextField (به طور پیش فرض = '')
را لمس کنید و. قیمت = models.FloatField ()
& nbsp؛ در متا کلاس:
و nbsp؛ ترجمه = ('توضیحات'، 'بدن'،)
اطمینان حاصل کنید که زبان پیش فرض و موجود در settings.py خود را تعیین کرده اند:
= LANGUAGE_CODE "ES"
ugettext = لامبدا بازدید کنندگان: S # ساختگی ugettext تابع، به عنوان اسناد جنگو می گویند
زبان = (
و nbsp؛ ('ES، ugettext (' اسپانیایی '))،
و nbsp؛ ('EN'، ugettext ('انگلیسی'))،
)
این SQL تولید شده با دستور sqlall ./manage.py است:
BEGIN؛
ایجاد جدول "fooapp_book" (
& nbsp؛ از "ID" سریال کلید اولیه پوچ نیست،
& nbsp؛ از "عنوان" varchar و (200) پوچ نیست،
و nbsp؛ "description_en" متن،
و nbsp؛ "description_es" متن پوچ نیست،
و nbsp؛ "body_es" متن پوچ نیست،
و nbsp؛ "body_en" متن پوچ نیست،
و nbsp؛ "قیمت" دقت مضاعف پوچ نیست
)
.
متعهد؛
یادداشت: * Transmeta استفاده یک ستون برای هر زبان ایجاد می کند. آیا در مورد نیاز به زبان های جدید در آینده نگران نباشید، Transmeta استفاده حل این مشکل را برای شما. * اگر یکی درست تهی = False است و یک مقدار پیش فرض را نداشته باشند، Transmeta استفاده خواهد شد تنها یک رشته NULL ایجاد نمی کند، برای زبان پیش فرض. زمینه برای زبان های دیگر ثانویه خالی خواهد بود. همچنین، زبان اصلی خواهد شد در برنامه مدیریت مورد نیاز، در حالی که زمینه های دیگر اختیاری خواهد بود (با خالی = واقعی). این به دلیل رویکرد طبیعی برای ترجمه مطالب برای اولین بار از محتوا را در زبان اصلی اضافه و بعد باید مترجمان به زبان های دیگر ترجمه انجام شد. * شما می توانید syncdb ./manage.py برای ایجاد شمای پایگاه داده استفاده کنید.
بازی در پوسته پایتون
Transmeta استفاده ایجاد یک زمینه برای هر زبان در دسترس برای هر زمینه ترجمه تعریف شده در یک مدل. description_es، description_en، و غیره: نام درست با کدهای زبان کوتاه، به عنوان مثال پسوند. علاوه بر آن را ایجاد یک گیرنده FIELD_NAME برای بازیابی مقدار فیلد در زبان فعال است.
بیایید بازی کمی در پوسته پایتون بهترین درک چگونگی این نسخهها کار میکند:
& gt؛ به & gt؛ به & gt؛ به از fooapp.models وارد کتاب
& gt؛ به & gt؛ به & gt؛ به B = Book.objects.create (description_es = u'mi شرح، description_en = u'my توضیحات ')
& gt؛ به & gt؛ به & gt؛ به b.description
توضیحات u'my '
& gt؛ به & gt؛ به & gt؛ به از django.utils.translation واردات فعال
& gt؛ به & gt؛ به & gt؛ به فعال ('ES)
& gt؛ به & gt؛ به & gt؛ به b.description
u'mi شرح '
& gt؛ به & gt؛ به & gt؛ به b.description_en
توضیحات u'my '
اضافه کردن زبان های جدید
اگر شما نیاز به اضافه کردن زبان های جدید به موجود شما فقط نیاز به تغییر settings.py خود و Transmeta استفاده بپرسید به همگام DB دوباره. به عنوان مثال، برای اضافه کردن فرانسه به پروژه ما، شما نیاز به آن اضافه کنید تا زبان در settings.py:
زبان = (
و nbsp؛ ('ES، ugettext (' اسپانیایی '))،
و nbsp؛ ('EN'، ugettext ('انگلیسی'))،
و nbsp؛ ('FR'، ugettext ('فرانسه'))،
)
و اجرای یک فرمان sync_transmeta_db ویژه:
و nbsp؛ ./ manage.py sync_transmeta_db
گم شده زبان در قسمت "توضیحات" از مدل "fooapp.book": FR
SQL را برای همزمان سازی "fooapp.book" طرح:
& nbsp؛ از تغییر جدول "fooapp_book" افزودن ستون "description_fr" متن
آیا مطمئن هستید که می خواهید برای اجرای SQL قبلی: (Y / N) [N]: Y
اجرای SQL ... انجام
گم شده زبان در "بدن" درست از مدل "fooapp.book": FR
SQL را برای همزمان سازی "fooapp.book" طرح:
& nbsp؛ از تغییر جدول "fooapp_book" افزودن ستون "body_fr" متن
آیا مطمئن هستید که می خواهید برای اجرای SQL قبلی: (Y / N) [N]: Y
اجرای SQL ... انجام
و انجام می شود!
اضافه کردن زمینه های جدید قابل ترجمه
حالا تصور کنید که پس از چند ماه با استفاده از این برنامه وب (با کتاب های بسیاری ایجاد)، شما نیاز به ترجمه قیمت کتاب (به عنوان مثال به دلیل قیمت کتاب بستگی به ارز).
برای رسیدن به این، برای اولین بار قیمت به لیست رشته های ترجمه مدل اضافه کنید:
کلاس کتاب (models.Model):
& nbsp؛ در ...
را لمس کنید و. قیمت = models.FloatField ()
& nbsp؛ در متا کلاس:
و nbsp؛ ترجمه = ('توضیحات'، 'بدن'، 'قیمت'،)
همه که در حال حاضر در سمت چپ خواستار دستور sync_transmeta_db برای به روز رسانی طرح DB:
و nbsp؛ ./ manage.py sync_transmeta_db
زبان های موجود:
و nbsp؛ 1. اسپانیایی
و nbsp؛ 2. انگلیسی
انتخاب زبان است که در آن برای قرار دادن داده های ترجمه نشده جاری است.
زبان داده فعلی چیست؟ (1-2): 1
گم شده زبان در "قیمت" درست از مدل "fooapp.book": ES، EN
SQL را برای همزمان سازی "fooapp.book" طرح:
& nbsp؛ از تغییر جدول "fooapp_book" افزودن ستون "price_es" دقت مضاعف
و nbsp؛ UPDATE "fooapp_book" SET "price_es" = "قیمت"
& nbsp؛ از تغییر جدول "fooapp_book" تغییر ستون "price_es" مجموعه پوچ نیست
& nbsp؛ از تغییر جدول "fooapp_book" افزودن ستون "price_en" دقت مضاعف
& nbsp؛ از تغییر جدول "fooapp_book" DROP COLUMN "قیمت"
آیا مطمئن هستید که می خواهید برای اجرای SQL قبلی: (Y / N) [N]: Y
اجرای SQL ... انجام
چه جهنم این دستور می کند؟
دستور sync_transmeta_db نه تنها ایجاد ستون پایگاه داده جدید برای درست ترجمه جدید ... آن کپی اطلاعات از درست قیمت های قدیمی را به یکی از زبان، و به همین دلیل است دستور از شما درخواست برای درست زبان مقصد برای داده های واقعی.
ادغام مدیریت
Transmeta استفاده شفاف تمام زمینه ها قابل ترجمه به رابط مدیر نمایش می دهد. این آسان است به دلیل مدل در واقع بسیاری از زمینه (یکی برای هر زبان) داشته باشد.
تغییر فرم در مدیریت کاملا یک کار مشترک است، و Transmeta استفاده شامل تابع مطلوبیت canonical_fieldname به درخواست این تغییرات برای تمام زمینه های زبان در یک بار. بهتر است با یک مثال توضیح داد:
از Transmeta استفاده واردات canonical_fieldname
کلاس BookAdmin (admin.ModelAdmin):
و nbsp؛ دف formfield_for_dbfield (خود، db_field، ** kwargs):
و nbsp؛ درست = فوق العاده (BookAdmin، خود) .formfield_for_dbfield (db_field، ** kwargs)
& nbsp؛ در db_fieldname = canonical_fieldname (db_field)
& nbsp؛ اگر db_fieldname == 'توضیحات:
و nbsp؛ # این امر به تمام description_ * * * * زمینه
& nbsp؛ در field.widget = MyCustomWidget ()
& nbsp؛ در الیف field.name == 'body_es':
و nbsp؛ # این فقط شامل رشته body_es
& nbsp؛ در field.widget = MyCustomWidget ()
و nbsp؛ درست بازگشت

ویژگی ها:



ایجاد طرح ها به صورت خودکار با زمینه ترجمه.
زمینه ترجمه یکپارچه را به مدیر رابط جنگو.
فرماندهی را برای همزمان سازی شمای پایگاه داده برای اضافه کردن زمینه های ترجمه جدید و زبان های جدید.

در چه در این نسخه جدید است:



اضافه شده تابع get_mandatory_fieldname.

در چه در نسخه 0.6.9 جدید است:



پشتیبانی در روش get_field_language برای نام فیلد با زیرخط

در چه در نسخه 0.6.8 جدید است:



رفع اشکال کمی در sync_transmeta_db فرمان (UnboundLocalError: متغیر محلی 'F' قبل از انتساب اشاره)

در چه در نسخه 0.6.7 جدید است:



تغییر نمایندگی (verbose_name) از برچسب Transmeta استفاده

در چه در نسخه 0.6.6 جدید است:



ارتقاء و قابلیت استفاده در sync_transmeta_db فرمان
رفع برخی از اشکالات
مستندات

در چه در نسخه 0.6.5 جدید است:



ارتقاء و قابلیت استفاده در sync_transmeta_db فرمان
با آخرین جنگو (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.

در مورد نیاز:



جنگو
افعی

نرم افزار های دیگر از توسعه دهنده Yaco Sistemas

django-autoreports
django-autoreports

14 Apr 15

django-form-admin
django-form-admin

14 Apr 15

trac2rst
trac2rst

15 Apr 15

نظرات به django-transmeta

نظر یافت نشد
اضافه کردن نظر
روشن کردن تصاویر!