mirror of
https://github.com/meshtastic/meshtastic.git
synced 2024-12-28 06:59:45 -08:00
40 lines
1.5 KiB
Plaintext
40 lines
1.5 KiB
Plaintext
---
|
|
id: oled-guide
|
|
title: OLED Localization Guide
|
|
sidebar_label: OLED Localization
|
|
sidebar_position: 3
|
|
---
|
|
|
|
1. Create an extended ASCII custom font. Use a glyph editor to create a new font file. The easiest way is to use the online [glyph editor](https://rawgit.com/ThingPulse/esp8266-oled-ssd1306/master/resources/glyphEditor.html) from the OLED library. ([glyph editor source code](https://github.com/ThingPulse/esp8266-oled-ssd1306/tree/master/resources))
|
|
1. Copy and paste the existing font.
|
|
2. Modify it according desired codepage and save the new font file in `graphics/font` folder.
|
|
Please note that the used font file format differs from common Adafruit GFX.
|
|
2. Update the `customFontTableLookup` function in `Screen.h`
|
|
1. To map the double-byte UTF-8 code to the corresponding extended ASCII character of the desired codepage update the `customFontTableLookup` function in the `Screen.h` file.
|
|
2. Modify the `switch (last)` statement: use left byte from UTF-8 code in the `case` label to map character's right byte to its extended ASCII code by specifying an offset.
|
|
3. Define language and font in `Screen.cpp`
|
|
|
|
```c
|
|
#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. Define language in `variant/*/platformio.ini`
|
|
|
|
```text
|
|
build_flags =
|
|
${esp32_base.build_flags}
|
|
-D xxxxx
|
|
-D OLED_{LANG_NAME}
|
|
-I variants/xxxxx
|
|
```
|