Перевод приложения
Внесение вклада в перевод помогает сделать Meshtastic доступным для более широкой аудитории. Приложение использует Crowdin для управления переводами сообщества как для пользовательского интерфейса, так и для документации в приложении.
Что переводится
| Ресурс | Исходное местоположение | Заметки |
|---|---|---|
| Строки интерфейса | core/resources/src/commonMain/composeResources/values/strings.xml | Кнопки, ярлыки, сообщения и весь видимый пользователю текст |
| Страницы руководства пользователя | docs/en/user/*.md | Встроенная документация, отображаемая в разделе «Справка и документация» |
| Метаданные Fastlane | fastlane/metadata/android/en-US/ | Название, описание и журналы изменений в App Store |
⚠️ Примечание: Страницы руководства для разработчиков только на английском. Документация, ориентированная на код и для участников, не переводится.
Как внести вклад
- Посетите проект Crowdin. Откройте проект Meshtastic Android на Crowdin и войдите в систему или создайте бесплатный аккаунт.
- Выберите свой язык. Выберите существующий язык или запросите новый, открыв GitHub issue.
- Переводите строки. Crowdin показывает английский исходный текст слева и ваш перевод справа. Переведите каждую строку и сохраните.
- Проверьте контекст. Многие строки содержат скриншоты или комментарии о контексте — проверьте их, чтобы понять, где данный текст появляется в приложении.
- Отправьте. Одобренные переводы автоматически включаются в следующий выпуск.
💡 Совет: Сохраняйте переводы краткими. Строки интерфейса часто появляются на кнопках, фишках или узких колонках. Если перевод значительно длиннее английского оригинала, рассмотрите возможность сокращения, чтобы смысл оставался понятным.
Добавление нового языка
Если твоего языка еще нет в списке на Crowdin:
- Открой задачу на GitHub для запроса нового языка.
- Поддерживающий добавит язык в Crowdin и настроит
crowdin.yml. - После добавления вы можете начать переводить сразу.
Как организованы переводы
Приложение для Android использует Compose Multiplatform resources для всех строк, видимых пользователю:
core/resources/src/commonMain/composeResources/
├── values/ ← English (default)
│ └── strings.xml
├── values-de/ ← German
│ └── strings.xml
├── values-fr/ ← French
│ └── strings.xml
└── ...
Встроенная документация следует аналогичной схеме в папке docs/:
docs/
├── en/user/ ← English source (default)
│ ├── onboarding.md
│ └── ...
├── fr-rFR/user/ ← French (France)
│ ├── onboarding.md
│ └── ...
├── de-rDE/user/ ← German (Germany)
│ └── ...
└── ...
Папки локалей используют конвенцию ресурсов Android {lang}-r{REGION} (например, fr-rFR, de-rDE, ja-rJP), совпадая с директориями values-*, которые используются для строк в приложении.
Приложение автоматически выбирает правильную локаль на основе настроек Язык и регион вашего устройства.
Руководство по переводу
- Не переводите технические термины, такие как “LoRa”, “MQTT”, “BLE”, “TAK”, “SNR” или “RSSI” — они универсальны.
- Сохраняйте заполнители без изменений. Строки, такие как
%1$sили%d, заполняются во время выполнения. Не удаляйте и не меняйте их порядок, если только грамматика вашего языка не требует этого. - Согласуйте тон. Приложение использует дружелюбный, прямой стиль общения. Избегайте чрезмерно официального языка.
- Проверьте, если возможно. Измените язык устройства и откройте приложение, чтобы увидеть, как переводы выглядят в контексте.
Вопросы?
Если у тебя есть вопросы о контексте конкретной строки или нужна помощь для начала работы, создайте обсуждение на странице Meshtastic GitHub Discussions.
Спасибо за помощь в расширении охвата Meshtastic!