-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Yarn Spinner makes it super easy to offer your dialogue in a new language; you just have to fill out a loc table with the new lines corresponding to the line ids of the original script. That's great, as long as you're doing it at edit time. Fan translations - a core part of game fan and modding culture - can't make use of this. But I think very few changes would be needed to make anyone able to provide a translation for a game.
Yes, it might not be something a game wants to encourage. So it should be optional. And yes, it might come with extra requirements about making people agree to license agreements about use of the original dialogue. But that's on the developer to decide. Today, fan translations or edits of games are happening anyway, but it often involves some level of unauthorised redistribution of a game or its source files. We could easily provide an option where all that needs to be shared is the translation file itself - which anyone who already owns the game could import and use.
How would this work?
A developer would set up their game to check on launch for a suitable file in a suitable location, and for their settings UI to populate extra entries if such an asset is able to be loaded, and for their line provider to be able to fetch from this if the resulting new locale option is selected.
A translator would somehow access a template file with all the line ids and original line content - either something exported from the loc tables and shipped with the game or something just shared online with the interested community. They would then fill out the new line content and somehow indicate the new locale name, probably by file name.
A player could download such a file and put it in the target directory within their own game copy as installed on their own machine, then be able to launch the game and select it from the game settings as a first-class offering alongside any of the languages the game shipped with.
What would this require?
- YarnSpinner-Unity API additions to:
- load a translation from an on-disk asset into a form the line provider can make use of,
- report back the locale code/language name/file name of the asset loaded so that it may be offered in the UI and set in the LocalizationSettings, and
- possibly more complex behaviour for graceful fallback if malformation or missing IDs are encountered. Now also would need to support "the language your settings specify literally doesn't exist anymore".
-
Some thought to the nicest process by which the template files or translation files could be shared. Obviously this part is not really our problem but it would be nice to at least provide guidance on parts - such as "we recommend you provide clear license information for usage of any content in template files you share online" or whatever.
-
Potentially some sort of metadata file. Say, a translation file could be specified by a JSON file giving its locale name and code and fallback languages and the file path to the loc data or whatever. But to not require this would be better. Just a CSV of line content is definitely the ideal easy process.