{"id":14975324,"url":"https://github.com/elforastero/transliterate","last_synced_at":"2025-04-12T21:34:29.899Z","repository":{"id":8266670,"uuid":"57454009","full_name":"ElForastero/Transliterate","owner":"ElForastero","description":"Транслитерация для Laravel","archived":false,"fork":false,"pushed_at":"2025-02-28T16:42:07.000Z","size":276,"stargazers_count":55,"open_issues_count":0,"forks_count":24,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-04T01:09:59.221Z","etag":null,"topics":["gost","gost2000","laravel","laravel-framework","php","russian","transliterate","transliterate-russian","transliteration","ukraine"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ElForastero.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-04-30T17:29:25.000Z","updated_at":"2025-02-28T16:37:01.000Z","dependencies_parsed_at":"2024-09-11T10:56:24.042Z","dependency_job_id":"dfb3afe6-4f0f-4817-bbba-764f10be5c4b","html_url":"https://github.com/ElForastero/Transliterate","commit_stats":{"total_commits":56,"total_committers":6,"mean_commits":9.333333333333334,"dds":0.1785714285714286,"last_synced_commit":"fdc9af46e8be83e8d1adcfd1183e78f941732efe"},"previous_names":[],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElForastero%2FTransliterate","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElForastero%2FTransliterate/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElForastero%2FTransliterate/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ElForastero%2FTransliterate/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ElForastero","download_url":"https://codeload.github.com/ElForastero/Transliterate/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247103307,"owners_count":20884023,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gost","gost2000","laravel","laravel-framework","php","russian","transliterate","transliterate-russian","transliteration","ukraine"],"created_at":"2024-09-24T13:51:52.389Z","updated_at":"2025-04-04T01:10:17.762Z","avatar_url":"https://github.com/ElForastero.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Transliterate\n\n![GitHub](https://img.shields.io/github/license/mashape/apistatus.svg)\n![GitHub release](https://img.shields.io/github/release/elforastero/transliterate.svg)\n![Packagist](https://img.shields.io/packagist/dt/elforastero/transliterate.svg)\n\nНебольшой пакет для транслитерации кириллицы с возможностью создания своих собственных карт транслитерации.\n\n![Code example](example.png)\n\n- [Предустановленные карты](#Предустановленные-карты)\n- [Системные требования](#Системные-требования)\n- [Установка](#Установка)\n- [Конфигурация](#Конфигурация)\n- [Использование](#Использование)\n- [Создание карт транслитерации](#Создание-карт-транслитерации)\n- [Создание трансформеров](#Создание-трансформеров)\n\n## Предустановленные карты\n\n- Русский\n    - Дефолтная\n    - ГОСТ 7.79 2000\n- Украинский\n    - Национальная\n\n\n## Системные требования\n- laravel \u003e= 5.6\n- ext-intl\n\n## Установка\n```\n\u003e composer require elforastero/transliterate\n```\n\n\u003e ⚠️ Для Laravel v5 используйте ветку v2: `composer require elforastero/transliterate \"^2.0\"`\n\nLaravel начиная с версии *5.5* не нуждается в дополнительной конфигурации благодаря механизму Package Discovery.\n\nЕсли вы не используте Package Discovery, необходимо зарегистрировать `Service Provider`, добавив его в массив `providers`, конфигурационного файла `app.php`.\n\n```php\nElForastero\\Transliterate\\ServiceProvider::class,\n```\n\nЕсли вы хотите использовать алиас, добавьте его в массив `facades` в `app.php`.\n\nРекомендую в качестве алиаса использовать `Transliterate`, чтобы избежать конфликтов с Transliterator классом из расширения Intl.\n\n```php\n'Transliterate' =\u003e ElForastero\\Transliterate\\Facade::class,\n```\n\n## Конфигурация\n\nДля копирования конфига `transliterate.php` в директорию `configs` выполните\n\n```\n\u003e php artisan vendor:publish --provider=\"ElForastero\\Transliterate\\ServiceProvider\"\n```\n\n## Использование\n\nВы можете использовать фасад для транслитерации строк.\n\n```php\nuse Transliterate;\n\nTransliterate::make('Двадцать тысяч льё под водой');\n// \"Dvadcat tisyach lyo pod vodoy\"\n```\n\nАльтернативная карта транслитерации может быть передана вторым параметром.\n\n```php\nuse ElForastero\\Transliterate\\Transliterator;\n\n$transliterator = new Transliterator(Map::LANG_RU, Map::GOST_7_79_2000);\n$transliterator-\u003emake('Двадцать тысяч льё под водой');\n// \"Dvadcat` ty'syach l`yo pod vodoj\"\n```\n\n## Генерация URL\n\nМетод `slugify` генерирует URL, убирая из строки все знаки препинания и заменяя пробелы на \"-\".\n\n```php\nTransliterate::slugify('Съешь еще этих мягких французских булок, да выпей чаю!');\n// sesh-eshhe-etih-myagkih-francuzskih-bulok-da-vipey-chayu\n```\n\n## Создание карт транслитерации\n\nКаждая карта представляет собой ассоциативный массив с символами подлежащими замене в качестве ключей, и значениями на которые они будут заменены.\n\nКарта создается в виде отдельного файла с возвращаемым массивом:\n\n```php\n// /resources/maps/ua/ukraine.php\n\nreturn [\n    'ї' =\u003e 'i',\n    'і' =\u003e 'i',\n    'є' =\u003e 'ie',\n];\n```\n\nДобавьте путь к созданной карте в массив `maps`, конфига `transliterate.php`:\n\n```php\n'ua' =\u003e [\n    'ukraine' =\u003e dirname(__DIR__) . '/resources/maps/ua/ukraine.php',\n]\n```\n\nПосле этого карту можно использовать.\n\n```php\n$transliterator = new Transliterator('ua', 'ukraine');\n$transliterator-\u003emake('Ваша транслітерація');\n```\n\n## Создание трансформеров\n\nТрансформеры - функции которые будут автоматически применены к результату транслитерации. Полезно если вам необходимо каждый раз производить одни и те же действия с транслитерируемой строкой. Регистрируется трансформер в массиве `transformers`.\n\nНапример, можно автоматечески убирать конечные пробелы.\n\n```php\nElForastero\\Transliterate\\Transformer::register(\\Closure::fromCallable('trim')),\n```\n\nИли дополнительно приводить строки к нижнему регистру.\n\n```php\nElForastero\\Transliterate\\Transformer::register(\\Closure::fromCallable('trim')),\nElForastero\\Transliterate\\Transformer::register(\\Closure::fromCallable('strtolower')),\n```\n\n\u003e Будьте внимательны, поскольку трансформеры применяются при каждом вызове `Transliterator::make`.\n\n### Разработка\n\nДля прогона PHPUnit тестов можно воспользоваться лежащим в корне Dockerfile:\n\n```bash\ndocker-compose up --build\n\n...\nphp_1  | Runtime:       PHP 8.0.22\nphp_1  | Configuration: /srv/app/phpunit.xml\nphp_1  |\nphp_1  | .....                                                               5 / 5 (100%)\nphp_1  |\nphp_1  | Time: 00:00.959, Memory: 14.00 MB\nphp_1  |\nphp_1  | OK (5 tests, 6 assertions)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felforastero%2Ftransliterate","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felforastero%2Ftransliterate","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felforastero%2Ftransliterate/lists"}