ترجمهی ماشینی دیگر غلطهای خندهدار ندارد. مشکل امروزش ظریفتر است: متن درست است ولی فارسی نیست. خواننده از جملهی اول میفهمد این متن اول به زبان دیگری نوشته شده، و اعتمادش کمی کم میشود.
در متن فنی یک خطر دیگر هم هست: مدل گاهی نام تابع، جاینگهدار یا دستور را هم «ترجمه» میکند و چیزی میشکند.
بوی ترجمه یعنی چه؟#
بوی ترجمه یعنی ساختار جمله انگلیسی مانده و فقط کلمهها فارسی شدهاند. معنا درست است، ولی هیچ فارسیزبانی آن جمله را اینطور نمیگفت.
| ساختار ترجمهای | فارسی طبیعی |
|---|---|
| این به شما اجازه میدهد تا فایل را ذخیره کنید | با این میتوانید فایل را ذخیره کنید |
| فایل توسط سرور حذف شد | سرور فایل را حذف کرد |
| یک خطا رخ داد | خطایی پیش آمد |
| در حال بارگذاری شدن است | بارگذاری میشود |
| مطمئن شوید که افزونه را فعال کردهاید | افزونه باید فعال باشد |
| این مهم است که کلید را نگه دارید | کلید را حتماً نگه دارید |
| بر روی دکمه کلیک کنید | روی دکمه بزنید |
نشانههای دیگر متن ماشینی، مثل مقدمهی همهکاره و کلمههای پرطمطراق، را در نوشتن مقاله با کمک هوش مصنوعی آوردهایم.
ترجمهی فنی را در چند مرحله انجام دهیم؟#
در سه مرحله: ترجمهی دقیق با واژهنامه، فارسیسازی متن ترجمهشده، و بررسی فنی. خطای رایج این است که مرحلهی دوم را حذف کنیم و از یک درخواست هم دقت بخواهیم و هم روانی.
- واژهنامه را پیش از ترجمه بنویسید.
- ترجمهی دقیق بگیرید، با زمینه و مخاطب.
- فارسیسازی کنید: بازنویسی متن ترجمهشده به فارسی طبیعی.
- بررسی فنی: کد، عدد، جاینگهدار و اصطلاحها.
واژهنامه را چطور بسازیم؟#
واژهنامه فهرست اصطلاحهای پرتکرار متن با معادل انتخابی شماست که مدل باید بیاستثنا رعایت کند. بدون آن، یک واژه در بند اول «مخزن» ترجمه میشود و در بند پنجم «ریپازیتوری».
قاعدهی انتخاب ساده است: همان واژهای که مخاطب شما به کار میبرد.
| اصطلاح | انتخاب | دلیل |
|---|---|---|
| Dashboard در وردپرس | پیشخوان | کاربر همین را در ترجمهی رسمی فارسی وردپرس میبیند |
| Plugin | افزونه | رایج در رابط و در جستجو |
| Cache | کش | «حافظهی نهان» را کمتر کسی میگوید |
| Deploy | دیپلوی یا انتشار، بسته به مخاطب | برای برنامهنویس «دیپلوی» طبیعیتر است |
| Pull request | بدون ترجمه | معادل جاافتاده ندارد |
برای متنهایی که به رابط یک نرمافزار اشاره میکنند، واژهها را از خود رابط فارسی آن بردارید تا خواننده آنچه میخواند را روی صفحه پیدا کند.
پرامپت ترجمه چه چیزهایی لازم دارد؟#
زمینه، مخاطب، واژهنامه و فهرست چیزهایی که نباید ترجمه شوند. مدل بدون زمینه، کلمه را ترجمه میکند؛ با زمینه، منظور را:
این بخشی از راهنمای نصب یک افزونهی وردپرس است. خواننده مدیر سایت
است، نه برنامهنویس. آن را به فارسی ترجمه کن.
- واژهنامه را دقیقاً رعایت کن: [واژهنامه را اینجا بگذارید]
- کد، نام تابع، نام فایل، دستور، آدرس و جاینگهدارهایی مثل %s و {name}
را دست نزن.
- قالب را نگه دار: عنوانها، فهرستها و بلوکهای کد.
- هر جا معنای جمله برایت مبهم است، بهجای حدس، آن را با [؟] علامت بزن.
- چیزی اضافه یا کم نکن.خط [؟] مهم است. مدلی که اجازهی «نمیدانم» ندارد، جای ابهام را با حدس پر میکند و حدسش را روان مینویسد، طوری که دیده نمیشود.
فارسیسازی: مرحلهای که بیشتر جا میافتد#
فارسیسازی یعنی متن ترجمهشده را طوری بازنویسی کنید که انگار از اول به فارسی نوشته شده، بدون تغییر معنا. این کار را در یک درخواست جدا و بعد از ترجمه انجام دهید:
متن زیر ترجمهای از انگلیسی است. آن را طوری بازنویسی کن که انگار یک
نویسندهی فنی فارسیزبان از اول نوشته:
- ساختارهای ترجمهای مثل «توسط»، «اجازه میدهد تا» و «یک» اضافه را بردار.
- مجهول را هر جا ممکن است معلوم کن.
- جملههای بلند را بشکن.
- معنا، اصطلاحهای واژهنامه، کد و عددها را عوض نکن.
در پایان جملههایی را که معنایشان ممکن است عوض شده باشد فهرست کن.این همان کاری است که در ویرایش و بازنویسی متن فارسی با هوش مصنوعی «ویرایش زبانی» نامیدیم، با تمرکز روی ساختارهای ترجمهای.
چه چیزهایی نباید ترجمه شوند؟#
هر چیزی که کامپیوتر میخواند: کد، نام تابع و متغیر، دستور، نام فایل، آدرس و جاینگهدار. در متن رابط کاربری و فایلهای ترجمهی افزونه، جاینگهدارها از همه حساسترند. اگر %s در ترجمه جا بیفتد یا %d به %s تبدیل شود، رشتهی نهایی غلط ساخته میشود و گاهی PHP هشدار یا خطا میدهد.
این بررسی را به چشم نسپارید؛ یک تابع کوچک کافی است:
function placeholders(string $text): array
{
preg_match_all('/%(?:\d+\$)?[sdf]|\{[a-z_]+\}/i', $text, $m);
$found = $m[0];
sort($found);
return $found;
}
function same_placeholders(string $source, string $translation): bool
{
return placeholders($source) === placeholders($translation);
}
var_dump(same_placeholders('Deleted %d items from %s', '%d مورد از %s حذف شد')); // true
var_dump(same_placeholders('Hello {name}', 'سلام')); // falseپیامهای خطا را هم حواستان باشد: اگر کاربر ممکن است متن انگلیسی خطا را جستجو کند، دفعهی اول اصل انگلیسی را کنار ترجمه بیاورید.
بررسی فنی را چه کسی انجام دهد؟#
کسی که موضوع را میفهمد، نه فقط زبان را. مترجم خوب ممکن است نفهمد «build» در آن جمله «ساختن» است یا «نسخهی ساختهشده». در بررسی:
- هر نمونهکد و دستور را واقعاً اجرا کنید.
- عددها، واحدها و نام گزینهها را با متن اصلی مقایسه کنید.
- تعداد بندها، مرحلهها و ردیفهای جدول را بشمارید؛ جاافتادن در متن بلند رایج است.
- متن را در همان جایی که نمایش داده میشود ببینید؛ کلمهی لاتین در انتهای جملهی فارسی گاهی جای نقطه را به هم میریزد.
برای راهنماهای بلند، متن را بخشبهبخش ترجمه کنید؛ روش کار با سندهای بلند را در کار با سندهای بلند با هوش مصنوعی آوردهایم.
این موضوع به کجا میرود#
روند روشن این است که دقت ترجمهی ماشینی بالا میرود و ترجمه به داخل ابزارها میآید: ویرایشگر، سیستم مدیریت محتوا و ابزار بومیسازی. آنچه همچنان به آدم نیاز دارد انتخاب واژه برای مخاطب مشخص، طبیعی بودن متن و بررسی فنی است.
برای آماده شدن:
- واژهنامهی پروژه را بهصورت فایل نگه دارید و با هر ترجمه کاملترش کنید.
- بررسی جاینگهدار و قالب را خودکار کنید تا بخشی از روند انتشار باشد.
- چند جفت «متن اصلی و ترجمهی خوب» جمع کنید تا نمونهی مدل در درخواستهای بعدی باشد.
خلاصه#
- ترجمه و فارسیسازی را در دو درخواست جدا انجام دهید.
- واژهنامه را پیش از ترجمه بنویسید و همان واژهای را بگذارید که مخاطب به کار میبرد.
- به مدل اجازه دهید ابهام را علامت بزند، نه اینکه حدس بزند.
- کد و جاینگهدارها را ترجمه نکنید و با کد بررسیشان کنید.
- بررسی نهایی با کسی است که موضوع را میفهمد.