Skip to content

Instantly share code, notes, and snippets.

@Deledrius
Created January 27, 2012 13:52
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Deledrius/1688891 to your computer and use it in GitHub Desktop.
Save Deledrius/1688891 to your computer and use it in GitHub Desktop.
Localization Licensing Proposal for Cyan
-- Problem --
Uru has an international audience, and an extensible Localization system which allows content creators to
provide translated text to be utilized automatically. Unfortunately, many of the dialogs currently in Uru
don't take advantage of this capability and cannot be adapted to do so properly without modifying them.
-- What the Community Has Accomplished Thus Far --
Thanks to the efforts of everyone at the UruLocalizationProject, we have a database of translations in a
large number of languages. Changes have been made to the code re-enabling the functions which had been
disabled after Untìl Uru, as well as fixes in the input routines that now allow non-US keyboards.
-- What the Community Needs to Continue --
There are two primary allowances we need from Cyan in order to continue our efforts to expand Uru's
accessibility:
1) We need a permissive license that would allow us to copy, translate, and distribute all textual information
available in Uru, currently located in the .loc files. This would legalize translations and allow their
distribution, a necessary step to put all of the community's work into use.
2) We need access to the source files for all GUI used in Uru so that we can normalize their use of the
provided hooks in the code which they currently do not use, and a license to re-distribute at least the
compiled output with those fixes applied. If that is deemed impossible, an inferior solution that would
allow at least this specific goal is a license to modify and distribute the existing PRPs containing
translatable GUI items.
Thank you for reading and considering our proposal.
Following is additional technical information.
------------------------------------------------------------------------------------------------------
-- Technical Information --
The .loc files are XML files containing translations for all textual items in Uru. The ULP (http://rel.to/ulp)
already has an extensive library of translations and a system to export that database to Uru-ready .loc files.
Not all of Uru uses these however, with some values hard-coded in Python scripts or the PRPs themselves, but
this can be converted as the GUI items have the ability to reference the XML paths directly. Much of this
Python code references the GUI items by TagIDs, which are arbitrary unique numbers used to refer to the
resource. This is messy, as it must be updated when the GUI is updated and can otherwise become out of sync;
also it is problematic in the current data set as not all translatable GUI items have been assigned TagIDs,
meaning they must be found (if at all) by very fragile code. There is also an embedded text field in these
items, which currently contains only the English text. Fortunately, these items support a self-describing
LocalizationPath which automatically informs the Plasma engine's LocalizationManager which string to use,
allowing localization to be handled cleanly and consistently. All of these items are a part of the data and
without a license to modify and distribute the PRPs, we cannot continue with the efforts to localize Uru
outside of hacks and shims to the existing elegant but under-utilized engine.
As an additional benefit to Cyan: the changes made under the proposed licensing could be relatively easy
for Cyan to integrate back into their own assets without affecting current functionality. This would be
impossible if only binary changes are allowed to the exported PRPs rather than the .max sources, and it
allows Cyan to take advantage of the localization code changes in the engine once it reaches maturity in the
community testing with very little friction.
An extra note about the inferiority of the secondary suggestion in (2) which only allows modification of
PRPs -- The reason I mention this is inferior, aside from the obvious, is that while it would allow the
immediate goal of activating the built-in localization, I anticipate minor bugs such as text flow and
sizing in the UI when languages other than the one for which they were designed are used. These will be
extremely difficult to fix under the limited solution mentioned and should be far simpler under the ideal
of having access to the original 3D Studio Max source files.
-- License Suggestions --
I was going to wrap up by suggesting licenses in order to lighten the load on Cyan, but as the OU Content
Licensing thread proves there are many viable options and they all address different needs. Unfortunately,
in order to find where that spot of compromise is we'll need feedback from Cyan on this point. I implore
Cyan, should they wish to consider this proposal, to respond with their concerns and needs first. At that
point tangible suggestions can be made regarding the specifics and the proposal can move forward should
they be agreeable.
At any rate, for the .loc files I'd suggest terms which preserves Cyan's ownership of the text (some of
which, being canon from the Myst universe, has inherent value to them), while allowing edits and
distribution by the community. A disclaimer stating that Cyan is only responsible for the original English
text may also be desirable.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment