Skip to content

Commit df747dd

Browse files
committed
feat: Add locale utils
1 parent 685368e commit df747dd

File tree

2 files changed

+100
-0
lines changed

2 files changed

+100
-0
lines changed
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
/**
2+
* $File: JCS_Locale.cs $
3+
* $Date: 2025-04-15 01:14:38 $
4+
* $Revision: $
5+
* $Creator: Jen-Chieh Shen $
6+
* $Notice: See LICENSE.txt for modification and distribution information
7+
* Copyright © 2025 by Shen, Jen-Chieh $
8+
*/
9+
using System.Collections.Generic;
10+
using UnityEngine;
11+
12+
namespace JCSUnity
13+
{
14+
/// <summary>
15+
/// Localization utilities.
16+
/// </summary>
17+
public static class JCS_Locale
18+
{
19+
/* Variables */
20+
21+
/// <summary>
22+
/// Dictionary convert system language to its name.
23+
/// </summary>
24+
public static Dictionary<SystemLanguage, string> LANGEUAGE_IT_NAME = new()
25+
{
26+
{ SystemLanguage.Unknown, "-"},
27+
28+
{ SystemLanguage.Afrikaans, "Afrikaans"},
29+
{ SystemLanguage.Arabic, "عربي"},
30+
{ SystemLanguage.Basque, "euskara"},
31+
{ SystemLanguage.Belarusian, "беларускі"},
32+
{ SystemLanguage.Bulgarian, "белоруски"},
33+
{ SystemLanguage.Chinese, "中文"},
34+
{ SystemLanguage.Czech, "čeština"},
35+
{ SystemLanguage.Danish, "dansk"},
36+
{ SystemLanguage.Dutch, "Nederlands"},
37+
{ SystemLanguage.English, "English"},
38+
{ SystemLanguage.Estonian, "eesti keel"},
39+
{ SystemLanguage.Faroese, "Føroysk"},
40+
{ SystemLanguage.Finnish, "suomalainen"},
41+
{ SystemLanguage.French, "Français"},
42+
{ SystemLanguage.German, "Deutsch"},
43+
{ SystemLanguage.Greek, "ελληνικά"},
44+
{ SystemLanguage.Hebrew, "עִברִית"},
45+
{ SystemLanguage.Hungarian, "magyar"},
46+
{ SystemLanguage.Icelandic, "íslenskur"},
47+
{ SystemLanguage.Indonesian, "indónesíska"},
48+
{ SystemLanguage.Italian, "Italiano"},
49+
{ SystemLanguage.Japanese, "日本語"},
50+
{ SystemLanguage.Korean, "한국인"},
51+
{ SystemLanguage.Latvian, "latviski"},
52+
{ SystemLanguage.Lithuanian, "lietuvių"},
53+
{ SystemLanguage.Norwegian, "norsk"},
54+
{ SystemLanguage.Polish, "Polski"},
55+
{ SystemLanguage.Portuguese, "Português"},
56+
{ SystemLanguage.Romanian, "română"},
57+
{ SystemLanguage.Russian, "Русский"},
58+
{ SystemLanguage.SerboCroatian, "srpskohrvatski"},
59+
{ SystemLanguage.Slovak, "slovenský"},
60+
{ SystemLanguage.Slovenian, "slovenski"},
61+
{ SystemLanguage.Spanish, "Español"},
62+
{ SystemLanguage.Swedish, "svenska"},
63+
{ SystemLanguage.Thai, "แบบไทย"},
64+
{ SystemLanguage.Turkish, "Türkçe"},
65+
{ SystemLanguage.Ukrainian, "українська"},
66+
{ SystemLanguage.Vietnamese, "Tiếng Việt"},
67+
{ SystemLanguage.ChineseSimplified, "简体中文"},
68+
{ SystemLanguage.ChineseTraditional, "繁體中文"},
69+
{ SystemLanguage.Hindi, "हिंदी"},
70+
};
71+
72+
/* Setter & Getter */
73+
74+
/* Functions */
75+
76+
/// <summary>
77+
/// Convert system language to string identifier.
78+
/// </summary>
79+
public static string SystemLangToString(SystemLanguage systemLanguage)
80+
{
81+
return LANGEUAGE_IT_NAME[systemLanguage];
82+
}
83+
84+
/// <summary>
85+
/// Convert string identifier to system language.
86+
/// </summary>
87+
public static SystemLanguage StringToSystemLang(string text)
88+
{
89+
foreach (KeyValuePair<SystemLanguage, string> entry in LANGEUAGE_IT_NAME)
90+
{
91+
if (entry.Value == text)
92+
return entry.Key;
93+
}
94+
95+
return SystemLanguage.Unknown;
96+
}
97+
}
98+
}

Assets/JCSUnity/Scripts/Util/JCS_Locale.cs.meta

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)