Skip to content

Commit

Permalink
Merge pull request #470 from Sat1l/main
Browse files Browse the repository at this point in the history
Support for Russian language
  • Loading branch information
ligenxxxx authored Feb 17, 2025
2 parents 8c9a450 + a1d3c9b commit d03e23a
Show file tree
Hide file tree
Showing 31 changed files with 163,827 additions and 16,800 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,4 +14,4 @@ media.tar.gz
/tmp
/.vscode/settings.json
.DS_Store
utilities/font/out
utilities/font/out
3,031 changes: 2,368 additions & 663 deletions lib/lvgl/lvgl/src/font/lv_font_montserrat_10.c

Large diffs are not rendered by default.

3,448 changes: 2,778 additions & 670 deletions lib/lvgl/lvgl/src/font/lv_font_montserrat_12.c

Large diffs are not rendered by default.

3,760 changes: 3,083 additions & 677 deletions lib/lvgl/lvgl/src/font/lv_font_montserrat_14.c

Large diffs are not rendered by default.

4,245 changes: 3,559 additions & 686 deletions lib/lvgl/lvgl/src/font/lv_font_montserrat_16.c

Large diffs are not rendered by default.

4,633 changes: 3,939 additions & 694 deletions lib/lvgl/lvgl/src/font/lv_font_montserrat_18.c

Large diffs are not rendered by default.

5,075 changes: 4,373 additions & 702 deletions lib/lvgl/lvgl/src/font/lv_font_montserrat_20.c

Large diffs are not rendered by default.

5,616 changes: 4,905 additions & 711 deletions lib/lvgl/lvgl/src/font/lv_font_montserrat_22.c

Large diffs are not rendered by default.

6,217 changes: 5,497 additions & 720 deletions lib/lvgl/lvgl/src/font/lv_font_montserrat_24.c

Large diffs are not rendered by default.

6,819 changes: 6,087 additions & 732 deletions lib/lvgl/lvgl/src/font/lv_font_montserrat_26.c

Large diffs are not rendered by default.

7,525 changes: 6,786 additions & 739 deletions lib/lvgl/lvgl/src/font/lv_font_montserrat_28.c

Large diffs are not rendered by default.

8,268 changes: 7,509 additions & 759 deletions lib/lvgl/lvgl/src/font/lv_font_montserrat_30.c

Large diffs are not rendered by default.

9,015 changes: 8,248 additions & 767 deletions lib/lvgl/lvgl/src/font/lv_font_montserrat_32.c

Large diffs are not rendered by default.

9,930 changes: 9,151 additions & 779 deletions lib/lvgl/lvgl/src/font/lv_font_montserrat_34.c

Large diffs are not rendered by default.

11,003 changes: 10,080 additions & 923 deletions lib/lvgl/lvgl/src/font/lv_font_montserrat_36.c

Large diffs are not rendered by default.

11,782 changes: 10,845 additions & 937 deletions lib/lvgl/lvgl/src/font/lv_font_montserrat_38.c

Large diffs are not rendered by default.

13,324 changes: 12,378 additions & 946 deletions lib/lvgl/lvgl/src/font/lv_font_montserrat_40.c

Large diffs are not rendered by default.

14,313 changes: 13,332 additions & 981 deletions lib/lvgl/lvgl/src/font/lv_font_montserrat_42.c

Large diffs are not rendered by default.

15,341 changes: 14,341 additions & 1,000 deletions lib/lvgl/lvgl/src/font/lv_font_montserrat_44.c

Large diffs are not rendered by default.

16,491 changes: 15,475 additions & 1,016 deletions lib/lvgl/lvgl/src/font/lv_font_montserrat_46.c

Large diffs are not rendered by default.

17,668 changes: 16,627 additions & 1,041 deletions lib/lvgl/lvgl/src/font/lv_font_montserrat_48.c

Large diffs are not rendered by default.

2,760 changes: 2,111 additions & 649 deletions lib/lvgl/lvgl/src/font/lv_font_montserrat_8.c

