[Unity] ๋ค์ค ์ธ์ด (Localization)
์นดํ ๊ณ ๋ฆฌ: Til
๋ค์ค ์ธ์ด
Localization
๋ค์ค ์ธ์ด(Localization) ์ฌ์ฉ๋ฒ
1. Package Manager -> Localization ํจํค์ง ์ค์น
2. Localization Setting ์์ฑ
Project Settiongs View -> Localization - Create (ํด๋์ ์ ์ฅ)
3.Available Locals ์ถ๊ฐ
Add Locale - ์ง์ํ Loclas(ํ๊ตญ์ด, ์์ด) ์ถ๊ฐ. (์ฌ์ฉํ ์ธ์ด์ ํฐํธ ์ถ๊ฐ ์ค์น)
4. ๊ธฐ๋ณธ ์ธ์ด ์ค์
Add Locale - ์ง์ํ Loclas(ํ๊ตญ์ด, ์์ด) ์ถ๊ฐ. (์ฌ์ฉํ ์ธ์ด์ ํฐํธ ์ถ๊ฐ ์ค์น)
- Specific Locale Selector : ํ๋ก์ ํธ์์ ์ฌ์ฉํ ์ธ์ด
- Project Local Identifier : ํด๋น ํ๋ก์ ํธ์์ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ ์ธ์ด
5. ํ
์ด๋ธ ์์ฑ
Windows - Asset Management - Localization Tables ์ด๊ธฐ
New Table Collection (์ฌ์ฉํ ์ธ์ด ์ ํ, ํ
์ด๋ธ ์ด๋ฆ ์ง์ )
Import, Export ๊ฐ๋ฅ - CSV๋ก CSV ์ ๋ณด๋ฅผ ์ฌ์ฉ ๊ฐ๋ฅ.
UI - Text
1. UI์ Localize String Event ์ปดํฌ๋ํธ ์ถ๊ฐ
TextMeshPro - ๋ฉ๋ด ๋ฒํผ -> Localize (Localize ์ปดํฌ๋ํธ ์ถ๊ฐ)
2. Table/Key ๊ฐ์ผ๋ก Text ์ถ๋ ฅ
String Reference์์ Key๋ฅผ ์ ํํ๋ฉด ํค๊ฐ์ ๋ง๋ ์ถ๋ ฅํ ๋ด์ฉ์ด ์ถ๋ ฅ๋ฉ๋๋ค.
3. ์ธ์ด์ ๋ง๊ฒ ๊ธ์ ์กฐ์
Windows - Asset Management - Localization Scene Controls
- Active Local ( ๋ณ๊ฒฝํ ์ธ์ด ) ์ ํ
- String Table ( ๋ณ๊ฒฝํ Key๊ฐ ์๋ ํ ์ด๋ธ ์ ํ)
- Track Changes ์ฒดํฌ
UI์ ํฐํธ ์ฌ์ด์ฆ ๋ณ๊ฒฝํ๋ฉด Game Object Localize ์ปดํฌ๋ํธ๊ฐ ์์ฑ๋๋ค. -> ์ธ์ด์ ๋ง๊ฒ ๊ธ์ ์กฐ์ ๊ฐ๋ฅ
์๋ฃ ์ Localization Scene Controls ์ ์ค์ ์ด๊ธฐํ
์ฝ๋๋ก UI๋ณ๊ฒฝ
1. index๋ฅผ ์ด์ฉํด ์ธ์ด ๋ณ๊ฒฝ
LocalizationSettings.SelectedLocale = LocalizationSettings.AvailableLocales.Locales[index];
ProjectSetting - Localization์ Index๋ฅผ ์ด์ฉํด ์ธ์ด ๋ณ๊ฒฝ ๊ฐ๋ฅ
2. Table, Key์ ์ด๋ฆ์ผ๋ก Text ๋ณ๊ฒฝ
GetComponent<LocalizeStringEvent>
().StringReference.SetReference(tableName, itemValue.itemName);
์ปดํฌ๋ํธ๋ฅผ ๊ฐ์ ธ์ ๋ณ๊ฒฝ
์ฝ๋ ์์
// ์ธ์ด ํ ๊ธ
void OnClickLocalChangeButton()
{
var locales = LocalizationSettings.AvailableLocales.Locales;
LocalizationSettings.SelectedLocale =
LocalizationSettings.SelectedLocale == locales[0] ? locales[1] : locales[0];
}
public void LocalizeTextString(string tableName, string keyName)
{
GetText((int)Texts.LoadingText).GetComponent<LocalizeStringEvent>().StringReference
.SetReference(tableName, keyName);
}
// TestTable - Test key ๋ก ์ถ๋ ฅ
void OnClickChangeTestButton()
{
LocalizeTextString("TestTable", "Test_Key");
}
// TestTable - Loading key ๋ก ์ถ๋ ฅ
void OnClickChangeLoadingButton()
{
LocalizeTextString("TestTable", "Loading_Key");
}
App ์ด๋ฆ ๋ณ๊ฒฝ
ProjectSetting - Localization - Metadata - (+) - App info - ํ
์ด๋ธ ์์ฑ -> New Entry๋ก ์ด๋ฆ ์ถ๊ฐ.
UI- Image Sprite ๋ณ๊ฒฝ
1. Asset Table ์์ฑ
2. New Entry(์คํ๋ผ์ดํธ ์ถ๊ฐ)
3. ์ฌ์ฉํ UI ์ Localize Sprite Event์ปดํฌ๋ํธ ์ถ๊ฐ
4. Localized Asset Reference ์ค์
๋ฉ๋ชจ
๋ค์ค ์ธ์ด(Localization)
๋๊ธ๋จ๊ธฐ๊ธฐ