如何在不同语言的Android环境中加载不同的html文件?
我对不同的语言环境有一些不同的语言html文件,并且所有这些html文件都包含图像。现在我想用WebView适应当前的Android语言来显示合适的html文件。我怎样才能做到这一点?谢谢。如何在不同语言的Android环境中加载不同的html文件?
你可以给特殊名称的非英语文件,比如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();
}
}
}
增加了一个新的答案,这应该是通过提供一个例子更精确。
这不提供问题的答案。一旦你有足够的[声誉](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- I-DO-代替)。 - [来自评论](/ review/low-quality-posts/18634071) – thewaywewere 2018-01-26 16:08:16
您可以使用“字符串值”来获取Android语言相关的HTML文件名,而无需使用任何额外的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代码。我希望这有助于解决问题。
谢谢Pixie.This是一个很好的方法来解决我的问题:)我们有没有其他更好的解决方法解决它,而无需编写Java代码,如remame资产文件夹为“assets-de”,系统可以auto知道如何适应不同的lanugange?(我知道foler“assets-de”不能工作,只是一个例子:) – Dalen 2012-01-12 01:35:59
我不知道任何更好的方式,所以我在我的项目中使用这个。但是你可以尝试找到更好的解决方案。如果您在搜索中取得成功,请告诉我。 – Michael 2012-01-12 04:45:33