블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2817)
Unity3D (870)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (236)
협업 (61)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (16)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (19)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

[추가] Android / iOS 방식이 달라서 플랫폼에 따라 Two Letter ISO 받는 방식을 다르게 적용

 

    /// <summary>
    /// Two Letter ISO Language
    /// [참조] https://lonewolfonline.net/list-net-culture-country-codes/
    /// [참조] https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
    /// </summary>
    /// <returns></returns>
    public static string GetTwoLetterISOLanguage()
    {
        string strCurrentCultureName = "en";
#if UNITY_EDITOR
        strCurrentCultureName = "en";
#elif UNITY_ANDROID
        strCurrentCultureName = GetTwoLetterISOLanguage_Android();
#elif UNITY_IOS || UNITY_IPHONE
        strCurrentCultureName = GetTwoLetterISOLanguage_iOS();
#endif
        return strCurrentCultureName;
    }

    public static string GetTwoLetterISOLanguage_iOS()
    {
        string strTwoLetterISOLanguageName = System.Threading.Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName;
        Debug.LogFormat("[GetCurrentCultureName_iOS] {0}", strTwoLetterISOLanguageName);
        return strTwoLetterISOLanguageName;
    }

    // returns "en" / "de" / "hi" / "th" / "ar" / ...
    public static string GetTwoLetterISOLanguage_Android()
    {
#if !UNITY_EDITOR && UNITY_ANDROID
        try
        {
            var locale = new AndroidJavaClass("java.util.Locale");
            var localeInst = locale.CallStatic<AndroidJavaObject>("getDefault");
            var name = localeInst.Call<string>("getLanguage");
            Debug.LogFormat("[getLanguage] {0}", name);
            return name;
        }
        catch (System.Exception e)
        {
            return "Error";
        }
#else
        return "Not supported";
#endif
    }

    // returns "eng" / "deu" / "hin" / ...
    public static string GetThreeLetterISOLanguage_Android()
    {
#if !UNITY_EDITOR && UNITY_ANDROID
        try
        {
            var locale = new AndroidJavaClass("java.util.Locale");
            var localeInst = locale.CallStatic<AndroidJavaObject>("getDefault");
            var name = localeInst.Call<string>("getISO3Language");
            Debug.LogFormat("[getISO3Language] {0}", name);
            return name;
        }
        catch (System.Exception e)
        {
            return "Error";
        }
#else
        return "Not supported";
#endif
    }

[출처]

answers.unity.com/questions/729801/using-applicationsystemlanguage-returns-unknown.html?_ga=2.105896064.227436567.1600081424-730033693.1580204381

 

Using Application.systemLanguage returns Unknown - Unity Answers

 

answers.unity.com

 

 

[참조]

You should also be able to use .NET to get the current culture instead:

using System;
using System.Globalization;
using System.Threading;

CultureInfo myCulture = Thread.CurrentThread.CurrentCulture;


// You can then use all these member variables
myCulture.DisplayName
myCulture.EnglishName
myCulture.Name (e.g. es-ES / en-GB)
myCulture.Parent (e.g. es / en)
myCulture.ThreeLetterISOLanguageName (e.g. spa/eng/hin)
myCulture.TwoLetterISOLanguageName (e.g. es/en/hi)

 

Here's a selection of the Indian 3 and 2 letter ISO codes (see attached jpg)

 

[출처] forum.unity.com/threads/automatically-set-hindi-language.624973/

 

Automatically set Hindi language

As you all know it's possible to use SystemLanguage to detect the default language of the device running the game. When my game opens, i use it to...

forum.unity.com

 

반응형
Posted by blueasa
, |

[추가] KR 폰트에 특수문자(JP폰트에만 있던 특수문자를 KR폰트에도) 추가 병합 (2025-02-20)

[제거] LanguageTitle(언어별 이름'한국어' 등 포함)명칭 제거(필요언어를 모두 포함해서 표기에 문제가 없음) (2025-02-20)

------------------------------------------------------------------------------------------------------------------------------

[추가] KR 폰트에 Hindi 폰트 추가 병합 (2025-02-11)

