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

خیلی از نرم‌افزارهای معروف هستن که بصورت چندزبانه طراحی شدن، یعنی میشه با اضافه کردن فایلهای ترجمه، زبانی که توی رابط گرافیکی برنامه استفاده میشه رو تغییر داد. این فایلهای ترجمه توی گنو/لینوکس معمولاً پسوند 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 (و گاها بعضی اپلیکیشن‌های دیگه) رو تکمیل می‌کنم. که خب ان‌شاءالله بعداً درباره‌ش می‌نویسم و فایل‌هاش رو براتون آپلود می‌کنم.

موفق باشید

Advertisements

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

  1. erghezi می‌گوید:

    آقا خیلی جالب بود. بسی حال بردیم. الحق بعضی از برنامه‌ها فارسیش می‌چسبه.

  2. علی می‌گوید:

    با سلام
    من یه سوال داشتم از خدمتتون.
    من می خوام یه دیکشنری اپن سورس برا ویندوز بنویسم.
    اما فایل text که لغات رو داشته باشه رو ندارم.
    من دیدم شما یه نرم افزار دارید که فایل های bgl رو تبدیل می کنه.
    امکانش هست منو راهنمایی کنید که این فایل ها رو به فایل text حاوی لغات و معنی شون تبدیل کنم؟
    ممنون

  3. سعید می‌گوید:

    سلام علی آقا. اگه روی سیستمتون گنو/لینوکس نصب کرده باشید، یا یه سیدی لایو مثل ابونتو داشته باشید، می‌تونید با همین ابزار PyGlossray بنده، فرمت bgl رو به tabfile تبدیل کنید. tabfile یه فایل متنی(txt) و یونیکد(utf-8) هست با این فرمت: کلمه، تب، معنی، سرخط، کلمه، تب، معنی، سرخط…. در ضمن سرخطش سرخط یونیکس هست(کاراکتری با شمارهٔ 10 یا 0x0a) نه سرخط داس(که دو بایت هست). یعنی با Notepad نمی‌تونید درست ببینید(خطوطش به هم چسبیده). ولی با ++Notepad و فایرفاکس و ادیتور BabelPad می‌تونید.
    در ضمن می‌تونید bgl رو به فرمت gls هم تبدیل کنید(اونم txt هست) و با ابزار Babylon Builder دوباره به bgl تبدیل کنید(مثلاً اگه خواستید ویرایش کنید). چون PyGlossary هنوز خودش رایت روی bgl رو درست انجام نمیده(یعنی توسط دیکشنری بابیلون شناخته نمیشه)

    در ضمن دیکشنری StarDict یه دیکشنری آزاد و اوپن‌سورس و بسیار قدرتمند(قابل رقابت با بابیلون) هست که نسخهٔ ویندوزی هم داره(علاوه بر گنو/لینوکس). با زبان ++C و کتابخانهٔ GTK هم نوشته شده. شما با چه زبانی می‌خواید دیشکنری بنویسید؟ بهتر نیست روی توسعهٔ همین StarDict کار کنید؟

  4. مهدوی می‌گوید:

    خیلی خوبه ولی جالبه بدونی که توی کی ی ای این درد سر ها وجود نداره و براحتی با یه گزینه که خود کی دی ای در اختیار قرار می ده می شه فقط یه نرم افزار خاص رو فارسی کرد!!
    من خودم خیلی از نم افزار هام فارسی و بقیه انگلیسی هستند :دی

  5. سعید می‌گوید:

    کدوم دردسر بابا. قبل از دستورش کافیه LANG=fa_IR.UTF-8 رو بنویسیم(توی آیکونش هم می‌تونیم بذاریم).
    نمی‌دونم منظورت چیه. به هر حال سازندهٔ اون برنامه باید این امکان رو قرار داده باشه. وگرنه نمیشه. باید از همین روشی که نوشتم استفاده بشه چه توی گنوم چه KDE.

    قبول دارم KDE یکپارچه‌تر هست ولی عوضش گنوم سریع‌تر و به نظر من انعطاف‌پذیرتره. البته این بحثش مفصله…و البته تا حد زیادی سلیقه‌ای. حالا بی‌خیال. هر دوشون خوبن. ولی اونقدر تفاوت‌های سلیقه‌ای دارن که کسی بخاطر این دلایل نظرش عوض نمیشه. 😀

  6. امیر حسین می‌گوید:

    سعید جون یه کم بنویس دلمون وا شه 😀

  7. سعید می‌گوید:

    چشم امیر جان…
    ولی باور کن یه مدتیه زیاد حس وبلاگ نوشتن ندارم!

  8. رضا مرندی می‌گوید:

    سلام
    وبلاگتون خیلی عالی هستش و مطالب ارزنده ای می نویسید ..
    راستی من لینکتون کردم توی وبلاگم اگر مایل بودین شما هم بزارین لینک منو ..
    موفق و سربلند باشید ..

  9. سعید می‌گوید:

    سلام رضا جان. خیلی ممنون
    منم لینکتون کردم
    شرمنده بابت تاخیر. تقصیر thunderbird بود!

  10. ali313 می‌گوید:

    سلام
    مطلب جالبی بود.ممنون. ولی من که از کی دی ای استفاده میکنم
    چجوری باید این کار رو بکنم؟
    مثلا همیطور که میدونی تقویم کی دی ای رو میشه جلالی کرد ولی متاسفانه اسم ماه ها و روزهای هفته رو به صورت فینگلیش مینویسه مگه اینکه کل کی دی ای رو فارسی کنیم. در صورتی که من میخوام فقط تقویمش فارسی بشه .حالا من چجوری میتونم این کار رو بکنم؟ اصلا این کار شدنی هست یا نه؟
    حالا این کار اصلا شدنی هست یا نه؟ اگه آره چجوری؟

  11. saeedgnu می‌گوید:

    سلام
    نمی‌دونم. فکر نمی‌کنم بشه اپلت تقویم KDE رو فارسی کرد بدون فارسی کردن کل KDE
    چون اپلت‌ها (و ویگت‌ها یا همون پلاسموید‌ها) اپلیکیشن‌های مستقلی نیستن که بشه زبانشون رو مستقلاً تعیین کرد.
    پیشنهاد می‌کنم از StarCalendar استفاده کنید.

  12. ali313 می‌گوید:

    سلام
    ممنون سعید جان. این StarCalendar اونقدر خوب و کامل هست که حتی اگه بتونم تقویم سیستم رو هم فارسی بکنم باز هم ازش استفاده میکنم.ولی خب اینکه تقویم کل سیستم جلالی و فارسی باشه یه چیز دیگست!!

پاسخی بگذارید

در پایین مشخصات خود را پر کنید یا برای ورود روی شمایل‌ها کلیک نمایید:

نشان‌وارهٔ وردپرس.کام

شما در حال بیان دیدگاه با حساب کاربری WordPress.com خود هستید. بیرون رفتن / تغییر دادن )

تصویر توییتر

شما در حال بیان دیدگاه با حساب کاربری Twitter خود هستید. بیرون رفتن / تغییر دادن )

عکس فیسبوک

شما در حال بیان دیدگاه با حساب کاربری Facebook خود هستید. بیرون رفتن / تغییر دادن )

عکس گوگل+

شما در حال بیان دیدگاه با حساب کاربری Google+ خود هستید. بیرون رفتن / تغییر دادن )

درحال اتصال به %s

%d وب‌نوشت‌نویس این را دوست دارند: