May 31, 2018 Internationalization code generator | ||||
---|---|---|---|---|
| ||||
For those interested, I've open-sourced my localization code generator here : https://github.com/senselogic/LINGUI It converts human-readable translation scripts into compilable D/C# code. For instance, this script : Game New_game Welcome first_name last_name Pears count English : Game New_game "New game" Welcome first_name last_name "Welcome, " first_name " " last_name "!" Pears count *count " " if @count = one "pear" else "pears" German : Game New_game "Neues Spiel" Welcome first_name last_name "Willkommen, " first_name " " last_name "!" Pears count *count " " if @count = one "Birne" else "Birnen" French : Game New_game "Nouveau jeu" Welcome first_name last_name "Bienvenue, " first_name " " last_name " !" Pears count *count " " if @count = one "poire" else "poires" Can be used this way : // -- IMPORTS import std.stdio : writeln; import ENGLISH_LANGUAGE_MODULE; import FRENCH_LANGUAGE_MODULE; import GAME_LANGUAGE_MODULE; import GERMAN_LANGUAGE_MODULE; import TRANSLATION_MODULE; // -- FUNCTIONS void Test( GAME_LANGUAGE game_language ) { writeln( game_language.New_game() ); writeln( game_language.Welcome( TRANSLATION( "Jack" ), TRANSLATION( "Sparrow" ) ) ); writeln( game_language.Pears( TRANSLATION( 0 ) ) ); writeln( game_language.Pears( TRANSLATION( 1 ) ) ); writeln( game_language.Pears( TRANSLATION( 2 ) ) ); } // ~~ void main( string[] argument_array ) { Test( new ENGLISH_LANGUAGE() ); Test( new GERMAN_LANGUAGE() ); Test( new FRENCH_LANGUAGE() ); } Which will thus print : New game Welcome, Jack Sparrow! 0 pears 1 pear 2 pears Neues Spiel Willkommen, Jack Sparrow! 0 Birnen 1 Birne 2 Birnen Nouveau jeu Bienvenue, Jack Sparrow ! 0 poire 1 poire 2 poires I know there are other ways to do this, but for Unity games this was what best matched my needs, especially performance-wise... |
May 31, 2018 Re: Internationalization code generator | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ecstatic Coder | Nice job! |
Copyright © 1999-2021 by the D Language Foundation