Nano Hash - криптовалюты, майнинг, программирование

Как изменить язык Google Map V2 Android

Я использую google-play-service-lib. Как я могу изменить язык карты Google, т. е. показать местоположения на корианском языке или языке хинди.


  • у вас есть решение для языка хинди? приведенные ниже примеры работают для ko, но не для hi. 01.04.2017
  • @ArthTilva Это был очень старый запрос, поэтому я забыл о поддержке хинди. 06.04.2017
  • Для людей, спрашивающих о языке хинди (hi_IN), проверьте ответ: stackoverflow.com/questions/48862517/ 16.09.2020

Ответы:


1

Вы можете изменить местоположение для Карт Google, использующих Google Map API версии 2, с помощью Язык< /а> Объект. Однако язык должен поддерживаться на используемом устройстве.

Вот полный список поддерживаемых языков .

С помощью этого кода ниже я смог изменить язык на карте на китайский:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    String languageToLoad = "zh_CN";
    Locale locale = new Locale(languageToLoad);
    Locale.setDefault(locale);
    Configuration config = new Configuration();
    config.locale = locale;
    getBaseContext().getResources().updateConfiguration(config,
            getBaseContext().getResources().getDisplayMetrics());

    setContentView(R.layout.activity_maps);

    setUpMapIfNeeded();

}

Результат, в коде установлен китайский язык (без ручных изменений) на телефоне в США:

Китайская карта

Я также смог заставить его показывать корейский язык, используя этот код локали:

 String languageToLoad = "ko_KR";

Результат:

Карта Кореи

ПРИМЕЧАНИЕ

Похоже, поддерживаемые языки для Карт Google перечислены здесь: https://developers.google.com/maps/faq#languagesupport

26.05.2015
  • Этот код очень близок к тому, что у меня уже было. Это заставляет все остальное мое приложение использовать желаемую локаль, но не карту. Возможно, это потому, что я использую карту библиотеки поддержки: getSupportFragmentManager().findFragmentById(R.id.map) 31.05.2015
  • Ну, кажется, это работает частично! Locale.setDefault (локаль); кажется ключом, однако он сильно кэшируется, поэтому, когда я меняю локаль в приложении, он не меняет локаль карты. 31.05.2015
  • @Гавриэль Интересно. Следует отметить одну вещь: обязательно вызывайте ее перед вызовом setContentView() или любого другого типа раздувания макета. 31.05.2015
  • Привет, я не могу показать карту Google на языке хинди. Я также обновил сервис Play и карту Google. Любая идея, как я могу это сделать. 13.11.2015
  • @VaishaliSharma Вы пробовали вышеуказанное решение, используя hi_IN? 13.11.2015
  • это не меняет язык карты до перезапуска приложения. есть ли способ очистить кеш? 01.03.2016
  • @RameshKumar Не уверен, почему в некоторых случаях это не сработает. Судя по списку, похоже, что хинди поддерживается: developers.google.com/maps/faq. #languagesupport Убедитесь, что устройство, на котором вы тестируете, также поддерживает этот язык. 14.02.2017
  • да, мое устройство поддерживает язык хинди. но не показывает карту на хинди 15.02.2017
  • @DanielNugent Извиняюсь за нагромождение этой действительно старой темы, но я попробовал решение, которое вы предоставили в этом ответе, используя локаль ko_KR, и оно работает правильно. Однако изменение локали на hi или hi_IN не работает. В системе отслеживания проблем Google существует проблема здесь, к которой я добавил комментарий. . 03.02.2018

  • 2

    Нам нужно только изменить местоположение в приложении, чтобы получить описания карты на другом языке. Мы должны добавить проверки, чтобы избежать использования устаревших методов:

     @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                                 Bundle savedInstanceState) {
    
            String language= "hi"; //Hindi language!.
            Locale locale = new Locale(language);
            Locale.setDefault(locale);
            Configuration config = new Configuration();
    
            if(Build.VERSION.SDK_INT>Build.VERSION_CODES.JELLY_BEAN){
               config.setLocale(locale);
               getContext().createConfigurationContext(config);
            }else { //deprecated 
               config.locale = locale;
               getResources().updateConfiguration(config, getResources().getDisplayMetrics());
            }
    
    ...
    ...
    

    ...

    Очень важно отметить, что поддерживаются не все языки, это пример на русском языке:

    представить описание изображения aquí

    Мы можем получить кодовые языки из:

    https://www.transifex.com/explore/languages/

    05.09.2017

    3

    Просто измените локаль на устройстве. Если переводы доступны, они будут показаны автоматически.

    Скриншот моего американского телефона с переключением языка на корейский:

    05.04.2014
  • Это работает? Я попытался изменить язык устройства на итальянский, испанский, французский, но Карты Google всегда отображаются на английском языке. 06.05.2014
  • Да, я проверил это, прежде чем я ответил. Я изменил язык на своем телефоне на корейский, и мое собственное тестовое приложение «Карты» в основном изменилось на корейский, даже названия второстепенных улиц в моем городе. Я использовал это приложение для изменения локали: play.google.com/ store/apps/details?id=com.bruce.setlocale 06.05.2014
  • Примечание. Приложение выбирает язык при запуске. Возможно, вам придется принудительно остановить приложение и перезапустить его, чтобы изменить язык. 06.05.2014
  • @GiulioPiancastelli у меня такой же опыт, как и у вас. Вы нашли решение? 02.07.2014
  • @ rfsk2010 Я не пробовал приложение, предложенное Кевином. Я ожидаю, что локаль карты изменится без использования сторонних приложений. Как обстоят дела в настоящее время, я еще не нашел решения, извините. 02.07.2014
  • Целью стороннего приложения, о котором я упоминал, является изменение локали устройства, а не конкретно карты. После изменения языкового стандарта все приложения, имеющие ресурсы для этого языкового стандарта, должны автоматически начать их использовать. (С оговоркой, что они должны быть перезапущены, что может означать их принудительное закрытие.) 03.07.2014
  • Есть ли способ программно изменить язык карты из моего приложения (без изменения языкового стандарта системы)? 08.10.2014
  • @ Гавриэль Немного поздно! Но я только что опубликовал ответ, который программно меняет язык карты, если вам все еще интересно. 26.05.2015

  • 4

    надеюсь, что это простое решение для изменения языка карты поможет кому-то:

    просто добавьте вызов setUpMapLocale() в свою активность onCreate():

     private fun setUpMapLocale() {
            val languageToLoad = "iw_IL" // your desired language locale
            val locale = Locale(languageToLoad)
            Locale.setDefault(locale)
            baseContext.resources.configuration.setLocale(locale)
        }
    

    поэтому мне просто нужно было вызвать setLocale() для существующей конфигурации, прикрепленной к baseContext ресурсам.

    08.06.2021
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..