Skip to content

Commit

Permalink
Add the documentation for the new emoji-transliterator component
Browse files Browse the repository at this point in the history
  • Loading branch information
stof committed Apr 6, 2023
1 parent 95f7525 commit 5dbd3c6
Show file tree
Hide file tree
Showing 2 changed files with 65 additions and 46 deletions.
65 changes: 65 additions & 0 deletions components/emoji_transliterator.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
The EmojiTransliterator component
=================================

The EmojiTransliterator provides an implementation of :phpclass:`Transliterator` that
can convert emojis to ASCII representations.

Installation
------------

.. code-block:: terminal
$ composer require symfony/emoji-transliterator
.. include:: /components/require_autoload.rst.inc

Usage
-----

The ``EmojiTransliterator`` class provides a utility to translate emojis into
their textual representation in all languages based on the `Unicode CLDR dataset`_::

use Symfony\Component\EmojiTransliterator\EmojiTransliterator;

// describe emojis in English
$transliterator = EmojiTransliterator::create('en');
$transliterator->transliterate('Menus with 🍕 or 🍝');
// => 'Menus with pizza or spaghetti'

// describe emojis in Ukrainian
$transliterator = EmojiTransliterator::create('uk');
$transliterator->transliterate('Menus with 🍕 or 🍝');
// => 'Menus with піца or спагеті'

The ``EmojiTransliterator`` class also provides two extra catalogues: ``github``
and ``slack`` that converts any emojis to the corresponding short code in those
platforms::

use Symfony\Component\Intl\Transliterator\EmojiTransliterator;

// describe emojis in Slack short code
$transliterator = EmojiTransliterator::create('slack');
$transliterator->transliterate('Menus with 🥗 or 🧆');
// => 'Menus with :green_salad: or :falafel:'

// describe emojis in Github short code
$transliterator = EmojiTransliterator::create('github');
$transliterator->transliterate('Menus with 🥗 or 🧆');
// => 'Menus with :green_salad: or :falafel:'

The ``EmojiTransliterator`` class also provides an extra catalogues ``strip``
that removes any emojis::

use Symfony\Component\Intl\Transliterator\EmojiTransliterator;

// Strip emojis from the string
$transliterator = EmojiTransliterator::create('strip');
$transliterator->transliterate('Menus with 🥗 or 🧆');
// => 'Menus with or '

.. tip::

Combine this emoji transliterator with the :ref:`Symfony String slugger <string-slugger-emoji>`
to improve the slugs of contents that include emojis (e.g. for URLs).

.. _`Unicode CLDR dataset`: https://github.com/unicode-org/cldr
46 changes: 0 additions & 46 deletions components/intl.rst
Original file line number Diff line number Diff line change
Expand Up @@ -357,51 +357,6 @@ to catching the exception, you can also check if a given timezone ID is valid::

$isValidTimezone = Timezones::exists($timezoneId);

.. _component-intl-emoji-transliteration:

Emoji Transliteration
~~~~~~~~~~~~~~~~~~~~~

.. versionadded:: 6.2

The Emoji transliteration feature was introduced in Symfony 6.2.

The ``EmojiTransliterator`` class provides a utility to translate emojis into
their textual representation in all languages based on the `Unicode CLDR dataset`_::

use Symfony\Component\Intl\Transliterator\EmojiTransliterator;

// describe emojis in English
$transliterator = EmojiTransliterator::create('en');
$transliterator->transliterate('Menus with 🍕 or 🍝');
// => 'Menus with pizza or spaghetti'

// describe emojis in Ukrainian
$transliterator = EmojiTransliterator::create('uk');
$transliterator->transliterate('Menus with 🍕 or 🍝');
// => 'Menus with піца or спагеті'

The ``EmojiTransliterator`` class also provides two extra catalogues: ``github``
and ``slack`` that converts any emojis to the corresponding short code in those
platforms::

use Symfony\Component\Intl\Transliterator\EmojiTransliterator;

// describe emojis in Slack short code
$transliterator = EmojiTransliterator::create('slack');
$transliterator->transliterate('Menus with 🥗 or 🧆');
// => 'Menus with :green_salad: or :falafel:'

// describe emojis in Github short code
$transliterator = EmojiTransliterator::create('github');
$transliterator->transliterate('Menus with 🥗 or 🧆');
// => 'Menus with :green_salad: or :falafel:'

.. tip::

Combine this emoji transliterator with the :ref:`Symfony String slugger <string-slugger-emoji>`
to improve the slugs of contents that include emojis (e.g. for URLs).

Learn more
----------

Expand All @@ -424,4 +379,3 @@ Learn more
.. _`daylight saving time (DST)`: https://en.wikipedia.org/wiki/Daylight_saving_time
.. _`ISO 639-1 alpha-2`: https://en.wikipedia.org/wiki/ISO_639-1
.. _`ISO 639-2 alpha-3 (2T)`: https://en.wikipedia.org/wiki/ISO_639-2
.. _`Unicode CLDR dataset`: https://github.com/unicode-org/cldr

0 comments on commit 5dbd3c6

Please sign in to comment.