چگونه یک فایل RTF را ترجمه کنیم: چه چیزهایی باقی میمانند و چه چیزهایی از بین میروند
وقتی یک فایل RTF ترجمه میشود، چه بر سر پاراگرافها، جدولها، پانویسها، پیوندها و قالببندی میآید، چرا فایلهای TextEdit به یک مرحله اضافی نیاز دارند، و یک بررسیکننده رایگان.

برای ترجمه یک فایل RTF، کل فایل .rtf را در یک مترجمی که RTF را میخواند بارگذاری کنید، سپس نتیجه را بررسی کنید. BookTranslator فایل RTF را میپذیرد. متن را پاراگراف به پاراگراف میخواند، ترجمه میکند و یک فایل RTF جدید و یک فایل RTF دوزبانه به شما میدهد. چسباندن متن در یک پنجره چت یا یک مترجم وب نیز برای یکی دو صفحه کار میکند، اما فایل را از دست میدهید و باید آن را دوباره بسازید.
یک نکته را پیش از بارگذاری باید بدانید. فایل ترجمهشده واژهها و پاراگرافهای شما را نگه میدارد، اما قالببندی شما را نه. متن پررنگ، سرتیترها، فونتها، جدولها، پیوندها و تصاویر بازنمیگردند. بنابراین مسیر درست بستگی به این دارد که در فایل شما چه چیزی هست و کدام برنامه آن را ذخیره کرده است. یک دستنوشته ساده که از Word ذخیره شده، حالت آسان است. فایلی که TextEdit در مک ذخیره کرده، ابتدا به یک مرحله اضافی نیاز دارد، وگرنه همه پاراگرافها به هم میچسبند.
ما سه فایل آزمایشی ساختیم و یک بررسیکننده رایگان نوشتیم که نشان میدهد پیش از بارگذاری چه چیزی در یک فایل RTF هست و پس از آن چه تغییر کرده است. فایلهای آزمایشی را از یک نسخه محلی از کد خواندن و نوشتن RTF که BookTranslator استفاده میکند عبور دادیم، با یک نشانگر به جای مدل، تا دقیقاً ببینید هر فایل آزمایشی چه متنی را برای ترجمه میفرستد و فایل چگونه بازمیگردد.
پاسخ سریع: چه بر سر هر بخش از فایل میآید
| بخش فایل | آنچه در آزمایش ما بازگشت | چه باید کرد |
|---|---|---|
پاراگرافهایی که با \par پایان مییافتند (Word و بیشتر برنامههای ویندوز) | یک پاراگراف ترجمهشده برای هر کدام | هیچ |
| پاراگرافهایی که با یک بکاسلش و یک شکست خط پایان مییافتند (TextEdit، دیگر برنامههای مک) | کل فایل به عنوان یک پاراگراف فرستاده شد، بدون فاصله در جایی که هر شکست بود | ابتدا فایل را تبدیل کنید (به مرحله ۲ نگاه کنید) |
| پررنگ، ایتالیک، سرتیترها، فونتها، رنگها، ترازبندی | حذف شد. هر پاراگراف Times New Roman با اندازه ۱۲ نقطه است | دوباره در Word قالببندی کنید، یا یک DOCX را ترجمه کنید |
| جدولها | متن سلولها بدون فاصله به هم چسبیده: StopTimeNorth pier7:05 | به جای آن یک DOCX را ترجمه کنید |
| پانویسها | متن پانویس به انتهای پاراگرافش اضافه شد؛ شماره پانویس از بین رفت | پانویسها را دستی برگردانید، یا یک DOCX را ترجمه کنید |
| سرصفحه | به یک پاراگراف معمولی در همان جایگاه خود در فایل تبدیل میشود (در آزمایش ما، در بالای فایل) | آن را حذف کنید، یا سرصفحه اصلی را نگه دارید |
| پیوندها | متن پیوند حفظ و ترجمه میشود، نشانی وب حذف میشود | پیوندها را دوباره اضافه کنید |
| تصاویر | حذف میشوند | فایل اصلی را برای نگهداری آثار هنری نگه دارید |
حروف دارای اعراب و غیرلاتین (café، 日本) | بهدرستی خوانده و نوشته میشوند | هیچ |
| هر رشتهٔ ۲۰ کاراکتری یا بیشتر از 0–9 و a–f (شمارههای مرجع طولانی، هشها) | پیش از ترجمه حذف میشود | پس از ترجمه آنها را بررسی کنید (بررسیکننده این کار را انجام میدهد) |
ادامهٔ این راهنما نشان میدهد هر ردیف از کجا میآید و چه باید کرد.
گام ۱: بررسی کنید چه نوع RTF دارید
RTF یک قالب متنی با کدهای قالببندی است. فایل را در یک ویرایشگر متن ساده باز کنید، یا در ترمینال head -c 120 yourfile.rtf را اجرا کنید و به خط اول نگاه کنید.
- اگر
\cocoartfدر آن باشد، فایل توسط سیستم متنی اپل ذخیره شده است: TextEdit یا برنامهٔ دیگری در مک که از آن استفاده میکند. - اگر
\rtf1\ansiداشته باشد و\cocoartfنداشته باشد، به احتمال زیاد از Word، LibreOffice، WordPad یا خروجی یک برنامهٔ نویسندگی است.
این تفاوت مهم است زیرا این دو نوع، پاراگراف را به روشهای مختلف پایان میدهند. Word و بیشتر واژهپردازهای دیگر کد \par را در پایان هر پاراگراف مینویسند. سیستم متنی اپل به جای آن یک بکاسلش تنها در پایان خط مینویسد. هر دو RTF معتبر هستند: مشخصات اصلی RTF مایکروسافت در سال ۱۹۸۹ (نسخهٔ آینهای) میگوید بکاسلشی که پس از آن شکست خط بیاید مانند \par رفتار میکند، و خوانندهٔ خود اپل فایل آزمایشی TextEdit ما را به صورت پاراگرافهای جداگانه نشان میدهد. خوانندهٔ RTF در BookTranslator پاراگرافها را فقط با \par تقسیم میکند. ما این را در کد آن در ۳ نوامبر ۲۰۲۶ و در آزمایش زیر بررسی کردیم.
بررسیکننده به شما میگوید چه نوعی دارید و چه چیز دیگری در فایل هست. فقط به Python 3 نیاز دارد و نه چیز دیگری:
python3 check_rtf.py sample-word-style.rtf
روی فایل آزمایشی به سبک Word ما این را چاپ کرد:
== sample-word-style.rtf
par_breaks: 7
table_cells: 4
table_rows: 2
hyperlinks: 1
fields: 1
bold_on: 2
italic_on: 1
page_breaks: 1
fonts: 2
footnotes: 1
headers: 1
images: 1
visible_paragraphs: 7
WARN 4 table cells: check that cell boundaries survive.
WARN 1 footnotes: check where this text ends up in the output.
WARN 1 headers: check where this text ends up in the output.
WARN 1 hyperlinks: the link text may survive without the URL.
WARN 1 images: keep the original for the artwork.
روی فایل TextEdit، اولین هشدار این بود:
WARN Paragraphs end with a backslash + line break (TextEdit/Cocoa style), not \par. Tools that only split on \par will see one long paragraph.
اگر بررسیکننده هیچ هشداری چاپ نکند، پاراگرافها، اعداد و متن شما باید سالم منتقل شوند. پررنگ، سرتیترها و فهرستها هشداری ایجاد نمیکنند، اما در مسیر RTF همچنان حذف میشوند، پس اگر به آنها نیاز دارید، مرحله ۲ را بررسی کنید.
آنچه از فایلهای آزمایشی ما بازگشت
ما سه فایل کوچک ساختیم. همه آنها و هر آنچه بازگشت، در پوشه فایلهای آزمایشی قرار دارد.
- sample-word-style.rtf به سبکی که Word برای RTF به کار میبرد دستنویس شده است: شکستهای
\par، یک سرصفحه، یک پانویس، یک پیوند، یک جدول دو در دو، یک تصویر کوچک، یک شکست صفحه،caféکه به صورت کاراکتر صفحه کد نوشته شده، و日本که به صورت کدهای یونیکد نوشته شده است. - sample-textedit.rtf روی یک مک با
textutil -convert rtfساخته شد که از همان سیستم متنی TextEdit استفاده میکند. دارای یک سرتیتر، کلمات پررنگ و ایتالیک، یک پیوند، یک فهرست گلولهای، یک جدول، و خطی با{braces}و بکاسلشها در آن است. - sample-long-numbers.rtf دارای یک مرجع سفارش ۲۰ رقمی، یک هش کامیت ۴۰ کاراکتری، و یک شماره تلفن است.
ما توابع خواندن و نوشتن RTF را در ۳ نوامبر ۲۰۲۶ از کد بکاند BookTranslator کپی کردیم و آنها را روی هر فایل اجرا کردیم. هیچ مدلی استفاده نشد. هر پاراگرافی که برای ترجمه ارسال میشد با [ZH] بهعلاوه متن اصلی جایگزین شد. این دقیقاً نشان میدهد که یک مدل چه چیزی دریافت میکند و فایل چگونه بازسازی میشود، بدون نویز یک ترجمه واقعی.
فایل به سبک Word: شش پاراگراف تمیز، با سه غافلگیری
فایل به صورت شش پاراگراف ترجمهشده، به این ترتیب بازگشت:
[ZH] Harbor Notes - Draft 2
[ZH] Chapter 3: The Harbor
[ZH] The ferry left at 6:40, an hour before the café opened. Timetable from the 1998 edition.
[ZH] Read the harbor map before you go.
[ZH] StopTimeNorth pier7:05
[ZH] Chapter 4: 日本 (Nihon)
بیشتر اینها همان چیزی است که میخواهید. هر پاراگراف یک بار، به ترتیب، ارسال شد و café و 日本 سفر از کدهای RTF به متن و بازگشت را جان سالم به در بردند. سه غافلگیری:
- سرصفحه صفحه به پاراگراف اول تبدیل شد. «Harbor Notes - Draft 2» یک سرصفحه بود که در بالای هر صفحه چاپ میشد. در فایل ترجمهشده، این متن بدنه است.
- پانویس به داخل جمله منتقل شد. «Timetable from the 1998 edition.» یک پانویس روی «opened» بود. اکنون به دنبال جمله میآید انگار بخشی از آن است، و شماره پانویس از بین رفته است. مدلی که آن پاراگراف را ترجمه میکند یک متن پیوسته میبیند، و شما باید پانویس را دستی پیدا کرده و به جای خود برگردانید.
- سلولهای جدول به هم چسبیدند. چهار سلول «Stop»، «Time»، «North pier» و «7:05» به یک رشته واحد
StopTimeNorth pier7:05تبدیل شدند. مدل ممکن است آن را در جای اشتباه تقسیم کند، یا «StopTime» را به عنوان یک کلمه ترجمه کند.
فایل ترجمهشده هیچ سرصفحه، پانویس، جدول، آدرس پیوند، تصویر و پررنگی ندارد. حالت مقایسه بررسیکننده در مرحله ۴ همه اینها را فهرست میکند.
فایل TextEdit: یک پاراگراف
فایل TextEdit هشت پاراگراف قابل مشاهده دارد. همه آنها به عنوان یک پاراگراف برای ترجمه ارسال شدند:
Chapter 3: The HarborThe ferry left at 6:40, an hour before the market opened.Read the harbor map before you go. • Bring cash • Keep your ticketStopTimeNorth pier7:05Ana said: "We'll wait {here}" and C:\Users\ana\notes stayed open.
هیچ فاصلهای در جایی که هر پاراگراف پایان مییافت وجود ندارد: «HarborThe»، «opened.Read». فایل ترجمهشده نیز یک پاراگراف است. فایل آزمایشی ما کوتاه است. در یک کتاب واقعی که با TextEdit ذخیره شده، کل فایل به یک پاراگراف تبدیل میشود. پیش از ترجمه، BookTranslator پاراگرافهای بسیار طولانی را به قطعاتی حدود ۶٬۰۰۰ کاراکتر (حدود ۲٬۰۰۰ برای چینی، ژاپنی یا کرهای) میشکند، در انتهای جملهها اگر بتواند پیدا کند. این برشها همچنان در انتهای جملهها در داخل پاراگرافها میافتند، اما هرگز در شکستهای پاراگراف گمشده، چون «opened.Read» شبیه انتهای جمله نیست. جایی که هر پاراگراف یک جمله واحد است، مانند خطوط دیالوگ یا آیتمهای فهرست، برشها میتوانند در کاماها یا فاصلهها بیفتند. مدل هرگز نمیبیند که پاراگرافها کجا بودهاند، و شما یک دیوار متن دریافت میکنید.
آکولادها و بکاسلشهای جمله آخر واقعاً جان سالم به در بردند. آنها در راه خروج به درستی escape شده بودند، بنابراین فایل هنوز باز میشود.
اعداد طولانی: پیش از ترجمه حذف شدند
فایل سوم اینگونه بازگشت:
[ZH] Your order reference is and must be quoted in full.
[ZH] The fix landed in commit last week.
[ZH] Call +44 20 7946 0958 before 5 pm.
مرجع سفارش و هش کامیت از بین رفتهاند، با یک فاصله دوتایی در جای هر کدام. خواننده هر رشتهای از ۲۰ کاراکتر یا بیشتر را که فقط از ارقام ۰–۹ و حروف a–f ساخته شده باشد حذف میکند، زیرا دادههای تصویر جاسازیشده در RTF اینگونه به نظر میرسند. یک عدد طولانی در متن شما نیز برای آن همینگونه به نظر میرسد. شماره تلفن جان سالم به در برد چون گروههای رقم آن کوتاه هستند.
این موضوع بیشتر برای قراردادها، فاکتورها، یادداشتهای فنی و سوابق با شمارههای مرجع طولانی مهم است. بررسیکننده هر چنین رشتهای را در فایل منبع شما فهرست میکند و به شما میگوید اگر یکی پس از ترجمه گم شده باشد.
مرحله ۲: مسیر مناسب را برای فایل خود انتخاب کنید
از خروجی بررسیکننده برای انتخاب یکی استفاده کنید:
| فایل شما چه دارد | بهترین مسیر | چرا |
|---|---|---|
پاراگرافهای ساده، از Word یا برنامهای دیگر با \par | فایل RTF را بارگذاری کنید | پاراگرافها یکبهیک برمیگردند؛ فقط قالببندیای را از دست میدهید که به آن نیازی نداشتید |
پاراگرافهای ساده، از TextEdit (\cocoartf) | ابتدا به DOCX یا TXT تبدیل کنید، سپس آن را بارگذاری کنید | خواننده RTF کل فایل را بهصورت یک پاراگراف ارسال میکند |
| سرتیترها، جدولها، پانویسها یا قالببندیای که باید حفظ شود | در Word یا LibreOffice بهصورت DOCX ذخیره کنید، سپس DOCX را بارگذاری کنید | مسیر RTF یک فایل ساده بازسازی میکند؛ DOCX از طریق گردشکار Word پردازش میشود |
| شمارههای مرجع طولانی یا هشها | هر مسیری، سپس بررسی کنید | تأیید کنید که هر شماره بازگشته است |
برای تبدیل یک فایل TextEdit در مک، Terminal را باز کنید و یکی از این دستورها را اجرا کنید:
textutil -convert docx notes.rtf
textutil -convert txt notes.rtf
دستور اول notes.docx را کنار فایل اصلی مینویسد. وقتی فایل آزمایشی TextEdit خود را به این روش تبدیل کردیم، DOCX برای هر خط یک پاراگراف جداگانه داشت و کلمات پررنگ و ایتالیک را حفظ کرد. جدول را که به پاراگرافهای جداگانه تبدیل شد، یا پیوند را حفظ نکرد. اگر به آنها نیاز دارید، فایل را در Word یا LibreOffice باز کنید و از آنجا بهصورت DOCX ذخیره کنید، سپس جدول را قبل از بارگذاری بررسی کنید. دستور دوم یک فایل متنی ساده مینویسد. وقتی فقط به کلمات نیاز دارید از آن استفاده کنید؛ راهنمای ترجمه متن ساده ما مواردی را که باید در یک فایل TXT بررسی کنید پوشش میدهد.
برای یک سند Word که در آن جدولها، سبکها و سرصفحهها مهم هستند، راهنمای ما برای ترجمه سند Word با حفظ قالب را ببینید. بخش پرسشهای متداول BookTranslator در صفحه مترجم سند همین توصیه را برای فایلهای قدیمی .doc ورد ارائه میدهد: متن آنها را ترجمه میکند و یک فایل RTF برمیگرداند، و توصیه میکند وقتی تصاویر، جدولها یا چیدمان باید حفظ شوند، ابتدا آنها را بهصورت DOCX ذخیره کنید.
مرحله ۳: کل فایل را ترجمه کنید
فایل را بارگذاری کنید، زبان مقصد را انتخاب کنید و قیمت را قبل از پرداخت بررسی کنید. BookTranslator پاراگرافها را به ترتیب ترجمه میکند. برای یک فایل طولانی با نامها و اصطلاحات تکراری، گزینه واژهنامه خودکار را قبل از پرداخت فعال کنید تا در سراسر متن به یک شکل ترجمه شوند.
دو فایل دریافت میکنید:
- فایل ترجمهشده: هر پاراگراف به زبان مقصد.
- فایل دوزبانه: هر پاراگراف اصلی و پس از آن ترجمهاش. این فایل برای بازبینی سریعتر است، زیرا میتوانید هر دو را کنار هم بخوانید و پاراگرافی را که جا افتاده یا اشتباه خوانده شده شناسایی کنید. در فایل دوزبانه آزمایش TextEdit ما، کل سند یک بار به انگلیسی و سپس یک بار با نشانگر ظاهر میشود، که راه دیگری برای دیدن مشکل تکپاراگرافی است.
هر دو فایل بهصورت پاراگرافهای ساده با فونت Times New Roman اندازه ۱۲ نوشته میشوند. زبانهای مقصد راستبهچپ، مانند عربی و عبری، بهصورت پاراگرافهای راستبهچپ علامتگذاری میشوند. فایلها را در Word، LibreOffice یا TextEdit باز کنید تا بخوانید و قالببندی کنید.
مرحله ۴: بررسی فایل ترجمهشده
بررسیکننده را با فایل مبدأ و ترجمه اجرا کنید:
python3 check_rtf.py sample-word-style.rtf sample-word-style-translated.rtf
برای فایل شبیهWord ما، بخش مقایسه این را چاپ کرد:
== compare
CHANGED table_cells: 4 -> 0
CHANGED footnotes: 1 -> 0
CHANGED headers: 1 -> 0
CHANGED hyperlinks: 1 -> 0
CHANGED images: 1 -> 0
CHANGED bold_on: 2 -> 0
CHANGED italic_on: 1 -> 0
CHANGED page_breaks: 1 -> 0
CHANGED visible_paragraphs: 7 -> 6
هر خط یک کار برای بازبینی شماست. در اینجا، تعداد پاراگرافها از هفت به شش کاهش یافت چون ردیفهای جدول به یک پاراگراف تبدیل شدند. برای فایل اعداد طولانی، دو خط MISSING چاپ شد، یکی برای هر عددی که حذف شده بود. برای فایل TextEdit، visible_paragraphs: 8 -> 1 نشانهای است برای بازگشت به مرحله ۲.
بررسیکننده ساختار را میشمارد. نمیتواند بگوید ترجمه خوب است یا نه. فایل دوزبانه را بخوانید، حداقل صفحات آغازین و هر بخشی که شامل نامها، اعداد یا دیالوگ است.
مشکلات رایج
فایل RTF ترجمهشده من یک پاراگراف طولانی است. فایل مبدأ شما به احتمال زیاد از TextEdit یا برنامه دیگری در مک آمده است. بررسیکننده را روی فایل اصلی اجرا کنید. اگر درباره شکست خط با بکاسلش هشدار داد، فایل را به DOCX یا TXT تبدیل کنید و آن را ترجمه کنید.
برخی کلمات به هم چسبیدهاند، مثل «StopTime». آنها سلولهای جدول بودند. جدولهای RTF در این مسیر مرزهای سلولی خود را از دست میدهند. اگر جدول مهم است، یک کپی DOCX از فایل را ترجمه کنید.
یک جمله با متنی تمام میشود که به آن تعلق ندارد. آن احتمالاً یک پانویس است. آن را در اصل پیدا کنید، سپس ترجمهاش را به یک پانویس در Word منتقل کنید.
یک عدد از ترجمه جا افتاده است. اگر ۲۰ کاراکتر یا بیشتر از 0–9 و a–f بود، قبل از ترجمه حذف شده است. آن را از اصل کپی کنید. خطوط MISSING بررسیکننده همه را فهرست میکنند.
قالببندی از بین رفته است. این در مسیر RTF قابل انتظار است: فایل با پاراگرافهای ساده بازسازی میشود. اگر به قالببندی نیاز دارید، یک کپی DOCX را ترجمه کنید، یا سبکها را پس از ترجمه دوباره اعمال کنید. مقایسه ما از ابزارهای ترجمه DOCX پوشش میدهد که کدام ابزارها قالببندی Word را حفظ میکنند و تا چه حد خوب.
آیا میتوانم نتیجه را به جای آن به صورت DOCX دریافت کنم؟ از آپلود RTF نه؛ RTF وارد میشود، RTF خارج میشود. اصل را قبل از آپلود به DOCX تبدیل کنید، و نتیجه به صورت DOCX برمیگردد.
مطالب مرتبط





