اجرای یک نرم‌افزار خاص با زبان فارسی

2009/07/07

خیلی از نرم‌افزارهای معروف هستن که بصورت چندزبانه طراحی شدن، یعنی میشه با اضافه کردن فایلهای ترجمه، زبانی که توی رابط گرافیکی برنامه استفاده میشه رو تغییر داد. این فایلهای ترجمه توی گنو/لینوکس معمولاً پسوند mo دارن، البته بعد از کامپایل، اما قبل از کامپایل فایلهایی با پسوند po هستن که فایل‌های متنی ساده(و عموماً بصورت UTF-8) هستن که میشه توسط یه ویرایشگر ساده هم اونا رو درست کرد، بعد به فایلهای mo کامپایل شده و نصب میشن و به این ترتیب پشتیبانی از اون زبان، به اون نرم‌افزار اضافه میشه و اگه زبان سیستم رو تغییر بدید، زبان interface اون نرم‌افزار هم تغییر میکنه. یعنی اگه موقع لاگین به گنوم یا KDE زبان سیستم رو به فارسی تغییر بدید، تمام نرم‌افزارهایی که پشتیبانی از فارسی بهشون اضافه شده، خود به خود فارسی میشن.

اما شما ممکنه بخواید فقط یه نرم‌افزار خاص interface ش فارسی بشه، نه کل سیستم(شامل گنوم یا kde و تمام نرم‌افزارها). اکثر نرم‌افزارهایی هم که بصورت چندزبانه طراحی شدن(یعنی با فایل‌های ترجمه میشه فارسی‌شون کرد) امکان تغییر زبان از طریق خود نرم‌افزار رو ندارن. در واقع معدود نرم‌افزارهایی هستن که این قابلیت رو اشته باشن، مثل دیکشنری xFarDic یا همین StarCalendar خودمون که توی تنظیماتش گزینه‌ای برای تغییر زبان داره(البته برای اعمال شدن باید برنامه ری‌استارت بشه). پس برای باقی نرم‌افزارها چیکار باید کنیم. مثلاً میخوایم فقط Evolution یا مثلاً StarDict محیطش فارسی بشه، اما نه کل سیستم. راهش خیلی ساده‌س. یه ترمینال باز کنید و توش بنویسید LANG=fa_IR.UTF-8 بعد یه فاصله(space) بزنید و بعدش دستور همون نرم‌افزار رو بنویسید(مثلاً evolution یا stardict یا هر چی). تمام.

یا اینکه بنویسید export LANG=fa_IR.UTF-8 و اینتر و بعدش دستور اون نرم‌افزار.

اما نکته‌ای که باید توجه کنید اینه که بعضی نرم‌افزارها(مثل همین Evolution یا ورژن‌های جدید StarDict) اجازه نمیدن که دو نمونه از خودشون توسط یه کاربر همزمان اجرا بشه. البته ممکنه بشه در چند پنجره اجراش کرد(منظورم این نیست) ولی همهٔ اونها یکی هستن و تنظیمات جدید اعمال نمیشه. مثلاً اگه Evolution باز باشه که زبانش هم انگلیسی هست(زبان interface)، بعد دوباره Evolution رو اجرا کنید اما با زبان فارسی(به همین روشی که گفتم) می‌بینید که پنجرهٔ جدید زبانش فارسی نشده. همین قضیه برای فایرفاکس هم صادق هست. یعنی مثلاً اگه یه اکستنشن(افزونهٔ) جدید نصب کنید، برای فعال شدنش بای تمام پنجرهٔ فایرفاکس رو ببندید و دوباره فایرفاکس رو باز کنید. و اگه بدون بسته پنجره(ها)ی قبلی، یه پنجرهٔ جدید باز کنید، اون اکستنشن در پنجرهٔ جدید فعال نمیشه.

ناتیلوس(مدیر فایل گنوم) و gedit و مجموعهٔ OpenOffice.Org و خیلی نرم‌افزارهای دیگه هم همینطور هستن.

بعضی از نرم‌افزارها هم که فقط در یک پنجره میتونن اجرا بشن. مثل StatDict و xFarDic و MDic و… البته منظورم اونهایی هستن که موقع اجرا چک می‌کنن که آیا یک پروسهٔ دیگه در حال اجرای این برنامه هست یا نه. وگرنه بعضی نرم‌افزارها(مثل StarCalendar خودمون) اصلاً چک نمیکنن و میشه چند بار همزمان اجرا کرد و مستقل از هم باشن(بر خلاف فایرفاکس و ناتیلوس و…). پس تا اینجا نرم‌افزارها رو به سه دسته تقسیم کردیم.

از بحث اصلی دور نشیم. منظورم این بود که بعضی از نرم‌افزارها برای اینکه با interface فارسی اجراشون کنیم، باید تمام پنجره‌های مربوط به اون نرم‌افزار که در حال اجرا هست رو ببندیم.

پس این کد می‌تونه برای فارسی کردن Evolution به کار بره:

killall evolution

LANG=fa_IR.UTF-8 evolution

یا اینطوری:

killall evolution

export LANG=fa_IR.UTF-8

evolution

(خط اول برای اینکه مطمئن بشیم در حال اجرا نیست)

که برای راحتی کار خودتون، میتونید این دو سه خط رو توی یه اسکریپت کوچیک قرار بدید و مثلاً در مسیر usr/bin/evolution-fa/ قرار بدید و هر وقت خواستید دستور evolution-fa رو اجرا کنید، تا مستقل از زبان کل سیستم، Evolution رو بصورت فارسی داشته باشید.

اما تمام اینها به شرطی هست که language-pack فارسی به سیستمتون اضافه شده باشه و فایلهای ترجمهٔ Evolution هم نصب شده باشه. خلاصه‌ش اینکه اگه از گنوم و یکی از توزیع‌های مبتنی بر دبیان(مثل اوبونتو) استفاده می‌کنید، این پکیج‌ها رو نصب کنید:

language-pack-fa

language-pack-fa-base

language-pack-gnome-fa

language-pack-gnome-fa-base

البته نصب این پکیج‌ها شرط کافی هست، اما شرط لازم نیست! شاید بعداً در این مورد بیشتر نوشتم.

نکته‌ٔ آخر اینکه ترجمهٔ گنوم و بعضی نرم‌افزارهاش، معمولاً چند سال پیش انجام شده و خیلی وقت هم هست که آپدیت نشده، پس احتمالا خیلی از عبارت‌های جدید به فایلهای ترجمه اضافه نشدن و بخشهایی از Evolution یا نرم‌افزارهای دیگه(و خود گنوم) همچنان انگلیسی نمایش داده میشن.

یکی از کاربران گنو/لینوکس با اسم مستعار 417 جدیداً تعدادی از اپلیکیشن‌های گنوم رو ترجمه کرده بود(یا ترجمه‌های موجود رو تکمیل کرده بود)

خودم هم چند وقتی هست که دارم ترجمهٔ Evolution (و گاها بعضی اپلیکیشن‌های دیگه) رو تکمیل می‌کنم. که خب ان‌شاءالله بعداً درباره‌ش می‌نویسم و فایل‌هاش رو براتون آپلود می‌کنم.

موفق باشید