درس های ارزشمند از سفر محلی سازی نرم افزار من

یادگیری یک سفر مادام العمر است، پر از فرصت های بی پایان برای کشف چیزهای جدید و گسترش دانش. در روح این تلاش مستمر، خوشحالم که بینش هایی را که از سفر خود در دنیای پیچیده محلی سازی نرم افزار به دست آورده ام، به اشتراک می گذارم. از طریق آزمون و خطا، درس های ارزشمندی را کشف کرده ام که می تواند برای دیگران در مسیرهای مشابه مفید باشد. بیایید با هم به اسرار محلی سازی نرم افزار بپردازیم.
درک اولیه از محلی سازی نرم افزار
مانند بسیاری از توسعهدهندگان نرمافزار، دیدگاه اولیه من از بومیسازی نرمافزار، فرآیند ساده انطباق برنامههایمان برای پشتیبانی از چندین زبان بود. با توجه به انبوه کتابخانههایی که به این چالشها رسیدگی میکنند، این ساده و تقریباً معمولی به نظر میرسید. به نظر میرسید نقش من صرفاً شامل یکپارچهسازی این کتابخانهها و تغییر جزئی کد ما باشد. از این نظر، درک من کاملاً دقیق بود. با این حال، من جنبههای حیاتی مانند ترجمه، ادغام مجدد ترجمهها در یک برنامه، حفظ این برنامهها در طول زمان، و پیمایش چالشهای مرتبط را نادیده گرفتم.
به عنوان یک توسعهدهنده نرمافزار، اولین چالش مهم من در پشتیبانی از چندین زبان، همکاری مؤثر با مترجمان بود. کتابخانه محلیسازی نرمافزاری که من استفاده کردم شامل ابزاری برای استخراج پیامها از کد به یک فایل محلیسازی بود. برنامه اولیه من این بود که این فایل را برای مترجمان بفرستم و بعداً نسخه های ترجمه شده را یکپارچه کنم. این یک فایل JSON بود – به ظاهر ساده. با این حال، به زودی متوجه شدم که این فرآیند پیچیده تر از حد انتظار است. همه با JSON راحت نیستند یا نمی دانند چگونه آن را ویرایش کنند. علاوه بر این، فایل شامل جفتهای کلید-مقدار بود، و علیرغم اعتقاد من به اینکه کلیدهای رشتهای (شناسههای پیام)، مانند «page.home.title» و «common.aria-label.close»، مترجمهای خود توضیحی هستند. اغلب به زمینه اضافی نیاز داشت که منجر به سوالات متعددی می شد. بنابراین، روند ارسال یک فایل و انتظار نسخه ترجمه شده در ازای آن، آنطور که تیم من و من امیدوار بودیم روان نبود.
حل مشکلات با استفاده از برگه های گوگل و اسکریپت های سفارشی
در پاسخ، من و تیمم به دنبال رفع چالشهای همکاری با مترجمان با ایجاد محیطی بودیم که کار کردن در آن برای همه آسان بود. Google Sheets، همراه با اسکریپتهایی برای واکشی و بهروزرسانی دادههای محلیسازی، به عنوان یک راهحل امیدوارکننده ظاهر شد. این رویکرد در واقع برخی از مشکلات را کاهش داد، اما ما به سرعت با مسائل دیگری مواجه شدیم.
ما تلاش کردیم تا زمینه کافی را برای مترجمان فراهم کنیم و متوجه نیاز به چیزی مانند اسکرین شات برای کمک به درک آنها شدیم. علاوه بر این، برخی از پیامهای بومیسازی به مرور زمان نیاز به بهروزرسانی داشتند، و با شروع استفاده از پیامهای محلیسازی پیشرفته (با متغیرهایی و نحو ICU)، توضیح اینکه چه چیزی به ترجمه نیاز دارد به یک چالش تبدیل شد. ما همچنین به دنبال راهحلی بودیم که بهتر در جریان کار ما ادغام شود، بهروزرسانیهای کاربرگنگار را خودکار با فشار کد به GitHub و ایجاد PR (درخواستهای کششی) با ترجمههای جدید برای آزمایش قبل از ادغام. پس از آن بود که ما پلتفرم هایی را کشف کردیم که قبلاً به این چالش ها رسیدگی کرده بودند.
انتقال به سمت یک پلت فرم محلی سازی تخصصی
برای غلبه بر محدودیتهای رویکرد اولیهمان، من و تیمم شروع به کاوش راهحلهای بهتر کردیم که ما را به کشف دنیای جدیدی پر از پاسخهای بالقوه سوق داد. ما به دنبال پلتفرمی بودیم که بتواند نیازهای ما را برآورده کند و مقرون به صرفه باشد. پس از تست و ارزیابی، انتخاب کردیم به صورت محلی. رابط کاربری جدولی بصری آن برای ترجمه ها، توانایی استفاده از اسکرین شات برای زمینه، برجسته سازی نحو برای متغیرهایی و ICU، و ادغام GitHub به طور قابل توجهی روند ما را ساده کرد.
ادغام Localizely با مخزن GitHub ما ساده بود و شامل اضافه کردن یک localizely.yml
فایل و پیکربندی وبقلابها برای هماهنگی با تنظیمات برگزیده گردش کار ما. این اتوماسیون نیاز به بهروزرسانیهای دستی را برطرف کرد و سیستم برچسبگذاری به ما کمک کرد تا تغییرات را بهطور مؤثر پیگیری کنیم.
لطفاً توجه داشته باشید که سایر پلتفرم ها ویژگی های مشابهی را ارائه می دهند. انتخاب ما بر اساس نیازهای خاص ما بود و Localizely به خوبی با آنها مطابقت داشت.
نکات کلیدی که باید به خاطر بسپارید
در اینجا چند نکته کلیدی وجود دارد که ممکن است به شما کمک کند روند خود را ساده کنید:
-
برای جلوگیری از گیر افتادن در ابزارهای قدیمی، یک کتابخانه محلی سازی به خوبی نگهداری شده و پرکاربرد انتخاب کنید.
-
یک گردش کاری را تعریف کنید که مناسب تیم شما باشد و از همکاری کارآمد بین توسعه دهندگان و مترجمان اطمینان حاصل کنید.
-
اگر بدون آژانسهای ترجمه کار میکنید، یا اگر مترجمان شما با قالبهای فایل شما آشنا نیستند، از Google Sheets یا پلتفرمهای محلیسازی تخصصی استفاده کنید.
-
از سئو غافل نشوید. برای وب سایت های چند زبانه، برچسب های hreflang را اضافه کنید تا به موتورهای جستجو کمک کنید تا محتوای شما را بهتر درک کنند.
-
نگهداری از برنامه های چند زبانه نیاز به تلاش بیشتری دارد. گردش کاری را پیدا کنید که امکان به روز رسانی سریع را فراهم کند و مانع پیشرفت نشود. شیوه های محلی سازی چابک یا مداوم ممکن است سودمند باشد.
نتیجه گیری
در این پست، درسهای آموختهشده از سفر بومیسازی نرمافزارم، چالشهایی که من و تیمم با آنها روبرو هستیم و نحوه غلبه بر آنها را به اشتراک گذاشتهام. امیدوارم این بینش برای شما مفید باشد.