하나 또는 두 번의 클릭만으로 "공식적인"언어 목록 (즉, 빠른 언어에 표시되는 언어)에서 선 택된 2 개, 3 개 또는 그 이상의 언어 사이에서 시스템 언어를 전환 할 수있는 작은 응용 프로그램을 만들고 싶습니다. 설정> 설정> 언어 & 입력> 언어.Android에 설치된 언어를 나열/선택하는 방법은 무엇입니까?
이 목록은 프로그래밍 방식으로 어떻게 구할 수 있습니까? Locale.getAvailableLocales()에서 사용할 수있는 로케일 목록입니까? 로케일의 언어로 가야합니까? 고맙습니다!
편집 - 이것은 내가 지금까지 한 일이다
private List<Model> getModel() {
Locale[] locales = Locale.getAvailableLocales();
List<Model> list = new ArrayList<Model>();
for (int i=0; i<locales.length; i++) {
list.add(get(locales[i].getDisplayLanguage()));
}
return list;
}
private Model get(String s) {
return new Model(s);
}
것은 지금 그 옵션을 찾고 있어요 : here에서
Locale.getDefault().getLanguage() ---> en
Locale.getDefault().getISO3Language() ---> eng
Locale.getDefault().getCountry() ---> US
Locale.getDefault().getISO3Country() ---> USA
Locale.getDefault().toString() ---> en_US
Locale.getDefault().getDisplayLanguage() ---> English
Locale.getDefault().getDisplayCountry() ---> United States
Locale.getDefault().getDisplayName() ---> English (United States)
.
EDIT 2 - 2 개 더 많은 이미지가 표시되어 언어 목록의 끝 부분을 보여줍니다. 여기에는 중국어 옵션이 있습니다.
이
시스템의 목록입니다.이 목록
다음 코드로 이루어졌다 :Locale[] locales = Locale.getAvailableLocales();
List<Model> list = new ArrayList<Model>();
for (int i=0; i<locales.length; i++) {
list.add(get(locales[i].getDisplayLanguage()+"|"+
locales[i].toString()+"|"+
locales[i].getDisplayName()
));
}
return list;
는 이제 방법은 두 번째 목록에서 첫 번째 목록에 도착이 있어야한다, 아마도 일부 시스템 숨겨진 파일에 액세스?
편집 3 - 나는 다음과 같은 코드를 추가 그것은 문제없이, 중국어 포르투갈어 및 스페인어 특수 문자 (UTF-8)을 보여줍니다
list.add(get("Português (Brasil)"));
list.add(get("English (US)"));
list.add(get("中国(简体)"));
list.add(get("Español (Venezuela)"));
지금 내가 어떻게 실제로 시스템을 변경하려면 여기에서받을 수 있나요을 아래와 같은 목적/활동을 열지 않고 언어 (여기에
Intent intent = new Intent(Settings.ACTION_LOCALE_SETTINGS);
startActivity(intent);
무엇을하려고합니까? 응용 프로그램 내에서 언어를 변경 하시겠습니까? – ChuongPham
예. 필요한 클릭 수를 줄이고 싶습니다. – Rodrigo
클릭 수는 문제가되지 않습니다. 그러나 문제는 앱에서 지원하는 언어입니다. 사용자가 선택할 수있는 언어 목록이있는 경우 Android 프로젝트에서 지원하려는 언어의 번역 된 텍스트가 들어있는 필요한'values' 디렉토리를 만들어야합니다. 'Locale.getAvailableLocales()'에서 언어를 가져 오면 특정 언어가 번역되지 않았거나 Android 응용 프로그램에서 누락 된 경우 오류가 발생합니다. 그러므로 게시물을 편집하고 원하는 것을 요약하십시오. – ChuongPham