The internationalization of Rust itself


Also, it’s still at the stage where there is no compelling reason to
integrate any of this into rustc itself (instead of doing this in a fork
like Koro)

You really should do that first, explore the space, and come back with a
concrete proposal


For item 2) in my prior listing, extending Rust to Unicode identifiers, as in Go, would be a significant task, in part because Unicode identifiers have three cases: upper case, lower case and title case. Thus Rust’s hygiene rules would need to be extended to cover mixes of three cases rather than just two.

For item 3) in my prior listing, rendering compiler messages in alternate target languages, potentially with argument reordering, I’ve worked out a general translation/substitution approach. I’ve also done a more extensive search of the Rust nightly tree for messages that would require translation. My rough count (before eliminating the few duplicates) is that there are about 7000 such messages that would need translation to each target language.

Any concrete proposal to actually implement either of these changes needs to address the size of the effort, which will be significant.


@scottmcm totally agree, it seems unlikely that any new important point will be raised by any participant so far. I’ll see to launch a new thread oriented toward a proposal for a single topic identified by @TomP among 1, 2 and 5a (numbers).


Update to a prior post, many months later:

  1. For item 2), although I didn’t know it at the time of writing the above, nightly Rust already supported Unicode identifiers. The issue of hygiene for title case identifiers – are they considered upper-case? are they equivalent to upper-case-shifted analogues? – does not appear to have been considered.

  2. For item 3, argument reordering in compiler messages is already supported by format!, println! and related macros and quasi-macros. A revised analysis of the rustc crate on 2018.05.06, using the regex pattern \w!\("(?s)(\\\"|.)*?" found 10151 non-test message strings, which after sort/merge and elimination of strings without English text reduced to about 5700 unique message strings that probably require translation.


(post withdrawn by author, will be automatically deleted in 24 hours unless flagged)


Hi @TomP, thank you for your feedback. I didn’t have much time to dedicate to Rust, let alone Rust and internationalization, in the last months unfortunately. Coming months seem more propice for this, although I can’t promise anaything.

I’m still very interested with this topic, and to see how I might help on it. Let me know if you have any new more up-to-date suggestion. :slight_smile: