2017-04-13 74 views
1

我試圖通過將strings.xml文件添加到值目錄並翻譯所有英文字符串來將我的android應用程序從英語翻譯成希伯來語。如何在Android的strings.xml中將換行符添加到rtl字符串中?

我的問題是,添加換行符(\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's字符串直接複製到strings.xml文件來解決此問題,而不是直接在Android Studio中編寫它。

+1

他們是相同的'\ n'他們不工作? – Vyacheslav

回答

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

+0

先試着用英語,它不起作用 - 這兩個句子剛剛合併。 – milyoav

+0

@milyoav我在圖片中得到了這個結果,所以它打破了界限,它如何與你無關,你試圖做什麼? –

+0

我不明白。您的圖片顯示的是代碼,而不是屏幕本身。當我添加
標記而不是\ n它被解釋爲空格而不是換行符時... – milyoav

0

使用blackslash不是forwardslash。 「\ n」

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

我已經在使用反斜槓... – milyoav

+0

請嘗試此代碼。這是工作 – hammad

+0

你把「\ n」在一個字符串中的xml文件,它被視爲「\\ n」 所以,我做了:text = text.Replace(「\\ n」,「\ n」) ; (文本取自resX文件) 然後我在屏幕上得到一行跳轉 – hammad

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

你能解釋一下這段代碼嗎? – rjdkolb

+0

使用Html。 FromHtml()可以將字符串格式轉換爲Html代碼,這將在\ n中起作用。 –

+0

謝謝,你可以編輯問題並添加信息。 – rjdkolb

1

有一個很酷的方式做到這一點,在運行時。

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

%s是一個字符串,來代替。

然後通過資源獲得String word = String.format(Locale.English,getString(R.string.title),"\n"); 它會加載字符串,然後替換%s\n

+0

它動態地格式化任何字符串 – Remario

+0

哦,選擇你自己的語言環境的方式 – Remario

+0

謝謝@Remario但我正在尋找一種方法來在strings.xml文件中做到這一點。 – milyoav

1

我有同樣的問題。爲了解決這個問題,只需複製粘貼「\ n」到你的字符串和我一樣:

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

確保您支持RTL在你的清單和TextView的兩者。

我無法複製粘貼我的字符串到這裏(它混淆了字符串)。我相信如果您嘗試將其複製粘貼到您的項目中,它會再次混淆,因此請勿將我的字符串複製粘貼到您的項目中。這是字符串在我的項目中的樣子。

相關問題