2013-09-05 14 views
5

Per esempio, non v'è un'applicazione che fornisce il supporto multi-lingua, nella mia attività/UI, mi chiamano getResources().getString(R.string.hello) che esistono in strings.xml, in modo tale cheCome getResources(). GetString() funziona Android

values\strings.xml 
values-ru\strings.xml 

Ora quando si chiama getResources().getString(R.string.hello) e si deve accedere alla stringa in base alle impostazioni locali del sistema, quindi si otterranno stringhe da values\strings.xml O values-ru\strings.xml?

O

C'è bisogno di cambiare il mio locale applicazione sulla base di impostazioni internazionali del sistema (mantenere locale app stesse impostazioni locali del sistema) e quindi recuperare il valore da getString(), qualcosa suggerito sotto i collegamenti

  1. get-string-from-default-locale-using-string-in-specific-locale

  2. how-to-get-string-from-different-locales-in-android

Ho cercato vari altri collegamenti, ma non sono riuscito a trovare la soluzione

+0

sulla base di impostazioni internazionali del sistema, si ottengono da valori \ file strings.xml –

risposta

8
MyProject/ 
    res/ 
     values/ 
      strings.xml 
     values-es/ 
      strings.xml 
     values-fr/ 
      strings.xml 

Aggiungere i valori di stringa per ogni lingua nel file appropriato.

In fase di runtime, il sistema Android utilizza il set appropriato di risorse stringa in base alle impostazioni locali attualmente impostate per il dispositivo dell'utente.

Per info sulla Localizzazione con risorse

http://developer.android.com/guide/topics/resources/localization.html

Maggiori info @

http://developer.android.com/training/basics/supporting-devices/languages.html

di controllare anche la link qui sotto

http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.3_r2.1/android/content/ContextWrapper.java/

86  @Override 
87  public Resources getResources() 
88  { 
89   return mBase.getResources(); 
90  } 

Restituisce un'istanza Risorse per il pacchetto dell'applicazione.

332 
333  public final String getString(int resId) { 
334   return getResources().getString(resId); 
335  } 

Ritorna una stringa localizzata dalla tabella di stringhe di default del pacchetto dell'applicazione. Parametri: resid Resource id per la stringa

+0

grazie, per la lunga descrizione, in realtà ho fatto esaminare, ma non ero in grado di capire. –

+0

@AkhilJain felice di poter aiutare. Penso che doc abbia tutte le informazioni che ti servono. http://developer.android.com/guide/topics/resources/localization.html. Quale parte non hai capito? – Raghunandan

+0

ho aperto il codice grep per la classe Resources, ma non ero in grado di capire come il codice sembrava disperso a prima vista, passare più tempo sembrava scavare buco più in profondità –

1

Viene eseguita automaticamente. Per impostazione predefinita, la lingua attiva è values\strings.xml ma se il dispositivo dell'utente ha la lingua impostata per ru la stringa automaticamente è quella su values-ru\strings.xml e così via per tutte le lingue che si mettono sulle risorse.

È possibile leggere ulteriori informazioni su questo argomento in here.

In fase di runtime, il sistema Android utilizza il set appropriato di risorse stringa in base alle impostazioni locali attualmente impostate per il dispositivo dell'utente.

Problemi correlati