Я пытаюсь создать приложение со встроенной локализацией, но я хочу, чтобы я мог создать веб-ссылку в тексте, URL-адрес которого определяется в другом месте (для простоты обслуживания).
Итак, у меня есть ссылки в res / values / strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
...
<string name="link1">http://some.link.com</string>
<string name="link2">http://some.link2.com</string>
</resources>
и мой локализованный текст в res / values-en-rGB / strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
...
<string name="sampleText">Sample text\nMore text and link1\nMore text and link2.</string>
</resources>
Я не проверял этот бит, но из раздела локализации на developer.android.com говорится, что этот подход к сокращению дублирования контента должен работать, хотя я не уверен, какую папку мне следует поставить итальянский, например. Это было бы в 'res / values-it-rIT / strings.xml'? Предположим, у меня есть и другие языки.
Я ищу способ взять базовый локализованный 'sampleText' и вставить свои html-ссылки, и заставить их работать при нажатии. До сих пор я пробовал два подхода:
1
Поместить некоторое форматирование в 'sampleText' (% s):
<string name="sampleText">Sample text\nMore text and <a href="%s">link1</a>\nMore text and <a href="%s">link2</a>.</string>
, а затем обрабатывать текст следующим образом:
TextView tv = (TextView) findViewById(R.id.textHolder);
tv.setText(getResources().getString(R.string.sampleText, getResources().getString(R.string.link1), getResources().getString(R.string.link2)));
Но это не сработало, когда я щелкаю ссылку, даже если текст ссылки помещается в правильные места.
2, я пытался использовать Linkify, но маршрут с регулярными выражениями может быть сложным, так как я смотрю на поддержку нелатинских языков. Я попытался поместить пользовательский тег XML вокруг текста ссылки, а затем сделать что-то вроде этого:
Pattern wordMatcher = Pattern.compile("<span1>.*</span1>");
String viewURL = "content://" + getResources().getString(R.string.someLink);
Linkify.addLinks(tv, wordMatcher , viewURL );
Но это тоже не сработало.
Итак, я хотел бы знать, есть ли способ динамического добавления нескольких URL-адресов в разные разделы одного и того же текста, которые будут ссылаться на веб-контент?