ترجمه و بومی‌سازی اپلیکیشن با کمک هوش مصنوعی

ترجمه‌ی رشته‌ها فقط اولین قدم است. آینه‌کردن چیدمان، جهت آیکون‌ها، عدد و تقویم و طول متن روی دکمه چیزهایی‌اند که اپ را واقعاً فارسی می‌کنند.

🍊 تیم نارنگی ⏱ 6 دقیقه مطالعه
یک صفحه‌ی اپ در دو حالت کنار هم، یکی چپ‌به‌راست و دیگری آینه‌شده به راست‌به‌چپ

اپ آماده است، رشته‌ها به فارسی برگشته‌اند، و در اولین اجرا سه چیز به چشم می‌آید: دکمه‌ی «ذخیره‌ی تغییرات» از کادرش بیرون زده، فلش «بعدی» همچنان به راست اشاره می‌کند، و تاریخ عضویت «۱۹ آگوست» نوشته شده. متن فارسی شده؛ اپ فارسی نشده.

این فاصله را با ترجمه‌ی بهتر پر نمی‌کنید. چیزی که کم است بومی‌سازی است — تغییر رفتار رابط، نه تعویض کلمه‌ها. مدل‌های زبانی این مسیر را کوتاه می‌کنند، ولی همان‌جا که انتظار دارید بیشترین کمک را بکنند بی‌دقت‌اند.

ترجمه یک لایه است، بومی‌سازی چند لایه

ترجمه در سطح متن اتفاق می‌افتد؛ بومی‌سازی در سطح محصول: جهت خواندن، شکل عدد، تقویم، قالب شماره‌ی موبایل، نمونه‌داده‌ی فرم خالی. اگر جای‌نمای فیلد نام هنوز «John Doe» است، ترجمه تمام شده و بومی‌سازی شروع نشده.

لایهترجمه‌ی صرفبومی‌سازی
متن رابطرشته‌ها فارسی می‌شودلحن و طول هم متناسب می‌شود
چیدماندست‌نخورده می‌ماندکل صفحه آینه می‌شود
عدد و تاریخلاتین و میلادی می‌ماندشمسی و در جای درست
فرم و نمونه‌دادهJohn Doe سر جایش استموبایل و نام ایرانی

راست‌به‌چپ یعنی آینه‌کردن، نه برگرداندن متن

خطای رایج این است که فکر کنیم راست‌به‌چپ یعنی متن از راست شروع شود. در واقع کل محور افقی برمی‌گردد: منوی کناری به راست می‌رود، دکمه‌ی اصلی فرم جایش با لغو عوض می‌شود، و نوار پیشرفت از راست پر می‌شود.

راه درستش هم روشن است: هرجا در استایل نوشته‌اید چپ یا راست، معادل جهت‌آگاهش را بگذارید — خصوصیت‌های منطقی در وب، start و end در اندروید، پدینگ جهت‌آگاه در فلاتر. از اول این کار را بکنید؛ وگرنه باید تک‌تک صفحه‌ها را وصله بزنید. یک تله هم در اجرای واقعی پیدا می‌شود: «نسخه 2.3.1 نصب شد» جابه‌جا دیده می‌شود، چون الگوریتم دوجهته مرز را نمی‌داند.

کدام آیکون آینه می‌شود و کدام نه

قاعده ساده است: هر چیزی که جهت را می‌رساند برمی‌گردد و هر چیزی که هویت دارد سر جایش می‌ماند. فلش بازگشت و آیکون ارسال پیام آینه می‌شوند؛ لوگوی برند و علامت تیک، نه.

جدول دوستونی که نشان می‌دهد در چیدمان راست‌به‌چپ چه عناصری آینه می‌شوند و چه عناصری دست‌نخورده می‌مانند
هر چیزی که جهت دارد آینه می‌شود؛ هر چیزی که هویت دارد سر جایش می‌ماند.

