# Инструкции по сборке плагина ContentZavod
# Build Instructions for ContentZavod Plugin

## 🚀 Быстрый старт / Quick Start

```bash
# Сборка плагина / Build plugin
./build.sh

# Компиляция переводов (если изменяли PO файлы)
# Compile translations (if you modified PO files)
./compile-translations.sh
```

---

## 📦 Что включено в сборку / What's Included in Build

### Основные файлы / Core Files
- `contentzavod-proxy.php` - основной файл плагина
- `uninstall.php` - скрипт деинсталляции
- `readme.txt` - описание для WordPress.org

### Документация / Documentation (6 файлов)
- `README.md` - русский
- `README-en.md` - English
- `README-es.md` - Español
- `README-de.md` - Deutsch
- `README-fr.md` - Français
- `README-zh.md` - 中文
- `LOCALIZATION.md` - руководство по локализации

### Файлы локализации / Localization Files (21 файл)
- `contentzavod.pot` - шаблон перевода
- 10 × `.po` файлов - исходные переводы
- 10 × `.mo` файлов - скомпилированные переводы

**Всего в архиве:** ~34 файла

---

## 🔧 Скрипт build.sh

### Возможности / Features

1. **Автоматическая проверка**
   - Проверяет наличие основного файла плагина
   - Проверяет наличие папки с переводами
   - Определяет версию плагина автоматически

2. **Умное копирование**
   - Копирует только необходимые файлы
   - Пропускает отсутствующие файлы без ошибок
   - Подсчитывает количество языков

3. **Подробная статистика**
   - Общее количество файлов
   - Количество языковых пакетов
   - Количество README файлов
   - Размер архива

4. **Цветной вывод**
   - Зелёный - успешные операции
   - Жёлтый - информация
   - Красный - ошибки
   - Синий - статистика

### Использование / Usage

```bash
# Базовая сборка
./build.sh

# Результат
✅ Архив успешно создан!
Файл: contentzavod-proxy.zip
Размер: 76K
🌍 Поддержка 10 языков включена!
```

### Что делает скрипт / What the Script Does

1. Проверяет наличие необходимых файлов
2. Удаляет старый архив (если есть)
3. Создаёт временную директорию
4. Копирует основные файлы плагина
5. Копирует документацию
6. Копирует файлы локализации
7. Создаёт/копирует readme.txt
8. Создаёт ZIP-архив
9. Показывает статистику
10. Удаляет временные файлы

---

## 🌍 Скрипт compile-translations.sh

### Назначение / Purpose

Компилирует все `.po` файлы в `.mo` файлы для использования WordPress.

### Использование / Usage

```bash
./compile-translations.sh
```

### Вывод / Output

```
Compiling translation files...
Compiling languages/contentzavod-ar.po -> languages/contentzavod-ar.mo
✅ Successfully compiled: contentzavod-ar
...
================================
Compilation complete!
Successfully compiled: 10 files
Failed: 0 files
================================
```

### Требования / Requirements

- `msgfmt` (из пакета gettext)
- macOS: `brew install gettext && brew link gettext --force`
- Ubuntu/Debian: `sudo apt-get install gettext`

---

## 📝 Процесс сборки / Build Process

### Шаг 1: Подготовка / Preparation

```bash
# Убедитесь, что все переводы актуальны
./compile-translations.sh

# Проверьте версию в contentzavod-proxy.php
grep "Version:" contentzavod-proxy.php
```

### Шаг 2: Сборка / Build

```bash
# Запустите сборку
./build.sh

# Проверьте результат
ls -lh contentzavod-proxy.zip
```

### Шаг 3: Проверка / Verification

```bash
# Просмотрите содержимое архива
unzip -l contentzavod-proxy.zip

# Проверьте наличие языковых файлов
unzip -l contentzavod-proxy.zip | grep "languages/"

# Проверьте README файлы
unzip -l contentzavod-proxy.zip | grep "README"
```

### Шаг 4: Тестирование / Testing

1. Установите архив в тестовую WordPress установку
2. Активируйте плагин
3. Проверьте работу на разных языках
4. Убедитесь, что все переводы загружаются

---

## 🔍 Проверка качества / Quality Check

### Перед сборкой / Before Build

