### Manual Installation for Laravel 9+ Source: https://github.com/kerigard/laravel-lang-ru/blob/master/README.md Manually install language resources for Laravel 9 and above. This method downloads and extracts only the language files to the project root. ```bash curl https://codeload.github.com/Kerigard/laravel-lang-ru/tar.gz/master -L -o lang.tgz && tar --strip=1 -xvzf lang.tgz laravel-lang-ru-master/lang && rm lang.tgz ``` -------------------------------- ### Install Laravel Lang Ru via Composer Source: https://context7.com/kerigard/laravel-lang-ru/llms.txt Use Composer to install the package. After installation, publish the language files to your project's lang/ directory. ```bash composer require kerigard/laravel-lang-ru php artisan vendor:publish --provider="Kerigard\LaravelLangRu\LangRuServiceProvider" ``` -------------------------------- ### Manual Installation for Laravel <= 8 Source: https://github.com/kerigard/laravel-lang-ru/blob/master/README.md Manually install language resources for Laravel versions 8 and below. This method downloads and extracts language files into the 'resources' directory. ```bash curl https://codeload.github.com/Kerigard/laravel-lang-ru/tar.gz/master -L -o lang.tgz && tar --strip=1 -xvzf lang.tgz -C resources laravel-lang-ru-master/lang && rm lang.tgz ``` -------------------------------- ### Example Output of lang:translate Command Source: https://context7.com/kerigard/laravel-lang-ru/llms.txt This is an example of the output you might see when the `lang:translate` command successfully processes language files. ```bash INFO Перевод языковых ресурсов с en на ru. en/auth.php .............................................................. DONE en/pagination.php ........................................................ DONE en/passwords.php ......................................................... DONE en/validation.php ........................................................ DONE ``` -------------------------------- ### Manual Installation of Language Files Source: https://context7.com/kerigard/laravel-lang-ru/llms.txt Manually download and extract language files if not using Composer. The extraction path differs for Laravel 9+ and older versions. ```bash # Laravel 9 and above (lang/ directory in project root) curl https://codeload.github.com/Kerigard/laravel-lang-ru/tar.gz/master \ -L -o lang.tgz \ && tar --strip=1 -xvzf lang.tgz laravel-lang-ru-master/lang \ && rm lang.tgz # Laravel 8 and below (lang/ directory inside resources/) curl https://codeload.github.com/Kerigard/laravel-lang-ru/tar.gz/master \ -L -o lang.tgz \ && tar --strip=1 -xvzf lang.tgz -C resources laravel-lang-ru-master/lang \ && rm lang.tgz ``` -------------------------------- ### Install Laravel Lang Ru via Composer Source: https://github.com/kerigard/laravel-lang-ru/blob/master/README.md Use this command to install the package using Composer. This is the standard method for adding the package to your Laravel project. ```bash composer require kerigard/laravel-lang-ru ``` -------------------------------- ### Publish Language Resources Source: https://github.com/kerigard/laravel-lang-ru/blob/master/README.md After installation, publish the language resources using the artisan command. This makes the language files accessible for modification. ```bash php artisan vendor:publish --provider="Kerigard\LaravelLangRu\LangRuServiceProvider" ``` -------------------------------- ### Working with PHP Localization Files using PhpParser Source: https://context7.com/kerigard/laravel-lang-ru/llms.txt Use PhpParser to load, parse, modify, and serialize PHP localization files. It allows checking file existence, retrieving all items, checking for keys, setting/updating values, removing keys, and getting the raw PHP code. ```php use Kerigard\LaravelLangRu\Services\PhpParser; use Kerigard\LaravelLangRu\Services\JsonParser; // --- PhpParser: работа с PHP-файлами локализации --- $parser = new PhpParser(); $parser->load(lang_path('en/auth.php'))->parse(); // Проверить существование файла var_dump($parser->exists()); // bool(true) // Получить все элементы $items = $parser->items(); // [ // 'failed' => ['type' => 'array_item', 'key' => 'failed', 'value' => 'These credentials do not match our records.', ...], // 'password' => ['type' => 'array_item', 'key' => 'password', 'value' => 'The provided password is incorrect.', ...], // 'throttle' => ['type' => 'array_item', 'key' => 'throttle', 'value' => 'Too many login attempts. ...', ...], // ] // Проверить наличие ключа var_dump($parser->has('failed')); // bool(true) var_dump($parser->has('missing')); // bool(false) // Установить / изменить значение $token = $items['failed']; $parser->set($token, 'Неверное имя пользователя или пароль.'); // Удалить ключ $parser->remove('throttle'); // Получить итоговый PHP-код файла (с сохранением форматирования) $code = $parser->raw(); file_put_contents(lang_path('ru/auth.php'), $code); ``` -------------------------------- ### Configure App Locale Source: https://context7.com/kerigard/laravel-lang-ru/llms.txt Set the application's locale to 'ru' in the config/app.php file to use the Russian language. ```php // config/app.php return [ 'locale' => 'ru', 'fallback_locale' => 'en', // ... ]; ``` -------------------------------- ### General UI Strings (JSON Translations) Source: https://context7.com/kerigard/laravel-lang-ru/llms.txt Stores general UI strings for direct key translation, used in Blade templates, emails, and UI components. Supports placeholder replacement. ```php // В Blade-шаблоне или PHP-коде: echo __('Login'); // → "Войти" echo __('Logout'); // → "Выйти" echo __('Register'); // → "Регистрация" echo __('Hello!'); // → "Здравствуйте!" echo __('Forbidden'); // → "Запрещено" echo __('Not Found'); // → "Не найдено" echo __('Server Error'); // → "Ошибка сервера" echo __('Unauthorized'); // → "Не авторизован" echo __('Whoops!'); // → "Упс!" echo __('All rights reserved.'); // → "Все права защищены." // Строки с плейсхолдерами: echo __('This password reset link will expire in :count minutes.', ['count' => 60]); // → "Срок действия ссылки для сброса пароля истекает через 60 минут." echo __('Go to page :page', ['page' => 3]); // → "Перейти к 3-й странице" ``` -------------------------------- ### Registering LangRuServiceProvider and Using Parsers/Translators Source: https://context7.com/kerigard/laravel-lang-ru/llms.txt The LangRuServiceProvider is automatically discovered. If auto-discovery is disabled, register it manually in config/app.php. It registers the translation loader and binds Parser and Translator services. Parsers can be retrieved for specific extensions, and the Translator can be obtained for translation tasks. ```php // Сервис-провайдер регистрируется автоматически через auto-discovery. // Ручная регистрация (если auto-discovery отключён): // config/app.php 'providers' => [ // ... Kerigard\LaravelLangRu\LangRuServiceProvider::class, ], // Привязки, регистрируемые провайдером (доступны только в консоли): // Parser::class -> PhpParser (по умолчанию) или JsonParser (для .json) // Translator::class -> GoogleTranslator // Получение парсера через контейнер: $phpParser = app(Parser::class, ['extension' => 'php']); $jsonParser = app(Parser::class, ['extension' => 'json']); // Получение переводчика: $translator = app(Translator::class); $translator->setSource('en'); $translator->setTarget('fr'); echo $translator->translate('Hello!'); // "Bonjour!" // Публикуемые файлы (тег 'laravel-lang-ru'): // lang/ru/auth.php // lang/ru/pagination.php // lang/ru/passwords.php // lang/ru/validation.php // lang/ru.json ``` -------------------------------- ### Translate Language Files with Artisan Command Source: https://context7.com/kerigard/laravel-lang-ru/llms.txt Use the `lang:translate` Artisan command to automatically translate language files using Google Translate API. Specify source and target languages, and use filters for specific files or directories. ```bash # Translate all files from English to Russian (default) php artisan lang:translate # Specify custom source and target languages php artisan lang:translate --source=en --target=de # Translate specific files or directories php artisan lang:translate --source=en --target=ru \ --filter=en/validation.php \ --filter=en/auth.php # Translate files from lang/vendor/ php artisan lang:translate --filter=vendor/my-package # Translate a JSON file php artisan lang:translate --filter=en.json ``` -------------------------------- ### Translate Language Resources Automatically Source: https://github.com/kerigard/laravel-lang-ru/blob/master/README.md Run this artisan command to automatically translate all language files from English to Russian. This is the default behavior. ```bash php artisan lang:translate ``` -------------------------------- ### Translate Specific Language Resources Source: https://github.com/kerigard/laravel-lang-ru/blob/master/README.md Use this command to specify the source and target languages, as well as filter specific files or directories for translation. This allows for more granular control over the translation process. ```bash php artisan lang:translate --source=en --target=ru --filter=en/validation.php --filter=vendor/my-package ``` -------------------------------- ### Using Russian Authentication Translations Source: https://context7.com/kerigard/laravel-lang-ru/llms.txt Demonstrates how to use the translated authentication strings in your Laravel application. Ensure the locale is set to 'ru'. ```php // Использование в контроллере или middleware use Illuminate\Support\Facades\Lang; // Неверные учётные данные echo __('auth.failed'); // → "Неверное имя пользователя или пароль." // Неверный пароль (при подтверждении) echo __('auth.password'); // → "Некорректный пароль." // Слишком много попыток входа echo __('auth.throttle', ['seconds' => 30]); // → "Слишком много попыток входа. Пожалуйста, попробуйте еще раз через 30 секунд." ``` -------------------------------- ### Working with JSON Localization Files using JsonParser Source: https://context7.com/kerigard/laravel-lang-ru/llms.txt Use JsonParser to load, parse, modify, and serialize JSON localization files. It allows loading files, parsing them into items, setting values for specific keys, and retrieving the raw JSON output. ```php // --- JsonParser: работа с JSON-файлами локализации --- $jsonParser = new JsonParser(); $jsonParser->load(lang_path('en.json'))->parse(); $items = $jsonParser->items(); // ['Login' => ['type' => 'item', 'key' => 'Login', 'value' => 'Login', ...], ...] $token = $items['Login']; $jsonParser->set($token, 'Войти'); // Результат сериализуется с JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT echo $jsonParser->raw(); // { // "Login": "Войти", // ... // } ``` -------------------------------- ### Direct Usage of GoogleTranslator for Translations Source: https://context7.com/kerigard/laravel-lang-ru/llms.txt Instantiate GoogleTranslator directly to perform translations. Set the source and target languages before calling the translate method. Placeholders are automatically handled. ```php use Kerigard\LaravelLangRu\Services\GoogleTranslator; use Kerigard\LaravelLangRu\Contracts\Translator; // Прямое использование: $translator = new GoogleTranslator(); $translator->setSource('en'); $translator->setTarget('ru'); echo $translator->getSource(); // "en" echo $translator->getTarget(); // "ru" $result = $translator->translate('The provided password is incorrect.'); // → "Неверный пароль." // Плейсхолдеры (:attribute, :seconds и т.д.) защищены командой Translate // от искажения при переводе — они оборачиваются в теги до перевода // и восстанавливаются после. ``` -------------------------------- ### Replacing Translator Implementation via Service Provider Source: https://context7.com/kerigard/laravel-lang-ru/llms.txt Customize the translator implementation by binding a custom class to the Translator contract in your AppServiceProvider. This allows using alternative translation services like DeepL or Yandex. ```php // Подмена реализации переводчика через сервис-провайдер: // app/Providers/AppServiceProvider.php use Illuminate\Support\ServiceProvider; use Kerigard\LaravelLangRu\Contracts\Translator; class AppServiceProvider extends ServiceProvider { public function register(): void { $this->app->bind(Translator::class, function () { return new MyCustomTranslator(); // DeepL, Yandex и т.д. }); } } ``` -------------------------------- ### Laravel Pagination Messages (Russian) Source: https://context7.com/kerigard/laravel-lang-ru/llms.txt Defines Russian translations for pagination links. These are automatically used by Laravel's pagination components. ```php // Используется компонентами пагинации Laravel автоматически: echo __('pagination.previous'); // → "« Предыдущая" echo __('pagination.next'); // → "Следующая »" ``` -------------------------------- ### Laravel Password Reset Messages (Russian) Source: https://context7.com/kerigard/laravel-lang-ru/llms.txt Provides Russian translations for password reset functionality. These keys are used by Laravel's Password Broker. ```php // lang/ru/passwords.php содержит ключи, используемые Password Broker: echo __('passwords.reset'); // → "Ваш пароль был сброшен!" echo __('passwords.sent'); // → "Мы отправили вам ссылку для сброса пароля по электронной почте!" echo __('passwords.throttled'); // → "Пожалуйста, подождите перед повторной попыткой." echo __('passwords.token'); // → "Данный токен для сброса пароля недействителен." echo __('passwords.user'); // → "Пользователя с таким адресом электронной почты не существует." ``` -------------------------------- ### Laravel Validation Messages (Russian) Source: https://context7.com/kerigard/laravel-lang-ru/llms.txt Defines custom validation messages and attribute names for Russian locale. Use this to override default Laravel validation error messages for specific fields or rules. ```php // Автоматически используется при валидации запросов: $request->validate([ 'email' => 'required|email', 'password' => 'required|min:8|confirmed', 'age' => 'required|integer|between:18,99', 'avatar' => 'nullable|image|max:2048', ]); // При ошибке валидации сообщения возвращаются на русском: // "Поле email обязательно." // "Значение поля E-Mail адрес должно быть действительным электронным адресом." // "Количество символов в значении поля Пароль не может превышать 8." // "Изображение, указанное в поле avatar, имеет недопустимые размеры." // Переопределение сообщений для конкретных полей в lang/ru/validation.php: 'custom' => [ 'email' => [ 'required' => 'Укажите ваш электронный адрес.', 'email' => 'Введите корректный адрес электронной почты.', ], ], // Переопределение отображаемого имени атрибута: 'attributes' => [ 'email' => 'электронная почта', 'password' => 'пароль', ], // → "Поле электронная почта обязательно." // Правила с подтипами (array / file / numeric / string): // 'between.string' — для строк // 'between.numeric' — для чисел // 'between.array' — для массивов // 'between.file' — для файлов echo __('validation.between.string', ['attribute' => 'имя', 'min' => 3, 'max' => 50]); // → "Количество символов в поле имя должно быть от 3 до 50." ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.