如何将英文输入法转换为波斯语(farsi)

时间:2019-04-12 08:31:12

标签: javascript angular farsi

假设我们有一个搜索输入字段。并且我们的用户有两种键盘布局(En)(Fa):

有时用户忘记更改键盘布局,
因此,而不是=> “سلام”
输入=> “ sghl”

在这种情况下,谷歌几乎可以检测到问题,并提供适当的结果。

第一,我不知道此算法的名称是什么。
我在https://searchengineland.com/how-google-instant-autocomplete-suggestions-work-62592中搜索并找到了“ Google即搜即得的自动完成功能”,但事实并非如此, 检查我的屏幕截图:https://imggmi.com/full/2019/4/12/b411bcbe08dcd1eb02a46487e836a0b2-full.png.html我写了“لخخلمث”而不是“ google”,但是google提供了正确的结果。

第二个主要问题,我在https://www.npmjs.com/package/convert-layout中发现了“转换布局”,这正是我所需要的。它是'fromEn()'函数,更改了错误的输入以更正输入,

我的项目是有角度的,所以我写:

print(min(a))
print(max(a))

我希望得到“سلام”,但返回“س`شا”,这是不正确的。
我在https://github.com/ai/convert-layout/blob/master/fa.json中检查了源,并且地图正确:

“ s”:“س”,
“ g”:“ل”,
“ h”:“ا”,
“ l”:“م”,

出什么问题了?

简单的可编辑地址:https://stackblitz.com/edit/angular-mnnsg9

2 个答案:

答案 0 :(得分:0)

我认为您不需要使用任何库。您可以编写一个简单的javascript函数并将错误的单词传递给它(例如,以您的情况为A = -4.05218922e-02 C = 2.74772524e-01 x0 = 8.69008279e+01 p = 0.997 )。此功能可以是这样的:

sghl

答案 1 :(得分:0)

我已将此代码写作个人使用。随时根据需要进行修改(您可以根据要旨here找到它):

function fixPersian(input) {
  var letters = {
    'q': 'ض',
    'w': 'ص',
    'e': 'ث',
    'r': 'ق',
    't': 'ف',
    'y': 'غ',
    'u': 'ع',
    'i': 'ه',
    'o': 'خ',
    'p': 'ح',
    '[': 'ج',
    ']': 'چ',
    'a': 'ش',
    's': 'س',
    'd': 'ی',
    'f': 'ب',
    'g': 'ل',
    'h': 'ا',
    'j': 'ت',
    'k': 'ن',
    'l': 'م',
    ';': 'ک',
    '\'': 'گ',
    'z': 'ظ',
    'x': 'ط',
    'c': 'ز',
    'v': 'ر',
    'b': 'ذ',
    'n': 'د',
    'm': 'پ',
    ',': 'و',
    'C': 'ژ',
    'H': 'آ',
    'A': 'ؤ',
    'S': 'ئ',
    'G': 'أ',
    'L': '«',
    'K': '»'
  };

  var output = '';

  for (var i = 0, il = input.length; i < il; i++) {
    output += letters[input.charAt(i)] || input.charAt(i);
  }

  return output;
}
相关问题