Large diffs are not rendered by default.

326 changes: 326 additions & 0 deletions mkapp/app/language/ru_ru.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,326 @@
SD Card = "SD-карта"
Off = "Выкл."
On = "Вкл."
In = "Вход"
Expansion Module = "Модуль расширения"
Integrity check = "Проверка целостности"
Unsupported = "Не поддерживается"
No SD Card = "Нет SD-карты"
Searching = "WiFi: поиск"
RF = "RF"
clip(s) = "Клип(ы)"
full = "Полный"
available = "Доступно"

; scan now
Scan Now = "Сканировать"
Scan Ready = "Сканирование готово"
When scanning is complete, use the = "Когда скан завершится, используйте"
dial to select a channel and press = "колесо для выбора канала и нажмите"
the Enter button to choose = "Enter для выбора"
Scanning = "Сканирование"
Scanning done = "Сканирование завершено"
Scanning ready = "Сканирование готово"

; source
Source = "Источник"
Expansion Module = "Модуль расширения"
Analog Video = "Аналог"
Analog Ratio = "Аналог"
HDZero Band = "Сетка HDZero"
Raceband = "Raceband"
Lowband = "Lowband"
HDZero BW = "HDZero BW"
Wide = "Широкая"
Narrow = "Узкая"
Back = "Назад"
Connected = "Подключен"
Disconnected = "Не подключен"

; image setting
Image Setting = "Изображение"
Brightness = "Яркость"
Saturation = "Насыщенность"
Contrast = "Контраст"
Auto Off = "Авто выкл."
To change image settings, click the Enter button to enter video mode = "Чтобы изменить настройки изображения, нажмите Enter для входа в видеорежим"
Make sure a HDZero VTX or analog VTX is powered on for live video = "Убедитесь, что есть доступный сигнал HDZero или аналога для просмотра"
Never = "Никогда"
min = "Мин."
Reset All = "Cбросить все"

; osd
OSD = "OSD"
Adjust OSD Elements = "Настр. эл-тов OSD"
Orbit = "Орбита"
Mode = "Режим"
Min = "Мин."
Max = "Макс."
At Startup = "При вкл."
Show = "Показать"
Hide = "Скрыть"
Last = "Последн."
Note: The positioning preview will display all OSD elements. Some elements might = "Заметка: Предпросмотр отобразит все элементы OSD. Некоторые элементы могут"
not show during normal operation, depending on input source and conditions = "не отображаться во время нормальной работы, в зависимости от источника и условий"
OSD Element positioning is based on a 1280x720 canvas = "Позиционирование элементов OSD основано на разрешении 1280x720"
Positions can be set for 4x3 and 16x9 modes separately = "Позиции могут быть установлены для режимов 4x3 и 16x9 отдельно"
the Show Element toggle is shared between both modes = "Переключатель отображения элемента общий для обоих режимов"

; power
Power = "Питание"
Battery = "Аккумулятор"
Cell Mode = "Подсч. ячеек"
Manual = "Ручной"
Cell Count = "Количество ячеек"
Warning Cell Voltage = "Порог напр. ячейки"
Voltage Calibration = "Калибровка напр."
Display Mode = "Отображение"
Total = "Общее"
Cell Avg. = "Среднее"
Warning Type = "Предупреждение"
Beep = "Звук"
Visual = "Визуал"
Both = "Оба"
AnalogRX Power = "Аналог"
Auto = "Авто"

; fans
Fans = "Вентиляторы"
Auto Control = "Авто"
Top Fan = "Верхний вентилятор"
Side Fans = "Боковой вентилятор"

; record
Record Option = "Запись"
Record Mode = "Режим записи"
Record Format = "Формат записи"
Record OSD = "Запись OSD"
Record Audio = "Запись аудио"
Audio Source = "Источник аудио"
Naming Scheme = "Названия"
Yes = "Да"
No = "Нет"
Mic = "Микро"
Line In = "Лин. вход"
A/V In = "A/V вход"
Digits = "Цифры"
Date = "Дата"
MP4 format requires properly closing files or the files will be corrupt = "MP4 требует завершения записи, иначе файл может быть поврежден"
TS format is highly recommended = "Рекомендуется использовать TS"

