android strings.xml на разных языках, сценарий

1

У меня есть вопрос strings.xml

Мое приложение на английском языке.

values/strings.xml находится на английском языке

есть много других языков в приложении.

мои последние добавления строковых ключей находятся в values-en/strings.xml, папке языкового стандарта, но не в values языковой папке по умолчанию

как это повлияет на неанглийского пользователя, который загружает представление, которое пытается получить доступ к строкам, определенным только в values-en? будет ли ОС найти строку в этом одном файле и отобразить ее на английском языке?

Это сложно для меня, потому что оно не находится в файле xml по умолчанию

спасибо за понимание

Теги:
locale
localization

2 ответа

1
Лучший ответ

Представьте систему строк как последовательность условий if. Сначала мы проверяем язык пользователя, как только у нас есть, мы проверяем, содержит ли папка для этого конкретного языка строку, которую мы ищем. Если это так, мы возвращаем эту строку, иначе мы по умолчанию проверяем папку "values".

if (language.equals("en") {
   stringsFolders = "values-en";
} else if (language.equals("es") {
   stringsFolders = "values-es";
} 

if (stringsFolder.contains(key) {
    return stringsFolder.get(key);
} else if ("values".contains(key) {
    return "values".get(key);
} else {
    throw CantFindException();
}

Если строка принадлежит значениям-en, а испанский пользователь ищет ее, у них не будет возможности проверить папку значений-en, потому что они не подходят для нее. Альтернативно, папка "values" всегда проверяется по умолчанию, поэтому размещение ее там будет работать для всех языков

  • 0
    правильно, я проверил эту теорию и приложение вылетает. Я позабочусь, чтобы они были в папке по умолчанию, как я делал
0

Синтаксис локализации локализации в strings.xml

German  de  values-de/strings.xml
Chinese zh  values-zh/strings.xml
Czech   cs  values-cs/strings.xml
Dutch   nl  values-nl/strings.xml
French  fr  values-fr/strings.xml
Italian it  values-it/strings.xml
Japanese    ja  values-ja/strings.xml
Korean  ko  values-ko/strings.xml
Polish  pl  values-pl/strings.xml
Russian ru  values-ru/strings.xml
Spanish es  values-es/strings.xml
Arabic  ar  values-ar/strings.xml
Bulgarian   bg  values-bg/strings.xml
Catalan ca  values-ca/strings.xml
Croatian    hr  values-hr/strings.xml
Danish  da  values-da/strings.xml
Finnish fi  values-fi/strings.xml
Greek   el  values-el/strings.xml
Hebrew  iw  values-iw/strings.xml
Hindi   hi  values-hi/strings.xml
Hungarian   hu  values-hu/strings.xml
Indonesian  in  values-in/strings.xml
Latvian lv  values-lv/strings.xml
Lithuanian  lt  values-lt/strings.xml
Norwegian   nb  values-nb/strings.xml
Portuguese  pt  values-pt/strings.xml
Romanian    ro  values-ro/strings.xml
Serbian sr  values-sr/strings.xml
Slovak  sk  values-sk/strings.xml
Slovenian   sl  values-sl/strings.xml
Swedish sv  values-sv/strings.xml
Tagalog tl  values-tl/strings.xml
Thai    th  values-th/strings.xml
Turkish tr  values-tr/strings.xml
Ukrainian   uk  values-uk/strings.xml
Vietnamese  vi  values-vi/strings.xml

Ещё вопросы

Сообщество Overcoder
Наверх
Меню