Something I’ve learned from spending time with some international users of ArduPilot in May 2025 is that it’s a bigger issue than some might think that ArduPilot only supports English.
I would like to start a project/initiative to make it possible for ArduPilot to “be available” in non-English languages. The level of changes to the core ArduPilot itself needs to be discussed and agreed, but from a “good software design perspective”, ideally we need to abstract all language specific text out of the firmware.
Language should be a UI/Ground Control software thing!
Yes in the long run this means changing the way the ground control software works, but OTOH it should save huge amounts of flash to get all those text messages out of the firmware.
I’ve already got some in principle agreement from some partners and international users to help with the project including providing translations in to several different languages, and maybe additional help.
We might have to start with some POC’s for reasonable approaches to how the architecture can be evolved to implement this without (ideally) introducing any breaking changes, at least initially.
My initial thoughts are one of two approaches:
-
create an “localization” branch of ArduPilot than forks off the latest stable branch (and will follow behind stable as each new dot release happens) that is run through a pre-processor that strips out the English. This then has two sub options either:
a. replaces it with each language before compiling
b. replaces each message with a message “code” -
introduce a message coding mechanism into the core ArduPilot code that will continue to emit English (for now) but will also introduce a message code that a ground control software can use to lookup local language versions of the code.
This will require some discussion - any thoughts or suggestions appreciated.