Keynote: Not Getting Lost in Translations in C++ Software Development
summary
Claims ability to keep compile-time validation of std::format-style format strings while allowing runtime language selection; implements a pipeline that extracts translatable literals, compiles gettext PO/message-format into constexpr tables, and uses consteval/constexpr, C++20/23/26 features (including heterogenous type indexing and reflection) to validate formats, plural forms (from Unicode rules) and argument-to-quantity mapping at compile time. Integrates with build tools, replaces boost::locale backend, runs the same checks at runtime and compile time and reports mismatches before deployment.
AI-written summary · about
chapters (28)
- 0:00Introduction to talk
- 1:13Machine inspection for train wheels
- 3:01Developing the first inspection machine
- 4:51Supporting multiple languages
- 6:50Introducing gettext library
- 8:43Marking translatable text
- 10:28Compiling PO files
- 13:05Plural forms in translations
- 14:37Returning string_view for efficiency
- 15:38Template metaprogramming basics
- 17:36Type traits and template interfaces
- 19:26Rule of Zero and template metaprogramming
- 20:38Understanding functions in C++
- 23:30Function syntax and parameters
- 26:35C++20 format functions
- 29:27Constant evaluation in C++
- 31:16Example of constant expressions
- 33:21Boost.Locale and C++23
- 36:12String translation at compile time
- 38:22Type-based selection for translations
- 39:09Heterogeneous sequences
- 41:06Algorithm for type indexing
- 46:02Production changes in 2023
- 47:09Unit testing translation tools
- 49:10Loading translation modules
- 51:27Compile-time translation checks
- 52:55Compiler as testing framework
- 53:19Summary and conclusion
related talks
01h 24mKeynote: Optimizing for Change
01h 21mC++ MythBusters
01h 02m“What to Expect from a Next-Generation C++ Build System”
01h 37mC++ And Beyond: Discussion
01h 16mPolymorphism, Cohesion, and Coupling in C++
05mReadable C++
01h 00m“Evolving array_view and string_view for safe C++ code"
01h 01mEasy to Use, Hard to Misuse: Declarative Style in C++
