当前位置

更新和添加Emoji 13.1内容

James Qi 在 2020年11月23日 - 18:34 提交

今年上半年疫情在家办公期间发现Emoji有了更新,于是进行了Emoji 13.0内容的更新和添加,而下半年9月份就有了Emoji 13.1版本推出,我们拖后了一段时间,11月份才进行补充和更新,现在把一些数据来源及更新工作进行记录,以便以后再有新版本出的时候能更顺利地进行补充和更新。

一、Emoji v13.1数据来源

主要数据来源无疑就是Unicode官方网站:

我主要处理的是3个数据文件,编写3个PHP程序来分别处理:

  • 13.1.emoji-test.txt.php(处理emoji-test.txt,添加新Emoji,设置qualified_status,程序后面添加循环检查table_all中内容,删除不符合这个文件的属性数据)
  • 13.1.emoji-zwj-sequences.txt.php(处理emoji-zwj-sequences.txt,处理5个分类下的零宽连接符序列,程序最后部分也加入循环对比table_all中内容的程序)
  • 13.1.emoji-sequences.txt.php(处理emoji-sequences.txt,设置type_field,程序最后添加循环table_all中所有符号,检查 type_field 是否相同,不同的进行修改)

二、CLDR通用语言仓库翻译导入

这3个文件处理后就新增了几百个v13.1的Emoji,但只有英文名称,下一步就是添加翻译:

  • 下载cldr common v38.0,解压上传annotations和annotationsDerived下的各种语言xml文件到服务器
  • 修改annotations-import.php 来读取 cldr-common-38.0/annotations中的文件,对比short name和keywords,导入翻译内容
  • 修改annotations-derived-import.php 来读取 cldr-common-38.0/annotationsDerived中的文件,对比short name和keywords,导入翻译内容
  • 新建fill-more-emoji.php,整合以前的temp.php, temp2.php, temp3.php, temp4.php,批量补充更多缺少short name和keywords翻译的emoji(带有FE0F的Emoji没有short_name就尝试用不带FE0F的Emoji的short_name来补充、带有FE0F的Emoji没有keywords就尝试用不带FE0F的Emoji的keywords来补充)
  • 其它杂项:人工检查缺少short name和keywords的Emoji、补充emoji_all表有而各语言表缺少一个emoji'😶‍🌫️'、keywords有超过256个字符的情况修改字段长度等

三、其它检查和处理:

  • 编写check_emoji_all_update.php,检查emoji_all表中内容,符合设定条件的进行更新操作,用上述程序检查emoji version,主要是qualified_status不是fully-qualified和component的emoji_version设置为空,解决大部分问题,少部分问题逐个版本核对、人工修改,最后完全正确
  • 修改上述程序,用于unicode version的核对,但发现无法核对匹配,因为有些非emoji字符只在我们网站(例如:多米诺骨牌、扑克牌、麻将、中国象棋、国际象棋等),有些非emoji字符只在其它emoji网站(例如:White Circle with Dot Right、Cross Pommee等),而且其它emoji网站的unicode version列表页面中的emoji有些是带有fe0f的,最后放弃核对,只纠正、补充了少量明显问题
  • 上传emoji v13.1下载的html文件到emoji/13.1/web/下,准备用程序来进行后续处理
  • 重新排序,编写13.1.emoji-list-html-to-list-number.php,读取list.html,更新list_number,模拟可以运行了,但未实际执行,因为虽然数量上一个版本是1814,一个版本是1816,相差不大,但包含的emoji至少有几十个差异,顺序、分类也都变了,怕影响首页及各分类显示,准备14.0出来(13.1得到全面支持)的时候再更新到13.1
  • 重新分类,也是因为与13.0相差好几十个,怕影响首页及各分类显示,准备14.0出来(13.1得到全面支持)的时候再更新到13.1

四、图片获取补充

  • 运行 get-files-from-urls.php,下载html页面保存到文件
  • 运行 get-images-from-files.php,获取各个平台各个版本的emoji图片,需要时间很长,持续很多个小时运行,如果有错误、失败的,重新运行几次,直到错误、失败数量减到最小
  • 整理对比下载的各个平台目录,下属各种尺寸,再下属各个版本,找出n个平台有更新,复制到对应的网站图片显示目录中就可以,Linux下用\cp这样的命令复制(遇到同名的自动覆盖),以后可以考虑也编写一个php程序来进行复制和统计(2021-9-13补充,新增copy-images-to-web.php程序,专用于更新图片的复制、覆盖、统计等工作)

五、结果

217个Emoji v13.1的Emoji列表:https://www.emojiall.com/zh-hans/emoji-version/13.1,点击其中某个链接进入查看某个Emoji详情。

 

自由标签:

评论

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。