diff --git a/content/blog/2019-02-23-is-react-translated-yet.md b/content/blog/2019-02-23-is-react-translated-yet.md index e1d365f3a..69365d966 100644 --- a/content/blog/2019-02-23-is-react-translated-yet.md +++ b/content/blog/2019-02-23-is-react-translated-yet.md @@ -5,7 +5,7 @@ author: [tesseralis] Мы рады объявить о работе над поддержкой официальных переводов документации React на другие языки. Благодаря усердным усилиям сообщества React по всему миру, React переводится на *более, чем 30 языков*! Их можно найти на новой странице -- [переводы](/languages). -Также, переводы для следующих трех языков уже полностью завершены! +Также, переводы для следующих трех языков уже полностью завершены! 🎉 * **Испанский: [es.reactjs.org](https://es.reactjs.org)** * **Японский: [ja.reactjs.org](https://ja.reactjs.org)** @@ -47,21 +47,21 @@ author: [tesseralis] ## Бот {#the-bot} -Сложнее всего было синхронизировать изменения с английской версией сайта. Сперва мы использовали бота [che-tsumi](https://github.com/vuejs-jp/che-tsumi), которого разработала команда японского перевода Vue, но позже решили разработать собственного бота, который бы работал бы так, как удобно нам. Если быть точной, то нас не устраивала кавалькада новых связанных между собой ишью, которые создавались после [выборочного применения](https://git-scm.com/docs/git-cherry-pick) новых коммитов ботом che-tsumi. А после [релиза хуков](/blog/2019/02/06/react-v16.8.0.html) так и вовсе начался полный бардак. +Сложнее всего было синхронизировать изменения с английской версией сайта. Сперва мы использовали бота [che-tsumi](https://github.com/vuejs-jp/che-tsumi), которого разработала команда японского перевода Vue, но позже решили разработать собственного бота, который бы работал бы так, как удобно нам. Если быть точной, то нас не устраивали связанные между собой ишью, которые создавались после [выборочного применения](https://git-scm.com/docs/git-cherry-pick) новых коммитов ботом che-tsumi. А после [релиза хуков](/blog/2019/02/06/react-v16.8.0.html) так и вовсе начался полный бардак. В итоге мы решили, что вместо выборочного применения каждого коммита целесообразнее будет сливать все новые коммиты в один пулреквест где-то по разу в день. Конфликты сливаются как есть и перечисляются в [пулреквесте](https://github.com/reactjs/pt-BR.reactjs.org/pull/114) в виде чек-листа. Создать [скрипт синхронизации](https://github.com/reactjs/reactjs.org-translation/blob/master/scripts/sync.js) было довольно просто: скачать переведённый репозиторий, добавить в его удалённые репозитории оригинальный, стянуть его изменения и создать пулреквест. -Проблемой стал поиск места для запуска бота. Фронтенд-разработчицей я являюсь неспроста -- Heroku и подобные ему сервисы -- мой бич и они вводят меня в ступор. К слову, ещё до прошлого вторника я запускала скрипт на своём ПК вручную! +Проблемой стал поиск места для запуска бота. Я фронтенд-разработчица и, возможно, поэтому такие сервисы как Heroku мне чужды. К слову, ещё до прошлого вторника я запускала скрипт на своём ПК вручную! Самая большая загвоздка заключалась в дисковом пространстве -- каждый форк репозитория занимает около 100MB и моему компьютеру нужно несколько минут для скачивания. Форков у нас *32*, а бесплатные планы большинства платформ для развёртывания, которые я рассматривала, предоставляли лишь 512MB пространства. -Пересчитав всё множество раз в блокноте, я пришла к решению: удалять каждый репозиторий после выполнения скрипта и ограничивать количество одновременно запущенных скриптов до того, которое могло поддержать хранилище. К счастью, у Heroku dynos интернет-соединение будет получше моего, и они быстро скачивают даже репозиторий React. +Множество раз пересчитав всё в блокноте, я пришла к решению: удалять каждый репозиторий после выполнения скрипта и ограничивать количество одновременно запущенных скриптов до того, которое могло поддержать хранилище. К счастью, dynos от Heroku имеют интернет-соединение получше моего, и они быстро скачивают даже репозиторий React. -Были также и другие проблемы. Я опробовала аддон [Heroku Scheduler](https://elements.heroku.com/addons/scheduler), благодаря которому мне не пришлось написать ни строчки `watch`-кода, но он работал нестабильно; а ещё меня [охватил экзистенциальный кризис](https://twitter.com/tesseralis/status/1097387938088796160), когда я не смогла разобраться, как отправлять коммиты из Heroku dyno. Но в конечном итоге фронтенд-разработчица в моём лице смогла завести этого бота! +Были и другие мелкие проблемы. Я попробовала аддон [Heroku Scheduler](https://elements.heroku.com/addons/scheduler), благодаря которому мне не пришлось писать `watch`-код, однако он работал нестабильно. Меня [охватил экзистенциальный кризис в твиттере](https://twitter.com/tesseralis/status/1097387938088796160), когда я не смогла разобраться, как отправлять коммиты из Heroku dyno. Но, в конце концов, моя внутренняя фронтенд-разработчица смогла заставить бот работать! -Само собой, боту есть, куда улучшаться. В данный момент он не проверяет, есть ли открытые пулреквесты перед тем, как отправить очередной. Также ему всё ещё трудно определить точные изменения оригинала, и есть шанс пропустить места, нуждающиеся в новом переводе. Однако я доверяю мейнтейнерам, которых мы выбрали для решения этих проблем, да и код бота находится в [открытом доступе](https://github.com/reactjs/reactjs.org-translation), если кто-то вдруг решится помочь мне с данными улучшениями! +Само собой, боту есть куда улучшаться. В данный момент он не проверяет, есть ли открытые пулреквесты перед тем, как отправить очередной. Также ему всё ещё трудно определить точные изменения оригинала, и есть шанс пропустить места, нуждающиеся в переводе. Однако я доверяю мейнтейнерам, которых мы выбрали для решения этих проблем, да и код бота находится в [открытом доступе](https://github.com/reactjs/reactjs.org-translation), если кто-то вдруг решится помочь мне с данными улучшениями! ## Благодарность {#thanks}