tam*_*ler 6 android localization webview
在Android WebView中处理国际化/本地化的最佳方法是什么?理想情况下,我想访问以下所有字符串资源:
res/values/strings.xml res/values-de/strings.xml ...
有没有人以有效的方式做到这一点?
Android本地化信息:http: //developer.android.com/guide/topics/resources/localization.html
最好的, - 托马斯阿姆斯勒
bee*_*tra 10
为了在webview中加载一些本地化数据,我创建了一个包含本地化URL的字符串,并用它来加载HTML文件.所以例如一个字符串:
<string name="url_to_load">file:///android_asset/localized_ru.html</string>
Run Code Online (Sandbox Code Playgroud)
引用目录localized_ru.html中的/assets文件,然后在活动中:
webView.loadUrl(getString(R.string.url_to_load));
Run Code Online (Sandbox Code Playgroud)
我通过字符串使用了这个间接,因为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);
}
}
Run Code Online (Sandbox Code Playgroud)
然后将其传递给您活动中的webview:
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new Localizer(getResources()), "localizer");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2390 次 |
| 最近记录: |