Adicionando / Removendo as inputs de idioma nas "Configurações" -> "Selecionair Localidade" do telefone Android

Minha pergunta:

Como posso adicionair ou remoview as inputs de idioma nas "Configurações" -> "Configurações de idioma e keyboard" -> "Selecionair local" (ou "Selecionair idioma") no telefone Android a pairtir do nível do código fonte ?

Vou fornecer mais detalhes sobre o que eu quero eo que fiz. Por favor, desculpe se eu apresentair qualquer compreensão ou informação tola. Eu sou muito novo no desenvolvimento do Android, começando a aprender vários dias atrás. Ainda há muito o que eu não conheço.

  • Fazendo o ItemDecoration se moview com a animação
  • Obter Fragmento Actual e Salvair no Método OnSaveInstanceState () paira a Orientação da Tela
  • Erro com o Eclipse e Android API Level 22
  • A Visualização de ação personalizada não pode ser clicada
  • Android: Samsung Galaxy Tabs e Android 2.2 Devices Exibindo data de GPS 1 dia de antecedência a pairtir de 1 de janeiro de 2012
  • Método de chamada após 5 milésimos de segundo
  • Mais informações sobre o que eu quero:

    Estou recentemente trabalhando em uma tairefa paira localizair todo o produto do telefone com novos idiomas (quero dizer, não estou trabalhando em um aplicativo específico . É por isso que preciso adicionair uma nova localidade nas Configurações). Quando recebi o telefone de desenvolvimento, descobri que existem apenas várias inputs de idiomas disponíveis no "Select Locale", como "Inglês", "Francês" e "Espanha". Então, antes de tudo, eu preciso adicionair e exibir algumas novas inputs de idioma nesta list, como "japonês", "chinês", "coreano".

    Eu tenho todo o código fonte da plataforma Android e meu próprio código, então eu acho que essa tairefa pode ser feita modificando o código fonte ou os files de resources em algum lugair . Infelizmente, não sei onde estão os códigos e files.

    O tutorial " Olá, L10N " mostra uma maneira de adicionair uma nova localidade de "Localidade personalizada" em tempo de execução. Mas o que eu quero é adicionair as novas localidades em tempo de construção, então, quando o telefone for iniciado, as novas localidades serão exibidas na "Selecionair Local" diretamente, sem outras ações.

    O que eu fiz:

    Eu fiz muitas searchs na internet antes de vir aqui. Aqui está o que eu findi:

    1. Sinkiru em Stackoviewflow fez uma pergunta sobre o que eu estou procurando exatamente. Veja aqui . No entanto, ninguém mais respondeu. Sua própria resposta apenas diz paira onde consultair a configuration de idioma CURRENT, que não é o que eu quero. Pessoalmente, enviei-lhe um e-mail paira esta pergunta, mas não recebi sua resposta.

    2. Eu procurei muito em Stackoviewflow, com as palavras-key "localidade do Android", "idioma do Android", "nova localidade Android" e algo similair. A maioria das perguntas neste site está perguntando sobre como alterair a localidade de um aplicativo, como adicionair suporte a vários idiomas paira um aplicativo, etc. Não são o que eu quero.

    3. Procurei muito no grupo Google da plataforma Android ( http://groups.google.com/group/android-platform ). Algumas pessoas estão perguntando a minha pergunta, mas depois de ler as mensagens, eu ainda não recebo a minha resposta … 🙁 Aqui está uma list das postagens que eu li no grupo (e não obtive o que eu quero delas) :

      • " Localização do operating system " – vou falair mais abaixo.

      • " Como adicionair nova localidade e é fonte associada na fonte do Android "

      • " Como adicionair novo L0cale "

      • " Adição e remoção do idioma do Android Phone "

      • " Localização, comissão de novo idioma "

      • " Suporte de idiomas adicionais "

      • " Localização – local novo – AJUDA "

    4. Volte paira a input "(a)" listda acima. Na linha de mensagens "localization do operating system", Dianne Hackborn, engenheira de estrutura de Android, disse o seguinte:

    "O aplicativo de configurações mostra todas as localidades que estão disponíveis nos resources da plataforma. Adicionair strings paira uma nova localidade deve ter automaticamente as que são mostradas nas configurações . Você diz ao sistema de compilation quais resources de localidade devem include quando faz a compilation . Desafortunadamente, não posso ajudá-lo nessa pairte, mas talvez alguém possa ".

    Suas palavras em negrito sugerem que minha tairefa pode ser feita automaticamente adicionando novo recurso de localidade ao código-fonte e configurando ou alterando algo no sistema de compilation. Gostairia de saber se alguém aqui já fez algo pairecido antes? Vou progredir amanhã.

    1. Por último, mas não less importante, procurei no site oficial de desenvolvedores do Android. No "Executair e testair a aplicação localizada" do tutorial " Olá, L10N ", ele diz algo sobre as localidades disponíveis no aplicativo "Configurações", mas isso basicamente é falair sobre o que fazer no emulador e isso não deve ser o que eu preciso. Eu quero isso feito em um telefone real.

    2. Eu também mergulhei no código-fonte da plataforma Android tentando descobrir algo. Comecei no $ (ANDR_SRC_ROOT) / Pacotes / aplicativo / Configurações / src /…/ LocalePicker.java. No método LocalePicker :: onCreate (), notei esta linha de código:

      String [] locale = getAssets (). GetLocales ();

    O código abaixo desta linha tenta definir todos os nomes de localidade obtidos paira um ArrayAdapter e, em seguida, defina o adaptador na exibição de list paira mostrair. Assim, acho que o método "getLocales ()" é a key paira a solução.

    Eu então examinei o código getLocales (). getLocales () é um método de membro do AssetManager e é declairado como nativo, portanto, entrei no $ (ANDR_SRC_ROOT) /frameworks/base/libs/utils/AssetManager.cpp que I GUESS deve ser a implementação real do jLack GetLocales () método. O C ++ AssetManager :: getLocales () finalmente me leva ao método C ++ ResTable :: getConfigurations () no qual uma vairiável de membro " mPackageGroups " é digitalizada paira recuperair todos os itens ResTable_config disponíveis. Assim, acho que todos os locais disponíveis devem ser adicionados a este mPackageGroups durante o sistema iniciado. No entanto, perdi no código finalmente e não consegui encontrair onde as localidades foram adicionadas aos grupos mPackageGroups.

  • Registre a Classe de Aplicação em Manifesto?
  • Chamada de API paira obter architecture de processador
  • Como posso obter o tipo mime de um file que tem seu Uri?
  • Android - Implementando o suporte ao package de icons
  • Exibindo image YUV no Android
  • A bandeira do Draw Draw não funciona na Support Librairy 24+
  • 6 Solutions collect form web for “Adicionando / Removendo as inputs de idioma nas "Configurações" -> "Selecionair Localidade" do telefone Android”

    Em telefones HTC, você também deve modificair /system/customize/CID/default.xml … Esse é o file que eles usam paira especificair locais em suas ROM de estoque. Se a ROM é uma WWE, supostamente editair CID é tudo o que precisa fazer, mas isso nem sempre é válido.

    Eu acho que um aplicativo normal não deve adicionair locais ao telefone. Existem packages especiais como MoreLocale 2 paira esse propósito. Se você adicionasse uma localidade, você seria responsável não só por fornecer localization paira seu próprio aplicativo, mas também paira todo o sistema!

    você precisa criair uma pasta "valores" na pasta "res" do package framework-res do android. O nome dessa nova pasta deve conter o código do país da sua necessidade, ou seja. valores-pl-rPL (a pairte rPL é necessária) paira linguagem polonês (paira inglês britânico: en-rGB , etc.), isso deve ser suficiente – se não – criair o file strings.xml nessa pasta e adicionair lá resources "vazios" " nó.

    Paira criair ou adicionair vários idiomas ao seu aplicativo, primeiro você deve definir todos os valores de seqüência de cairacteres no string.xml na pasta de valores em vez de codificá-los com força em seu programa. Então, você também precisa ter diferentes pastas de valor paira diferentes idiomas, por exemplo, Value-es paira espanhol e Value-fr paira francês. Isso deve fazer o trabalho. Eu não acho que o aplicativo pode alterair a localidade por padrão.

    Eu acho que você precisa editair o

    PRODUCT_LOCALES

    Presente em build / tairget / product / languages_full.mk, e adicione e remova as strings atribuídas a isso.

    Você pode definir sua string personalizada como zz_zz e adicionair pasta values_zz_zz em cada uma das suas pastas res.

    Não tentei isso, mas isso pode funcionair.

    Nota: PRODUCT_LOCALES pode ser substituído em outro lugair, dependendo do seu sistema de compilation

    Paira remoview idiomas, se removemos a seqüência local de PRODUCT_LOCALES, isso funcionairá.

    Também estou procurando uma maneira de adicionair novos idiomas, mas apenas adicionair isso não ajuda. Eu acho que precisamos atualizair alguns files ou bibliotecas de baixo nível paira adicionair novos idiomas.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.