All Projects → ElForastero → Transliterate

ElForastero / Transliterate

Licence: MIT License
Транслитерация для Laravel

Programming Languages

PHP
23972 projects - #3 most used programming language
Dockerfile
14818 projects

Projects that are alternatives of or similar to Transliterate

transliteration-php
🇺🇦 🇬🇧 🔡 🐘 PHP library for transliteration.
Stars: ✭ 34 (-29.17%)
Mutual labels:  transliteration, ukraine, transliterate
trans
National characters transcription module.
Stars: ✭ 22 (-54.17%)
Mutual labels:  transliteration, transliterate
iuliia-go
Transliterate Cyrillic → Latin in every possible way
Stars: ✭ 36 (-25%)
Mutual labels:  transliteration, russian
js-diacritic-regex
Creates the inverse of transliterated string to a regex. What? Basically, diacritic insensitiveness
Stars: ✭ 20 (-58.33%)
Mutual labels:  transliteration, transliterate
teamo-ddd-example
Implementing Domain Driven Design in PHP using Laravel
Stars: ✭ 46 (-4.17%)
Mutual labels:  laravel-framework
ds
👨‍🔬 In Russian: Обновляемая структурированная подборка бесплатных ресурсов по тематикам Data Science: курсы, книги, открытые данные, блоги и готовые решения.
Stars: ✭ 102 (+112.5%)
Mutual labels:  russian
deep-trans
Transliterating English to Hindi using Recurrent Neural Networks
Stars: ✭ 44 (-8.33%)
Mutual labels:  transliteration
laravel-crm
Free & Opensource Laravel CRM solution for SMEs and Enterprises for complete customer lifecycle management.
Stars: ✭ 927 (+1831.25%)
Mutual labels:  laravel-framework
laravel-online-migrator
Apply Laravel's database migrations with minimal disruptions using tools like Percona Online Schema Change
Stars: ✭ 43 (-10.42%)
Mutual labels:  laravel-framework
email-checker
Provides email verification on the go.
Stars: ✭ 116 (+141.67%)
Mutual labels:  laravel-framework
jikkyo-api
ニコニコ実況 過去ログ API(非公式)
Stars: ✭ 17 (-64.58%)
Mutual labels:  laravel-framework
awesome-maps-ukraine
A curated list of maps of Ukraine, ukrainian mappers and tools that they use or develop for creating and publish maps
Stars: ✭ 35 (-27.08%)
Mutual labels:  ukraine
crater
Open Source Invoicing Solution for Individuals & Businesses
Stars: ✭ 5,938 (+12270.83%)
Mutual labels:  laravel-framework
clubi
A group-oriented social media platform written in Laravel and Vue
Stars: ✭ 29 (-39.58%)
Mutual labels:  laravel-framework
RooCMS
RooCMS - This is easy and convenient content management system designed to quickly create websites.
Stars: ✭ 21 (-56.25%)
Mutual labels:  russian
LaraShop
Simple PHP shop CMS based on Laravel 5.1
Stars: ✭ 73 (+52.08%)
Mutual labels:  laravel-framework
laravel-qr-code-login
Today I will be showing you how to implement Laravel login with QRcode in a website. You can use my Laravel Starter so you can start the project in one minute .
Stars: ✭ 72 (+50%)
Mutual labels:  laravel-framework
russian-language
Russian Language Pack for Invision Community 4
Stars: ✭ 24 (-50%)
Mutual labels:  russian
spacy russian tokenizer
Custom Russian tokenizer for spaCy
Stars: ✭ 35 (-27.08%)
Mutual labels:  russian
translit
Go package for Russian text transliteration
Stars: ✭ 23 (-52.08%)
Mutual labels:  transliteration

Transliterate

GitHub GitHub release Packagist

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

Code example

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

  • Русский
    • Дефолтная
    • ГОСТ 7.79 2000
  • Украинский
    • Национальная

Системные требования

  • laravel >= 5.6
  • ext-intl

Установка

> composer require elforastero/transliterate

⚠️ Для Laravel v5 используйте ветку v2: composer require elforastero/transliterate "^2.0"

Laravel начиная с версии 5.5 не нуждается в дополнительной конфигурации благодаря механизму Package Discovery.

Если вы не используте Package Discovery, необходимо зарегистрировать Service Provider, добавив его в массив providers, конфигурационного файла app.php.

ElForastero\Transliterate\ServiceProvider::class,

Если вы хотите использовать алиас, добавьте его в массив facades в app.php.

Рекомендую в качестве алиаса использовать Transliterate, чтобы избежать конфликтов с Transliterator классом из расширения Intl.

'Transliterate' => ElForastero\Transliterate\Facade::class,

Конфигурация

Для копирования конфига transliterate.php в директорию configs выполните

> php artisan vendor:publish --provider="ElForastero\Transliterate\ServiceProvider"

Использование

Вы можете использовать фасад для транслитерации строк.

use Transliterate;

Transliterate::make('Двадцать тысяч льё под водой');
// "Dvadcat tisyach lyo pod vodoy"

Альтернативная карта транслитерации может быть передана вторым параметром.

use ElForastero\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.

Например, можно автоматечески убирать конечные пробелы.

ElForastero\Transliterate\Transformer::register(\Closure::fromCallable('trim')),

Или дополнительно приводить строки к нижнему регистру.

ElForastero\Transliterate\Transformer::register(\Closure::fromCallable('trim')),
ElForastero\Transliterate\Transformer::register(\Closure::fromCallable('strtolower')),

Будьте внимательны, поскольку трансформеры применяются при каждом вызове Transliterator::make.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].