Я хотел бы создать многоязычное приложение для Android.
Есть ли способ определить, какой язык предпочитает пользователь?
Есть ли рекомендуемый способ управления несколькими языками на Android или я должен изобретать велосипед?
Я хотел бы создать многоязычное приложение для Android.
Есть ли способ определить, какой язык предпочитает пользователь?
Есть ли рекомендуемый способ управления несколькими языками на Android или я должен изобретать велосипед?
Да, есть рекомендуемый способ управления несколькими языками
Многоязычная поддержка легко выполняется для Android. Создайте новый каталог значений для языка с суффиксом кода языка. Для german: values-de или French: values-fr, чем скопировать в файл string.xml и перевести каждую запись. Это все, что вам нужно.
Предоставление вам рекомендаций, определяющих, какой язык пользователь предпочитает, автоматически.
Прочитайте это:
http://developer.android.com/guide/topics/resources/localization.html
В файле активности
public boolean onOptionsItemSelected(MenuItem item)
{
String languageToLoad="en";
switch (item.getItemId()) {
case R.id.eng:
languageToLoad = "en";
break;
case R.id.hn:
languageToLoad = "hi";
break;
case R.id.te:
languageToLoad = "te";
break;
case R.id.ta:
languageToLoad = "ta";
break;
case R.id.ka:
languageToLoad = "kan";
break;
case R.id.ml:
languageToLoad = "ml";
break;
case R.id.mr:
languageToLoad = "mr";
break;
default:
break;
}
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getResources().updateConfiguration(config,getResources().getDisplayMetrics());
}
В меню res\menu\menus.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context="com.example.connect.OrderProcess">
<item
android:title="Language"
app:showAsAction="never">
<menu>
<item
android:id="@+id/eng"
android:title="English"/>
<item
android:id="@+id/hn"
android:title="Hindi"/>
<item
android:id="@+id/te"
android:title="Telugu"/>
<item
android:id="@+id/ta"
android:title="Tamil"/>
<item
android:id="@+id/ka"
android:title="Kannada"/>
<item
android:id="@+id/ml"
android:title="Malayalam"/>
<item
android:id="@+id/mr"
android:title="Marathi"/>
</menu>
</item>
</menu>
И создайте папку и файл
res\values \ string.xml(на английском языке)
res\values-hi\string.xml(хинди)
res\values-kan\string.xml(Kannada)
res\values-te\string.xml(Телугу)
res\values-ta\string.xml(тамильский)
Рез\значения мл \string.xml(Малайялам)
res\values-mr\string.xml(маратхи)
В string.xml(хинди)
<resources>
<string name="email">ईमेल</string>
<string name="password">पासवर्ड </string>
</resources>
Знайте, что это поздний пост, подумал о том, чтобы поделиться демо-приложением, так что это будет полезно для некоторых людей.
Многоязычное приложение с использованием общих настроек
Эта демонстрация демонстрирует следующие два сценария,
Выбранный язык сохраняется в общих настройках. Поэтому в следующий раз, когда приложение откроется, предпочтительный язык будет выбран автоматически.
Исходный код - https://github.com/anurajr1/Multi-language_App