اين روزها زيرنويسهاي فارسي فيلمهاي روز دنيا را راحت ميشود در اينترنت يافت، اما مشكلات زيادي هم به همراه اين نوع فايلها وجود دارند:
- گاها با فيلم دريافت شده هماهنگ نيستند.
- عموما با فرمت windows-1256 تهيه ميشوند كه براي استفاده از آنها در سيستمهاي مختلف بهتر است به UTF8 تبديل شوند.
- اكثر برنامههاي موجود براي كار با زير نويسها و ويرايش آنها، دركي از يونيكد ندارند.
- عموما نياز است جهت استفاده از آنها در يك جمع، تعدادي از سطور آنها را با حفظ شماره بندي فايل، حذف كرد!
و ...
به همين جهت نياز به يك برنامهي جمع و جور جهت كار با زير نويسها داشتم كه نتيجهي آن تهيهي برنامهي زير شد:
الف) تغيير encoding فايل دريافتي به UTF-8
هنگام گشودن اكثر فايلهاي زير نويس فارسي با تصوير زير روبرو خواهيد شد:

براي تبديل آن به فرمت يونيكد تنها كافي است بر روي دكمهي To UTF-8 كليك كنيد. در اين حالت نتيجه به صورت زير خواهد بود:

ب) هماهنگ سازي زير نويس با فيلم دريافتي
ممكن است ديالوگهاي زير نويس دريافتي شما به اندازهي مدت زمان خاصي، از ديالوگهاي فيلم در حال پخش، عقبتر يا جلوتر باشند. در اين حالت ابتدا بايد اين مدت زمان را با گوش فرا دادن به ابتداي فيلم و مقايسهي آن با اولين شمارهي زيرنويس، پيدا كنيد. مثلا پس از بررسي متوجه شدهايد كه به كليه زمانهاي زيرنويس جاري بايد 7 ثانيه اضافه گردد. اينكار را مطابق تصوير ذيل ميتوان انجام داد:

ج) يكي كردن زمانهاي دو زير نويس با هم
گاهي از اوقات مشكلات زماني يك زيرنويس وخيمتر از مورد ب است. به اين معنا كه شمارههاي مختلف آن، زمانهاي كاملا بيربطي داشته و به صورت هماهنگ، قابل افزايش يا كاهش نيستند. در اين حالت ابتدا زير نويس مورد نظر را در برنامه باز كنيد. سپس يك زير نويس خوب انگليسي هماهنگ با فيلم را نيز پيدا كنيد و از طريق دكمهي Merge times به برنامه معرفي نمائيد. در اين حالت به صورت خودكار زمانهاي صحيح از زير نويس دوم به زير نويس اول منتقل خواهند شد.
د) يكي كردن دو فايل زير نويس با هم
ممكن است فيلم دريافتي تنها از يك فايل تشكيل شده باشد، اما شما فقط توانستهايد زير نويس مرتبط با نگارش دو سي دي اين فيلم را پيدا كنيد. بنابراين نياز است تا اين دو فايل زير نويس يكي شوند با اين شرط كه زمانهاي سي دي دوم از انتهاي سي دي اول در فايل نهايي يكي شدهي توليدي شروع گردد.
براي اين منظور ابتدا فايل زيرنويس سي دي اول را در برنامه باز كرده و سپس به گزينهي join files در برنامه مراجعه كنيد. در اينجا ابتدا مسير فايل زيرنويس سي دي 2 را مشخص نمائيد. برنامه سعي خواهد كرد تا زمان آغاز قسمت دوم را بر اساس آخرين زمان سي دي اول و اولين زمان سي دي دوم حدس بزند و نمايش دهد. يا ميتوانيد اين مقدار پيش فرض را پذيرفته و بر روي دكمهي join كليك نمائيد و يا امكان تغيير دستي آن هم ميسر است.

ه) حذف و يا ويرايش رديفها
به دلايل نامشخصي اشخاصي كه سعي در ترجمهي زيرنويسها ميكنند عموما علاقمندند كه به متن اصلي وفادار بمانند. به همين دليل نياز به جرح و تعديل زيرنويسهاي تهيه شده براي نمايش در يك جمع خانوادگي وجود دارد. گزينهي جستجوي موجود در بالاي رديفهاي زيرنويس باز شده در برنامه، امكان نمايش رديفهايي را كه حاوي متن وارد شده است، به صورت خودكار دارد.

