`
zhanglfat
  • 浏览: 91670 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android实战技巧:为从右向左语言定义复杂字串

 
阅读更多
 

 

    我们所使用的语言,无论是中文还是英语,都是从左向右读的(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>
分享到:
评论

相关推荐

    Android笔记之:深入为从右向左语言定义复杂字串的详解

    总结来说,在为从右向左的语言定义复杂字符串时,开发者需要注意以下几点: 1. 纯RTL语言的字符串不需要额外处理,直接翻译即可。 2. 对于包含LTR元素的RTL字符串,需要在LTR元素的前后使用RLM标记来保持正确的显示...

    android字串导出工具

    导出android代码内的字串到excel,便于翻译。 导出后的格式是: key 英文 待翻译的语言 导出时,会自动忽略不必要的字串。比如注释里带not translate,或者属性里有translate="false"的字串。 ------------ ./string...

    android字串的拆分问题

    本文将深入探讨“android字串的拆分问题”,并提供相关的解决方案。 字符串拆分是处理文本数据时的一项基本操作。在Java和Android中,我们可以使用多种方法来拆分字符串。主要的方法有两种:`split()` 和 `Pattern....

    Android String Tool(Android工程的字串工具)

    1)扫描Android工程中所有的指定语言的字串资源(xml文件)并生成字串表stringTable.xls 2)修改字串表stringTable.xls后,可以生成xml文件放在./out/Project目录中,并且保持改资源文件在原始工程中的目录结构。 3...

    《Python语言》PPT 第12章 项目实战:数据可视化.pptx

    定义横轴标度并以横轴标度为自变量定义纵轴功能函数;通过 figure() 函数指定图像的长宽比;通过 plot() 函数绘制功能函数;通过 plt 的属性函数设置图像属性;通过 show() 函数显示图像。 Pyplot 模块介绍 Pyplot...

    Android实现语言国际化

    9. **考虑右-to-left(RTL)语言**:对于如阿拉伯语和希伯来语这样的RTL语言,需要在布局中启用`android:supportsRtl="true"`,并使用`start`和`end`代替`left`和`right`属性来确保正确的布局方向。 通过以上步骤,...

    2050:例5.20字串包含.cpp

    对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串。 给定两个字符串s1 和s2 ,要求判定其中一个字符串是否是另一字符串通过若干次循环移位后的新字符串的子串。例如CDAA...

    Android带参字串的写法注意事项

    在Android开发中,带参字串是一种常见的需求,用于动态地生成包含参数的字符串信息。在本文中,作者通过个人项目经验,阐述了带参字串的写法注意事项,尤其是在处理带有百分比符号的字符串时容易出现的问题。以下是...

    论文研究-基于外部排序的字串左右熵快速计算方法.pdf

    对于某长度字串计算熵,首先按长度提取语料中的全部字串,使用外部排序和归并获取字串的出现频率,然后分别剔除首尾字符构造待计算字串的频率提供文件,最后使用文件记录频率对比来计算右熵和左熵。分析和实验表明,...

    缅甸语字串_Settings模块

    对于非英语国家和地区,Android支持多语言环境,以便为用户提供本地化的用户体验。在本案例中,我们关注的是针对缅甸语的Settings模块字串。 缅甸语,也被称为缅文,是缅甸的官方语言,其文字系统具有复杂的字符和...

    自然语言处理实验 字串处理

    实验 字串处理 1)汉字字频统计 1. 给出前100个汉字高频字的频率统计结果; 2. 分别给出前1、20、100、600、2000、3000汉字的字频总和; 3. 计算汉字的熵值; 2)英文词频统计 1. 给出前100个高频单词的频率统计结果...

    js中几种去掉字串左右空格的方法.docx

    在JavaScript中,去除字符串(字串)左右两侧的空格是常见的操作,特别是在处理用户输入或者格式化文本时。以下是一些不同的方法,包括原始的递归方式和使用正则表达式的方式: 1. **recon 的思路**: - `ltrim()`...

    Autohotkey之热字串和自动扩展

    如果需要为同一个缩写词分开定义为两个只有大小写格式不同的热字串,那么请在其中一个热字串的前两个冒号之间插入空格,用以和另外一个热字串区分。 Autohotkey 的热字串和自动扩展功能可以极大地提高用户的工作...

    字串替换器 1.05 版

    "字串替换器 1.05 版"是一款实用工具,主要用于文本处理中的字符串查找与替换操作。在日常的编程、文档编辑或数据分析中,我们经常需要批量修改大量文本中的特定字符或短语,这款软件就是为了满足这种需求而设计的。...

    Android应用获取设备序列号的方法

    一般情况下,序列号都是厂商自己定义的一串字串,字串中的某几位会有不同含义,比如厂商的ID、出厂时间、机器类型等,另外,运营商定义的序列号几乎也是遵循这样的规律。 出厂时序列号的烧录 这个是烧录程序做的事情。...

    数据库字串批量替换工具

    数据库字符串批量替换工具是一款专为解决数据库数据被恶意篡改问题而设计的实用软件。它主要针对黑客在数据库中添加病毒代码或JavaScript代码等恶意内容的情况,帮助用户快速、便捷地进行数据修复,无需编写复杂的...

    Android 带小数点的字符串格式化为固定位数

    在Android开发中,数据的格式化是一个非常重要的环节,特别是在显示数字时,为了保持数据的一致性和可读性,我们经常需要将带有小数点的字符串格式化为固定位数。这个工具类就是为了满足这样的需求而设计的。下面将...

    html转C语言字串或数组工具

    在IT行业中,编程语言间的转换有时是必要的,特别是在处理数据或者接口交互时。"html转C语言字串或数组工具"就是这样的一个实用程序,它能够帮助C语言开发者有效地处理HTML内容,将其转化为C语言可读的字符串或数组...

    sdk-android:使用Applanga Android本地化SDK,您可以自动化android应用翻译过程。 您无需将android字符串资源文件转换为excel或xliff。 整合SDK之后,您可以无线翻译Android应用程式,并管理资讯主页中的所有字串。 Android应用程序本地化从未如此简单!

    Applanga Android本地化SDK是一款强大的工具,专为简化Android应用程序的本地化流程而设计。通过集成这个SDK,开发者可以实现自动化翻译,避免了传统方式中需要手动将Android字符串资源文件(如`strings.xml`)转换...

Global site tag (gtag.js) - Google Analytics