تعویض متن یک شیء متنی برای مطابقت با محیطی که متن به صورت چند زبانه پشتیبانی می شود
محیط تایید
- ویندوز
-
- ویندوز 11
- ویرایشگر یونیتی
-
- دانلود: 2021.3.12f1
- سیستم ورودی (Unity Technologies)
-
- 1.4.3
- تکنولوژی وحدت (Unity Technologies)
-
- 1.3.2
پیشنیازهای این نکته
تنظیمات زیر از قبل به عنوان یک فرض برای توصیف این نکته ساخته شده است.
درباره محلی سازی
در بسیاری از موارد، بازی ها به زبان محیطی که در ان توسعه یافته اند یا به زبان انگلیسی ایجاد می شوند. با این حال، برای اینکه افراد بیشتری بازی کنند، لازم است بازی ها را با توجه به فرهنگ و زبان کشور ایجاد کنید. این معمولا به عنوان "محلی سازی" نامیده می شود.
در این نکته، من می خواهم "پشتیبانی چند زبانه" را انجام دهم، که یکی از محلی سازی ها است. راه های زیادی برای انجام پشتیبانی چند زبانه در Unity وجود دارد، اما در این مورد ما می خواهیم از بسته توسعه رسمی Unity، محلی سازی، برای پشتیبانی از چندین زبان استفاده کنیم.
نصب بسته محلی سازی
برای حمایت از محلی سازی، ابتدا باید بسته "محلی سازی" را نصب کنید.
از منو، Window - > Package Manager را انتخاب کنید.
در گوشه بالا سمت چپ مدیر بسته ای که ظاهر می شود، Unity Registry را انتخاب کنید.
"محلی سازی" در منوی سمت چپ نمایش داده می شود، بنابراین ان را انتخاب کنید و روی دکمه نصب کلیک کنید. مدتی طول خواهد کشید تا نصب شود. پس از نصب، گفتگو را ببندید.
ایجاد یک Localization
پس از نصب بسته، متن را برای هر زبان ایجاد کنید. Edit - > تنظیمات پروژه را از منو انتخاب کنید.
محلی سازی را از منوی سمت چپ انتخاب کنید و روی دکمه ایجاد کلیک کنید.
فایل ایجاد خواهد شد، بنابراین هر پوشه ای را مشخص کنید. چندین فایل تولید می شود، بنابراین بهتر است انها را در یک پوشه اختصاصی ایجاد کنید. در اینجا، ما یک پوشه "محلی سازی" را در پوشه "صحنه ها" ایجاد می کنیم و ان را در ان ایجاد می کنیم.
هنگامی که ایجاد می شود، صفحه نمایش به این شکل خواهد بود.
فایل نیز در پوشه مشخص شده ایجاد شده است. در این مرحله هنوز یکی وجود دارد.
ایجاد یک Locale
ما متن مربوط به زبان را ایجاد خواهیم کرد. تنظیمات پروژه را باز کنید و روی دکمه Locale Generator کلیک کنید.
محل مربوطه را انتخاب کنید. فقط انچه را که نیاز دارید انتخاب کنید. هر چه بیشتر بررسی کنید، بازی گسترده تر می تواند مستقر شود، اما مقدار کار متناسب افزایش می یابد.
این بار، "ژاپنی (ja)"، "انگلیسی (en)" و "اسپانیایی (es)" انتخاب می شوند.
پس از تنظیم، روی دکمه "Generate Locales" در پایین سمت راست کلیک کنید تا ان را ایجاد کنید.
پوشه ای را که در ان پرونده ایجاد می شود مشخص می کند. این می تواند یک مکان متفاوت باشد، اما اگر سازماندهی شود، مدیریت ان اسان تر است، بنابراین پوشه "محلی سازی" را که قبلا ایجاد شده است مشخص کنید.
Locales در دسترس به تعداد محلی که انتخاب می کنید اضافه می شود.
فایل ها نیز در پوشه مشخص شده برای بسیاری از مناطق به عنوان شما را انتخاب کنید ایجاد شده است.
بعد، پیکربندی انتخاب کنندگان محلی. این یک تنظیم برای اطلاعاتی است که تعیین می کند locale زمانی که بازی راه اندازی می شود. اگر شرایط تصمیم گیری خاصی وجود ندارد، می توانید ان را همانطور که هست بگذارید. من می خواهم محلی پیش فرض ژاپنی باشد زمانی که محلی با تلاش تعیین نمی شود. از سومین انتخاب کننده محلی خاص، روی دکمه دایره در سمت راست کلیک کنید.
انتخاب ژاپنی (ja).
به طور مشابه، شناسه محلی پروژه باید "ژاپنی (ja)" باشد.
ایجاد متون
ایجاد متن برای هر محلی. راه های مختلفی برای ایجاد ان وجود دارد، اما در اینجا ما ان را با تنظیم متن از ابتدا با GameObject ایجاد خواهیم کرد.
از منو، Window > Asset Management - > Localization Tables را انتخاب کنید.
روی New Table Collection کلیک کنید.
اطمینان حاصل کنید که تمام محلی که ایجاد کرده اید بررسی شده است.
از انجا که این بار ما در حال محلی سازی متن هستیم، "String Table Collection" را برای "Type" انتخاب کنید.
نام جدول را مشخص کنید زیرا متن برای هر محلی به عنوان یک لیست جدول نگهداری می شود. TextTable
در این مثال استفاده شده است.
پس از ورود، روی دکمه "ایجاد" کلیک کنید.
مقصد را انتخاب کنید. از انجا که چندین فایل برای هر جدول تولید می شود، بهتر است یک پوشه اختصاصی ایجاد شود. در اینجا، ما یک پوشه "TextTable" را در پوشه "محلی سازی" ایجاد می کنیم و ان را مشخص می کنیم.
پس از ایجاد، جدول ظاهر خواهد شد. این 0 خط است زیرا من هنوز چیزی ایجاد نکرده ام.
فایل ها نیز برای پوشه ها به عنوان بسیاری از locales ایجاد شده است. اساسا، من مستقیما به این دست نمیزنم.
بیایید سعی کنیم یکی را ایجاد کنیم. یک دکمه "Add New Entry" در جدول وجود دارد، بنابراین روی ان کلیک کنید.
این یک خط اضافه می کند و یک فیلد ورودی برای هر محلی نمایش می دهد.
سعی کنید کلمه "سلام" را به هر زبان ترجمه کنید و به ترتیب "Hello"، "Hello" و "Hola" را تایپ کنید.
کلید این است Hello
. به هر حال، اگر شما ان را وارد کنید، ان را به طور خودکار ذخیره خواهد شد.
یک خط دیگر اضافه کنید تا بدانید که می توانید بیش از یک خط را مدیریت کنید.
بر اساس کلمات "متشکرم"، کلید ThankYou
این است که هر کلمه "متشکرم"، "متشکرم" و "gracias" را تایپ کنید.
لطفا پس از ورود ، محاوره را ببندید. میتونی یه جایی لنگرش بدی
تنظیمات محلیسازی برای اشیای متنی
در این مورد، اجازه دهید متن نمایش را به شیء متن UI با توجه به تنظیم محلی در بازی تغییر دهیم.
ابتدا شیء متن را خودسرانه قرار دهید. این بار از ان استفاده نمی کنم، اما TextMeshPro
می توانم ان را اداره کنم.
پس از انتخاب شیء قرار داده شده، محلی سازی را از منوی سه نقطه ای جزء متن انتخاب کنید.
این یک جزء رویداد محلی سازی رشته جدید اضافه می کند.
از انجا که مرجع رشته انتخاب نشده است، روی None کلیک کنید.
هنگامی که گفتگو نمایش داده می شود، کلید متن را وارد کنید تا در قسمت ورودی بالا تنظیم شود.
Hello
در این مورد، تایپ کنید و از Hello
لیست زیر دوبار کلیک کنید.
شما می توانید String Reference را گسترش دهید تا ببینید که مقادیر مختلف تنظیم شده اند. این همه چیزی است که در ان وجود دارد.
اجرا و تایید
هنگامی که کارتان تمام شد، سعی کنید بازی را اجرا کنید. متن باید هنگام اجرای بازی تغییر کند. در شکل زیر، به زبان ژاپنی نمایش داده می شود زیرا در یک محیط ژاپنی اجرا می شود.
در گوشه سمت راست بالای صفحه نمایش بازی در ویرایشگر، می توانید زبان بازی را تغییر دهید. سعی کنید اسپانیایی را برای مدتی انتخاب کنید.
سپس می توانید تایید کنید که محتوای متن به طور خودکار تغییر می کند.
همانطور که می بینید، بسته محلی سازی رسمی Unity اعمال و تغییر به UI را اسان می کند و می بیند که چگونه کار می کند.
سعی کنید متن دیگری را تنظیم کنید و ببینید ایا متن تغییر می کند.
سعی کنید در محیط زبان دیگری اجرا کنید
ساخت و خروجی برنامه برای دیدن اگر ان را در زبان مربوطه به نظر می رسد زمانی که در یک محیط زبان دیگر اجرا می شود.
نمودار زیر نتایج نصب انگلیسی را برای سیستم عامل ژاپنی ویندوز 11 و اجرای ان در محیطی با زبان انگلیسی به عنوان زبان پیش فرض نشان می دهد. من فکر می کنم شما می توانید اطمینان حاصل کنید که زبان با توجه به محیط زیست تغییر می کند.