Настройте под себя

Языки и письмо справа налево

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

Настройки → Общие → Язык.

Выбор языка

Что есть в поставке

English Español Deutsch Français
Português (Brasil) Italiano Nederlands Polski
Türkçe Русский Українська 简体中文
日本語 한국어 العربية עברית

Каждая строка в списке написана на своём собственном языке. Тот, кто ищет корейский, взглядом ищет 한국어, а не слово «Korean» на языке, с которого он как раз пытается уйти.

Про флаги

Флаг называет страну; локаль называет язык. Эти две вещи по-честному не совпадают: арабский — официальный язык в более чем двадцати государствах, а португальский живёт на двух континентах. Иконки следуют той же условности, что и выбор локали в любой операционной системе: основной регион локали. Они нужны, чтобы их узнавали с одного взгляда, а не чтобы заявлять, кому принадлежит язык.

Нарисованы они векторной графикой, а не эмодзи, и это намеренно. В Windows эмодзи флагов нет вообще — 🇩🇪 рисуется там как квадратик с буквами «DE».

Письмо справа налево

Арабский и иврит зеркалят весь интерфейс: боковая панель уезжает вправо, панели и тулбары переворачиваются, иконки, которые куда-то указывают, начинают указывать в другую сторону.

Переключение мгновенное и не требует перезапуска.

Gitcito на арабском, с зеркальной раскладкой

Что намеренно не зеркалится

Часть содержимого остаётся слева направо на любом языке чтения. Зеркалить его было бы прямо неправильно, поэтому вот что остаётся как есть:

Остаётся 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 заполнен целиком и что её ссылки и картинки разрешаются на каталог глубже.

Вклад приветствуется — по странице за раз это нормально, и поправить неуклюжий перевод не менее полезно, чем добавить недостающий.

См. также: Темы и внешний вид · Профили

Улучшить этот перевод на GitHub