国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

Android筆記之:深入為從右向左語言定義復雜字串的詳解

2020-04-11 12:21:15
字體:
來源:轉載
供稿:網(wǎng)友
我們所使用的語言,無論是中文還是英語,都是從左向右讀的(Left-To-Right),因此我們已經(jīng)十分習慣了從左向右讀(Left-To-Right)。一旦遇到了從右向左讀的(Right-To-Left),便會十分的不習慣,甚至比見到火星文還難受。光看著就令人難受了,但更讓人崩潰的是,還要為應用去定義Arabic語言的字串,也就是為應用添加Arabic語言支持,不但要查看大量的Arabic天書,還要處理一些復雜的字串。
對于Right-To-Left的語言,最理想就是以下二種Case,它不需要特別的處理,只要按照翻譯把翻譯寫入字串資源文件即可:
1.都是Arabic的時候,無需特殊處理,翻譯即可
2.左側有英文/數(shù)字,但右側是Arabic(也就是說,在Left-To-Right語言中右側有英語/數(shù)字)
3.若全都是英語或數(shù)字,也不需要處理,讓其保留Left-To-Right的特點
例如:
復制代碼 代碼如下:

<?xml version="1.0" encoding="utf-8"?>
    <!-- file values-ar/strings.xml -->
    <string name="import">استورد</string>
    <string name="import_vcard">استورد vCard</string>

運行后結果就是:استورد
vCard استورد
但是對于某些情況,就需要做特殊的處理:
1.中間有英語或數(shù)字的
如果不做處理,數(shù)字會被變成Right-To-Left,但事實上是需要Left-To-Right的,如:
復制代碼 代碼如下:

<?xml version="1.0" encoding="utf-8"?>
    <!-- file values-ar/strings.xml -->
    <string name="send_msg_to">استورد%sتور</string>

使用時替換后,會變成:استورد68001استورد,而需要的是:استورد10086استورد,這里就需要在英語或數(shù)字兩端加上
Left-To-Right overrider /u202D和/u202C,如:
復制代碼 代碼如下:

<?xml version="1.0" encoding="utf-8"?>
    <!-- file values-ar/strings.xml -->
    <string name="send_msg_to">استورد/u202d%s/u202cتور</string>

1.右側有英語或數(shù)字(Left-To-Right中在最左側)
2.有xliff本地化替換的情況
The solution is to add Right to Left Marker(RLM) before and after English or digits
復制代碼 代碼如下:

<?xml version="1.0" encoding="utf-8"?>
    <!-- file values-ar/strings.xml -->
    <string name="send_msg_to">send استورد</string>
    <string name="send_msg_to">/u200fsend استورد/u200f</string>
    <string name="send_msg_to">/u200fsend <xliff:g id="number">/u200f%1$d</xliff:g>استورد</string>

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 河源市| 无棣县| 静海县| 新密市| 富顺县| 道真| 忻城县| 常州市| 万全县| 衡东县| 龙胜| 洪湖市| 青神县| 波密县| 宁河县| 仁布县| 上杭县| 陆川县| 阳西县| 苏尼特右旗| 博乐市| 桂林市| 鹿泉市| 扶沟县| 武强县| 兰考县| 乌拉特中旗| 商丘市| 山阴县| 浏阳市| 溧阳市| 营口市| 平南县| 都江堰市| 和静县| 南皮县| 焦作市| 安乡县| 尚义县| 沈阳市| 沈阳市|