Splync باید از چه زبانهایی پشتیبانی کند
زمانی که Splync برای اولین بار عرضه شد، تنها یک اپلیکیشن تکزبانه بود — که فقط به زبان انگلیسی در دسترس بود — حتی اگر این وبلاگ اکنون به 42 زبان منتشر شده باشد. زبان مادری من ژاپنی است و حتی به طور رسمی مجوز تدریس آن را دارم، زیرا آزمون صلاحیت تدریس زبان ژاپنی که توسط Japan Educational Exchanges and Services برگزار میشود را گذراندهام. با این حال، به نظر میرسد انگلیسی در دنیای امروزی بیشترین دسترسی جهانی را دارد، بنابراین اولین نسخه Splync را به عنوان یک MVP (حداقل محصول پذیرفتنی) به زبان انگلیسی منتشر کردم. وقتی به اطراف نگاه میکنم، بسیاری از ژاپنیها به نظر نمیرسند که در استفاده از زبان انگلیسی راحت باشند، بنابراین افزودن پشتیبانی از ژاپنی برایم کاملاً طبیعی بود. همچنین فرانسوی را اضافه کردم، زبانی که با افراد مسن در رواندا صحبت میکردم وقتی که به عنوان داوطلب همکاریهای خارجی ژاپن در پروژههای آب و بهداشت فعالیت میکردم. به علاوه، چینی سادهشده را نیز اضافه کردم، زبانی که تا حدی میتوانم بخوانم، فقط برای دیدن اینکه اپلیکیشن در یک سیستم نوشتاری متفاوت چگونه به نظر میرسد.
تکزبانه به چهارزبانه
Splync v1.3 از چهار زبان پشتیبانی میکند: انگلیسی، ژاپنی، فرانسوی و چینی سادهشده. در گسترش Splync فراتر از انگلیسی، میخواستم پشتیبانی زبانی را بهطور مؤثری انجام دهم بدون پیچیدگیهای غیرضروری. به جای تعقیب تعداد زبانها، بر تاثیر هر زبان تمرکز کردم. انگلیسی به طور طبیعی وسیعترین مخاطبان بینالمللی را پوشش میدهد. ژاپنی زبان مادری من است و نمایانگر بازار داخلی بزرگی است که در آن برنامههای بودجهبندی مشترک هنوز در حال ظهور هستند. از طرفی، فرانسوی دسترسی را در سطح چند قاره گسترش میدهد — نه تنها فرانسه بلکه بخشهایی از آفریقا، کانادا و اروپا. در نهایت، چینی سادهشده به یکی از بزرگترین جوامع آنلاین جهان دسترسی میدهد. این چهار زبان با هم پوشش جهانی متوازنی ارائه میدهند — آمریکای شمالی، اروپا، آسیا و آفریقا — در حالی که برای یک توسعهدهنده انفرادی قابل مدیریت میمانند. از منظر هزینه-فایده، این کارآمدترین تنظیم چندزبانه در این مرحله است. از آنجا که این اولین تلاش من برای بومیسازی برنامه بود، کل فرآیند برایم یک آزمایش ارزشمند بود.
چگونه اپها را از طریق کلیدها بومیسازی کنیم
در Splync از چارچوب بومیسازی داخلی اپل با فایلهای .strings برای هر زبان پشتیبانی شده استفاده میکنم، که تمام متون کاربر محور را به صورت ساختاریافته ذخیره میکند. هر قطعه از متن با یک کلید شناسایی میشود — به عنوان مثال، "sign_up_button" — و در هر فایل .strings به یک عبارت زبانی خاص اختصاص داده میشود. در انگلیسی ممکن است این عبارت "Sign Up" باشد، در حالی که فایلهای دیگر حاوی ترجمههای مناسب هستند. به این ترتیب، هر فایل .strings مانند یک پیکره موازی عمل میکند که توسط کلیدهای مشترک متحد شدهاند. این کلیدها بهصورت پویا تمام متون نمایش داده شده در رابط کاربری اپ را بر اساس زبان انتخابی کاربر کنترل میکنند. در حالی که خود مکانیزم نسبتاً ساده است، حفظ استاندارد بالای کیفیت ترجمه چالشی بسیار پیچیدهتر است. و البته — من به اندازه C-3PO زبانهای زیادی نمیدانم!
بیایید با هم کیفیت ترجمه را بهبود دهیم
برای این نسخه از ChatGPT-4o برای ترجمه تمام متون کلیدی استفاده کردم و تا جایی که توانستم به صورت دستی بررسی کردم. به عنوان یک توسعهدهنده انفرادی، قصد دارم جریان کاری ترجمه را با استفاده از پایتون و OpenAI API، مانند همین وبلاگ، بیشتر خودکار کنم. بومیسازی هم یک چالش زبانی و هم فنی است. یک ترجمه خوب فقط به معنای کلمه به کلمه نیست — باید به لحن، عبارتبندی و ظرایف فرهنگی توجه کند. قبلاً برای یک شرکت جهانی ترجمه و ویرایش علمی کار میکردم که به من ارزش بازبینی انسانی برای درک عمیقتر زمینه و نیت که هوش مصنوعی به تنهایی ممکن است از دست بدهد را آموخت. محدودیتهای رابط کاربری نیز یک عامل دیگر هستند — گاهی یک عبارت ترجمه شده به سادگی در یک دکمه یا برچسب جا نمیشود. بنابراین بومیسازی فقط درباره زبان نیست، بلکه درباره چیدمان و طراحی نیز هست. از طریق آزمون و خطا، به بهبود تجربه چندزبانه Splync ادامه خواهم داد تا آن را طبیعیتر، سازگارتر و قابل گسترشتر کنم. و این سفر فقط درباره کد یا فرمانها نیست — دوست دارم بازخورد کاربران را نیز برای بهبود کیفیت بیشتر درگیر کنم. اگر ترجمههای ناهنجار یا نامناسبی مشاهده کردید، لطفاً به من اطلاع دهید. نظرات شما همیشه خوشآمد است.
Splync مبتنی بر جامعه است
من قبلاً به عنوان مدیر تجربه مشتری در شرکتهای جهانی کار میکردم و یاد گرفتم که چقدر گوش دادن به کاربران ضروری است. این یکی از دلایلی است که میخواهم از زبانهای بیشتری پشتیبانی کنم — تا Splync بتواند با صداهای بیشتری آشنا شده و رشد کند. در عین حال، خدمات و محصولات عالی باید از منافع مشترک جوامع کاربری خود محافظت کنند. یک نفر ممکن است این را بگوید، دیگری ممکن است آن را بگوید. برخی درخواستها را میتوان از طریق سفارشیسازی حل کرد. برخی دیگر ممکن است نیاز به سازش داشته باشند. در نهایت، نحوه پیشرفت ما باید با چشمانداز اصلی ما همسو باشد. همانطور که قبلاً گفتهام: Splync چشماندازمحور، کاربرمحور و مبتنی بر جامعه است. امیدوارم بتوانیم همراه هم رشد کنیم — تا Splync را به سادهترین برنامه بودجهبندی تبدیل کنیم که به زندگی کمی شادتر کمک میکند.