اینجا مدل به کار می‌آید: فهرست آیکون‌های پروژه را بدهید و بخواهید در دو ستون دسته‌بندی کند. تصمیم درباره‌ی این جزئیات در هوش مصنوعی برای طراحان رابط کاربری بازتر شده.

عدد، تقویم شمسی و مرتب‌سازی الفبایی

ارقام فارسی متن را طبیعی‌تر می‌کنند، ولی نه همه‌جا: برای عددی که کاربر باید کپی کند — کد پیگیری، شماره‌ی کارت — رقم لاتین بگذارید. ورودی هم مسئله دارد؛ کاربر با صفحه‌کلید فارسی عدد را فارسی تایپ می‌کند و اگر اعتبارسنجی فقط لاتین بپذیرد، «شماره‌ی نامعتبر» می‌گیرد در حالی که شماره درست است.

تقویم شمسی هم برای بازار ایران انتخابی نیست؛ کاربر اپ نوبت‌دهی آرایشگاه که تاریخ میلادی می‌بیند باید ذهنی حساب کند. ولی خودتان تبدیل تاریخ ننویسید: قواعد کبیسه‌ی گاه‌شماری هجری شمسی فرق دارد و کد دست‌ساز معمولاً در اسفند سال کبیسه یک روز خطا می‌دهد. اگر از مدل کمک می‌گیرید، آزمون واحد برای اول و آخر سال بنویسید؛ روشش در برنامه‌نویسی با هوش مصنوعی آمده.

مرتب‌سازی هم به هم می‌ریزد: «آرش» بعد از «یاسر» می‌آید، چون ترتیب پیش‌فرض بر اساس کد یونیکد است نه الفبای فارسی. مقایسه‌گر زبان‌آگاه با محلی فارسی بگذارید و حرف‌های عربی را نرمال کنید — همین جست‌وجو را هم درست می‌کند. ریشه‌ی این مشکل‌ها در محدودیت‌های فارسی در هوش مصنوعی باز شده.

فایل زبان: رشته‌ی بی‌زمینه غلط ترجمه می‌شود

بزرگ‌ترین منبع خطا در ترجمه‌ی ماشینی رابط، نبود زمینه است. Order هم «سفارش» است هم «ترتیب»؛ Post هم «آگهی» است هم «ارسال کردن». مدل بدون دیدن صفحه حدس می‌زند، و در فایل چهارصدرشته‌ای حدس‌ها ناسازگار می‌شوند.

پس ساختار فایل زبان را عوض کنید: کنار هر کلید بنویسید این رشته کجا دیده می‌شود و چند نویسه جا دارد. همان منطقِ نوشتن برای خواننده‌ی ناآشنا که در نوشتن مستندات فنی گفته شده — با این تفاوت که خواننده مدل است.

⚠️ نیم‌فاصله و حرف‌های عربی

مدل‌ها در فارسی دو خطای تکراری دارند: نیم‌فاصله را به فاصله‌ی معمولی تبدیل می‌کنند («می شود» به‌جای «می‌شود») و گاهی «ي» و «ك» عربی می‌گذارند. اسکریپتی بنویسید که خروجی هر ترجمه را نرمال‌سازی کند؛ روی بازبینی چشمی حساب نکنید.

دکمه‌ای که می‌شکند: مسئله‌ی طول متن

فارسی معمولاً جمع‌وجورتر از انگلیسی است ولی نه همیشه؛ Sign in با «ورود به حساب کاربری» فاصله‌ی زیادی دارد. اگر دکمه‌ها عرض ثابت دارند، نسخه‌ی فارسی جایی می‌شکند که در طراحی اصلی مشکلی نبود. برای هر رشته حداکثر طول بگذارید و در پرامپت قید کنید تا مدل معادل کوتاه پیدا کند، و چیدمان را انعطاف‌پذیر بسازید — همان مسیری که در هوش مصنوعی و دسترس‌پذیری دنبال می‌شود.

پرامپت آماده برای ترجمه‌ی فایل رشته‌ها

