我正在使用“loadDataWithBaseUrl(...)”将存储在 Assets 中的 html 文件加载到 Webview。其中包含一个字符串“Loading...”和一个旋转的 GIF。字符串“Loading...”是硬编码的,不会本地化。如何动态替换该字符串,以便对其进行本地化?
请帮我解决这个问题。
最佳答案
我可以想到各种解决方案:
根据当前语言加载不同的 Assets 文件(使用 Locale.getDefault() 获取当前语言),这样您就可以独立翻译您的 HTML 文件。
在您的 HTML 文件中使用占位符(例如#loading_message#),然后以字符串形式加载 Assets 文件,用适当的本地化消息替换所有出现的占位符 (String.replaceAll("#loading_message #", getText(R.string.loading_message).toString())),最后使用loadData(String data, String mimeType, String encoding)函数将处理后的HTML加载到WebView中。
要加载 Assets 文件,您可以执行类似 that 的操作:
File f = new File("file:///android_asset/my_file.html");
FileReader fr = new FileReader(f);
BufferedReader br = new BufferedReader(fr);
StringBuffer sb = new StringBuffer();
String eachLine = br.readLine();
while(eachLine != null) {
sb.append(eachLine);
sb.append("\n");
eachLine = br.readLine();
}
// sb.toString is your HTML file as a String
关于html - 在Android中动态替换html中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4275366/