Skip to content

适配了 简体中文 的 emoji.json 数据源,与 unicode 联盟的数据源保持同步并版本对齐

License

Notifications You must be signed in to change notification settings

angelofan/emoji-json

Repository files navigation

emoji-json

介绍

此仓库有适配了 简体中文 的 emoji.json 数据源,与 unicode 联盟的数据源保持同步并版本对齐。

另外 此仓库也包含了 emoji.json 的数据转换器,包括了所有从 源数据 转换的程序。

emoji.json 的数据中增加一些字段的 i18n 属性,并在 i18n 属性中添加简体中文翻译。

如何与 unicode 联盟的数据源保持同步并版本对齐

正如上文所说,此仓库是基于 emoji.json 数据进行二次转换处理的。emoji.json 是基于 unicode 联盟发布的的数据源 emoji-test.txt 进行 json 处理的。

所以此仓库视为是间接地与 unicode 联盟的数据源进行同步,并且导出的数据与其版本号保持一致。

功能描述

抽取可供本地化的字段

首先,程序会将 groupsubgroupname 三个属性值提取出来,以供本地化翻译和校验。

翻译完成之后,在界面中进行设置,设置完成之后,即可进行数据导出操作。

转换后的数据导出

原数据为数组扁平式结构,此程序提供 2 种转换结果:

  • 数组结构:扁平式 emoji 列表,与原数据结构一致,增加了 group_i18nsubgroup_i18nname_i18n 三个属性,用于存储本地化语言。删除了 category 属性,以为这个属性全部是由 groupsubgroup 拼接而成的。
  • 树形结构:嵌套式 emoji 列表,基于数组结构按照 groupsubgroup 对数据进行了树形嵌套处理。嵌套后的数据结构为三层树形结构,外面两层都是 [name: '', name_i18n: [], list: []] 结构, list 是内层数组。第一层是 主分组,第二层是 次分组,第三层是 emoji 列表。最内层的 emoji 列表删除了用于分组的 groupsubgroup 及其 i18n 属性。

树形结构 是基于 数组结构 的运行结果进行二次处理的,所以在运行 树形结构 之前,要先运行一次 数组结构。

数据结构

数组结构 emoji-array.json

[
    // 表情数据
    {
        "codes": "1F600", // Unicode
        "char": "😀", // 字符
        "name": "grinning face", // 表情名称
        "group": "Smileys & Emotion", // 一级分组名称
        "subgroup": "face-smiling", // 二级分组名称
        "group_i18n": {
            // 一级分组名称的本地化数据
            "en": "Smileys & Emotion",
            "zh_CN": "表情与情感"
        },
        "subgroup_i18n": {
            // 二级分组名称的本地化数据
            "en": "face-smiling",
            "zh_CN": "脸-微笑"
        },
        "name_i18n": {
            // 表情名称的本地化数据
            "en": "grinning face",
            "zh_CN": "笑脸"
        }
    },
    ...
]

树形结构 emoji-tree.json

[
    // 一级分组
    {
        "name": "Smileys & Emotion", // 一级分组名称
        "name_i18n": {
            // 一级分组的本地化数据
            "en": "Smileys & Emotion",
            "zh_CN": "表情与情感"
        },
        "list": [
            // 二级分组
            {
                "name": "face-smiling", // 二级分组名称
                "name_i18n": {
                    // 二级分组的本地化数据
                    "en": "face-smiling",
                    "zh_CN": "脸-微笑"
                },
                "list": [
                    // 表情数据
                    {
                        "codes": "1F600", // Unicode
                        "char": "😀", // 字符
                        "name": "grinning face", // 表情名称
                        "name_i18n": {
                            // 表情名称的本地化数据
                            "en": "grinning face",
                            "zh_CN": "笑脸"
                        }
                    },
                    ...
                ]
            },
            ...
        ]
    },
    ...
]

使用说明

使用 npm 安装

npm install @angelofana/emoji-json
// 数组结构 emoji-array
var emoji_array = require('emoji-json/emoji-array.json');
console.log(emoji_array);

// 树形结构 emoji-tree
var emoji_tree = require('emoji-json/emoji-tree.json');
console.log(emoji_tree);

使用 CDN 版本

依赖 jQuery 1.0 以上版本

<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script>
    // 数组结构 emoji-array
    var emoji_array = $.ajax({url:"https://unpkg.com/@angelofana/emoji-json@15.1.1/emoji-array.json",async:false}).responseJSON;
    console.log(emoji_array);

    // 树形结构 emoji-tree
    var emoji_tree = $.ajax({url:"https://unpkg.com/@angelofana/emoji-json@15.1.1/emoji-tree.json",async:false}).responseJSON;
    console.log(emoji_tree);
</script>

私有部署

emoji-array.jsonemoji-tree.json 粘贴到自己的项目中

自己动手进行转换

  1. 克隆仓库 git clone https://github.com/angelofan/emoji-json.git
  2. 运行 index.html
  3. F12 打开控制台,查看提示并完成转换

开源许可证

MIT

About

适配了 简体中文 的 emoji.json 数据源,与 unicode 联盟的数据源保持同步并版本对齐

Resources

License

Stars

Watchers

Forks

Languages