این پرامپت را روی دسته‌های پنجاه‌تایی اجرا کنید نه کل فایل، و در هر دسته واژه‌نامه‌ی پروژه را دوباره بدهید:

تو مترجم رابط کاربری هستی. رشته‌های زیر را به فارسی برگردان.

قواعد:
- خروجی همان ساختار JSON ورودی باشد. کلیدها را ترجمه نکن.
- «زمینه» می‌گوید رشته کجای اپ دیده می‌شود؛ لحن را با آن هماهنگ کن.
- «حداکثر طول» را رعایت کن؛ بلندتر شد، معادل کوتاه‌تر پیدا کن.
- هرچه داخل آکولاد است متغیر است؛ عیناً بماند.
- نیم‌فاصله را رعایت کن. «ی» و «ک» فارسی باشند نه عربی.
- واژه‌نامه: order = سفارش، post = آگهی.
- اگر رشته‌ای مبهم است، در فیلد «تردید» بنویس چرا.

ورودی:
{"btn_save": {"en": "Save changes", "زمینه": "دکمه‌ی فرم نمایه", "حداکثر طول": 16}}

فیلد «تردید» مهم‌ترین بخش است: به‌جای حدس بی‌صدا، فهرست رشته‌هایی را می‌دهد که باید خودتان ببینید. الگوی چنین پرامپت‌هایی در پرامپت‌نویسی فارسی و تفاوت مدل‌ها در ترجمه با هوش مصنوعی آمده. در نارنگی هم می‌شود یک دسته را به دو مدل داد و مقایسه کرد.

شش گام مسیر بومی‌سازی اپ از بیرون‌کشیدن رشته‌ها تا آزمون با کاربر فارسی‌زبان واقعی
ترتیب این گام‌ها مهم است: ترجمه پیش از افزودن زمینه، فقط دوباره‌کاری می‌سازد.

کجا نباید به مدل تکیه کرد

سه جا خروجی را بدون بازبینی منتشر نکنید. اول متن حقوقی: شرایط استفاده و سیاست حریم خصوصی ترجمه‌ی لفظی برنمی‌دارد؛ مدل پیش‌نویس می‌دهد و مسئولیت با کارشناس است. دوم اصطلاح‌های اختصاصی کارتان، که مدل بدون واژه‌نامه هر بار جور دیگری ترجمه می‌کند.

سوم و مهم‌تر از همه: مدل صفحه را نمی‌بیند. نمی‌داند رشته زیر یک آیکون کوچک است یا وسط یک هشدار قرمز، و نمی‌فهمد در آن قاب جا می‌شود یا نه. هر ادعایی که بگوید ترجمه‌ی رابط کاملاً خودکارشدنی است، همین را نادیده گرفته.

آزمون با کاربر واقعی، نه با خودتان

شما که ماه‌ها روی این اپ کار کرده‌اید دیگر متن را نمی‌خوانید؛ حفظید. سه نفر که اپ را ندیده‌اند بیاورید، یک کار مشخص بدهید — «ثبت سفارش و بعد لغو کردنش» — و نگاه کنید کجا مکث می‌کنند. هر مکث یعنی یک رشته‌ی مبهم یا یک دکمه‌ی بدجا.

این‌ها را هم امتحان کنید: زبان دستگاه را عوض کنید و برگردید، فونت سیستم را بزرگ‌ترین کنید، اپ را روی صفحه‌ی کوچک اجرا کنید. ساخت سناریوی چنین آزمون‌هایی در هوش مصنوعی برای تست نرم‌افزار شرح داده شده، و مفهوم کلی حوزه در بین‌المللی‌سازی و بومی‌سازی جمع شده.

جمع‌بندی

بومی‌سازی اپ سه بخش دارد که فقط یکی‌شان ترجمه است. دوم چیدمان و جهت است که با خصوصیت‌های جهت‌آگاه تقریباً رایگان به دست می‌آید، و سوم داده: عدد، تاریخ، مرتب‌سازی و اعتبارسنجی.

