این زیرنویس فارسی هم معضلی شده برای خودش! و تنبلی ما هم مزید بر علت! مشکل اینجاست که با وجود تنظیم 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 گزینه ای ظاهر بشه که تبدیل رو برامون انجام بده.