2013-09-05 35 views
5

Na przykład istnieje aplikacja, która zapewnia wsparcie dla wielu języków, w mojej działalności/UI, wzywam getResources().getString(R.string.hello) który istnieje w strings.xml, tak żeJak getResources(). GetString() działa android

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

Teraz dzwoniąc pod numer getResources().getString(R.string.hello) i musisz uzyskać dostęp do łańcucha znaków na podstawie ustawień narodowych systemu, więc otrzymasz ciąg od values\strings.xml OR values-ru\strings.xml?

LUB

ma jeden trzeba zmienić moje app ustawienia regionalne na podstawie narodowych systemu (utrzymanie aplikacji locale same jak ustawienia regionalne systemu), a następnie pobrać wartość z getString() coś sugeruje poniżej linki

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

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

Mam wyszukiwane różne inne linki, ale nie jest w stanie znaleźć rozwiązania

+0

na podstawie ustawień narodowych systemu, otrzymasz od wartości \ file strings.xml –

Odpowiedz

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

Dodaj wartości ciągów dla każdej lokalizacji do odpowiedniego pliku.

W środowisku wykonawczym system Android używa odpowiedniego zestawu zasobów ciągów w oparciu o ustawienia regionalne aktualnie ustawione dla urządzenia użytkownika.

uzyskać informacje na Lokalizowanie z zasobami

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

Więcej info @

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

również sprawdzić poniższy link

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  } 

Zwraca instancję Resources dla pakietu aplikacji.

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

Zwraca zlokalizowany łańcuch z domyślnej tabeli ciągów pakietu aplikacji. Parametry: pozost zasobów id dla struny

+0

dzięki za długi opis, faktycznie zrobiłem patrzeć, ale nie był w stanie zrozumieć. –

+0

@AchhilJain cieszę się, że mogę pomóc. Myślę, że doc ma wszystkie potrzebne informacje. http://developer.android.com/guide/topics/resources/localization.html. Jakiej części nie rozumiesz? – Raghunandan

+0

Otworzyłem kod grep dla klasy Zasoby, ale nie mogłem zrozumieć, ponieważ kod wydawał się rozproszony na pierwszy rzut oka, spędzając więcej czasu, wydawało się, że kopie głębiej głębiej –

1

Wykonuje się automatycznie. Standardowo język, który jest włączony, jest w twoim values\strings.xml, ale jeśli urządzenie użytkownika ma ustawiony język, aby ru był to ciąg znaków, to jest on ustawiony na values-ru\strings.xml itd. Dla wszystkich języków, które umieścisz w swoich zasobach.

Możesz przeczytać więcej na ten temat w artykule here.

W środowisku wykonawczym system Android wykorzystuje odpowiedni zestaw zasobów ciągów w oparciu o ustawienia regionalne aktualnie ustawione dla urządzenia użytkownika.