; auto scan
Auto Scan = "Автоскан"
Default = "По умолчанию"
Expansion = "Модуль"
AV In = "AV вход"
HDMI In = "HDMI"
*if Auto Scan is 'Last', goggles will default to show last tuned channel = "*Если автоскан установлен на 'Последний', будет показан последний настроенный канал"

; elrs
ELRS = "ELRS"
Send = "Отправить"
Bind = "Бинд"
Click to start = "Нажмите для начала"
* Press right button to cancel binding = "* Нажмите правую кнопку для отмены бинда"
Starting = "Запуск..."
FAILED = "ОШИБКА"
Success = "Успешно"
Binding = "Бинд..."
Timeout = "Таймаут"
Cancelled = "Отменено"
Backpack = "Backpack"

; wifi module
WiFi Module = "WiFi модуль"
Invalid Too Short = "Слишком коротко"
Invalid Format = "Неверный формат"
Password Requirements = "Требования к паролю"
Minimum 8 characters = "Минимум 8 символов"
maximum 64 characters = "Максимум 64 символа"
Live stream: = "Трансляция:"
Connect to the WiFi network identified above = "Подключитесь к вышеуказанной сети WiFi"
Use VLC Player to open a Network Stream = "Используйте VLC Player просмотра трансляции"
Apply Settings = "Применить настройки"
Enable = "Включить"
Host = "Хост"
Client = "Клиент"
Password = "Пароль"
Address = "Адрес"
Netmask = "Нетмаск"
Gateway = "Шлюз"
RF Channel = "RF канал"
Root PW = "Root pw"
Page = "Страница"
Basic = "Базовая"
Advanced = "Расшир."
System = "Система"
Updating WiFi = "Обновление WiFi"
Click to confirm or Scroll to cancel = "Нажмите для подтверждения или прокрутите для отмены"

; head tracker
Head Tracker = "Трекер головы"
Set Alarm Angle = "Установить сигнальный угол"
Tracking = "Трекинг"
Tilt Alarm = "Пред. наклона"
Alarm = "Предупрежд."
Video = "Видео"
Arm = "Включить"
Calibrate = "Калибровать"
Set Center = "Установить центр"
Max Angle = "Макс. угол"
Pan = "Панорама"
Tilt = "Наклон"
Roll = "Крен"
Calibrating = "Калибровка"
Re-calibrate = "Перекалибровать"
Updating Angle = "Обновление угла"

; playback
Playback = "Воспроизв"
Long press the Enter button to exit = "Долгое нажатие Enter для выхода"
Long press the Func button to delete = "Долгое нажатие Func для удаления"

; storage
Storage = "Хранилище"
Format SD Card = "Форматировать SD-карту"
Repair SD Card = "Восстановить SD-карту"
Clear DVR Folder = "Очистить папку DVR"
Format was successful = "Форматирование прошло успешно"
Format has failed = "Не удалось форматировать"
Press click to exit = "Нажмите для выхода"
Please insert a SD Card = "Пожалуйста, вставьте SD-карту"
Failed to extract results = "Не удалось извлечь результаты"
Failed to access results = "Не удалось получить доступ к результатам"
Failed to generate results = "Не удалось сгенерировать результаты"
Failed to start format = "Не удалось начать форматирование"
Unsupported status code = "Неподдерживаемый код результата"
SD Card Format Status = "Статус форматирования SD-карты"
Filesystem is OK = "Файловая система в порядке"
Filesystem was modified and fixed = "Файловая система была изменена и исправлена"
Failed to remount SD Card = "Не удалось повторно смонтировать SD-карту"
Failed to start repair = "Не удалось начать восстановление"
SD Card Repair Status = "Статус восстановления SD-карты"
Logging = "Логирование"
Self-Test is enabled = "Самопроверка включена"
All storage options are disabled = "Все варианты хранения отключены"
Detected files being accessed by SD Card = "Обнаружены файлы, к которым обращается SD-карта"
Remove the following files from the SD Card and try again = "Удалите следующие файлы с SD-карты и повторите попытку"
Status = "Статус"
None = "Нет"
Formating = "Форматирование"
Repairing = "Восстановление"
Removing = "Удаление"
Done = "Готово"
SD Card integrity check is active = "Идет проверка целостности SD-карты"
controls are disabled until process has completed = "управление отключено до завершения процесса"

