2012-02-13 149 views
14

我需要創建一個包含多種語言(包括RTL(從右到左)語言的字符串的應用程序。我想知道什麼是RTL(從右到左)的當前狀態,在Android(即使在最新的API)的支持,例如:Android上的Right To Left語言的狀態是什麼?

  1. 是它可以動態/靜態檢查設備的當前語言RTL類型?我知道可以獲取當前的語言環境,但是我需要更一般的方法來檢查當前的語言是否爲RTL。例如,對於英語和法語,它將返回false,但對於阿拉伯語和希伯來語,它將返回true。

  2. 是有可能設置一個佈局自動鏡像爲RTL語言? 例如,如果linearLayout(具有水平方向)的子1-> 2,則它將具有2 < -1,並且將在左側創建新的子項。

  3. 是有一個限定詞添加到資源的文件夾,將處理所有RTL語言?例如,「res/layout」用於LTR(從左到右),「res/layout-rtl」用於RTL語言。

  4. 看來eclipse的內容輔助爲linearLayout提供了「android:layoutDirection」,爲textView提供了「android:textDirection」,但是當我選擇它們時,我得到一個編譯錯誤,它無法識別它們。我也無法在互聯網上找到關於這些屬性的更多信息。他們是什麼意思,我怎麼不能使用它們?

編輯:似乎Android 4.1在RTL語言上有一些改進。不知道它們是什麼以及我可以在哪裏閱讀它們。

+1

RTL - >從右到左。 LTR - >從左到右。這可能是顯而易見的,但可能不適合所有人:) – 2012-02-13 15:05:35

+0

感謝您修改我的問題。 – 2012-02-13 15:24:59

+0

#3的答案是「否」。 – CommonsWare 2012-02-13 16:09:15

回答

4

與Android 4.2開始,有知道關於特殊屬性的RTL一些更多的信息,甚至還有爲RTL語言自動鏡像佈局的選項。

更多資訊可瀏覽:here

希望他們能夠添加更多關於如何使用它的信息,包括一些示例代碼,甚至可能還有關於此問題的支持庫。


編輯:現在他們已經增加了如何使用新的RTL支持一些更多的信息:雖然我不知道

http://android-developers.blogspot.co.il/2013/03/native-rtl-support-in-android-42.html?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+blogspot/hsDu+(Android+Developers+Blog)

如果NIKUD(希伯來相當於元音,但他們是可選的,它們顯示爲點而不是字母)現在工作正常。

編輯:現在我已經測試過它,它的實際工作真的很好(這是聖經的第一章):

enter image description here

0
  1. android中的RTL支持在ICS中得到了一些改進。 在此之前,在薑餅,它是設備特定的,例如,每個製造商/運營商實現這造成了應用

  2. 它不是需要一些inconsistancy自己比迪解決方案。好BiDi知道鏡像文本視圖和canvas.draw首字母utf8代碼的文本..這讓你不必擔心BiDi和更多關於你的應用程序。只是不要用力重力和文本視圖填充母

  3. 沒有,是預選賽阿拉伯/希伯來語等。在這裏你可以改變任何事,但良好的設備實現不需要任何東西,但翻譯。

  4. ,如果你已經安裝了一些舊的或設備特定的API,它可能發生。因此它不會在整個android範圍內工作,並導致編譯錯誤。 但也有更多的理由爲它發生......


一般來說,我建議你忽略了比迪問題的原因有兩個:

  1. 人們通常使用RTL國家有設備處理它很不錯,如果不是那麼它的問題。

  2. 固定的比迪一臺設備會造成其他設備不符合。這是一年前完成的事情..幸運的是開發商終於不再做這樣的錯誤

+0

1.well現在它在所有設備上都不好?如果每個公司都有自己的實施方案,我怎麼能依靠運營商和製造商? 2.你的意思是不需要的?如果(例如)我在另一個圖標旁邊的文本旁邊有一個圖標,則該順序應該顛倒。由於文字在某些設備上不對齊,翻譯不夠。 4.它做了什麼,我該如何使用它? – 2012-04-23 21:37:07

+0

1.不是那麼多。 ICS有內置的支持。許多薑餅也有它。很少有黑客存在解決它.2。在這種情況下,你應該建立在rtl語言下單獨的佈局。4.我不知道我 – skoperst 2012-04-23 22:16:14

+0

1.really?你如何在ICS上使用它?根據你寫的內容,資源沒有這樣的東西。 – 2012-04-23 23:13:13