سهم مدل هم روشن است: پیش‌نویس رشته‌ها، دسته‌بندی آیکون‌ها و ساخت سناریوی آزمون. سهم شما زمینه‌دادن است — فایل زبانی که می‌گوید هر رشته کجا دیده می‌شود و چقدر جا دارد. هر ساعتی که روی آن بگذارید، در زبان بعدی برمی‌گردد.

برای ادامه:

پرسش‌های پرتکرار

فرق ترجمه و بومی‌سازی اپلیکیشن دقیقاً چیست؟ +
ترجمه یعنی رشته‌ی انگلیسی برود و رشته‌ی فارسی جایش بنشیند. بومی‌سازی یعنی رفتار خود رابط هم عوض شود: جهت چیدمان، شکل عدد، تقویم، قالب شماره‌ی موبایل و حتی نمونه‌داده‌های داخل فرم. اپی که متنش فارسی است ولی تاریخ عضویت را میلادی نشان می‌دهد، ترجمه شده اما بومی نشده.
می‌شود کل فایل رشته‌ها را یک‌جا به مدل داد؟ +
می‌شود ولی نتیجه‌اش پایدار نیست. وقتی فایل بلند است، مدل در نیمه‌ی دوم لحن و واژه‌گزینی اولش را رها می‌کند و یک مفهوم واحد با دو کلمه‌ی متفاوت ترجمه می‌شود. بهتر است فایل را به دسته‌های پنجاه‌تایی بشکنید و در هر دسته واژه‌نامه‌ی ثابت پروژه را دوباره بدهید.
اعداد را در اپ فارسی نشان بدهیم یا لاتین؟ +
برای متن‌های خواندنی مثل تعداد پیام و شماره‌ی صفحه، ارقام فارسی طبیعی‌تر است. برای هر چیزی که کاربر باید کپی کند یا جای دیگری وارد کند — شماره‌ی سفارش، کد پیگیری، شماره‌ی کارت — ارقام لاتین بگذارید، چون سامانه‌های دیگر معمولاً رقم فارسی را نمی‌پذیرند. مهم این است که در کل اپ یک قاعده داشته باشید نه صفحه‌به‌صفحه تصمیم بگیرید.
تقویم شمسی را باید خودم پیاده کنم؟ +
نه، و بهتر است نکنید. تبدیل تاریخ هجری شمسی به میلادی قواعد کبیسه‌ی خاص خودش را دارد و پیاده‌سازی دستی معمولاً در سال کبیسه یک روز خطا می‌دهد. از کتابخانه‌ی جاافتاده‌ی همان پلتفرم استفاده کنید، تاریخ را به‌صورت جهانی ذخیره کنید و فقط موقع نمایش تبدیل کنید.
هوش مصنوعی جای مترجم حرفه‌ای را در این کار می‌گیرد؟ +
برای رشته‌های ساده‌ی رابط، پیش‌نویس قابل‌قبولی می‌دهد و وقت زیادی برمی‌گرداند. برای متن حقوقی مثل شرایط استفاده و سیاست حریم خصوصی، و برای اصطلاحات تخصصی دامنه‌ی کاری شما، خروجی باید بازبینی انسانی شود. عملاً نقش مدل می‌شود پیش‌نویس‌نویس سریع و نقش آدم می‌شود بازبین.
#ترجمه اپلیکیشن #راست به چپ در اپ #فارسی سازی رابط کاربری #تقویم شمسی در اپلیکیشن #فایل زبان و رشته‌ها
به‌دردِ کسی می‌خورد؟ تلگرام واتساپ
🍊

خواندنش خوب بود — حالا امتحانش کن

هرچه در این صفحه خواندی، همین حالا داخلِ نارنگی قابلِ اجراست. ثبت‌نام با شماره‌ی موبایل، نارنگیِ رایگانِ شروع، بدونِ نیاز به کارت یا تحریم‌شکن.

بدونِ نصب هم کار می‌کند — ولی در اپ سریع‌تر است