WIP - refactor and extend font generation for non-ascii characters
WIP - add czech characters mapping between UTF8 value and index
WIP - regenerate font files with czech characters
WIP - shorten czech button text, it was causing SHUTDOWN for some reason
WIP - support UTF8 characters in fonts.c
WIP - account for translation in tests
WIP - small fixes
WIP - fix last test
WIP - support UTF8 also in Rust font operations
WIP - add a script to find non-translated english strings in micropython code
WIP - add a validator script for checking missing micropython translations
WIP - translate remaining altcoins and other apps in core (fido, sdcard, TT layouts, ...)
WIP - generate czech glyphs for TT fonts
WIP - modify gen_font.py to account for negative bearing czech characters
WIP - extend translation validation scripts, move them into core/tools
WIP - translate TT layouts in Rust
WIP - fix tests
WIP - fix inverse coloring of nonprintable glyph
WIP - add build and test pipelines for Czech language
WIP - merge both JSON files together
WIP - run new isort
WIP - unify all the translation in Rust, expose to micropython
TEMP - leave en_merged.json file, so it is accessible by translators with old link
WIP - fixes
WIP - add french characters and translation via Google Translator
WIP - skip rustfmt in mako-created files
WIP - revert all the font height changes causing false-positive UI diff
WIP - fixes after rebase
WIP - fix broken translations
WIP - revert some wording changes causing UI diff
WIP - improve validation and translate scripts, translate missing strings
WIP - sort all keys alphabetically
WIP - remove any usage of translation in bootloader
WIP - add newline at the end of JSON file
WIP - fix bitcoin-only strings check
WIP - fix python support check
WIP - add some missing translations
WIP - fix SD card device test
WIP - fix pystyle
WIP - fix rust unittests
WIP - fix click tests
WIP - flag errors in french translations
WIP - add script transferring translations data into a byte blob
WIP - regenerate fr.rs
WIP - store and read language translations from flash
WIP - storing language name in storage
WIP - sending language_data in apply_settings protobuf message
WIP - separate protobuf message for translations, fixes
WIP - set up translations area for TT as well
WIP - get rid of TREZOR_LANG env variable during build
WIP - make the firmware buildable for TT
WIP - add basic device tests
WIP - set language for tests
WIP - counting with language when writing fixtures
WIP - add todos
WIP - fix CI
WIP - unify translations, make titles CAPITAL
WIP - translate missing english
WIP - skip translations messages for T1
WIP - not changing tests names for english
WIP - fix flake8
WIP - no test language setting for T1
WIP - clippy lint about complex data type
WIP - fix some english UI diff for TR
WIP - fix cstyle
WIP - minimize the usage of #[cfg(feature = "micropython")] outside translations module
WIP - minimize TT's UI diff
WIP - fix ruststyle
WIP - fix TR build
WIP - advanced Shamir text change
WIP - storing the language name as the first item in the translation data
WIP - modify and extend tests after storing language name
WIP - modify checklist sentence
WIP - add TEST_LANG into Makefile for all the emu tests
WIP - default arguments
WIP - reimplement default arguments
remove unneeded pub from get_info function
WIP - Rust handling of object attributes lookups from upy - thanks Matejcik!
WIP - generate mock interface for attribute-based translations lookups
WIP - change function calls to object attributes
WIP - symbolic link for unix/translations.c
WIP - fix and improve the reading of translations - thanks Matejcik!
WIP - add support for multiple languages in removing missing tests
WIP - fix multiple-accounts warning in tests
WIP - fix encoding of newlines in translations
WIP - fix czech tutorial text
WIP - fix czech click tests
WIP - do not translate wire error messages
WIP - add language options to click tests as well
WIP - setup czech device tests in CI
WIP - setup czech click tests in CI
WIP - record czech device tests for TR
WIP - record czech click tests for TR
WIP - record czech device tests for TT
WIP - record czech click tests for TT
WIP - pystyle
WIP - cstyle
WIP - fix Rust micropython import dependency
WIP - fix czech recordings
WIP - support french translations in tests
WIP - shorten some french words to fix the tests
WIP - fix micropython cfg compilation
WIP - record french click tests for TR
WIP - record french device tests for TR
WIP - record french device tests for TT
WIP - record french click tests for TT
WIP - fix french translations - shorten them
WIP - translate missing french words
WIP - fix click tests
WIP - add french tests into CI
WIP - pystyle
WIP - allow for czech/french tests in update script
WIP - update czech fixtures
WIP - update french fixtures
WIP - ruststyle
WIP - disallow MPU to run it on hardware
WIP - cstyle
WIP - change translations delimiter from * to \x00
WIP - change translations protobufs
WIP - remove language handling from storage
WIP - add header into JSON files
WIP - count with header in translations blob
WIP - yml style fixes
WIP - fix proto gen
WIP - verify version and data hash
WIP - fix loading test translations
feat(core): allow access to translations area in firmware
[no changelog]
WIP - fixes after rebase
WIP - increase the TT's translations area to 3 sectors
WIP - dynamically read the maximum translations size
WIP - record non-english tests from CI
WIP - loading font data from translations blob
WIP - bump translations version
WIP - include czech and french glyph data
WIP - whitelist another negative-bearing glyph
WIP - remove czech/french glyphs from common font files
WIP - fix language tests
WIP - specific fonts for specific models
WIP - revert the non-ascii font hardcoding
WIP - include missing BIG font into nonprintable logic
WIP - minor Rust code improvements
WIP - include newlines at the end of json files
WIP - move glyph Rust function to librust_fonts.h
WIP - add all fonts into translations file
WIP - move fonts into its own dir
WIP - reflect separate dir for fonts
WIP - not putting translations trezorhal into bootloader
WIP - write and read multiple fonts into translations data
WIP - silence pyright issue/notissue
WIP - delete no more used translations/*.py imports
WIP - fix bootloader builds by introducing translations feature and TRANSLATIONS flag
WIP - fix TT's bootloader Rust build
WIP - fix tests in non-english languages
WIP - not search for UTF-8 when there are no translations data
WIP - add colons to strings where missing
WIP - fix language loading in tests
WIP - fix signmessage input flow to work in all languages
WIP - create offset table for translation strings
WIP - code improvements
WIP - record foreign language fixtures + sync with main in english
WIP - do alignment check before reading u16 data
WIP - allocate blob in RAM for translations data
WIP - add TODO for blob generation
WIP - record non-english device tests
WIP - use bytes.align_to instead of messing with pointers
WIP - fixtures
WIP - remove unused import
WIP - add order.py
WIP - add order.json
WIP - take order.json into account in creating general.rs
WIP - take order.json into account in generating the blob
WIP - style
WIP - sort the language files
WIP - remove unused file
WIP - code improvements
WIP - add TODO for homescreen notification
WIP - translate plural forms
WIP - translate time intervals
WIP - sign translations with dev keys, validate signatures, improve robustness
WIP - improve tests for translations
WIP - add `trezorctl utils sign-translations` for production signing of the blob
WIP - pyright fix
WIP - changing TR progress loader offset - it was colliding with title
WIP - show indeterminate loader when loading translations data
WIP - record new and updated language tests
WIP - show the change language title/prompt in the target language
WIP - sort keys
WIP - add crowdin-cli into shell.nix
WIP - add crowdin sync script
Relevant micropython commits:
01374d941f9d7398e35990b574769b20c6779457 py/mpconfig.h: Define initial templates for "feature levels".
7b89ad8dbf432ab51eea6d138e179bf51394c786 py/vm: Add a fast path for LOAD_ATTR on instance types.
68219a295c75457c096ac42dbe8411b84e1e1a51 stm32: Enable LOAD_ATTR fast path, and map lookup caching on >M0.
e0bf4611c3a8b23b3c52e6a7804aac341ac3a87d py: Only search frozen modules when '.frozen' is found in sys.path.
f2040bfc7ee033e48acef9f289790f3b4e6b74e5 py: Rework bytecode and .mpy file format to be mostly static data.
926b554dafffa1e9bd80aa12fea5c621221c9d79 extmod/moduos: Create general uos module to be used by all ports.
2b409ef8a46015f8f3bd20bc44e644637dbe9bd3 unix/moduos: Convert module to use extmod version.
47f634300c5572571816817f16836113c98814ae py: Change makemoduledefs process so it uses output of qstr extraction.
0e7bfc88c6ac6b5d64240f91183a3cfe2ab67ade all: Use mp_obj_malloc everywhere it's applicable.
2a6ba47110be88ff1e1f5abd1bd76c353447884c py/obj: Add static safety checks to mp_obj_is_type().
In a very weird situation, our declaration of `shutdown()` shadows a
function `shutdown(int, int)` from sys/socket, which _just happens_ to
be called by libxcb when closing the sdl window. This calls
`main_clean_exit` which calls into micropython and causes at best an
uncaught NLR and at worst an outright segfault because by that time the
micropython environment doesn't exist anymore.
I didn't think this sort of thing would be possible but here we are??
Fixed by removing `__shutdown()` and replacing `shutdown` with
`trezor_shutdown`
Features `micropython` and `protobuf` are defined. Protobuf implies micropython
because our protobuf impl is pretty much _for_ micropython.
The respective subdirs are included only if the matching feature is defined.
util.rs is moved to micropython because it mostly concerns micropython interop
ResultExt, useful only for ui_debug, is moved to ui::util.
A new module `trezorhal::time` is provided. It mirrors functionality of
`micropython::time` via stmlib functions. The intended use is to always use
functions from `trezorhal::time`. The right micropython variants are used when
micropython is available, otherwise the pure stmlib versions are called.
ui::*::layout is conditional for micropython feature, because it only concerns
micropython layouts. If we want to reuse layouts defined there, we will need to
export them to not depend on Objs and Qstrs etc.
Can be built by `TREZOR_MODEL=R make build_unix`, `make build_unix_frozen` does not work yet.
All the dialogs are not very pretty, they are just meant to work.
Relevant micropython commits:
d1bfb271d7686708fe8711a177629c8bf6e7f6a6 lib/uzlib: Move uzlib code from extmod to lib.
4d546713ec8858cbf908de45de11cbfc46a20971 shared: Introduce new top-level dir and move 1st party lib code there.
ca920f72184c50f61002aa9d5cd01555b1e28b7b py/mpstate: Make exceptions thread-local.