Lingo.dev + .php (Laravel)
Lingo.dev CLI переводит языковые файлы PHP на основе массивов, сохраняя синтаксис, соглашения Laravel и форматирование, специфичное для PHP. CLI точно сохраняет синтаксис и форматирование массивов PHP, работает безупречно с системой локализации Laravel, сохраняет переменные :name
и :count
, обрабатывает многомерные массивы и совместим с любым PHP-фреймворком, использующим массивы.
Быстрая настройка
Настройка для языковых файлов массивов PHP:
{
"locale": {
"source": "en",
"targets": ["es", "fr", "de"]
},
"buckets": {
"php": {
"include": ["resources/lang/[locale]/*.php"]
}
}
}
Напоминание: [locale]
— это заполнитель, который должен оставаться в конфигурации буквально, так как он заменяется на фактический локаль во время выполнения CLI.
Перевод массивов PHP
npx lingo.dev@latest i18n
Сохраняет синтаксис PHP, структуру массивов и специфические для Laravel соглашения при переводе строковых значений.
Структура массивов PHP
Простые языковые массивы
<?php
return [
'welcome' => 'Добро пожаловать в наше приложение',
'dashboard' => 'Панель управления',
'settings' => 'Настройки',
'logout' => 'Выйти',
];
Поддержка вложенных массивов
<?php
return [
'auth' => [
'login' => 'Войти',
'register' => 'Зарегистрироваться',
'forgot_password' => 'Забыли пароль?',
'reset_password' => 'Сбросить пароль',
],
'validation' => [
'required' => 'Это поле обязательно для заполнения',
'email' => 'Пожалуйста, введите действительный адрес электронной почты',
],
];
Поддержка заполнителей Laravel
<?php
return [
'welcome_user' => 'С возвращением, :name!',
'items_count' => 'У вас :count товаров в корзине',
'validation' => [
'min' => ':attribute должен содержать не менее :min символов',
],
];
Интеграция с фреймворком
Хелперы перевода Laravel
Работает безупречно с функциями перевода Laravel:
__('messages.welcome')
trans('auth.login')
@lang('validation.required')
Поддержка множественного числа
<?php
return [
'items' => 'item|items',
'minutes' => '{0} no minutes|{1} one minute|[2,*] :count minutes',
];
Расширенная конфигурация
Несколько директорий для языков
"php": {
"include": [
"resources/lang/[locale]/*.php",
"lang/[locale]/**/*.php"
]
}
Блокировка ключей конфигурации
"php": {
"include": ["resources/lang/[locale]/*.php"],
"lockedKeys": ["app.timezone", "app.locale", "app.fallback_locale"]
}