2011-12-27 51 views
0

我有一個應用程序讀取一些字符串,並顯示它們在一些UILabels,但這些字符串不是從一種語言,所以我需要能夠設置對齊如果該字符串來自RTL語言,則標籤的右邊爲正,否則爲左邊。指定一個字符串的語言的方向,並正確顯示它

那麼是否有直接的方法來實現這一點,如果不是從字符串中獲取語言方向的最佳方式。 我正在考慮檢查字符串的前X個字符,看看LTR和RTL字符的較大百分比是根據它設置標籤的對齊方式。這是一個很好的解決方案,如果是這樣的話,我可以在哪裏找到一張表,顯示屬於LTR字符的unicode以及RTL的屬性。

回答

0

在具有適當的RTL支持的程序中,您不需要爲任何簡單文本(如單詞和空格)設置方向。預期程序將應用字符本身的屬性,如字符代碼標準中所定義的。

如果一段文本作爲一個單元被渲染爲包含標點字符和/或LTR和RTL字母的混合,則應該使用控制字符或更高的協議級別來設置方向。我認爲你不應該在這方面做啓發式的研究;相反,總體方向應該是由信息提供者(例如,作者,翻譯者)決定並且與文本一起存儲的文本項目的屬性。在軟件本地化中,文本的一組本地化值通常具有一種語言,並且總體方向應作爲數據集的一部分存儲或從語言中推斷出來。

請注意,書寫方向也應該影響總體佈局方向(例如,表格列應從右向左運行RTL語言)和文本對齊。

+0

其實我並不擔心文本本身的方向,我的意思是我沒有輸出文本的問題,而我遇到的問題是LTR語言的對齊原因,默認對齊方式是左邊的但對於RTL應用程序來說,應該爲可可觸摸框架中的UILabels和UITextView手動指定。但是對於實際的文本,左對齊的標籤是正確的,無論是LTR還是RTL。我確實需要使設計更好,這就是爲什麼我需要知道語言的方向。感謝您的答覆。 – Mousa 2011-12-27 17:35:05

相關問題