Login
You're viewing the adforward.org public feed.
  • Nov 8, 2026, 12:07 AM
    retooted Quin

    I'm happy to officially announce patois, a set of Rust crates for translating desktop apps with gettext. It's what translates Paperback, and with 0.3 out, I think it's finally in good enough shape for other people to use for their own apps.

    What it does:

    • You mark strings with t(), and patois collects them into a template for translators. Translations are plain .po files, so Poedit and other gettext tools just work.
    • Translations are compiled and embedded in your binary, compressed, and only unpacked when a language is first used. No locale folder to ship.
    • Picks the language that best fits the system, so someone set to zh-Hans-CN gets your zh_CN translation.
    • Plural forms follow each language's own rules.
    • Libraries can mark their strings too, with no setup of their own. Their strings end up in the app's catalog, so one language setting covers everything. ship-shape and wx-utils already do this.
    • Optional wxDragon support, which also translates the stock strings wxWidgets uses in its built-in dialogs.
    • Checks translations for lost placeholders, menu accelerators, and keyboard shortcuts.
    • Optional machine translation through the Claude API. It can translate your readme too.
    • Extracts strings from Swift and Kotlin and generates the iOS and Android string files, so a mobile app can share the desktop app's catalog. That's how Paperback's 17 translations reach all five platforms.

    MIT licensed, and on crates.io.
    github.com/accessware/patois
    #Rust #Rustlang #i18n #wxDragon

    💬 1🔄 4⭐ 0