لینوکس و من

۴ مطلب با کلمه‌ی کلیدی «زیرنویس» ثبت شده است

اصلاح زیرنویس فارسی در Mplayer

نمیدونم با کدوم آپدیت زیرنویس فارسی در Gnome Mplayer اشتباه نشون داده میشد. یعنی تمام حروف از چپ به راست بودند. مثلا برای سلام مینوشت م‌ا‌ل‌س.
با کمی جست و جو، مشکل با این روش حل شد:

توی تنظیمات Gnome Mplayer ، این عبارت رو در قسمتی که در عکس زیر میبینید وارد میکنیم:
-noflip-hebrew



و در مورد Encoding زیرنویس ها هم که زیاد صحبت شده توی وبلاگ...

ادیتور زیرنویس

من برای ویرایش زیرنویس فیلم ها از برنامه Gaupol استفاده میکنم خوبیش اینه که میتونید زیرنویس رو از utf8 به cp1256 هم ببرید دلیل اینکارم هم بخاطر اینه تلوزیون ما زیرنویس cp1256 رو قبول میکنه متاسفانه!
خوب برای نصب هم از زیر
 sudo pacman -S gaupol enca librcc translate-toolkit python2-chardet

بعد نصب برنامه رو باز کنید به Edit > Preferences روی + کلیک کنید و Unicode (UTF8) و Arabic (WINDOWS -1256) رو اضافه کنید...........

باز هم تبدیل زیرنویس ها به UTF8

این زیرنویس فارسی هم معضلی شده برای خودش! و تنبلی ما هم مزید بر علت! مشکل اینجاست که با وجود تنظیم vlc روی windows-1256 برای زیرنویس های با این انکدینگ، باز هم درست نشون داده نمیشن. و حتما باید utf8 باشن. چند باری در این مورد مطلب نوشتم.
اما مشکل روش های قبلی این بود که فایل ها رو باید دونه دونه میدادیم تا تبدیل میشدن. فرض کنید میخواید در مورد یه سریال چندین قسمتی این کار رو بکنید. خب چه کاریه واقعا! پیر میشه آدم. اما راه حل خیلی ساده است. به طوری که با یک خط دستور همه ی فایل های زیرنویس تبدیل میشن. برای اینکار در ترمینال وارد پوشه ی زیرنویسها بشید و این دستور رو اجرا کنید:
for i in *.srt; do iconv -f windows-1256 -t utf8 "$i" > "utf8-$i"; done
توجه کنید که:
 
۱- این دستور فایل های با پسوند srt با حروف کوچک رو شناسایی میکنه. پس اگه پسوند فایل های شما با حروف بزرگ هست، دستور رو تغییر بدید.
۲- در ابتدای نام زیرنویسهای جدید عبارت-utf8 اضافه میشه. میتونید به دلخواه خودتون تغییرش بدید. (قرمز رنگ در دستور)
 
ما باز هم میتونیم کار رو ساده تر کنیم! وای که چقدر تنبلیم! این دستور رو تبدیل میکنیم به یک فایل اجرایی و میذاریمش توی پوشه ی usr/bin/ . اون وقت کافیه با ترمینال وارد پوشه ی مورد نظر بریم و فقط نام اسکریپت رو تایپ کنیم! این فایل رو دانلود کنید. و بذاریدش توی مثلا فولدر home یوزر خودتون. و بعد در ترمینال این دستور رو اجرا کنید تا مجوز اجرا شدن رو به این فایل بدیم:
sudo chmod o+x ~/srtconv
حالا اون رو کپی میکنیم:
sudo cp ~/srtconv /usr/bin/srtconv
شما میتونید این کارها رو در حالت گرافیکی هم انجام بدید.
 
خب. حالا در ترمینال وارد پوشه ی زیرنویسها بشید و تایپ کنید: srtconv و اینتر بزنید!
برای اینکه کار ما با ترمینال هم ساده تر شه و وجبور نباشیم با دستور cd وارد پوشه ی زیرنویسها بشیم، این بسته رو نصب کنید: nautilus-open-terminal
sudo apt-get install  nautilus-open-terminal
 
حالا که با فایل منیجر (nautilus) وارد پوشه ی زیرنویس ها میشید راست کلیک کنید و open in terminal رو انتخاب کنید!
در فکر اینم که این کار رو به اسکریپتی به nautilus بسپریم. تا مثلا با راست کلیک روی فایل srt گزینه ای ظاهر بشه که تبدیل رو برامون انجام بده. 

تبدیل encoding فایل های متنی در حالت گرافیکی

توی یکی از نوشته هام  راه تبدیل encoding یه سری از زیرنویس ها رو از windows-1256  به utf8 آموزش داده بودم. اون یه روشی بود که از ترمینال انجام میشد. اما روش ساده تر و گرافیکی خوبی پیدا کردم. برنامه ای به نام codepage این کار رو برای ما انجام میده. به راحتی!
این لینک دانلود هست. اون رو دانلود کنید. بعد از حالت فشرده خارج کنید. سعی کنید فایل های برنامه در یک پارتیشن لینوکسی باشند. بهترین جا همون پوشه ی home خودتون هست. حالا از داخل فولدر برنامه روی فایل cod کلیک کنید تا اجرا بشه.



فرض میکنیم میخوایم فایل زیرنویس شما که با فرمت windows-1256 هست به utf8 تبدیل کنیم.
۱- در مستطیل اول، فایل زیرنویستون رو انتخاب کنید.
۲- روی علامت + سبز رنگ کلیک کنید. حالا مستطیل دوم هم پر میشه. برای اینکه روی فایل اصلی نوشته نشه، شما اسم زیرنویس رو در مستطیل دومی به یه چیز دلخواه تغییر بدید. مثلا آخرش یه عددی رو اضافه کنید. البته برنامه از فایل اصلی یه بکاپ میگیره.
حالا اون پایین در بخش Encoding برای قسمت from عبارت windows-1256 رو انتخاب کنید. و برای To عبارت utf8. بعد روی convert کلیک کنید.
حالا میبینید که یه فایل در کنار فایل اصلی با اون نامی که خودتون دادید ساخته شده.
البته این برنامه مصارف دیگه ای داره. ولی ما برای اینکه بتونیم زیرنویسهامون رو در فرمت utf8 داشته باشیم میتونیم ازش استفاده کنیم.