【问题标题】:How to load different html file in different language Android environment?如何在不同语言的Android环境中加载不同的html文件?
【发布时间】:2012-01-11 17:01:08
【问题描述】:

我有一些针对不同语言环境的不同语言的 html 文件,所有这些 html 文件都包含图像。现在我想用 WebView 显示适合当前 Android 语言的 html 文件。我怎样才能做到这一点?谢谢。

【问题讨论】:

    标签: android html image webview


    【解决方案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();
            }
        }
    }
    

    【讨论】:

    • 感谢 Pixie。这是解决我的问题的好方法:) 我们是否还有其他更好的方法来解决它而不编写 java 代码,例如将资产文件夹重命名为“assets-de” "并且系统可以自动知道如何适应不同的语言?(我知道文件夹“assets-de”不能工作,只是一个例子:)
    • 我不知道有什么更好的方法,所以我在我的项目中使用了这个。但是您可以尝试找到更好的解决方案。如果您在此搜索中成功,请告诉我。
    【解决方案2】:

    您可以使用“字符串值”来获取依赖于 Android 语言的 HTML 文件名,而无需使用任何额外的 java 代码,而只需使用 getString()。以下是 2 种语言的示例:

    在文件values/strings.xml

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

    在文件de/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 代码。我希望这会有所帮助并回答问题。

    【讨论】:

      【解决方案3】:

      添加了一个新的答案,通过提供一个例子应该更准确。

      【讨论】:

        猜你喜欢
        • 2011-04-05
        • 1970-01-01
        • 2012-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-17
        • 2011-03-05
        • 2021-03-06
        相关资源
        最近更新 更多