iOS의 textfield의 선택 옵션(context menu)의 언어가 영어로만 나올 때

아래 보여지듯이 메뉴가 타이타늄에서는 어떤 때는 나오고 어떤 때는 안나오는 것 같아 해보다가 알게된 내용 정리합니다.

(왼쪽은 @DongWoo_Gim 님네 회사의 "학원 어디가?"앱)

나오게 하는 방법

i18n을 쓰지 않더라도 해당하는 언어의 폴더에 strings.xml을 만들어야 합니다.

  • alloy의 경우 app/i18n/ko/strings.xml 참고로 xml 기본 틀은 아래와 같습니다.
<?xml version="1.0" encoding="UTF-8"?>
<resources>
</resources>

안나오는 경우

  • tishadow를 이용한 실행 : tishadow에서는 i18n을 따로 관리하기 때문에 네이티브 프로젝트에 반영되지 않습니다. (배포시에는 tishadow를 이용하는게 아니므로 정상작동)
1개의 좋아요

참고로 alloy 1.8.0 미만 버전에서는 프로젝트 루트에 바로 i18n/ 입니다.
alloy 1.8.0 이상 버전에는 app/i18n/ 으로 구조가 바뀌었지요.
(그래서 alloy 1.8.0 이상에서는 strings.xml도 프리컴파일 되면서 오류 가능성이 줄어서 좋더라구요.)

i18n과 메뉴의 표시언어가 연결되는 줄은 몰랐네요ㅎㅎ
한가지 언어로 만들더라도 i18n은 꼭 씁니다. 하드코딩된 텍스트 극혐이요~

tiapp.xml에

<ios>
    ....
    <plist>
        <dict>
            <key>CFBundleDevelopmentRegion</key>
            <array>
              <string>ko</string>
            </array>
            <key>CFBundleLocalizations</key>
            <array>
              <string>ko</string>
            </array>
....

이것하고도 상관이 있을수도 있을것 같네요…

1개의 좋아요