본문 바로가기
개발/Unity

Unity) Localization String Event Hierarchy (Custom Hierarchy)

by 테샤르 2023. 7. 11.

Localization String Event Hierarchy

 

Localization String Event 에 있는 Key 와 해당 Text를 노출하는 것을 테스트 했다.

다국어에 대한 처리를 하는 과정에서 매번 해당 값이 셋팅 됬는지 확인하기 굉장히 어렵기 때문이다.

그래서 바로 Key와 Text를 확인할수 있도록 

EditorApplication.hierarchyWindowItemOnGUI 를 통해서 노출되도록 처리했다.

 

 

반응형

 

영어와 한글로만 테스트했다.

<Localization Setting>

<Localization Tables>

 

<Key 1> 

 <Key 2>

 

Localization Scene Controls Hierarchy 

<Code>

//key
                var localizeStringEvent = (obj as GameObject).GetComponent<LocalizeStringEvent>();
                if (localizeStringEvent == null)
                    return;

                string keyString = string.Empty;
                string message = string.Empty;

                switch (localizationType)
                {
                    case ShowLocalizationType.Key:
                        {
                            //임시 처리
                            var name = ((LocalizedReference)(localizeStringEvent.StringReference)).ToString();
                            var token = name.Split('-');
                            keyString = token[token.Length - 1];

                            if (string.IsNullOrEmpty(keyString))
                                message = "[Localize String Key 값이 없습니다.]";
                            else
                            {
                                //괄호 하나 끊어줘야함
                                message = keyString.Substring(0, keyString.Length - 1);
                            }
                        }
                        break;
                    case ShowLocalizationType.String:
                        {
                            keyString = localizeStringEvent.StringReference.GetLocalizedString();

                            if (string.IsNullOrEmpty(keyString))
                                message = "[Localize String Value 값이 없습니다.]";
                            else
                                message = keyString;
                        }
                        break;
                }


                if (string.IsNullOrEmpty(message))
                    return;

                GUI.Label(selectionRect, new GUIContent($"{message}"), GUIStyleLocalization);

 

굉장히 많은 Hierarchy 중에서도 바로 한눈에 보여서 편리하다.

 

Unity Localization - LocalizeStringEvent : [링크]

 

Class LocalizeStringEvent | Localization | 1.3.2

Class LocalizeStringEvent Component that can be used to Localize a string. Provides an update event UpdateString(String) that can be used to automatically update the string when the SelectedLocale or StringReference changes. Allows for configuring optional

docs.unity.cn

 

 

★☆☆☆☆

 

반응형

댓글