什么是在Android WebView中处理国际化/本地化的最佳方法?理想情况下,我想访问所有字符串资源:
res/values/strings.xml res/values-de/strings.xml ...
有人以高效的方式完成了这个任务吗?
Android本地化信息: http://developer.android.com/guide/topics/resources/localization.html
最好, -- Thomas Amsler
什么是在Android WebView中处理国际化/本地化的最佳方法?理想情况下,我想访问所有字符串资源:
res/values/strings.xml res/values-de/strings.xml ...
有人以高效的方式完成了这个任务吗?
Android本地化信息: http://developer.android.com/guide/topics/resources/localization.html
最好, -- Thomas Amsler
<string name="url_to_load">file:///android_asset/localized_ru.html</string>
在活动中引用 /assets
目录下的文件 localized_ru.html
,然后:
webView.loadUrl(getString(R.string.url_to_load));
由于assets /
目录未本地化,我通过字符串间接使用它,并且对我来说使用URL加载资源无效。
如果您真的想能够从webview中加载所有字符串资源,可以创建一个JavaScript界面和一个简单的帮助程序类:
class Localizer {
private Resources res;
public Localizer(Resources res) {
this.res = res;
}
public String get(String key) {
int id = res.getIdentifier(key, "string", "org.example.app");
return res.getString(id);
}
}
然后将其传递给您的活动中的webview:
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new Localizer(getResources()), "localizer");
您可以将本地化字符串资源数据发送到您的WebView
中。请查看WebView.postUrl()