我们所使用的语言,无论是中文还是英语,都是从左向右读的(Left-To-Right),因此我们已经十分习惯了从左向右读(Left-To-Right)。一旦遇到了从右向左读的(Right-To-Left),便会十分的不习惯,甚至比见到火星文还难受。光看着就令人难受了,但更让人崩溃的是,还要为应用去定义Arabic语言的字串,也就是为应用添加Arabic语言支持,不但要查看大量的Arabic天书,还要处理一些复杂的字串。
对于Right-To-Left的语言,最理想就是以下二种Case,它不需要特别的处理,只要按照翻译把翻译写入字串资源文件即可:
都是Arabic的时候,无需特殊处理,翻译即可
左侧有英文/数字,但右侧是Arabic(也就是说,在Left-To-Right语言中右侧有英语/数字)
若全都是英语或数字,也不需要处理,让其保留Left-To-Right的特点
例如:
view plain
<?xml version="1.0" encoding="utf-8"?>
<!-- file values-ar/strings.xml -->
<string name="import">استورد</string>
<string name="import_vcard">استورد vCard</string>
运行后结果就是:استورد
vCard استورد
但是对于某些情况,就需要做特殊的处理:
中间有英语或数字的
如果不做处理,数字会被变成Right-To-Left,但事实上是需要Left-To-Right的,如:
view plain
<?xml version="1.0" encoding="utf-8"?>
<!-- file values-ar/strings.xml -->
<string name="send_msg_to">استورد%sتور</string>
使用时替换后,会变成:استورد68001استورد,而需要的是:استورد10086استورد,这里就需要在英语或数字两端加上
Left-To-Right overrider \u202D和\u202C,如:
view plain
<?xml version="1.0" encoding="utf-8"?>
<!-- file values-ar/strings.xml -->
<string name="send_msg_to">استورد\u202d%s\u202cتور</string>
右侧有英语或数字(Left-To-Right中在最左侧)
有xliff本地化替换的情况
The solution is to add Right to Left Marker(RLM) before and after English or digits
view plain
<?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>
发表评论
-
ActivityGroup 替代tabActivity
2013-12-26 16:43 2537转载自http://www.cnblogs.com/answe ... -
Android 5种方式存储数据:
2013-05-08 17:17 1096Android 提供了5种方式存储数据: --使用Shared ... -
widget的设计与应用
2013-02-02 16:27 9281.AppWidgetProviderInfo对象 ... -
Android系统主题设计和实现
2012-12-11 14:09 1479转自:http://www.apkbus.com/ ... -
Android实现DES对字符串加密
2012-09-02 14:15 17154import java.io.Unsuppor ... -
android综合
2012-08-02 16:25 15871 ,手动设置横竖屏 TestA ... -
onSaveInstanceState
2012-08-01 17:40 716@Override //存储 public void onSa ... -
处理多个Activity
2012-07-20 09:40 705public class LifecycleManager ... -
bitmap 和drawable 互相转换
2012-07-19 13:37 646// bitmap to drawable; Drawable ... -
设置壁纸的三种方法
2012-07-19 11:46 25221111111111111111111111111111111 ... -
sqlite数据库处理时间问题 和 日期时间函数
2012-06-27 10:36 22838首先,sqlite数据库在时间 ... -
app缓存管理
2012-06-27 10:25 1051无论大型或小型应用, ... -
Uri、UriMatcher、ContentUris类使用介绍&&Android应用间数据共享之ContentProvider
2012-05-24 15:50 4423Android应用开发中我们会经常用Uri进行数据的处理,下面 ... -
getWidth()为0
2012-04-12 10:06 2006一般在刚开始开发android时,会犯一个错误,即在View的 ... -
自定义View 及使用
2012-04-05 14:08 768可能是一直都在做Web的富客户端开发的缘故吧,在接触Andro ... -
搜索手机联系人所有字段
2012-03-28 15:54 1441想取手机联系人的有效字段,但是苦于找不到API表示的字段变量, ... -
Andoid2.X各字段意义
2012-03-28 14:59 1249ContactsContract.Contacts.TIMES ... -
SMS发送流程
2012-03-20 18:07 1255发短信流程: 1 afterTextChanged{mWork ... -
Android telephony MMS 学习笔记
2012-03-14 13:32 2882转载 http://blog.csdn.net/tjy1985 ... -
Android_Mms源代码接受短信流程
2012-03-14 13:27 971短信来了之后framework会发送广播 “android.p ...
相关推荐
总结来说,在为从右向左的语言定义复杂字符串时,开发者需要注意以下几点: 1. 纯RTL语言的字符串不需要额外处理,直接翻译即可。 2. 对于包含LTR元素的RTL字符串,需要在LTR元素的前后使用RLM标记来保持正确的显示...
导出android代码内的字串到excel,便于翻译。 导出后的格式是: key 英文 待翻译的语言 导出时,会自动忽略不必要的字串。比如注释里带not translate,或者属性里有translate="false"的字串。 ------------ ./string...
本文将深入探讨“android字串的拆分问题”,并提供相关的解决方案。 字符串拆分是处理文本数据时的一项基本操作。在Java和Android中,我们可以使用多种方法来拆分字符串。主要的方法有两种:`split()` 和 `Pattern....
1)扫描Android工程中所有的指定语言的字串资源(xml文件)并生成字串表stringTable.xls 2)修改字串表stringTable.xls后,可以生成xml文件放在./out/Project目录中,并且保持改资源文件在原始工程中的目录结构。 3...
定义横轴标度并以横轴标度为自变量定义纵轴功能函数;通过 figure() 函数指定图像的长宽比;通过 plot() 函数绘制功能函数;通过 plt 的属性函数设置图像属性;通过 show() 函数显示图像。 Pyplot 模块介绍 Pyplot...
9. **考虑右-to-left(RTL)语言**:对于如阿拉伯语和希伯来语这样的RTL语言,需要在布局中启用`android:supportsRtl="true"`,并使用`start`和`end`代替`left`和`right`属性来确保正确的布局方向。 通过以上步骤,...
对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串。 给定两个字符串s1 和s2 ,要求判定其中一个字符串是否是另一字符串通过若干次循环移位后的新字符串的子串。例如CDAA...
在Android开发中,带参字串是一种常见的需求,用于动态地生成包含参数的字符串信息。在本文中,作者通过个人项目经验,阐述了带参字串的写法注意事项,尤其是在处理带有百分比符号的字符串时容易出现的问题。以下是...
对于某长度字串计算熵,首先按长度提取语料中的全部字串,使用外部排序和归并获取字串的出现频率,然后分别剔除首尾字符构造待计算字串的频率提供文件,最后使用文件记录频率对比来计算右熵和左熵。分析和实验表明,...
对于非英语国家和地区,Android支持多语言环境,以便为用户提供本地化的用户体验。在本案例中,我们关注的是针对缅甸语的Settings模块字串。 缅甸语,也被称为缅文,是缅甸的官方语言,其文字系统具有复杂的字符和...
实验 字串处理 1)汉字字频统计 1. 给出前100个汉字高频字的频率统计结果; 2. 分别给出前1、20、100、600、2000、3000汉字的字频总和; 3. 计算汉字的熵值; 2)英文词频统计 1. 给出前100个高频单词的频率统计结果...
在JavaScript中,去除字符串(字串)左右两侧的空格是常见的操作,特别是在处理用户输入或者格式化文本时。以下是一些不同的方法,包括原始的递归方式和使用正则表达式的方式: 1. **recon 的思路**: - `ltrim()`...
如果需要为同一个缩写词分开定义为两个只有大小写格式不同的热字串,那么请在其中一个热字串的前两个冒号之间插入空格,用以和另外一个热字串区分。 Autohotkey 的热字串和自动扩展功能可以极大地提高用户的工作...
"字串替换器 1.05 版"是一款实用工具,主要用于文本处理中的字符串查找与替换操作。在日常的编程、文档编辑或数据分析中,我们经常需要批量修改大量文本中的特定字符或短语,这款软件就是为了满足这种需求而设计的。...
一般情况下,序列号都是厂商自己定义的一串字串,字串中的某几位会有不同含义,比如厂商的ID、出厂时间、机器类型等,另外,运营商定义的序列号几乎也是遵循这样的规律。 出厂时序列号的烧录 这个是烧录程序做的事情。...
数据库字符串批量替换工具是一款专为解决数据库数据被恶意篡改问题而设计的实用软件。它主要针对黑客在数据库中添加病毒代码或JavaScript代码等恶意内容的情况,帮助用户快速、便捷地进行数据修复,无需编写复杂的...
在Android开发中,数据的格式化是一个非常重要的环节,特别是在显示数字时,为了保持数据的一致性和可读性,我们经常需要将带有小数点的字符串格式化为固定位数。这个工具类就是为了满足这样的需求而设计的。下面将...
在IT行业中,编程语言间的转换有时是必要的,特别是在处理数据或者接口交互时。"html转C语言字串或数组工具"就是这样的一个实用程序,它能够帮助C语言开发者有效地处理HTML内容,将其转化为C语言可读的字符串或数组...
Applanga Android本地化SDK是一款强大的工具,专为简化Android应用程序的本地化流程而设计。通过集成这个SDK,开发者可以实现自动化翻译,避免了传统方式中需要手动将Android字符串资源文件(如`strings.xml`)转换...