~3 دقیقه مطالعه • بروزرسانی ۲۴ اسفند ۱۴۰۴
مقدمه
در دنیای امروز، بسیاری از وباپلیکیشنها باید برای کاربران کشورهای مختلف قابل استفاده باشند. Django یک سیستم قدرتمند برای بینالمللیسازی (i18n) و بومیسازی (l10n) ارائه میدهد که امکان ترجمهٔ متنها، فرمتبندی تاریخها و اعداد، و سازگار کردن محتوا با زبان و فرهنگ کاربران را فراهم میکند.
Django در زمینهٔ بینالمللیسازی دو کار اصلی انجام میدهد:
- به توسعهدهندگان و نویسندگان قالبها اجازه میدهد بخشهایی از برنامه را برای ترجمه یا فرمتبندی علامتگذاری کنند.
- بر اساس ترجیحات کاربر، این بخشها را به زبان و فرمت مناسب نمایش میدهد.
مرورگرها معمولاً زبان کاربر را از طریق هدر Accept-Language ارسال میکنند. اما تشخیص منطقهٔ زمانی (Time Zone) نیازمند پیکربندی جداگانه است.
تفاوت بین بینالمللیسازی و بومیسازی
بینالمللیسازی (Internationalization یا i18n)
آمادهسازی نرمافزار برای پشتیبانی از چند زبان. این مرحله شامل علامتگذاری رشتهها برای ترجمه و طراحی ساختار مناسب است. این کار معمولاً توسط توسعهدهندگان انجام میشود.
بومیسازی (Localization یا l10n)
نوشتن ترجمهها و تعریف فرمتهای محلی (تاریخ، زمان، اعداد و …). این کار معمولاً توسط مترجمان انجام میشود.
برای مطالعهٔ بیشتر میتوانید به منابع زیر مراجعه کنید:
- W3C Web Internationalization FAQ
- مقالهٔ ویکیپدیا دربارهٔ i18n
- مستندات GNU gettext
نکته: تنظیم USE_I18N کنترلکنندهٔ ترجمه است، اما نام آن فقط به i18n اشاره دارد. این یک میراث تاریخی در Django است.
اصطلاحات کلیدی
Locale Name
نام locale مشخصکنندهٔ زبان یا ترکیب زبان و کشور است. فرمتها:
- ll → فقط زبان (مثلاً
it،es) - ll_CC → زبان + کشور (مثلاً
de_AT،pt_BR،sr_Latn)
قوانین:
- بخش زبان → حروف کوچک
- بخش کشور → اگر دو حرف باشد بزرگ، اگر بیشتر باشد TitleCase
- جداکننده → زیرخط (underscore)
Language Code
کدی که مرورگر در هدر Accept-Language ارسال میکند. شبیه locale است اما از خط تیره استفاده میکند:
itde-atpt-br
این کدها نسبت به حروف بزرگ و کوچک حساس نیستند.
Message File (.po)
یک فایل متنی ساده که شامل رشتههای قابل ترجمه و ترجمهٔ آنها برای یک زبان خاص است. هر زبان فایل .po مخصوص خود را دارد.
Translation String
رشتهای در کد یا قالب که قابلیت ترجمه دارد و با ابزارهای Django علامتگذاری میشود.
Format File
یک ماژول پایتون که فرمتهای محلی برای موارد زیر را تعریف میکند:
- تاریخ
- زمان
- اعداد
- واحدهای پولی
جمعبندی
سیستم بینالمللیسازی و بومیسازی Django به شما کمک میکند اپلیکیشنهایی بسازید که برای کاربران سراسر جهان قابل استفاده باشند. با شناخت مفاهیمی مانند locale، کد زبان، فایلهای پیام و رشتههای ترجمه، میتوانید برنامههایی چندزبانه و سازگار با فرهنگهای مختلف ایجاد کنید.
نوشته و پژوهش شده توسط دکتر شاهین صیامی