```bash
# Проверьте синтаксис PHP
php -l contentzavod-proxy.php

# Проверьте наличие всех MO файлов
ls -1 languages/*.mo | wc -l
# Должно быть: 10

# Проверьте наличие всех README файлов
ls -1 README*.md | wc -l
# Должно быть: 6
```

### После сборки / After Build

```bash
# Проверьте размер архива (должен быть ~70-80K)
du -h contentzavod-proxy.zip

# Проверьте количество файлов (должно быть ~34)
unzip -l contentzavod-proxy.zip | wc -l

# Проверьте структуру
unzip -l contentzavod-proxy.zip | grep "languages/"
```

---

## 🐛 Устранение проблем / Troubleshooting

### Проблема: Скрипт не запускается

```bash
# Решение: Дайте права на выполнение
chmod +x build.sh
chmod +x compile-translations.sh
```

### Проблема: Ошибка "msgfmt not found"

```bash
# macOS
brew install gettext
brew link gettext --force

# Ubuntu/Debian
sudo apt-get install gettext
```

### Проблема: Отсутствуют MO файлы

```bash
# Решение: Скомпилируйте переводы
./compile-translations.sh
```

### Проблема: Архив слишком большой

```bash
# Проверьте, что не включены лишние файлы
unzip -l contentzavod-proxy.zip

# Убедитесь, что не копируются временные файлы
# Скрипт автоматически исключает .DS_Store и __MACOSX
```

---

## 📊 Ожидаемые результаты / Expected Results

### Размер архива / Archive Size
- **Нормальный размер:** 70-80 KB
- **С документацией:** ~76 KB

### Количество файлов / File Count
- **Основные файлы:** 3 (PHP, uninstall, readme.txt)
- **Документация:** 7 (README × 6 + LOCALIZATION.md)
- **Переводы:** 21 (POT + PO × 10 + MO × 10)
- **Папка languages:** 1
- **Итого:** ~34 файла

### Структура архива / Archive Structure

```
contentzavod-proxy/
├── contentzavod-proxy.php
├── uninstall.php
├── readme.txt
├── README.md
├── README-en.md
├── README-es.md
├── README-de.md
├── README-fr.md
├── README-zh.md
├── LOCALIZATION.md
└── languages/
    ├── contentzavod.pot
    ├── contentzavod-ru_RU.po
    ├── contentzavod-ru_RU.mo
    ├── contentzavod-en_US.po
    ├── contentzavod-en_US.mo
    └── ... (остальные языки)
```

---

## 🚀 Публикация / Publishing

### WordPress.org

1. Создайте архив: `./build.sh`
2. Войдите в [wordpress.org/plugins](https://wordpress.org/plugins)
3. Загрузите `contentzavod-proxy.zip`
4. Дождитесь проверки
5. Опубликуйте

### Прямая установка / Direct Installation

1. Создайте архив: `./build.sh`
2. В WordPress: **Плагины → Добавить новый → Загрузить плагин**
3. Выберите `contentzavod-proxy.zip`
4. Нажмите **Установить**
5. Активируйте плагин

---

## 📝 Чеклист перед релизом / Pre-Release Checklist

- [ ] Обновлена версия в `contentzavod-proxy.php`
- [ ] Скомпилированы все переводы (`./compile-translations.sh`)
- [ ] Обновлён `CHANGELOG.md`
- [ ] Обновлены все README файлы
- [ ] Проверен синтаксис PHP (`php -l contentzavod-proxy.php`)
- [ ] Создан архив (`./build.sh`)
- [ ] Проверен размер архива (~76KB)
- [ ] Проверено количество файлов (~34)
- [ ] Протестирована установка в WordPress
- [ ] Проверена работа на разных языках
- [ ] Обновлён `readme.txt` для WordPress.org

---

## 🎯 Автоматизация / Automation

### Создание релиза одной командой

```bash
#!/bin/bash
# release.sh - Автоматический релиз

# Компиляция переводов
./compile-translations.sh

# Сборка архива
./build.sh

# Проверка
echo "Проверка архива..."
unzip -t contentzavod-proxy.zip

echo "✅ Релиз готов!"
echo "Файл: contentzavod-proxy.zip"
```

---

## 📞 Поддержка / Support

Если у вас возникли проблемы со сборкой:

**Email:** support@fittin.ru  
**Website:** https://contentzavod.fittin.ru

---

**Последнее обновление:** 28 октября 2025  
**Версия:** 2.4.3  
**Статус:** ✅ Готово к использованию

