PHPackages                             neznaika0/codeigniter-lang-finder - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Localization &amp; i18n](/categories/localization)
4. /
5. neznaika0/codeigniter-lang-finder

ActiveLibrary[Localization &amp; i18n](/categories/localization)

neznaika0/codeigniter-lang-finder
=================================

Find the translation keys in your project

v1.0(1y ago)22[1 issues](https://github.com/neznaika0/codeigniter-lang-finder/issues)MITPHP

Since Feb 4Pushed 6mo ago1 watchersCompare

[ Source](https://github.com/neznaika0/codeigniter-lang-finder)[ Packagist](https://packagist.org/packages/neznaika0/codeigniter-lang-finder)[ RSS](/packages/neznaika0-codeigniter-lang-finder/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (7)Versions (3)Used By (0)

Языковые переводы для CodeIgniter 4
===================================

[](#языковые-переводы-для-codeigniter-4)

Этот пакет предоставляет команды для работы с переводами в CodeIgniter 4, упрощая процесс поиска и обновления языковых ключей. **Важно**: команда не выполняет автоматический перевод фраз, а лишь помогает организовать и обновить ключи.

В CodeIgniter 4 есть встроенная команда для [Генерации переводов](https://codeigniter4.github.io/userguide/outgoing/localization.html#generating-translation-files-via-command). Здесь усовершенствованная версия.

Установка
---------

[](#установка)

Обычный процесс разработки
--------------------------

[](#обычный-процесс-разработки)

В процессе разработки с использованием переводов в CodeIgniter 4 вы выполняете следующие шаги:

1. Используете функцию `lang()` в коде, например:

```
echo lang('Users.list.title');
echo lang('Users.list.title', ['About'], 'ru');
```

2. Создаёте файл **app/Language/&lt;locale&gt;/Users.php** для каждой доступной локали и прописываете переводы в массив.

Этот подход работает хорошо, если вы сразу добавляете переводы. Однако, если переводы откладываются, могут возникнуть проблемы:

- Пропуск ключей для перевода.
- Дублирование существующих ключей.
- Опечатки в ключах или фразах.
- Неполное обновление файлов перевода.

Пример использования
--------------------

[](#пример-использования)

Рассмотрим пример на основе следующих данных:

```
// Локаль по умолчанию в app/Config/App.php
$defaultLocale = 'ru';

// Доступные локали в app/Config/App.php
$supportedLocales = ['en', 'ru', 'de'];

// Файл app/Controllers/Translation/Lang.php
$message  = lang('Text.info.success');
$message2 = lang('Text.paragraph');
$message3 = lang('Text.expired', ['2025-01-01']);
$message4 = lang('Text.created', ['date' => 'yesterday'], 'de');

// Изначальный массив с переводом app/Language/ru/Text.php
return [
    'created' => 'Создано {date}',
    'expired' => 'Завершено {0}',
    'info'    => [
        'success' => 'Успешно!',
    ],
    'paragraph' => 'Привет, Мир!',
];
```

`lang:finder` Поиск новых и обновление старых переводов.
--------------------------------------------------------

[](#langfinder-поиск-новых-и-обновление-старых-переводов)

Вы можете автоматически генерировать и обновлять файлы перевода вашего приложения. Команда будет искать использование функции `lang()`, объединять текущие ключи перевода в выбранной директории **Language**, определяя локаль `defaultLocale` из `Config\App`.

После операции вам необходимо перевести языковые ключи самостоятельно. Команда умеет распознавать ключи `File.array.nested.text`, создавая многомерные массивы внутри файла с переводом.

> При сканировании директория **Language**, в которой хранятся файлы перевода, будет пропущена. Рассчитано, что они не имеют внутри себя `lang()`

Ранее сохраненные ключи как и сортировка не изменяются. Новые ключи добавляются в конец массива.

В случае базовой установки CodeIgniter 4 вы можете запустить:

```
php spark lang:finder
```

это аналогично команде:

```
php spark lang:finder --locale ru --dir ./app/ --lang-dir ./app/Language/
```

В результате выполнится поиск языковых ключей в директории `APPPATH` (**./app/**), создастся или обновится массив в файлах перевода в `APPPATH/Language/` (**./app/Language/**).

Так как файл **./app/Language/ru/Text.php** уже содержит массив со всеми переводами, то значения останутся без изменений.

Указав другие данные (локаль или папку для сохранения), создаётся новый файл **&lt;lang-dir&gt;/&lt;locale&gt;/Text.php** с массивом:

```
