Crowdin-test
Этот репозиторий демонстрирует разные способы загрузки строк в crowdin из Android проекта.
В crowdin созданы два проекта:
- bookmate-test:
- Исходники на русском (
ru
) - Переводы на
en
,uk
- Исходники на русском (
- bookmate-test-en:
- Исходники на английском (
en
) - Перевод на
fr
- Исходники на английском (
Требования
- Исходные строки приходят на русском.
- При поступлении перевода с русского на английский, необходимо делать sync: отправлять переведённую строку в английский проект.
- Должна быть возможность собрать корректную QA сборку из ветки.
Способы решения
В обоих способах в values
лежит русский язык. Посчитал, что так будет удобнее. (Хочу ещё раз обсудить.)
Способ 1
(Ветка master
)
- Все строки вместе с исходниками хранятся в crowdin.
- Отправка строк происходит вручную.
- Загрузка строк запускается при каждой сборке, либо вручную.
- При отправке проверяется, что строки, добавленные другими разработчиками не перезапишутся. (Используется
diff
) - Sync происходит на ci по таймеру.
Способ 2
todo
- Исходники
ru
хранятся в гите и в crowdin, переводы хранятся только в crowdin. - Отправка строк происходит на ci после пуша, если в названии ветки есть фраза
[loc]
. - При отправке используются ветки из crowdin.
- При мёрдже веток в crowdin-е, от него приходит пулл реквест в гитхаб.
Синк тоже происходит на ci при пуше. Ветки в русском проекте дублируются в ветки в английском проекте.- При мёрже пр от crowdin-а, происходит синк в английский проект.
UPD Попробовали создать ветки в crowdin. Обнаружили следующие проблемы:
- crowdin делает для каждой ветки дубликат всех строк. Это выглядит странно для переводчиков.
- Мы не нашли кнопку как смёржить ветки.
- Интеграция с гитхабом пока зависла, тоже не разобрались.