[Unity] ๋‹ค์ค‘ ์–ธ์–ด (Localization)

์—…๋ฐ์ดํŠธ:

์นดํ…Œ๊ณ ๋ฆฌ:

ํƒœ๊ทธ: ,


๋‹ค์ค‘ ์–ธ์–ด Localization



๋‹ค์ค‘ ์–ธ์–ด(Localization) ์‚ฌ์šฉ๋ฒ•

1. Package Manager -> Localization ํŒจํ‚ค์ง€ ์„ค์น˜
Image


2. Localization Setting ์ƒ์„ฑ
Project Settiongs View -> Localization - Create (ํด๋”์— ์ €์žฅ)


3.Available Locals ์ถ”๊ฐ€
Add Locale - ์ง€์›ํ•  Loclas(ํ•œ๊ตญ์–ด, ์˜์–ด) ์ถ”๊ฐ€. (์‚ฌ์šฉํ•  ์–ธ์–ด์˜ ํฐํŠธ ์ถ”๊ฐ€ ์„ค์น˜)
Image


4. ๊ธฐ๋ณธ ์–ธ์–ด ์„ค์ •
Add Locale - ์ง€์›ํ•  Loclas(ํ•œ๊ตญ์–ด, ์˜์–ด) ์ถ”๊ฐ€. (์‚ฌ์šฉํ•  ์–ธ์–ด์˜ ํฐํŠธ ์ถ”๊ฐ€ ์„ค์น˜)
Image

  • Specific Locale Selector : ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•  ์–ธ์–ด
  • Project Local Identifier : ํ•ด๋‹น ํ”„๋กœ์ ํŠธ์—์„œ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•  ์–ธ์–ด


5. ํ…Œ์ด๋ธ” ์ƒ์„ฑ
Windows - Asset Management - Localization Tables ์—ด๊ธฐ
New Table Collection (์‚ฌ์šฉํ•  ์–ธ์–ด ์„ ํƒ, ํ…Œ์ด๋ธ” ์ด๋ฆ„ ์ง€์ •)
Import, Export ๊ฐ€๋Šฅ - CSV๋กœ CSV ์ •๋ณด๋ฅผ ์‚ฌ์šฉ ๊ฐ€๋Šฅ.
Image





UI - Text

1. UI์— Localize String Event ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€
TextMeshPro - ๋ฉ”๋‰ด ๋ฒ„ํŠผ -> Localize (Localize ์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€)
Image


2. Table/Key ๊ฐ’์œผ๋กœ Text ์ถœ๋ ฅ
String Reference์—์„œ Key๋ฅผ ์„ ํƒํ•˜๋ฉด ํ‚ค๊ฐ’์— ๋งž๋Š” ์ถœ๋ ฅํ•  ๋‚ด์šฉ์ด ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.
Image


3. ์–ธ์–ด์— ๋งž๊ฒŒ ๊ธ€์ž ์กฐ์ •
Windows - Asset Management - Localization Scene Controls

  • Active Local ( ๋ณ€๊ฒฝํ•  ์–ธ์–ด ) ์„ ํƒ
  • String Table ( ๋ณ€๊ฒฝํ•  Key๊ฐ€ ์žˆ๋Š” ํ…Œ์ด๋ธ” ์„ ํƒ)
  • Track Changes ์ฒดํฌ

UI์˜ ํฐํŠธ ์‚ฌ์ด์ฆˆ ๋ณ€๊ฒฝํ•˜๋ฉด Game Object Localize ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค. -> ์–ธ์–ด์— ๋งž๊ฒŒ ๊ธ€์ž ์กฐ์ • ๊ฐ€๋Šฅ
์™„๋ฃŒ ์‹œ Localization Scene Controls ์˜ ์„ค์ • ์ดˆ๊ธฐํ™”
Image
Image




์ฝ”๋“œ๋กœ UI๋ณ€๊ฒฝ

1. index๋ฅผ ์ด์šฉํ•ด ์–ธ์–ด ๋ณ€๊ฒฝ
LocalizationSettings.SelectedLocale = LocalizationSettings.AvailableLocales.Locales[index];
ProjectSetting - Localization์— Index๋ฅผ ์ด์šฉํ•ด ์–ธ์–ด ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ
Image


2. Table, Key์˜ ์ด๋ฆ„์œผ๋กœ Text ๋ณ€๊ฒฝ
GetComponent<LocalizeStringEvent>().StringReference.SetReference(tableName, itemValue.itemName);
์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐ€์ ธ์™€ ๋ณ€๊ฒฝ
Image


์ฝ”๋“œ ์˜ˆ์‹œ
// ์–ธ์–ด ํ† ๊ธ€
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");
}


Image





App ์ด๋ฆ„ ๋ณ€๊ฒฝ

ProjectSetting - Localization - Metadata - (+) - App info - ํ…Œ์ด๋ธ” ์ƒ์„ฑ -> New Entry๋กœ ์ด๋ฆ„ ์ถ”๊ฐ€.
Image





UI- Image Sprite ๋ณ€๊ฒฝ

1. Asset Table ์ƒ์„ฑ
2. New Entry(์Šคํ”„๋ผ์ดํŠธ ์ถ”๊ฐ€)
3. ์‚ฌ์šฉํ•  UI ์— Localize Sprite Event์ปดํฌ๋„ŒํŠธ ์ถ”๊ฐ€
4. Localized Asset Reference ์„ค์ •
Image








๋ฉ”๋ชจ

๋‹ค์ค‘ ์–ธ์–ด(Localization)


๐Ÿ“”

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