Sprichst Du Deutsch? Ou peut-être français?

Discussion in 'Localization Archives' started by FireLotus, Oct 29, 2015.

  1. FireLotus

    FireLotus Royal Bard & Master Dabbler

    Messages:
    969
    Likes Received:
    6,462
    Trophy Points:
    125
    Gender:
    Female
    Location:
    Anchorage
    [From a Dev+ Forum Post by Joaquin “wizardsmoke” Del Canto]

    Hello everyone,


    You might have noticed that Jason and I have been working on localization recently. For those of you who may not know, localization involves translating all of the text that exists in the game from English to various other languages. There is A LOT of text that needs to be translated, and that text is stored in various different formats and contexts throughout the project. The text is also constantly changing during the course of day-to-day development. Needless to say, localization of SotA has been a significant undertaking. In this post, I will share some of the specifics about the localization process that we have been developing.

    GetLocalization

    Translations will be crowd-sourced via a web service called GetLocalization. Sometime in the next few weeks, we plan on organizing volunteer translators from the SotA community and giving them access to the GetLocalization project. There, translators will be able to compose and collaborate on translations for individual pieces of text in the game.

    In order to use a service like GetLocalization, we need a way to deliver all of our English text to that service, as well as a way to bring translated text from that service back into the game. Our goal has been to develop and automate this pipeline.

    Exporting English Text

    The first step in developing this pipeline was identifying all of the places where English text is stored in the project. We came up with a list of several main categories/places where text is stored:

    • C# Scripts – Hard-coded strings throughout our C# code.
    • Serialized Assets – This includes text stored in assets that are serialized by Unity, including Scenes, Prefabs, and ScriptableObjects.
    • Books – Each book has an English text file associated with it.
    • Help – Similar to books, help/hint windows each have an associated English text file.
    • NPC Conversations – All of the things that NPCs can say.
    • Skills – Names, descriptions, and related pieces of text for each skill. These are defined in a spreadsheet.
    • Titles – Similar to skills, each title (Lord of the Manor, etc.) is defined in a spreadsheet.
    With this list in hand, the next step was to develop automated processes for each category in the list that would aggregate the text for that category into a single file. We call these processes “generators”, since they generate a file. We have written generators for several of the categories on the list, such that we now have a small set of files; one file for each category.

    These generated files constitute our “source” localization database. In addition to the raw English text, these files store a revision number, a comment, a unique identifier, and some information about where the text came from.

    With the source files in place, we were ready to upload text to GetLocalization. For each of our source files, we convert the file to a special format (XLIFF) that GetLocalization can understand before uploading it. After the files are uploaded, GetLocalization can then display the English text and accept translations.

    Importing Translated Text

    GetLocalization generates one translation file per language per source file. For example, if we were translating to German and Spanish, then for each source file, there would be a German translation file and a Spanish translation file.

    After we download these translation files from GetLocalization, we then convert them to the same format that our source database files are stored in. These files constitute our “target” localization database.

    From there, the last step was putting the text back into the Unity project. For the most part, this was a simple process of copying data from the target database to parallel files in the Unity project.

    Going Forward

    Now that we have this pipeline in place, we are almost ready to begin accepting translations. Tomorrow, we will have a meeting to decide how to begin organizing the community, and to determine a rough timeline for launching the GetLocalization project. (Stay tuned during the upcoming weeks for more information about how you can get involved! :))

    It has been satisfying to see all of these processes come together, and I expect that it will be even more satisfying to see the whole system in motion when translators become involved. Once we do have active translators, we anticipate receiving feedback about the translation process that we can then use to improve it.

    While I did not explain every detail, I hope that this has helped illuminate some of the work that we have been doing, beyond just “Localization” in the daily meeting reports.

    -Joaquin / wizardsmoke

    Starting with German, our first round of translations will include (with more to come later):
    • German
    • French
    • Spanish
    • Italian
    • Portuguese
     
  2. royalsexy

    royalsexy Avatar

    Messages:
    532
    Likes Received:
    1,725
    Trophy Points:
    63
    Location:
    Brisbane, Australia
    Nihongo desu ka?! Japanese for our huge Japanese following!
     
  3. Sindariya

    Sindariya Avatar

    Messages:
    2,643
    Likes Received:
    7,756
    Trophy Points:
    165
    Gender:
    Female
    Ja spreche ich. Finally it is getting real, we get localization.
     
  4. Mata

    Mata Avatar

    Messages:
    4,102
    Likes Received:
    10,105
    Trophy Points:
    153
    Gender:
    Female
    Location:
    Ruhrpott - Deutschland
    Ja, ich spreche die deutsche Sprache. :)
     
    Sir Cabirus and Atogrim like this.
  5. Earl Atogrim von Draken

    Earl Atogrim von Draken Avatar

    Messages:
    6,104
    Likes Received:
    11,630
    Trophy Points:
    165
    Gender:
    Male
    Lügen! Alles Lügen! ^^
     
    Sir Cabirus and Mata like this.
  6. Mata

    Mata Avatar

    Messages:
    4,102
    Likes Received:
    10,105
    Trophy Points:
    153
    Gender:
    Female
    Location:
    Ruhrpott - Deutschland
    Ey, das ist mein Lieblingslied! ;)
    [​IMG]
     
    Sir Cabirus and Atogrim like this.
  7. Earl Atogrim von Draken

    Earl Atogrim von Draken Avatar

    Messages:
    6,104
    Likes Received:
    11,630
    Trophy Points:
    165
    Gender:
    Male
    Hehe.
    Tja, endlich geht es los.
    Dann bekommen wir vermutlich auch bald einen CM ^^
     
  8. Earl Atogrim von Draken

    Earl Atogrim von Draken Avatar

    Messages:
    6,104
    Likes Received:
    11,630
    Trophy Points:
    165
    Gender:
    Male
    Na sowas. Das Forum wurde umbenannt.
     
  9. FireLotus

    FireLotus Royal Bard & Master Dabbler

    Messages:
    969
    Likes Received:
    6,462
    Trophy Points:
    125
    Gender:
    Female
    Location:
    Anchorage
    Though we would have loved Japanese to also be on that list, there are special considerations that need to be addressed to do it properly (like redesigning the UI to accommodate the alphanumeric characters, for example). And since we want to do it properly, it was postponed until we can. :)
     
  10. royalsexy

    royalsexy Avatar

    Messages:
    532
    Likes Received:
    1,725
    Trophy Points:
    63
    Location:
    Brisbane, Australia
    Yeah I know, but you know my timezone - I play with Japanese friends all the time :)
     
    John Markus likes this.
  11. Lars vonDrachental

    Lars vonDrachental Avatar

    Messages:
    944
    Likes Received:
    1,346
    Trophy Points:
    105
    Gender:
    Male
    Location:
    Germany
    Richtig Atogrim, Zweifel sind da durchaus berechtigt...immerhin wissen wir nach so einem Beitrag ja nur, dass diejenige oder derjenige "irgendwie" eine deutschsprachige Nachricht schreiben kann. :p
     
  12. Lady Morgana

    Lady Morgana Avatar

    Messages:
    166
    Likes Received:
    75
    Trophy Points:
    30
    Gender:
    Female
    Location:
    Caracas, Venezuela
    Servus! Ich studiere Übersetzung English/Deutsch und ich möchte in diesem Projekt zusammenarbeiten. Ich werde auch mit dem Spanisch Übersetzungen arbeite, weil es meine Muttersprache ist.;)