Skip to content

Latest commit

 

History

History
189 lines (135 loc) · 9.4 KB

File metadata and controls

189 lines (135 loc) · 9.4 KB

Как внести вклад в TeaCoder Translations

Эта репа предназначена для хранения переводов сайта в структурированном виде и поддерживается сообществом. Каждый ваш вклад делает платформу доступной для большего числа людей по всему миру.

Прежде чем начать, прочтите этот документ - он содержит всё, что нужно для эффективного участия.


Содержание

  1. Кодекс поведения
  2. Как внести вклад
  3. Добавление нового языка
  4. Обновление существующих переводов
  5. Правила для JSON
  6. Правила коммитов
  7. Процесс Pull Request
  8. Сообщение об ошибках
  9. Благодарности

Кодекс поведения

Пожалуйста, уважайте всех участников и поддерживайте дружелюбную атмосферу. Любые формы оскорблений или дискриминации не допускаются.

  • Будьте вежливы и уважительны
  • Давайте конструктивную обратную связь
  • Сообщайте о проблемах поддерживающим проект

Полный текст Кодекса поведения можно прочитать в CODE_OF_CONDUCT.md.


Как внести вклад

Мы принимаем вклад от всех! Вот как начать:

  1. Сделайте форк репозитория
  2. Клонируйте ваш форк локально:
    git clone https://github.com/teacoder-team/translations.git
    cd translations
  3. Создайте новую ветку для ваших изменений:
    git checkout -b add-spanish-translation
  4. Внесите изменения (добавьте/отредактируйте JSON-файлы, документацию и т.д.)
  5. Зафиксируйте изменения согласно правилам коммитов
  6. Отправьте ветку в ваш форк
  7. Создайте Pull Request в основную репу

Добавление нового языка

  1. Перейдите в src/
  2. Создайте новый JSON-файл с ISO 639-1 кодом языка, например es.json для испанского
  3. Скопируйте все ключи из ru.json (базовый язык)
  4. Переведите значения на целевой язык
  5. Сохраняйте структуру неизменной - не удаляйте ключи

Пример:

{
	"auth": {
		"login": {
			"title": "Iniciar sesión en tu cuenta",
			"description": "Ingresa el correo y la contraseña que usaste al registrarte para acceder"
		}
	}
}

Обновление существующих переводов

  • Обновляйте только значения, ключи менять нельзя
  • Проверяйте корректность JSON перед отправкой
  • Не оставляйте пустые значения - если не уверены, напишите заглушку на русском и добавьте комментарий

Правила для JSON

  • Всегда используйте UTF-8
  • Все ключи и строки должны быть в двойных кавычках
  • Структура JSON должна совпадать с ru.json
  • Проверяйте JSON с помощью JSONLint или аналогичных инструментов

Правила коммитов

Для упрощения ревью и поддержания чистой истории коммитов в этом проекте действует единая структура сообщений.
Все коммиты должны быть на английском языке и использовать повелительное наклонение (Add, Fix, Update, Remove).

1. Структура сообщения коммита

Сообщение коммита состоит из двух частей:

<type>: <short description>

<подробное описание (необязательно)>
  • type — тип изменений (см. таблицу ниже)
  • short description — краткое описание изменений, максимум 50 символов
  • подробное описание — необязательная часть, может содержать детали и списки изменений

Пример:

feat: add Spanish translation for login

- Added translation keys for login form
- Checked structure matches ru.json

2. Типы коммитов (prefixes)

Prefix Описание Пример
feat Новая функциональность или добавление перевода feat: add French translation for dashboard
fix Исправление ошибки или опечатки в переводе fix: correct typo in Kazakh login text
chore Изменения в конфигурации, сборке или вспомогательных файлах chore: update .gitignore and CI workflow
refactor Рефакторинг кода или структуры JSON без добавления функционала refactor: reorganize translation keys structure
perf Улучшение производительности perf: optimize JSON loading
ci Изменения в конфигурации CI/CD ci: update GitHub Actions workflow
revert Откат предыдущего коммита revert: revert "feat: add new translation keys"

3. Основные правила

  • Все сообщения коммитов на английском языке
  • Краткое описание — не более 50 символов
  • Использовать повелительное наклонение: Add, Fix, Update, Remove
  • Подробное описание отделять пустой строкой
  • В коммитах к переводам старайтесь указывать язык и часть интерфейса, например:
    feat(auth): add Spanish translation for login

4. Примеры корректных коммитов

feat(auth): add Spanish translation for login
fix(account): correct typo in Kazakh translation
refactor(auth): reorganize translation keys structure

- Moved all login-related keys into login object
- Checked consistency with ru.json

Процесс Pull Request

  1. Убедитесь, что ваша ветка синхронизирована с main
  2. Проверяйте JSON на валидность
  3. В PR опишите кратко, что было сделано
  4. Используйте правильные коммиты
  5. Назначайте ревьюеров при необходимости
  6. После одобрения PR будет слит в основную ветку

Сообщение об ошибках

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

  • Создайте новый issue с шаблоном issue template
  • Укажите как можно больше деталей
  • Прикладывайте скриншоты или JSON-фрагменты, если нужно

Благодарности

Огромное спасибо всем, кто помогает сделать проект мультиязычным! 🌍
Ваш вклад делает сайт доступным для людей по всему миру и помогает сообществу расти.

  • Maintainer: TeaCoder – поддерживает проект и направляет развитие
  • Контрибьюторы: каждый, кто добавляет переводы, исправляет ошибки или улучшает структуру JSON

Каждое ваше изменение важно и ценится - вместе мы делаем продукт лучше для всех пользователей!