【问题标题】:Something like translit.net but on autohotkey类似 translit.net 但在 autohotkey 上的东西
【发布时间】:2016-07-05 13:50:46
【问题描述】:

我想写Translit.net,但要使用自动热键。所以我成功地完成了我只有一封信的部分:

:*:a::а

:*:b::б

:*:v::в

:*:g::г

:*:d::д

...

但现在我在将“shh”翻译成“щ”和其他“二对一”字符翻译时遇到了问题。当我开始输入 shh 时,我得到了 схх,但我想得到 щ。我能做什么?

我目前的想法:当我按下一个键时,它应该写下字母并将未翻译的字母添加到 3 元素数组中,并检查数组元素是否创建 shh ,ch、sh 或任何其他大于一的组合。然后我可以删除最后 3 或 2 个键入的字母并发送我需要的俄文字母。也许有人知道一种更简单的方法来做到这一点。我希望我的脚本能够像我发布的那个页面一样工作。用 C 或 C# 代替 AutoHotkey 的解决方案也会对我有所帮助。

【问题讨论】:

  • 正确的实现将实现 IME(这似乎已经完成了不止一次 - bing.com/search?q=ime+translit)。如果你想自己做,你需要显示你想要帮助的代码和你试图解决的确切问题(特别是因为根据你的描述你已经有代码工作了——“什么是更好的方法”在 SO 上很少是好的问题,除非一个从非常糟糕的方法开始,这似乎不是你的情况)
  • 这是完整代码 #SingleInstance force //这部分不起作用 :*:shh::щ :*:ja::я :*:ju::ю :*:je: :э :*:ch::ч :*:zh::ж :*:jo::ё 这部分按我的意愿工作 :*:a::а :*:b::б :*:v::в :*:g::г :*:d::д :*:e::е :*:z::з :*:i::и :*:j::й :*:k::к : *:l::л :*:m::м :*:n::н :*:o::о :*:p::п :*:r::р :*:s::с :* :t::т :*:u::у :*:f::ф :*:h::х :*:c::ц :*:y::ы :*:'::ь

标签: c# c autohotkey transliteration


【解决方案1】:

我在使用 unicode 版本的 Autohotkey 时遇到了同样的问题,但前提是文件以 UTF-8 格式保存,没有 BOM 格式。

将文件保存为 UNICODE(UCS-2,必须是 Little Endian)可以解决问题。

它也适用于带有 BOM 的 UTF-8,因此显然 autohotkey 可以自行确定字节顺序。

【讨论】:

  • 我认为你误解了一些东西。如果您有类似的代码,请编写它。谢谢
  • @nKlar 我没有。我拿了你的代码,它在答案中列出的条件下工作。你明白答案了吗?
猜你喜欢
  • 2012-09-21
  • 2021-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-31
  • 1970-01-01
  • 2011-06-16
相关资源
最近更新 更多