Команды переводов (translate)
Стандартная команда Битрикс для работы с локализацией: индексация языковых файлов.
translate:index
Индексирует проект для файлов локализации, создавая поисковый индекс всех языковых файлов.
Синтаксис
php bitrix.php translate:index [опции]Опции
--path=<путь>или-p- путь для индексации (по умолчанию:/bitrix/modules)-v,-vv,-vvv- уровень подробности вывода
Примеры использования
# Индексация модулей (по умолчанию /bitrix/modules)
php bitrix.php translate:index
# Индексация конкретного пути
php bitrix.php translate:index -p /local/modules
php bitrix.php translate:index --path=/bitrix/modules/catalog
# С подробным выводом
php bitrix.php translate:index -v
php bitrix.php translate:index -vv # очень подробный вывод
php bitrix.php translate:index -vvv # отладочный выводЧто индексируется
Команда сканирует и индексирует следующую структуру:
- Папки lang/ - структура директорий с переводами
- Языковые файлы - файлы переводов в каждой языковой папке
- Фразы переводов - отдельные строки перевода и их значения
- Пути к файлам - связи между файлами и переводами
Структура языковых файлов
/bitrix/modules/module.id/
├── lang/
│ ├── ru/ # Русский язык
│ │ ├── lib/
│ │ │ └── entity.php
│ │ ├── options.php
│ │ └── install/
│ │ └── index.php
│ └── en/ # Английский язык
│ ├── lib/
│ │ └── entity.php
│ └── options.phpФормат языковых файлов
<?php
// /bitrix/modules/company.shop/lang/ru/lib/entity/product.php
$MESS['COMPANY_SHOP_PRODUCT_NAME'] = 'Название товара';
$MESS['COMPANY_SHOP_PRODUCT_PRICE'] = 'Цена';
$MESS['COMPANY_SHOP_PRODUCT_DESCRIPTION'] = 'Описание';Использование
Индексация после добавления переводов
#!/bin/bash
# Индексация после добавления новых языковых файлов
cd /var/www/bitrix
echo "Индексация переводов..."
# Индексация всех модулей
php bitrix.php translate:index -v
# Индексация локальных модулей
php bitrix.php translate:index --path=/local/modules -v
echo "Индексация завершена"Индексация после установки модуля
#!/bin/bash
# Автоматическая индексация после установки модуля
MODULE_ID="$1"
if [ -z "$MODULE_ID" ]; then
echo "Использование: $0 <module_id>"
exit 1
fi
cd /var/www/bitrix
# Установить модуль
php bitrix.php module:install "$MODULE_ID"
# Найти путь к модулю
if [ -d "../local/modules/$MODULE_ID" ]; then
MODULE_PATH="/local/modules/$MODULE_ID"
elif [ -d "modules/$MODULE_ID" ]; then
MODULE_PATH="/bitrix/modules/$MODULE_ID"
else
echo "Модуль не найден"
exit 1
fi
# Индексировать переводы модуля
php bitrix.php translate:index --path="$MODULE_PATH"
echo "Модуль $MODULE_ID установлен и проиндексирован"Регулярная переиндексация
#!/bin/bash
# Еженедельная переиндексация всех переводов
cd /var/www/bitrix
LOG_FILE="/var/log/bitrix-translate-index.log"
{
echo "=== Индексация переводов: $(date) ==="
# Индексация стандартных модулей
php bitrix.php translate:index -v
# Индексация локальных модулей
php bitrix.php translate:index --path=/local/modules -v
echo "=== Завершено: $(date) ==="
echo ""
} >> "$LOG_FILE" 2>&1Индексация при разработке
#!/bin/bash
# Индексация конкретного модуля при разработке
MODULE_ID="${1:-company.shop}"
MODULE_PATH="/local/modules/$MODULE_ID"
cd /var/www/bitrix
if [ -d "$MODULE_PATH/lang" ]; then
echo "Индексация переводов модуля: $MODULE_ID"
php bitrix.php translate:index --path="$MODULE_PATH" -v
else
echo "Языковые файлы не найдены в $MODULE_PATH"
fiTroubleshooting
Индексация не работает
Проблема: Команда выполняется, но переводы не индексируются
Решения:
- Проверьте наличие языковых файлов в указанном пути
- Убедитесь, что файлы имеют правильную структуру
- Проверьте права доступа к файлам
- Используйте опцию
-vvдля отладки
Переводы не отображаются
Проблема: После индексации переводы не работают
Решения:
- Очистите кеш:
php bitrix.php cache:clear - Проверьте синтаксис языковых файлов
- Убедитесь, что модуль установлен
- Переиндексируйте:
php bitrix.php translate:index --path=/path/to/module
Ошибка прав доступа
Проблема: Permission denied при индексации
Решения:
- Проверьте права доступа к директории с переводами
- Убедитесь, что процесс PHP может читать файлы
- Установите правильные права:
chmod -R 644 lang/
Полезные советы
💡 Индексируйте регулярно - настройте автоматическую индексацию
💡 Проверяйте полноту - используйте скрипты для проверки всех переводов
💡 Версионируйте - храните языковые файлы в Git
💡 Структурируйте - организуйте переводы по логическим группам
💡 Используйте константы - называйте ключи по единому стандарту
💡 Документируйте - добавляйте комментарии к сложным переводам
Смотрите также
- Команды обновлений - обновление языковых пакетов
- Команды модулей - установка модулей с переводами
- Официальная документация Битрикс по локализации