All emoji-data is pulled from the official Unicode Emoji lists and converted into JSON. Optionally category names and emoji descriptions can easily be translated into a target language using the Google Cloud Translation API.
Several precompiled lists can be found in the lists/
folder.
The CLI can easily be used by executing it with npx
:
npx generate-emoji-list
It will ask you about the Unicode-version, features and language of your list.
If you want the list descriptions and category names to be translated into a
non-english language you have to specify the path of a Google Application
Credentials file under the GOOGLE_APPLICATION_CREDENTIALS
environment
variable. The official documentation for that can be found
here.
The Cloud Translation API has to be active for the project you are using.
The free quota for translations should be enough for generating several lists, so you do not have to worry about costs.
The methods for generating emoji lists are available via a JavaScript API.
The createEmojiList
-method works both with Node.js and in the browser.
You can use it like the following:
// ESM
import { createEmojiList } from "generate-emoji-list";
// CJS
const { createEmojiList } = require("generate-emoji-list");
const emojiList = await createEmojiList({
unicodeVersion: "14.0",
features: { shortCodes: true },
});
The unicodeVersion
has to be one of our supported Versions of the Unicode
standard, which currently are:
type UnicodeVersion =
| "4.0"
| "5.0"
| "11.0"
| "12.0"
| "12.1"
| "13.0"
| "13.1"
| "14.0";
When the shortCodes
-feature is activated, an HTTP-Request will be made to the
GitHub Emoji API to add short codes to the
emojis (e.g. zap for ⚡️).
The translateEmojiList
-method can be used to translate an english list into a
specified language.
The Google Cloud Translation API will be used for translating the strings into
another language, so make sure you have
set up your
GOOGLE_APPLICATION_CREDENTIALS
environment variable corrently and the Cloud
Translation API is enabled for your Google Cloud project.
This method only works with Node.js, it will not work in the browser.
// ESM
import { createEmojiList, translateEmojiList } from "generate-emoji-list";
// CJS
const { createEmojiList, translateEmojiList } = require("generate-emoji-list");
const emojiList = await createEmojiList({
unicodeVersion: "14.0",
features: { shortCodes: true },
});
const germanEmojiList = await translateEmojiList({
emojiList,
targetLanguage: "de",
});
The targetLanguage
-parameter takes an
ISO-639-1 language code.