Date: Thu, 9 Apr 2020 18:45:07 -0700
From: Bret Victor
Subject: Translation Kit
Here's a quick video about making ghost patches and installing Translation Kit.  The patches mentioned are Translation Kit patch (30327) and Bret goodies patch (30326).

[IMG_2704.MOV]

Here's a run-through of Translation Kit:

[IMG_2706.MOV]

The basic ideas are:

Defining translators:
 - "Claim (you) translates with ..." gives you a translate function: "Claim (translator) translates using function (f)."
 - Containers inherit all such claims of their contained, and thus get a translate function that does it all.

Translating pages:
 - "Wish (p) is translated by (you)." makes you one of the translators for page (p).
 - A page's active text gets translated by all such translators, in priority order.
 - This means that the text on a page can say anything at all, as long as you provide translators that ultimately bring it down to plain Lua.
 - "Wish (p) is not translated by the default translator." if you really want to get wild.
 - Every page gets a claim "Claim (p) is translated using function (f)." which is the overall translate function for that page (for syntax-highlighting etc)

Default translator:
 - is defined just like any other translator, but Make default translator (30300) translates it into plain Lua and patches it onto the Default translator boot page.
 - The pieces of the default translator are currently Default macros (30281) and Default preprocessors (30279), which are not in the ghost pages, because they're meant to be on a posterboard or something.

Visibility:
 - Wish (p) displays translations by (translator).
 - Wish editors show translations by (translator).