【问题标题】:Specifying the direction of the language of a string, and displaying it right指定字符串语言的方向,并正确显示
【发布时间】:2012-01-28 12:59:10
【问题描述】:

我有一个应用程序可以读取一些字符串并在一些 UILabel 中显示它们,但是这些字符串不是来自一种语言,所以如果字符串来自 RTL 语言,我需要能够将标签的对齐方式设置为正确,否则离开。

那么有没有一种直接的方法来实现这一点,如果没有,那么从字符串中获取语言方向的最佳方法是什么。 我正在考虑检查字符串的前 X 个字符,并查看 LTR 和 RTL 字符的较大百分比以根据它设置标签的对齐方式。这是一个好的解决方案吗?如果是这样,我在哪里可以找到一个表格,显示哪些是属于 LTR 字符的 unicode 以及哪些属于 RTL。

【问题讨论】:

    标签: ios cocoa-touch unicode right-to-left


    【解决方案1】:

    在具有适当 RTL 支持的程序中,您无需为任何简单文本(例如单词和空格)设置方向。程序应应用字符本身的属性,如字符代码标准中所定义的那样。

    如果要作为一个单元呈现的一段文本包含标点符号和/或 LTR 和 RTL 字母的混合,则应使用控制字符或更高的协议级别设置方向。我认为您不应该对此进行启发式分析。相反,总体方向应该是文本项的属性,由信息提供者(例如作者、翻译者)决定并与文本一起存储。在软件本地化中,文本的一组本地化值通常具有一种语言,并且整体方向应作为数据集的一部分存储或从语言中推断出来。

    请注意,书写方向还应影响整体布局方向(例如,对于 RTL 语言,表格列应从右到左排列)和文本对齐方式。

    【讨论】:

    • 其实我并不担心文本本身的方向,我的意思是我的输出文本没有问题,而我确实有问题的是 LTR 语言的对齐原因默认对齐方式是左对齐,但对于 RTL 对齐方式,它是正确的,应该为 cocoa-touch 框架中的 UILabel 和 UITextViews 手动指定。但至于实际文本,无论是 LTR 还是 RTL,它在左对齐标签上都是正确的。我确实需要让设计更好,这就是为什么我需要知道语言的方向。感谢您的回复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-29
    • 2016-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多