[추가] JP 폰트에 Arabic/Hindi/Thai 폰트 추가 병합 (2025-02-11)

[추가] 일본어 빠진 글자들 추가(예:璧几眩嗅綺淹憑嘘軋褪贅揉罠鬱化) (2025-02-11)

------------------------------------------------------------------------------------------------------------------------------

[추가] 일본어 빠진 글자들 추가(예:) (2024-06-24)

[추가] 글로벌/일본어 폰트에 특수문자 일부 추가 (2024-06-24)

[제거] 일본어 폰트에서 Thai 언어 제거 (2024-06-24)

[수정] 언어 Subset 업데이트(추가) (2024-06-24)

------------------------------------------------------------------------------------------------------------------------------

[추가] LanguageTitle(언어별 이름'한국어' 등 포함) (2024-05-23)

------------------------------------------------------------------------------------------------------------------------------

[LanguageTitle(언어별 이름) 내용]

한국어 English 日本語 中文(繁體) 中文(简体) Tiếng Việt Español Italiano
Bahasa Indonesia ไทย Português हिन्दी русский Deutsch
العربية

------------------------------------------------------------------------------------------------------------------------------

[추가] NotoSansCJK-hinted-Lite 폰트(Black/Bold/Light/Medium/Regular/Thin)추가 (2024-05-21)

[추가] NotoSansCJK-Medium-Lite 폰트 추가 (2023-12-15)

[수정] 아랍어(Arabic) 폰트 병합 (2020-10-21)

[수정] 태국(Thai) 폰트 병합 (2020-09-14) (참조 : blueasa.tistory.com/2071 )

[수정] '렜' 한글 추가 (2020-08-31)

------------------------------------------------------------------------------------------------------------------------------

 


[NotoSansCJKkr ('일본어 외' 폰트 경량화,Arabic/Hindi/Thai 포함)]

(Black/Bold/Light/Medium/Regular/Thin)

NotoSansCJKkrArabicHindiThai-hinted(Subset).zip
8.81MB

 

[NotoSansCJKjp ('일본어' 폰트 경량화(번체와 ASCII 코드 겹쳐서 분리), English/Arabic/Hindi/Thai 포함)]

(Black/Bold/Light/Medium/Regular/Thin)

NotoSansCJKjpArabicHindiThai-hinted(Subset).zip
4.62MB

 

------------------------------------------------------------------------------------------------------------------------------

 

아래는 폰트 병합하기 전 파일 올려 둠

(CJKkr/ CJKjp는 Subset 파일 올려 둠. 원본 필요하면 Google NotoSans Font 홈페이지로..)

 

[NotoSansCJKkr-hinted(Subset)]

NotoSansCJKkr-hinted(Subset).zip
7.31MB

 

[NotoSansCJKjp-hinted(Subset)]

NotoSansCJKjp-hinted(Subset).zip
3.23MB

 

 

[NotoSansArabic-hinted]

NotoSansArabic-hinted.zip
5.79MB

 

[NotoSansHindi]

NotoSansHindi.zip
1.72MB

 

[NotoSansThai-hinted]

NotoSansThai-hinted.zip
1.32MB

 

 

[폰트 경량화 방법 참조]

https://blueasa.tistory.com/2070

 

[링크] 유니티로 다국어 지원해보자 (Font 경량화)

[링크] https://brunch.co.kr/@brunchgulb/10 [경량화 프로그램 링크] http://opentype.jp/subsetfontmk.htm [경량화 방법 정리] https://spoqa.github.io/2015/10/14/making-spoqa-han-sans.html [각 언어별 필수..

blueasa.tistory.com

 

[폰트 병합 방법 참조]

https://blueasa.tistory.com/2071

 

[펌] 영문 폰트와 한글 폰트 합치기...(Font Creator)

한글을 사용하는 프로그래머를 위한 폰트 라는 글을 포스팅 한적 있습니다.여기서 Bitstream Vera Sans Mono 폰트와 맑은 고딕 폰트를 합친 폰트를 제작 해서 배포 했습니다.하지만 저작권 문제를 배

blueasa.tistory.com

 

반응형
Posted by blueasa
, |