mirror of
https://github.com/pelgraine/Meck.git
synced 2026-10-31 04:02:01 +01:00
Settings > Experimental Features
- SettingsScreen.h: "Experimental Features >>" moved from the end of the
top-level list to directly under "Rx Log >>".
- New Language row (all T-Deck builds), first in the Experimental
sub-screen. It shows the action: "Language: Change to French" in
English, "Langue : Passer a l'anglais" (with the accent) in French.
Enter toggles and saves.
- Choosing French swaps the Classic font style to Noto Sans (Classic has
no accents); the text size is left alone. While French is on, the Font
picker skips Classic. Switching back to English leaves the font as is.
- NodePrefs.h, DataStore.cpp: new pref ui_lang at byte 1523
(0 = English, 1 = French). The prefs file grows to 1524 bytes; older
files load as English.
Translation framework
- MeckLang.h (new): MECK_TR("English", "French") picks the string for
the current language; meckUiLang() in main.cpp reads ui_lang. French
strings are UTF-8, written as \x escapes so source files stay ASCII.
French translations (UITask.cpp)
- Home tiles, Phone tile and the status strip.
- First view of each home page: Recent heard, Radio, Bluetooth, WiFi,
Advert, GPS, Battery gauge, Hibernate/power off options, Timezones.
- Start-up key hint box.
- Not yet translated: Settings and every other screen, and the home
pages' sub-states (GPS UTC editor, power-off confirmation, Timezones
editor hints).
Fonts
- New Adafruit GFX fonts covering U+0020-U+017F (ASCII, Latin-1
Supplement, Latin Extended-A: French, Czech and other European
accents), generated with stock fontconvert from the same sources as the
fonts they replace. Their ASCII glyphs are byte-identical, so English
text is unchanged:
- fonts/NotoSans7pt8b.h (Noto Sans Tiny), from Google Fonts'
NotoSans[wdth,wght].ttf
- fonts/Montserrat7pt8b.h (Montserrat Tiny), from Google Fonts' static
Montserrat Regular (npm @expo-google-fonts/montserrat 0.4.2)
- fonts/NotoSansBold12pt8b.h (Noto titles and clock face), from Google
Fonts' static Noto Sans Bold (npm @expo-google-fonts/noto-sans 0.4.2)
- MeckFonts.h: Noto size 0 -> NotoSans_Regular7pt8b, Noto sizes 3 and 5
-> NotoSans_Bold12pt8b, Montserrat size 0 -> Montserrat_Regular7pt8b.
- Removed the replaced fonts: NotoSans7pt7b.h, Montserrat7pt7b.h,
NotoSansBold12pt7b.h.
- Effect for all users: accented letters in names and messages now show
at Tiny size with Noto Sans and Montserrat, instead of being reduced to
plain letters. Classic is unchanged.
- Still without accents: Montserrat at Larger (Montserrat9pt7b).
Display driver
- GxEPDDisplay.cpp: measureTextRawStyled() and drawTextRawStyled() (home
tiles and status strip) now decode UTF-8 when the font has accented
glyphs: ASCII through Adafruit GFX as before, other characters from the
font's glyph table, as print() does. Plain ASCII labels take the old
path unchanged.
Tested on device (7 Oct 2026): Classic + Tiny -> Change to French swaps
to Noto Sans automatically; the home tiles and translated home pages
display correctly in Noto Sans Tiny. Not yet tested: French at Larger,
French with Montserrat, accented 12pt bold titles (accented capitals are
6 px taller than English ones), English screens for regressions.