Оновлення статусу дрейфу i18n
Виконайте ці кроки, щоб оновити поле drifted_from_default у front matter для локалізованого контенту, запустивши npm run fix:i18n:status для кожної мови, фіксуючи зміни для кожної мови та за потреби відкриваючи PR.
Аргументи
Ця навичка приймає необовʼязкові аргументи:
--locale locale,...(опціонально): розділений комами список ідентифікаторів мов для обробки, наприклад--locale pt,es,fr. Якщо не вказано, обробляються всі неанглійські мови.--create-pr(опціонально): автоматично створює PR після обробки. Якщо не вказано, запитайте користувача за допомогоюAskUserQuestion, чи створювати PR.
Підготовка
Ці кроки передбачають, що у вас є локальна копія репозиторію з налаштованим віддаленим репозиторієм upstream, який вказує на основний репозиторій. Виконуйте ці кроки локально з кореня репозиторію.
Переконайтеся, що ваша робоча тека чиста (немає незафіксованих змін).
Перейдіть на гілку
mainта отримайте останні зміни:git checkout main git pull upstream mainСтворіть робочу гілку:
git checkout -b i18n_update-drift-status
Виявлення мов
Якщо --locale не було передано, виявляйте всі неанглійські мови з каталогу контенту:
find content -maxdepth 1 -mindepth 1 -type d ! -name 'en' -exec basename {} \;
Це повертає один ідентифікатор мови на рядок (наприклад, bn, es, fr, …).
Якщо --locale було передано, використовуйте цей список замість цього.
enАнглійська є стандартною мовою і не може дрейфувати, тому її ніколи не слід включати до списку мов або обробляти цією навичкою. Якщо en включено до аргументу --locale, ігноруйте його або повідомте про помилку.
Оновлення статусу дрейфу для кожної мови
Для кожного {LANG_ID} у визначеному списку мов:
Виконайте команду оновлення статусу дрейфу:
npm run fix:i18n:status -- content/{LANG_ID}Зберіть статистику для таблиці опису PR:
# Файли з дрейфом grep -rl "drifted_from_default: true" content/{LANG_ID} | wc -l # Загальна кількість файлів для перекладу grep -rl "default_lang_commit" content/{LANG_ID} | wc -lЯкщо команда внесла зміни, додайте їх до індексу та зафіксуйте:
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} |