در اين حالت اگر نياز است سطري حذف شود، آنرا انتخاب نموده و بر روي دكمهي Delete row كليك نمائيد. در اين حالت علاوه بر حذف رديف، كليه شمارههاي موجود در زير نويس نيز به صورت خودكار مجددا توليد و مرتب خواهند شد. (كليك راست بر روي هر رديف نيز اين گزينه را نمايش ميدهد)
يا اگر مشغول به ويرايش متني شديد، پس از ويرايش، كليك كردن بر روي دكمهي Save را فراموش نكنيد (در حالت حذف نيازي به اينكار نيست).
ز) پيدا كردن زيرنويس يك فايل بر اساس امضاي ديجيتال آن
سايت opensubtitles.org يك API را جهت پيدا كردن زيرنويسي مطابق با هش يك فايل ويديويي ارائه داده است، كه در برنامهي جاري، كلاينتي براي آن تهيه شده است:

فقط كافي است فايل ويديويي خود را در اين قسمت انتخاب نمائيد. برنامه هش فايل را محاسبه كرده و سپس با كمك سرويس XML-RPC سايت opensubtitles.org سعي در يافتن زيرنويس هماهنگ با آن خواهد كرد. در اينجا ديگر مهم نيست نام فايل انتخابي چيست؛ امضاي ديجيتال آن مهم است. براي دريافت موارد مورد نظر، ابتدا آنها را تيك زده و سپس بر روي دكمهي دريافت كليك كنيد. كليك راست بر روي رديف مورد نظر نيز اين امكان دريافت را لحاظ كرده است.
همچنين قسمتي هم براي آپلود زيرنويس به اين سايت پيش بيني شده است (لطفا مصرف كنندهي صرف يا به قولي ليچر نباشيد!)

در اينجا انتخاب فايل ويديويي، فايل زيرنويس هماهنگ با آن و همچنين زبان زير نويس الزامي است. از فايل ويديويي جهت محاسبهي هش آن براي يافتن سادهتر زيرنويسها در دفعات آتي استفاده ميگردد.
پيشنياز استفاده از اين برنامه، نصب دات نت فريم ورك 4 است كه اگر از ويندوز 7 استفاده ميكنيد، جزو به روز رسانيهاي اختياري آن است و در حالت كلي نسخهي كامل 32 بيتي و 64 بيتي آن از اين آدرس قابل دريافت است.
میدونم که نیاز به تعریف نداریم اما عالی بود. ممنون.
پاسخحذفبا سلام و خسته نباشيد
پاسخحذفبسيار عالي و زيبا كار كردين.
اميدوارم همواره موفق باشيد.
استاد واقعا دستتون در نکنه،وجود یک همچین نرم افزاری واقعا احساس می شد.فقط یک سوال میتونم بپرسم چرا با فریم ورک 4 نوشتید؟منظورم اینه آیا به کلاس یا کنترل خاصی یا ... نیاز داشتید و یا چون جز آخرین ورژن بود از این فریم ورک استفاده کردید؟
پاسخحذفممنون.
براي استفاده از بهبودهاي ذاتي موجود در آن براي مثال در WPF4 وضوح نمايشي متون بسيار بهتر از نگارشهاي قبلي است: (+)
پاسخحذفیه نفر هم پیشنهاد اصلاح متون حاوی فارسی-انگلیسی رو برای زیرنویس ها داده بود که یه برنامه کوچولو براش نوشتم.
پاسخحذفhttp://salarblog.wordpress.com/2010/04/18/correct-persian-english-text-to-display-in-left-to-right-direction/#comment-484
دانلود برنامه:
http://www.4shared.com/file/ET-QeiW7/PersianLeftToRightCorrection.html
ممنون. نكته جالبي است.
پاسخحذفسلام
پاسخحذفبنده برنامه شما رو با ذکر کامل منبع و اسم حضرت عالی در یک فروم معرفی کردم.
پست بلافاصله ناپدید شد خودتان در جریان هستید؟
سلام؛ خير.
پاسخحذفيك Review از برنامه : (+)
پاسخحذفنسخه جديد برنامه در CodePlex قرار گرفت.
پاسخحذفتغييرات:
- اضافه شدن امكان يكي كردن ديالوگهاي دو فايل زير نويس. براي مثال دو زيرنويس فارسي و انگليسي را ميخواهيد يكي كنيد.
سلام آقای وحید نصیری، منم وحید نصیری هستم لینک وبلاگ شما رو تو هفته نامه کلیک پیدا کردم.
پاسخحذفاین شباهت اسم و فامیلی برام جالب بود گفتم یه عرض ادبی بکنم
موفق باشی.
بی نظیری . دستت درد نکنه
پاسخحذفاقا بسیار عالی از کلیک پیدات کردم البته عجیب اینه که فیلتر بود من با خیلی نرم افزار زیر نویس کار کردم و فیلم زیر نویس میکنم خیلی به دردم میخوره دستت طلا بهت افتخار میکنیم به عنوان همزبان واقعا که مغز ایرانی تکه منتظر نسخه های جدید ترش هستم خدا قوت
پاسخحذف