I am the (currently only :() developer of "L20n for games", trying to
bring l20n to games, as you guys bring l20n to the web. Games are
getting more social as well (especially Mobile F2P games), and thus
will require even more complex translations (if that wasn't already
the case).
Between February and May of this year I developed the C# L20n Library
and Unity plugin based on those specs. You can find the Unity Plugin
Repository here:
https://github.com/GlenDC/L20n.unity (The L20n.cs
repository is included as a submodule). All of the current published
work is open source, free and gratis.
Looking back at it, and after several conversations with some of my
users, I learned that Mozilla is now pushing L20n, with the FTL format
(btw what does FTL stand for?). Therefore I am now working again on
L20n.cs to support L20n (FTL) and have moved all old code to the L10n
namespace. That work in progress can be followed at
https://github.com/GlenDC/L20n.cs
I mostly understand L20n (FTL) based on the grammar.ebnf file (found
in l20n/spec),
l20n.org/learn and some other places (such as
l20n/l20n.js).
I do have a couple of unresolved questions, for which I couldn't find an answer:
1) L10n had the concept of private entities, where the identifier
started with an underscore `_`. Those could only be referenced from
within the same or another l10n file. I see that with L20n an
identifier can still start with an underscore `_`, but I don't see any
reference of a private entity anywhere, so am I correct to assume that
this has been removed as a feature in this new version?
2) I have seen on
l20n.org/learn that sections are a way to group
entities (messages) together, but I have never seen an example how
this influences the translation calls. Do they work as namespaces,
such that you have to call `section.identifier` instead of simply
`identifier`?
3) What happened to globals? In L10n the library could provide globals
that were accessible similar to variables, but starting with `@`
instead of `$`. Examples of those were screen information, OS
information and so on. I used this to expose info given by Unity that
could be used by the localizer. Users of the L20n.Unity library could
also add their own globals custom to their games. Would this now have
to be done by using builtins?
4) My last question, I promise. Is there anywhere information
available about what types are allowed as external variables?
With my new push for support I'm trying to stay 100% compatible with
what you guys do. I also have a repository where I collect my
understanding as documentation, you can see it at
https://github.com/GlenDC/L20n.design/blob/master/design/l20n.md
I know this is a lot to ask for a first question, but I would be
really grateful if I could get some answers on these questions.
cheers
Glen