언어 설정

Menu
Sites
Language
다국어 지원 관련

안녕하세요...

 

native api 에서 다국어 지원 방법을 알고 싶습니다.

영어, 한국어및 중국어 지원을 하고 싶은데요...

web app 의 경우는 locales/ko/language.js 로 지원이 된다는건 알고 있는데

native app 에서는 어떤 폴더에 어떤 화일이름으로 적용해야 하나요?

도움 부탁드립니다.

 

답변 바로가기

Responses

5 댓글
daniel kim

안녕하세요

Native에서는 po file형태로 저장됩니다. res/po/ko_KR.po와 같은 형태로 저장 후 PO file editor로 open하면 MsgID별로 text저장이 가능합니다.

IDE help page에서 Creating Multilingual Applications 와 Multi-language Support chapter를 참조하시면 될 것 같습니다.

 

 

Kim

 PO file editor 로 MsgId 와 Msg 를 아래와같이 생성후 코드에 적용해 보았으나 ,

"SAVE" 로 나오지 않고 ~MsgId 그대로 나옵니다.

뭐가 잘못된 걸까요 ?

아래 표기된 1 , 2 번 두가지 방법으로 모두 해봐도 현상은 동일합니다.

다시 한번 도움 부탁드립니다.

감사합니다.

 

MsgId : IDS_SAVE

Msg : Save

 

Evas_Object *save_btn = elm_button_add(grid);
 elm_object_style_set(save_btn, "contacts");
 evas_object_size_hint_min_set(save_btn, ELM_SCALE_SIZE(BUTTON_SCALE_UNIT_WIDTH), ELM_SCALE_SIZE(58));

elm_object_text_set(save_btn, i18n_get_text("IDS_SAVE"));    ----------------------> 1
 elm_object_translatable_text_set(save_btn, "IDS_SAVE");     -----------------------> 2
 evas_object_size_hint_align_set(save_btn, EVAS_HINT_FILL, EVAS_HINT_FILL);
 evas_object_smart_callback_add(save_btn, "clicked", _ok_button_clicked_cb, view_data);
 evas_object_show(save_btn);

 

 

 

 

Mark as answer
daniel kim

해당 부분만 가지고 어디가 잘못되었는지 확인이 쉽지 않네요..  IDE에 multi language에 관한 sample이 있으니 해당 소스를 참조해보는것은 어떨까 합니다.

 Sample --> Native UI APP -->  LanguageChange UI sample application 입니다.

 

 

Kim

도움 주셔서 감사합니다.

샘플을 알려주셔서 제 PO 화일의 문제를 알아낸것 같습니다.

샘플에서 제공하는 PO 화일을 가져다가 제 코드에 넣어서 해보니 잘 동작하네요.

 

문제는, PO File editor를 이용하여

동일한 문자열을 생성하게 되면 아래와 같은(하기 볼드체 부분) header 부분이 추가되어 코드가 po 값을 제대로 읽어오지 못하게 됩니다.

가이드 문서에 있는것처럼 ,

+/-Msg, +/-Lang 를 이용하고 저장 버튼을 누른게 제 동작의 전부입니다.  

따로 설정하는 부분이 있는걸까요?

아니면 툴의 문제일까요?

번거롭게 해드려서 죄송하지만,  다시 한번 도움 부탁드립니다.

감사합니다.

 

Sample --> Native UI APP -->  LanguageChange UI sample application

 

샘플 en_US.po

msgid "IDS_DONE"
msgstr "Done"

msgid "IDS_CURRENT"
msgstr "Current Status"

msgid "IDS_SELECT_ITEM"
msgstr "Select item"

 

PO File editor로 해당 문자열 생성시 생성된 po 화일

msgid ""
msgstr ""

"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"

msgid "IDS_DONE"
msgstr "Done"

msgid "IDS_CURRENT"
msgstr "Current Status"

msgid "IDS_SELECT_ITEM"
msgstr "Select item"

 

 

daniel kim

안녕하세요...

MsgID가 화면에 그대로 보이는 것은 현재 device에서 선택된 언어에 해당하는 po가 없기 때문에 발생하는 것인데.. en_US.po 즉 English(united states)는 z1에는 선택이 안되므로 그 대신에 en.po를 사용해서 다시 한번 해보시면 어떨까 합니다..