前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >人型自走输入法

人型自走输入法

作者头像
imba久期
发布2022-09-23 20:35:13
2430
发布2022-09-23 20:35:13
举报
文章被收录于专栏:imba久期的杂货铺

今儿来介绍一个网页程序。

程序名:人型自走输入法

开发语言:JavaScript

开发框架:jQuery

开发总用时:≈30小时

我做的程序一般都是自己需要的(这个不算,只是一时兴起,最初做这个的契机是因为沪江小D(一个多语言翻译、查词等功能的网站),沪江小D的日语查询页面是自带一个点选输入日语的输入法:

(网站改版了,之前也差不多是这样的

于是根据这个做出来第一版:

支持点选输入、平假名片假名切换的功能,其实还是比较简陋的。好处就是可以在除沪江小D之外的其他网页中使用(也不是所有的

后来想这种点选的还是不太人性化,用户体验不是很好,于是重新构思,就这样用键盘输入的雏形就出来了。

最后出现了这个可以用键盘输入的:

(这个是2.1版本,有汉字的判断,但数据库还是只有5个へんたい,23333

姑且先说一下这个汉字吧,输入法程序本体,从汉字的查询到显示已经基本OK(流程:最后一次输入后等待1秒向服务器发送当前输入的假名→检索数据库→返回结果→服务器端分页→返回数据到输入法程序→输入法程序本体再次进行分页→显示),但是在服务器端添加汉字的问题,和动词、形容词等词的查询问题一直没解决(其实是好久没维护了,基本弃坑了),之前想过几种方案,像完全匹配法,输入いきます,就根据数据库存的いきます返回相应的带汉字的“行きます”。

就像目前数据库里的へんたい们一样:

但这种方法会在数据库存入大量相同的词,否决。毕竟能用程序判断的还是用程序判断解决比较好。

还一个方案是过滤掉像する、します、できる等等这种“送り仮名”,然后只把前面的部分进行数据库匹配。送り仮名是汉字词尾的假名(する这种不太确定是不是送り仮名,反正就是“汉字词尾的假名”这个意思),一般很多一样的。比如送り这个词,り就叫做送り仮名。

但之后又被我否决了。因为:

每次输入后都进行一遍匹配可能比较吃力。

这个方案在“data.imba97.cn/Jpinput”进行了演示

这个问题一直没解决因为懒 233。不过应该可以用模糊查询解决的,得到一串假名后先从第一个假名判断返回汉字,再判断前两个有没有汉字,再判断前三个依此类推这样应该可以,以后试。(先弃坑算了 2333。

(将来如果可以想直接用API解决

至于服务器端分页跟输入法程序本体分页,最开始是只有输入法程序本体分页的,流程是:输入后等待1秒向服务器发送假名→向数据库查询并返回5条数据→显示并储存到输入法程序本体的数组内。储存在本地的好处不用多说,因为避免再次请求服务器(返回上一页的时候。

之后改为服务器分页和输入法程序本体分页两种分页模式,每次向服务器请求,一次性查询并返回25条数据,然后储存在输入法程序本体的数组内,再通过输入法本体的分页把它分为5个词/页(上面演示图里是3个词/页。如果输入法本体的翻页翻到最后一页,再次向服务器发送请求,返回服务器分页第二页的数据,依此类推。这样又减少了请求次数,而且还加快了翻页流畅度,毕竟不用每翻一页都请求一次。

其他的一些功能。

版本检测功能:

确认的话直接跳转到安装程序的网页(写作安装读作拖进收藏夹

取消的话也可以正常使用之前版本的

自动加载jQuery功能:

然后展示一下部分代码(装X日常

设置参数:

日语假名储存数组的构造:

这里的数组是根据按键的ID,比如か,按键的话是K和A

K的ID是75,A的是65,所以就用imba97_K[75][65]来储存

然后用0和1判断是否有可以直接输出的假名,0是有,1是无

无的情况下输出k这个字符

分页:

注释还是比较清晰的,上面说了就不说明了

程序定位及优点:

  1. 安装、使用方法简单,程序轻巧。
  2. 给电脑没有日语输入法和不想切来切去的人使用。
  3. 能满足普通的输入和假名、单词的查询(在百度等网站使用。

缺点也很明显:

  1. 只能在PC端的浏览器中使用。
  2. 版本更新和汉字输入涉及到跨域连接服务器,暂不支持https协议的网站(但可以进行假名的输入,输入法服务器网站如果也是https应该可以解决这一问题。但,没钱。
  3. 不支持屏蔽加载外部JavaScript的网站。

开发视频了解一下,流程还是很全的

有兴趣的可以研究一下(虽然不是高端的东西

※查看https://www.bilibili.com/video/av8521956/是视频

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-06-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 imba久期 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档