Чтобы загрузить некоторые локализованные данные в веб-просмотр, я создал строку, содержащую локализованный URL, и использовал ее для загрузки HTML-файла.
Так, например, строка:
<string name="url_to_load">file:///android_asset/localized_ru.html</string>
для ссылки на файл localized_ru.html
в каталоге /assets
, а затем в операции:
webView.loadUrl(getString(R.string.url_to_load));
Я использовал это косвенно через строку, так как каталог assets/
не локализован, и загрузка ресурса с использованием URL-адреса не работала для меня.
Если вы действительно хотите иметь возможность загружать все строковые ресурсы из своего веб-просмотра, вы можете создать 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.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new Localizer(getResources()), "localizer");