Tag: i18n
Вместо того чтобы заняться делом и лепить прошивку паялки, решил сначала позакрывать явные пробелы в LittlevGL. Один из них - поддержка интернационализации. Вообще, формально, есть gettext, но он хранит словари в файловой системе, а для эмбедов надо что-то другое.
И как-то вот не получилось найти под сишечку достаточно гибких и удобных решений. Возможно, плохо искал. Но что-то мне подсказывает, что дело в отсутствии пакетного менеджера, из-за чего вагон сишных библиотек зависает на уровне поделок энтузиастов. В общем, решил что быстрее запилить свое. С мыслью что на Rust это потом тоже пригодиться.
Несмотря на название, получилась довольно универсальная вещь, работающая по тем же принципам что gettext:
- Фразы сканируются в yaml-файлы (формат как в формат в ruby)
- Потом можно либо заполнить переводы ручками, либо прокинуть дальше, в веб-переводилки (потому что формат файлов стандартный)
- В любой момент можно “скомпилировать” переводы в С-шный исходник.
С учетом “особенностей” сишечки, чтобы не возиться с внешними библиотеками, скрипты генерят 2 файла (“lv_i18n.h” и “lv_i18n.c”), в которых есть все что надо.