; firmware
Firmware = "Прошивка"
Flashing = "Обновление"
SUCCESS = "УСПЕХ"
Verification failed, try it again = "Не удалось проверить, попробуйте еще раз"
No firmware found = "Прошивка не найдена"
Failed, check connection = "Ошибка, проверьте подключение..."
WAIT = "ОЖИДАНИЕ"
DO NOT POWER OFF = "НЕ ВЫКЛЮЧАТЬ"
Multiple versions been found = "Найдено несколько версий"
Keep only one = "Оставьте только одну"
To view release notes = "Для просмотра релизноута"
select either Update VTX or Update Goggle = "выберите обновление VTX или Очков"
then press the Func button to display or hide the release notes = "Потом нажмите кнопку Func для отображения или скрытия релилизноута"
Remove HDZERO_TX or HDZERO_GOGGLE binary files from the root of = "Удалите файлы HDZERO_TX или HDZERO_GOGGLE из корня"
SD Card in order to install the latest online downloaded firmware files = "SD-карты для установки последних загруженных онлайн файлов прошивки"
Visit https://github.com/hdzero for the complete list of changes = "Посетите https://github.com/hdzero для полного списка изменений"
Release Notes = "Релизноут"
not found = "не найдено"
Update = "Обновить"
Target = "Цель"
Current Version = "Текущая версия"
Reset all settings = "Сбросить все настройки"
Update complete = "Обновление завершено"
Goggle update completed successfully = "Обновление очков завершено."
Please repower goggle now = "Пожалуйста, перезагрузите очки."
Settings reset = "Сброс настроек"
All settings have been reset = "Все настройки сброшены."
Empty = "Пусто"
Goggle = "Очки"

; focus chart
Focus Chart = "Фокус"
Click the Enter Button to display the Back Focusing Chart = "Нажмите Enter для отображения фокусной шкалы"
Click the Enter Button again to exit = "Нажмите Enter чтобы выйти"

; clock
Clock = "Время"
Set Clock = "Установить время"
Format = "Формат"
AM = "AM"
PM = "PM"
24 Hour = "24 часа"
Battery not installed or clock not configured = "Батарея не установлена или время не настроено"

; input
Input = "Кнопки"
Roller = "Колесо"
Left short = "Лев. кор"
Left long = "Лев. дл"
Right short = "Прав кор"
Right long = "Прав дл"
Right double = "Прав x2"
Toggle OSD = "Перекл. OSD"
Main menu = "Осн. меню"
Toggle DVR = "Перекл. DVR"
Center HT = "Центр HT"
Calibrate HT = "Калибр. HT"
Toggle fan speed = "Перекл. скор. вент."
Star DVR = "Старт DVR"
Toggle source = "Перекл. источник"
Cycle source = "След. источник"
Switch channel = "Сменить канал"
Change fan speed = "Изменить скор. вент."
OLED Brightness = "Яркость OLED"
Settings apply to video mode only = "Настройки применяются только для видеорежима"
'Toggle source' will switch between HDZero and Expansion module = "'След. источник' переключает между HDZero и модулем расширения"

; go sleep
Go Sleep = "Иди спать"
Go Sleep! = "Иди спать!"
Click the Enter Button to go sleep = "Нажмите Enter, чтобы уйти в спящий режим"
Click any button to exit sleep mode = "Нажмите любую кнопку для выхода"

