victord11/transliterate
Transliterate
Небольшой пакет для транслитерации кириллицы с возможностью создания своих собственных карт транслитерации.

- Предустановленные карты
- Системные требования
- Установка
- Конфигурация
- Использование
- Создание карт транслитерации
- Создание трансформеров
Предустановленные карты
- Русский
- Дефолтная
- ГОСТ 7.79 2000
- Украинский
- Национальная
Системные требования
- laravel >= 5.6
Установка
> composer require victord11/transliterate
⚠️ Для Laravel v5 используйте ветку v3:
composer require victord11/transliterate "^3.0"
⚠️ Для Laravel v6 используйте ветку v4:
composer require victord11/transliterate "^4.0"
⚠️ Для Laravel v7 используйте ветку v5:
composer require victord11/transliterate "^5.0"
⚠️ Для Laravel v8,v9,v10,v11, v12 используйте ветку v6:
composer require victord11/transliterate "^6.0"
Laravel начиная с версии 5.5 не нуждается в дополнительной конфигурации благодаря механизму Package Discovery.
Если вы не используте Package Discovery, необходимо зарегистрировать Service Provider, добавив его в массив providers, конфигурационного файла app.php.
VictoRD11\Transliterate\ServiceProvider::class,
Если вы хотите использовать алиас, добавьте его в массив facades в app.php.
Рекомендую в качестве алиаса использовать Transliterate, чтобы избежать конфликтов с Transliterator классом из расширения Intl.
'Transliterate' => VictoRD11\Transliterate\Facade::class,
Конфигурация
Для копирования конфига transliterate.php в директорию configs выполните
> php artisan vendor:publish --provider="VictoRD11\Transliterate\ServiceProvider"
Использование
Вы можете использовать фасад для транслитерации строк.
use Transliterate;
Transliterate::make('Двадцать тысяч льё под водой');
// "Dvadcat tisyach lyo pod vodoy"
Альтернативная карта транслитерации может быть передана вторым параметром.
use VictoRD11\Transliterate\Transliterator;
$transliterator = new Transliterator(Map::LANG_RU, Map::GOST_7_79_2000);
$transliterator->make('Двадцать тысяч льё под водой');
// "Dvadcat` ty'syach l`yo pod vodoj"
Генерация URL
Метод slugify генерирует URL, убирая из строки все знаки препинания и заменяя пробелы на "-".
Transliterate::slugify('Съешь еще этих мягких французских булок, да выпей чаю!');
// sesh-eshhe-etih-myagkih-francuzskih-bulok-da-vipey-chayu
Создание карт транслитерации
Каждая карта представляет собой ассоциативный массив с символами подлежащими замене в качестве ключей, и значениями на которые они будут заменены.
Карта создается в виде отдельного файла с возвращаемым массивом:
// /resources/maps/uk/ukraine.php
return [
'ї' => 'i',
'і' => 'i',
'є' => 'ie',
];
Добавьте путь к созданной карте в массив maps, конфига transliterate.php:
'uk' => [
'ukraine' => dirname(__DIR__) . '/resources/maps/uk/ukraine.php',
]
После этого карту можно использовать.
$transliterator = new Transliterator('uk', 'ukraine');
$transliterator->make('Ваша транслітерація');
Создание трансформеров
Трансформеры - функции которые будут автоматически применены к результату транслитерации. Полезно если вам необходимо каждый раз производить одни и те же действия с транслитерируемой строкой. Регистрируется трансформер в массиве transformers.
Например, можно автоматечески убирать конечные пробелы.
VictoRD11\Transliterate\Transformer::register(\Closure::fromCallable('trim')),
Или дополнительно приводить строки к нижнему регистру.
VictoRD11\Transliterate\Transformer::register(\Closure::fromCallable('trim')),
VictoRD11\Transliterate\Transformer::register(\Closure::fromCallable('strtolower')),
Будьте внимательны, поскольку трансформеры применяются при каждом вызове
Transliterator::make.
Related Packages
Powerful PHP database abstraction layer (DBAL) with many features for database s...
Laravel Serializable Closure provides an easy and secure way to serialize closur...
Cli error handling for console/command-line PHP applications.
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| 6.5.0 | ^8.1 | ^7.0| | MIT | |
| 6.4.0 | ^8.1 | ^7.0| | MIT | |
| 6.3.0 | ^8.0 | ^7.0| | MIT | |
| 6.2.0 | ^7.3| | ^7.0| | MIT | |
| 6.1.0 | ^7.3| | ^7.0| | MIT | |
| 6.0.0 | ^7.4| | ^8.0 | MIT | |
| 5.0.0 | >=7.2 | ^6.0| | MIT | |
| 4.0.0 | >=7.2 | ~6 | MIT | |
| 3.0.0 | >=7.1 | ~5 | MIT | |
| 2.0.1 | >=7.1 | ~5 | MIT | |
| 2.0.0 | >=7.1 | ~5 | MIT | |
| 1.1.0 | ~5 | MIT | ||
| 1.0.0 | ~5 | MIT |