2012-01-11 7 views
1

У меня есть несколько разных html-файлов на разных языках, и все эти html-файлы содержат изображения. Теперь я хочу показать подходящие html-файлы с адаптацией WebView к текущему языку Android. Как я могу это сделать? Благодарю.Как загрузить другой html-файл на другой язык Android-среды?

ответ

1

Вы можете дать особые имена неанглийских файлы, такие как file-de.html для немецкого и затем используйте следующий код:

private static String getFileName() { 
    Configuration config = getResources().getConfiguration(); 
    InputStream stream = null; 
    try { 
     String name = "file-" + config.locale.getLanguage() + ".html"; 
     stream = getAssets().open(name); 
     return name; 
    } catch (IOException exception) { 
     return "file.html"; 
    } finally { 
     if (stream != null) { 
      stream.close(); 
     } 
    } 
} 
+0

Спасибо Pixie.Это хороший способ решить мою проблему :) Будет ли у нас другой лучший способ решить проблему без написания java-кода, например, переименовать папку с ресурсами как «assets-de», и система может авто известно, как адаптироваться к различным lanugange? (Я знал, что «активы-де» не могут работать, просто пример :) – Dalen

+0

Я не знаю лучшего способа, поэтому я использую его в своих проектах. Но вы можете попытаться найти лучшее решение. Если вы добьетесь успеха в этом поиске, пожалуйста, дайте мне знать. – Michael

0

Добавлен новый ответ, который должен быть более точным, предоставляя пример.

+0

Это не дает ответа на вопрос. Когда у вас будет достаточно [репутации] (https://stackoverflow.com/help/whats-reputation), вы сможете [прокомментировать любое сообщение] (https://stackoverflow.com/help/privileges/comment); вместо этого [предоставить ответы, которые не требуют разъяснений у аськи) (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can- я-делать-вместо этого). - [Из обзора] (/ review/low-quality-posts/18634071) – thewaywewere

0

Вы можете использовать «строковые значения», чтобы получить имена файлов HTML, зависящие от языка Android, без использования какого-либо дополнительного кода java и просто используя getString(). Вот пример для 2-х языках:

В файле значений/strings.xml:

<string name="html_help_basepage">en_help.html</string> 

В файле де/strings.xml:

<string name="html_help_basepage">some_german_help.html</string> 

И так далее .. .

Для вашего кода Java (загрузка из локального файла в папке с активами, как в вопросе)

helpView = (WebView) findViewById(R.id.wv_help); 
String adaptedToLanguage = getString(R.string.html_help_basepage)   
helpView.loadUrl("file:///android_asset/" + adaptedToLanguage); 

Дополнительный код Java не требуется. Надеюсь, это полезно и ответит на вопрос.

Смежные вопросы