2012-10-25 86 views
4

我想模仿谷歌的输入, 它根据正在输入的语言自动改变输入的输入方向。如何识别用户是否以RTL或LTR语言输入?

如何才能辨别,如果用户在RTL或LTR语言打字? 它必须跨浏览器工作。

+0

什么让你觉得谷歌改变输入打字的方向吗?相反,输入的字符根据其固有的方向性自动显示为从左到右或从右到左。请解释你想在这里更改的内容。 –

+0

假设您不知道用户将使用哪种语言输入。我希望输入的方向与用户的语言相同。如果他输入英文,输入的方向将是LTR。但是,如果他输入阿拉伯语,输入的方向将是RTL。 – Alvarez

+0

当我在文本输入框中输入拉丁字母时,它们从左到右显示。对于阿拉伯字母,视觉顺序相反。这可以从任何体面的实施中预料到。那么问题是什么? –

回答

0

如果你想模仿谷歌的方向性识别算法,则需要聆听输入的变化,识别插入字符是否是RTL或LTR(或中性)并相应地更改文本框的dir=""属性。

谷歌的算法,在大多数情况下,似乎在计算多数有力的大字字符串中,并从该决定方向性。如果您键入RTL将上下文切换到RTL,如果你再切换到LTR为同款,它可能再次切换的背景下,如果LTR这些字符的数量超过了RTL的。

为了比较,Facebook的使用方向算法为好,但它是略有不同 - 它似乎使用第一坚强的性格决定的段落,而不是总人数的方向。谷歌也似乎有几种算法;谷歌环聊的行为与谷歌环聊的行为有所不同,这与谷歌搜索的输入方式不同,在这些事情中,大多数情况下没有“正确的“或‘错误’的答案,而是什么适合你的使用情况)

无论选择何种方法来实现,首先需要确定哪些用户正在键入。有几种方法可以做到这一点,但我想提出以下建议:

可以创建监听到用户的输入JavaScript方法,采用上述正则表达式来识别其坚强的性格被使用(无论是第一个字符或通过计算它们,取其最适合您的使用和规模) - 并相应地改变文本框的dir=""属性。

确保你以后显示与正确对准提交的文字,所以你可能不得不使用的东西来存储您挑选的排列或当你使其重新认识。无论如何,不​​要忘记显示器也需要相同的dir=""属性。

相关问题