如何在Android的strings.xml中为rtl字符串添加换行符?

时间:2017-04-13 10:19:16

标签: android xml line-breaks right-to-left hebrew

我正在尝试将我的Android应用程序从英语翻译成希伯来语,方法是在值目录中添加strings.xml文件并翻译所有英文字符串。

我的问题是,与我的英语\n字符串一样,在希伯来字符串中添加换行符(strings.xml)不起作用。带换行符的英文字符串示例:

<string name="no_group_instructions">You don\'t have a group yet!\n\nPlease choose whether to create a new group, or to join an existing one...</string>

如何为非英语字符串添加换行符?

修改

我最终设法使用\ n在希伯来语字符串中进行换行。 我想从右到左的写作,在Android Studio中得不到足够的支持,首先引起了这个问题。我通过将带有\ n的字符串从记事本直接复制到strings.xml文件来解决它,而不是直接在Android Studio中编写它。

5 个答案:

答案 0 :(得分:3)

我遇到了同样的问题。要解决它,只需像我一样将“\ n”复制粘贴到字符串中:

<string name="ta_tv_button_text">?היוםn\אכלתn\מה</string>

确保在清单和TextView中都支持RTL。

我无法将我的字符串复制粘贴到此处(它混合了字符串)。我相信如果您尝试将其复制粘贴到项目中,它会再次混淆,所以不要将我的字符串复制粘贴到您的项目中。这就是字符串在我的项目中的样子。

答案 1 :(得分:1)

在运行时,有一种很酷的方法可以做到这一点。

 <string name="title">Testing%sNew Line, stand back!</string>
  

%s是一个字符串,然后被替换。

然后通过资源String word = String.format(Locale.English,getString(R.string.title),"\n")获取; 它将加载字符串,然后用%s

替换\n

答案 2 :(得分:0)

您必须使用<br />来破解xml中的行而不是\n,例如:

<string name="no_group_instructions">You don\'t have a group yet!
<br/><br/>Please choose whether to create a new group, or to join an existing one...
</string>

Result

答案 3 :(得分:0)

使用黑色斜杠而不是前锋。 “\ n” 个

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="title">Hello\nWorld!</string>
</resources>

答案 4 :(得分:0)

  String formattedText = getString(R.string.no_group_instructions); 
Spanned result = Html.fromHtml(formattedText); 
view.setText(result);