oled-guide
Обзор шагов локализации
Этот гид предоставляет инструкции по локализации OLED-дисплея путем создания пользовательских шрифтов, обновления соответствующих файлов кода и определения настроек языка. Процесс локализации включает следующие шаги:
1. Создание пользовательского шрифта расширенной ASCII
Используйте редактор глифов для создания нового файла шрифта. Самый простой способ — использовать онлайн glyph editor из библиотеки OLED (glyph editor source code).
- Скопируйте и вставьте существующий шрифт.
- Измените его в соответствии с желаемой кодовой страницей и сохраните новый файл шрифта в папке
graphics/font.
Примечание: Формат файла шрифта отличается от распространенного формата Adafruit GFX.
2. Обновление функции customFontTableLookup в Screen.h
- Сопоставьте код UTF-8 из двух байт с соответствующим символом расширенной ASCII желаемой кодовой страницы, обновив функцию
customFontTableLookupв файлеScreen.h. - Измените оператор
switch (last): используйте левый байт из кода UTF-8 в меткеcase, чтобы сопоставить правый байт символа с его кодом расширенной ASCII, указав смещение.
3. Определение языка и шрифта в Screen.cpp
Добавьте определения шрифтов, специфичных для языка, с использованием условной компиляции:
#ifdef OLED_{LANG_NAME}
#include "fonts/OLEDDisplayFonts{LANG_NAME}.h"
#endif
...
#ifdef OLED_{LANG_NAME}
#define FONT_SMALL ArialMT_Plain_10_{LANG_NAME}
#else
#define FONT_SMALL ArialMT_Plain_10
#endif
4. Настройка параметров языка
Основной метод: Определение в variant/*/platformio.ini
Настройки языка можно определить в файле platformio.ini в соответствующей директории варианта:
build_flags =
${esp32_base.build_flags}
-D xxxxx
-D OLED_{LANG_NAME}
-I variants/xxxxx
Альтернатива: Определение в userPrefs.h
В качестве альтернативы модификации platformio.ini язык можно определить в userPrefs.h.
#define OLED_{LANG_NAME}
Оба метода дают одинаковый результат, и выбор зависит от конкретной настройки проекта.