rhombus-prototype
rhombus-prototype copied to clipboard
Make RFC on internationalising racket2
Like string-constants-lib String constants support internationalisation via translation files so DrRacket UI can be used in a range of languages, but applied to the code. https://en.m.wikipedia.org/wiki/Non-English-based_programming_languages
Of course this makes the DrRacket "Determine language from source" weird.
I mean, the grammar of Racket is really:
#lang <id>
<whatever>
Is #lang
and <id>
supposed to be i18n-able?
@sorawee yes and also right to left like Arabic
لغة مضرب#
(Just a guess
#lang
is very difficult to internationalize, but you can use #!
instead.
@gus-massa what makes it difficult?
I think that two productive things in this realm would be (1) integrating a notion of language into Scribble and (2) moving from exceptions that just strings to a huge number of Java-style exceptions with all the fields. The best example of this second point is the contract system. It has a huge amount of interesting information embedded in the string representation of the error.
Related work: the javascript package cacache
on npm has multiple localized APIs, with the documentation and the library's exported identifiers available in both English and Spanish. I would be very happy to see something similar in the Racket world.
Changes to infrastructure must be made to support easy creation and integration of translations. Documentations, main site, etc.
Another place is tools, like raco for example.