承接 victord11/transliterate 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

victord11/transliterate

Composer 安装命令:

composer require victord11/transliterate

包简介

Transliteration package for laravel

README 文档

README

GitHub GitHub release Packagist

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

Code example

Предустановленные карты

  • Русский
    • Дефолтная
    • ГОСТ 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.

统计信息

  • 总下载量: 10.53k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 24
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-06-10

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固