Языки и письмо справа налево
Интерфейс Gitcito переведён. Язык — это настройка Gitcito, а не системы: разработчик на англоязычной macOS, которому приятнее читать по-японски, выставляет его здесь, а разработчика на системе с ивритом, который предпочитает приложение на английском, никто не переубеждает.
Настройки → Общие → Язык.

Что есть в поставке
| English | Español | Deutsch | Français |
| Português (Brasil) | Italiano | Nederlands | Polski |
| Türkçe | Русский | Українська | 简体中文 |
| 日本語 | 한국어 | العربية | עברית |
Каждая строка в списке написана на своём собственном языке. Тот, кто ищет корейский, взглядом ищет 한국어, а не слово «Korean» на языке, с которого он как раз пытается уйти.
Про флаги
Флаг называет страну; локаль называет язык. Эти две вещи по-честному не совпадают: арабский — официальный язык в более чем двадцати государствах, а португальский живёт на двух континентах. Иконки следуют той же условности, что и выбор локали в любой операционной системе: основной регион локали. Они нужны, чтобы их узнавали с одного взгляда, а не чтобы заявлять, кому принадлежит язык.
Нарисованы они векторной графикой, а не эмодзи, и это намеренно. В Windows
эмодзи флагов нет вообще — 🇩🇪 рисуется там как квадратик с буквами «DE».
Письмо справа налево
Арабский и иврит зеркалят весь интерфейс: боковая панель уезжает вправо, панели и тулбары переворачиваются, иконки, которые куда-то указывают, начинают указывать в другую сторону.
Переключение мгновенное и не требует перезапуска.

Что намеренно не зеркалится
Часть содержимого остаётся слева направо на любом языке чтения. Зеркалить его было бы прямо неправильно, поэтому вот что остаётся как есть:
| Остаётся LTR | Почему |
|---|---|
| Граф коммитов | Позиции дорожек считаются в пикселях; зеркальный контейнер разошёлся бы с нарисованными линиями |
| Диффы и содержимое файлов | Код пишется слева направо, а зеркальный дифф нечитаем |
| Blame и вывод по конфликтам | По той же причине — это исходник, а не проза |
| Встроенный терминал | Он рисует свою сетку сам; вывод git идёт слева направо |
| Пути, SHA, ссылки и команды | refs/heads/main читается только в одну сторону |
Каждый из этих участков изолирован, так что арабский текст внутри него — имя ветки, сообщение коммита, имя файла — не может переупорядочить текст вокруг.
Ограничения
Здесь честно сказано, где всё заканчивается:
- Сообщения коммитов, имена веток и содержимое файлов Gitcito никогда не переориентирует. Они показываются так, как их написал автор. Сообщение коммита на иврите в LTR-изолированном списке отрисуется на иврите, но строка вокруг под него не перевернётся.
- Сторонние поверхности сохраняют своё направление — терминал это xterm, а предпросмотр Markdown отрисовывает документ так, как он написан.
- Имена файлов со смешанным направлением — сложная штука. Путь с арабской папкой внутри английского дерева изолируется, а не переупорядочивается; это правильно, но в первый раз всё равно выглядит неожиданно.
Этот справочник тоже переведён
Не только кнопки. Каждая страница, которую вы читаете, есть на каждом языке из списка выше — объяснения, таблицы того, что делает каждая опция, разделы о том, чего функция делать не станет. Переключение языка интерфейса переключает вместе с ним и справочник — и в приложении, и на сайте.
Переводу позволено быть неполным. Если страница ещё не переведена, вы получите английскую, а не отсутствующую, и боковая панель в любом языке сохраняет ту же форму, так что скриншот или инструкция по-прежнему совпадают с тем, что вы видите.
На сайте у каждой страницы есть переключатель языка, который оставляет вас на той же странице, что вы читали: сменить язык — не то же самое, что начать сначала.
Что переведено машиной и чего это стоит. Английский и испанский написаны руками. Остальное перевела модель по глоссарию, а потом проверил скрипт: каждая страница, каждая ссылка, каждый путь к картинке, каждый блок кода байт в байт против английского. Так ловится сломанная структура. Так не ловится фраза, которая верна, но деревянна. Если страница плохо читается на вашем языке, это баг, о котором стоит сообщить.
Как добавить язык
Словари лежат по одному файлу на локаль в src/renderer/src/i18n/, и английский
файл — эталон, по которому типизируются все остальные: отсутствующий ключ это
ошибка компиляции, а не молчаливый откат к английскому. Тестовый набор ещё и
проверяет, что каждый {placeholder}, который подставляется в строку, переживает
перевод, — так что предложение не может по дороге в другой язык потерять sha
коммита.
Со справочником всё устроено так же: docs/help/ хранит английские страницы, а
docs/help/<locale>/ — каждый перевод, по файлу на страницу и с тем же именем
файла. npm run lint:docs проверяет, что у каждой переведённой страницы есть
английский оригинал, что её front matter заполнен целиком и что её ссылки и
картинки разрешаются на каталог глубже.
Вклад приветствуется — по странице за раз это нормально, и поправить неуклюжий перевод не менее полезно, чем добавить недостающий.
См. также: Темы и внешний вид · Профили