Возможность просмотра текста на другом языке в Android?

Я работаю над приложением, в котором я хочу дать три варианта языка пользователю, например, английскому, хинди и панджаби (региональный язык).

Я хочу знать, что это лучший способ сделать это? Один из способов, который я нахожу, – сделать три разных xml-файла английского, хинди и панджаби. Затем проанализируйте эти xml-файлы. Я уже знаю, как мы можем показать шрифт Пенджаби в андроиде. Но я должен использовать 4-5 книг в своем приложении. Так что выглядят неуместно.

Также мне нужно добавить функцию Bookmark в моем приложении. Так может ли кто-нибудь предложить мне лучший способ использовать разные книги на трех языках, где добавление функции закладки также легко.

Любая помощь приветствуется.

Храните каждую версию в качестве необработанного ресурса (в / res / raw). Получите это с помощью

public static String getRawFile(int resourceId, Resources resources) { Writer writer; try { InputStream is = resources.openRawResource(resourceId); writer = new StringWriter(); char[] buffer = new char[BUFFER_SIZE]; try { Reader reader = new BufferedReader(new InputStreamReader(is, "UTF-8")); int n; while ((n = reader.read(buffer)) != -1) { writer.write(buffer, 0, n); } } finally { is.close(); } } catch (Exception ex) { Log.e(TAG, "Unable to read raw resource!", ex); return null; } return writer.toString(); } 

Называется так:

 Resources resources = context.getResources(); String text = Utilities.getRawFile(R.raw.test_response, resources)); 

Я считаю, что лучший ответ – следовать документации по Android для поддержки нескольких языков. Вот список кодов ISO 639-1. Таким образом, ваш проект будет выглядеть примерно так:

 MyProject/ res/ values/ strings.xml values-es/ strings.xml values-pa/ strings.xml values-hi/ strings.xml 

Тогда каждый strings.xml будет иметь разные значения для каждого языка. Это будет охватывать вещи в вашем пользовательском интерфейсе и тому подобное.

Затем, основываясь на вашем вопросе, если это какой-то читатель, вы загрузите xml-файл / книгу, которая будет соответствовать языковым настройкам пользователей.

 Locale.getDefault().getDisplayLanguage();