oled-guide

Обзор шагов локализации

Этот гид предоставляет инструкции по локализации OLED-дисплея путем создания пользовательских шрифтов, обновления соответствующих файлов кода и определения настроек языка. Процесс локализации включает следующие шаги:

1. Создание пользовательского шрифта расширенной ASCII

Используйте редактор глифов для создания нового файла шрифта. Самый простой способ — использовать онлайн glyph editor из библиотеки OLED (glyph editor source code).

  1. Скопируйте и вставьте существующий шрифт.
  2. Измените его в соответствии с желаемой кодовой страницей и сохраните новый файл шрифта в папке graphics/font.

Примечание: Формат файла шрифта отличается от распространенного формата Adafruit GFX.

2. Обновление функции customFontTableLookup в Screen.h

  1. Сопоставьте код UTF-8 из двух байт с соответствующим символом расширенной ASCII желаемой кодовой страницы, обновив функцию customFontTableLookup в файле Screen.h.
  2. Измените оператор 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}

Оба метода дают одинаковый результат, и выбор зависит от конкретной настройки проекта.