Я делаю приложение с многоязычным языком. Я понимаю концепцию string.xml для того, чтобы язык приложения был установлен на то, что по умолчанию используется для телефона. Есть ли способ переопределить это? Например, если у меня есть испанский телефон, который я использую в Испании, но я все еще хочу иметь приложение на английском языке?Изменить язык строк в Android. Активность
ответ
Вы можете изменить язык (локаль) приложения программно с помощью простой функции. Вам нужно только реализовать метод, аналогичный тому, который у вас есть ниже, который получает строку в качестве параметра (например, «en» для английского языка, «es» для испанского), где вы можете настроить языковой стандарт для своего приложения и обновить текущую деятельность чтобы отразить изменения. Язык, который вы применяли, не будет изменен, пока вы его вручную не измените вручную.
public void setLocale(String lang) {
myLocale = new Locale(lang);
Resources res = getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
conf.locale = myLocale;
res.updateConfiguration(conf, dm);
Intent refresh = new Intent(this, AndroidLocalize.class);
startActivity(refresh);
finish();
}
Убедитесь, что вы импортировать следующие пакеты:
import java.util.Locale;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.DisplayMetrics;
import android.content.res.Resources;
import android.content.res.Configuration;
также добавить в манифесте внутри вашей деятельности тег android:configChanges="locale|orientation"
EDIT, как правильно сказали, это не то, что просили ОП, по-прежнему Я оставлю его здесь на всякий случай, когда кто-то завершает работу, пытаясь решить, на что я ответил.
От странице Android Developers:
Как создать альтернативные ресурсы
Большая часть локализации приложения предоставляет альтернативный текст для разных языков. В некоторых случаях вы также предоставите альтернативную графику, звуки, макеты и другие локальные ресурсы .
Приложение может указывать много каталогов res //, каждый с различными квалификаторами. Чтобы создать альтернативный ресурс для разных локалей, вы используете классификатор, который указывает язык или комбинацию языковых областей . (Имя каталога ресурсов должно соответствовать схеме именования, описанной в обеспечении альтернативных ресурсов, или иначе это не будет компилироваться.)
Пример:
Предположим, что язык по умолчанию вашего приложения является английский. Предположим также, что вы хотите локализовать весь текст в своем приложении на французский, а большая часть текста в вашем приложении (все, кроме название приложения), на японский. В этом случае, вы можете создать три альтернативных strings.xml файлов, каждый из которых хранятся в данной локали каталоге ресурсов:
res/values/strings.xml Contains English text for all the strings that the application uses, including text for a string named title. res/values-fr/strings.xml Contain French text for all the strings, including title. res/values-ja/strings.xml Contain Japanese text for all the strings except title.
Если ваш код Java относится к R.string.title, вот что будет происходить во время выполнения:
If the device is set to any language other than French, Android will load title from the res/values/strings.xml file. If the device is set to French, Android will load title from the res/values-fr/strings.xml file.
Обратите внимание, что если устройство установлено на японском языке, Android будет искать заголовка в файле/strings.xml Рез/значения-Ja. Но поскольку в этот файл нет такой строки , Android вернется к по умолчанию и загрузит заголовок на английском языке из файла res/values / strings.xml .
здесь также оригинальная ссылка для справки: http://developer.android.com/guide/topics/resources/localization.html
Я думаю, что OP не спрашивает об этом, я думаю, он спрашивает, как программно изменить выбранный язык (кажется, что он уже знает, что он может установить разные файлы strings.xml) – arodriguezdonaire
Да, это то, что я имел в виду «Я понимаю концепцию string.xml для установки языка приложения на то, что по умолчанию для телефона». Но все равно спасибо за официальное описание. Я никогда не краснул это, но я усвоил это с трудом :) Итак, это +1 ;-) –
Кстати, я искал вокруг, но я не могу его найти. Кто-нибудь получил ссылку на место где указаны все коды официального языка (en-english, hi-hindi, ja-japaneese, fr-french и т. Д.)? –
- 1. Android - Изменить язык (язык)
- 2. Android: Изменить язык Соответствует
- 3. Изменить активность на Android
- 4. Невозможно изменить активность android
- 5. Android: язык (система Язык) изменить эффект мои макеты приложений
- 6. Изменить язык во время выполнения в Android
- 7. Android - Как изменить активность запуска?
- 8. android, как изменить начальную активность
- 9. Как изменить язык для всего приложения Android?
- 10. Android. Как изменить активность в одной вкладке
- 11. Как изменить активность запуска в android?
- 12. Как изменить язык в приложении на Android
- 13. Изменить язык программно в Android со страной
- 14. Как изменить язык placepicker в android?
- 15. изменить язык в android, используя локализацию
- 16. Как изменить язык шрифта в android
- 17. изменить язык (язык) внутри приложения в НастройкеActivity
- 18. Изменить все Язык активности
- 19. изменить язык
- 20. Изменить язык SwitchPreference
- 21. Изменить язык в C#
- 22. Изменить язык в PHP
- 23. Изменить язык в Runtime
- 24. Изменить язык в WooCommerce
- 25. Изменить язык в CakePHP
- 26. Как изменить активность на Android с Xamarin?
- 27. Невозможно изменить язык на устройстве Android
- 28. Изменить язык на Facebook SDK для Android
- 29. Активность за активность: Android
- 30. Как изменить язык приложения Android изнутри?
простой и быстрый @Andreu ... +1 * A тез ... нет привет га Молта барин-де-Барселона на AQUI;) * –
хахаха веселит человека ! – arodriguezdonaire
Выглядит почти слишком хорошо, чтобы быть правдой. Я проверю это, когда у меня появится такая возможность, и если это сработает, как вы говорите, это действительно стоит +50! –