بین‌المللی‌سازی و بومی‌سازی در Django: راهنمای کامل i18n و l10n

این مقاله مفاهیم بین‌المللی‌سازی (i18n) و بومی‌سازی (l10n) در Django را توضیح می‌دهد. موضوعاتی مانند ترجمهٔ متن، فرمت‌بندی تاریخ و اعداد، نام‌های locale، کدهای زبان، فایل‌های پیام (.po) و فایل‌های فرمت بررسی می‌شوند. همچنین نحوهٔ سازگار کردن محتوای وب‌اپلیکیشن با زبان و فرهنگ کاربران توضیح داده شده است.

بین‌المللی‌سازی جنگو، بومی‌سازی جنگوi18n، l10n، locale، کد زبان، فایل پیامترجمه، فایل فرمت

~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 است اما از خط تیره استفاده می‌کند:

  • it
  • de-at
  • pt-br

این کدها نسبت به حروف بزرگ و کوچک حساس نیستند.


Message File (.po)

یک فایل متنی ساده که شامل رشته‌های قابل ترجمه و ترجمهٔ آن‌ها برای یک زبان خاص است. هر زبان فایل .po مخصوص خود را دارد.


Translation String

رشته‌ای در کد یا قالب که قابلیت ترجمه دارد و با ابزارهای Django علامت‌گذاری می‌شود.


Format File

یک ماژول پایتون که فرمت‌های محلی برای موارد زیر را تعریف می‌کند:

  • تاریخ
  • زمان
  • اعداد
  • واحدهای پولی

جمع‌بندی

سیستم بین‌المللی‌سازی و بومی‌سازی Django به شما کمک می‌کند اپلیکیشن‌هایی بسازید که برای کاربران سراسر جهان قابل استفاده باشند. با شناخت مفاهیمی مانند locale، کد زبان، فایل‌های پیام و رشته‌های ترجمه، می‌توانید برنامه‌هایی چندزبانه و سازگار با فرهنگ‌های مختلف ایجاد کنید.

نوشته و پژوهش شده توسط دکتر شاهین صیامی