Оновлення статусу дрейфу i18n

Як оновити поле drifted_from_default у front matter для локалізованого контенту та за потреби відкрити PR з результатами.

Виконайте ці кроки, щоб оновити поле drifted_from_default у front matter для локалізованого контенту, запустивши npm run fix:i18n:status для кожної мови, фіксуючи зміни для кожної мови та за потреби відкриваючи PR.

Аргументи

Ця навичка приймає необовʼязкові аргументи:

  • --locale locale,... (опціонально): розділений комами список ідентифікаторів мов для обробки, наприклад --locale pt,es,fr. Якщо не вказано, обробляються всі неанглійські мови.
  • --create-pr (опціонально): автоматично створює PR після обробки. Якщо не вказано, запитайте користувача за допомогою AskUserQuestion, чи створювати PR.

Підготовка

Ці кроки передбачають, що у вас є локальна копія репозиторію з налаштованим віддаленим репозиторієм upstream, який вказує на основний репозиторій. Виконуйте ці кроки локально з кореня репозиторію.

  1. Переконайтеся, що ваша робоча тека чиста (немає незафіксованих змін).

  2. Перейдіть на гілку main та отримайте останні зміни:

    git checkout main
    git pull upstream main
    
  3. Створіть робочу гілку:

    git checkout -b i18n_update-drift-status
    

Виявлення мов

Якщо --locale не було передано, виявляйте всі неанглійські мови з каталогу контенту:

find content -maxdepth 1 -mindepth 1 -type d ! -name 'en' -exec basename {} \;

Це повертає один ідентифікатор мови на рядок (наприклад, bn, es, fr, …).

Якщо --locale було передано, використовуйте цей список замість цього.

Оновлення статусу дрейфу для кожної мови

Для кожного {LANG_ID} у визначеному списку мов:

  1. Виконайте команду оновлення статусу дрейфу:

    npm run fix:i18n:status -- content/{LANG_ID}
    
  2. Зберіть статистику для таблиці опису PR:

    # Файли з дрейфом
    grep -rl "drifted_from_default: true" content/{LANG_ID} | wc -l
    # Загальна кількість файлів для перекладу
    grep -rl "default_lang_commit" content/{LANG_ID} | wc -l
    
  3. Якщо команда внесла зміни, додайте їх до індексу та зафіксуйте:

    git add content/{LANG_ID}
    git commit -m "chore({LANG_ID}): update drift status"
    

    Якщо для мови немає змін, пропустіть коміт, але все одно зафіксуйте статистику.

Створення PR

Після обробки всіх мов:

  • Якщо --create-pr не було передано, використовуйте AskUserQuestion, щоб запитати користувача, чи створювати PR перед продовженням.
  • Якщо користувач відмовляється (або якщо --create-pr не було передано і вони кажуть “ні”), зупиніться тут і повідомте статистику.

Щоб створити PR, відправте гілку:

git push -u origin i18n_update-drift-status

Потім запустіть gh pr create з такими параметрами:

  • Title: [i18n] Update drift status for localized content
  • Description: заповніть таблицю нижче зібраною статистикою, включаючи лише оброблені мови.
Updates the drift status for localized content.

Status per locale after this PR:

| Locale | Drifted files | Total files |
| ------ | ------------- | ----------- |
| {ID}   | {drifted}     | {total}     |
Востаннє змінено December 26, 2024: [uk] Ukrainian documentation for OpenTelemetry (cf1a5745)