마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

다국어 지원 기능 질문 ... [closed]

0 추천
public static void SetLanguage(Resources res)
    {
        Locale language = res.getConfiguration().locale;
        switch (SystemManager.COUNTRY)
        {
            case USA:
            {
                language = Locale.US;
                break;
            }

            case France:
            {
                language = Locale.FRANCE;
                break;
            }

            case Spain:
            {
                language = new Locale("es", "ES");
                break;
            }

            case Russia:
            {
                language = new Locale("ru", "RU");
                break;
            }

            case China:
            {
                language = Locale.CHINA;
                break;
            }
        }
        Locale.setDefault(language);
        Configuration config = new Configuration();
        res.updateConfiguration(config, res.getDisplayMetrics());
    }

Manager 클래스에 이렇게 선언 해 놓고, 

 

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        setting = getSharedPreferences("setting", 0);
        editor = setting.edit();

        SystemManager.COUNTRY = SystemManager.GetCountry(setting.getString("language", ""));
        SystemManager.SetLanguage(getResources());

        Log.d("LOGD", getResources().getConfiguration().locale.getDisplayLanguage());

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
    }

이렇게 호출 하였습니다. 로그에 찍히는건 해당 언어로 변경이 되었는데, res 폴더에 각각 만들어 놓은 strings.xml 의 내용을 읽어 오질 못하네요...

res 폴더의 구조는

res

  • values
  • values-es
  • values-fr
  • values-ru
  • values-zh 

입니다. 해당 폴더들 아래는 strings.xml 이 각각 있구요. values(기본)의 strings.xml 만 호출이 됩니다.

디바이스의 기본 언어 (설정에 있는)를 바꾸면 작동 되구요

가르침을 부탁드리겠씁니다...

질문을 종료한 이유: 해결
creativepark (490 포인트) 님이 2015년 7월 29일 질문
creativepark님이 2015년 7월 29일 closed
...