; ui osd element pos
Top Fan Speed = "Скорость верхнего вентилятора"
Latency Lock = "Фиксированная задержка"
VTX Temp = "Температура VTX"
VRX, Temp = "температура VRX"
Battery Low = "Низкое напряжение батареи"
Battery Voltage = "Напряжение батареи"
Clock Date = "Дата"
Clock Time = "Время"
Channel = "Канал"
DVR = "DVR"
VLQ = "Качество видеосигнала"
Antenna 1 = "Антенна 1"
Antenna 2 = "Антенна 2"
Antenna 3 = "Антенна 3"
Antenna 4 = "Антенна 4"
Goggle Temp Top = "Температура очков, верх"
Goggle Temp Left = "Температура очков, лево"
Goggle Temp Right = "Температура очков, право"
Reset all elements (both modes) = "Сбросить все элементы (оба режима)"
Save changes = "Сохранить изменения"
Cancel = "Отмена"
click to confirm = "Нажмите для подтверждения"
scroll to cancel = "Прокрутите для отмены"
Elements reset = "Сбросить элементы"
Element = "Индикатор"
Pos-X = "Пол. X"
Pos-Y = "Пол. Y"

; ui_keyboard
Highlight Key = "Выделить клавишу"
Select Key = "Выбрать клавишу"
Click = "Клик"
Close Keyboard = "Закрыть клавиатуру"
Hold = "Удержать"
Erase Text = "Очистить текст"
4 changes: 3 additions & 1 deletion src/lang/language.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,14 @@ struct Language {
static struct Language languages[] = {
{LANG_ENGLISH_DEFAULT, "en_us", "English", NULL},
{LANG_SIMPLIFIED_CHINESE, "zh_hans", "Simplified Chinese", NULL},
{LANG_RUSSIAN, "ru_ru", "Russian", NULL},
};

const char *language_config_file[] = {
// uppercase
"ENG.TXT",
"CHN.TXT",
"RUS.TXT",
};

struct CallbackPayload {
Expand Down Expand Up @@ -142,4 +144,4 @@ bool language_config() {
}
}
return false;
}
}
1 change: 1 addition & 0 deletions src/lang/language.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
typedef enum {
LANG_ENGLISH_DEFAULT = 0,
LANG_SIMPLIFIED_CHINESE,
LANG_RUSSIAN,
LANG_END,
} lang_e;

Expand Down
2 changes: 1 addition & 1 deletion src/ui/page_imagesettings.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ static slider_group_t slider_group4;
static slider_group_t slider_group5;

static lv_obj_t *page_imagesettings_create(lv_obj_t *parent, panel_arr_t *arr) {
char buf[256];
char buf[288];
lv_obj_t *page = lv_menu_page_create(parent, NULL);
lv_obj_clear_flag(page, LV_OBJ_FLAG_SCROLLABLE);
lv_obj_set_size(page, 1053, 900);
Expand Down
6 changes: 3 additions & 3 deletions src/ui/page_input.c
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ static bool is_any_dropdown_open() {
* Main allocation routine for this page
*/
static lv_obj_t *page_input_create(lv_obj_t *parent, panel_arr_t *arr) {
char buf[128];
char buf[256];
int contentHeight = 0;
for (size_t i = 0; i < (ARRAY_SIZE(row_dsc) - 1); i++) {
contentHeight += row_dsc[i];
Expand Down Expand Up @@ -271,8 +271,8 @@ static lv_obj_t *page_input_create(lv_obj_t *parent, panel_arr_t *arr) {

lv_obj_t *label = lv_label_create(content);
snprintf(buf, sizeof(buf), "*%s\n%s",
_lang("Settings apply to video mode only"),
_lang("'Toggle source' will switch between HDZero and Expansion module"));
_lang("Settings apply to video mode only"),
_lang("'Toggle source' will switch between HDZero and Expansion module"));
lv_label_set_text(label, buf);
lv_obj_set_style_text_font(label, &lv_font_montserrat_16, 0);
lv_obj_set_style_pad_top(label, 12, 0);
Expand Down
Loading

0 comments on commit d03e23a

Please sign in to comment.