I am actually Interested in Translating a page on this site, how do I do that ?


For instructions on translating the wiki itself, go here : Wiki Format

For mod translations, continue reading this page.



Mod Translations


All of the suite's mods are translatable, though many of the smaller ones do not have any relevant text to translate.

Those that do have translations will have a link to the localization page on the mod's main page.

The English row on the Localization Listing will always be the up-to-date, and therefore display the latest Phase number for the mod.
  • You can compare that Phase to the phase of the translation you are interested in to determine whether a translation is necessary

The developer requests that any translator know English and their language fluently, to ensure a quality translation.
  • If you are not fluent in both languages, please leave the translation to another user, thanks.

List of all Localization Pages : Translations Localization List




How do I translate a mod ?


  1. Locate the listing page for the existing translations for the mod you are interested in. The link to such will be noted in the LOCALIZATION section for the mod.
  2. Check to see if an existing translation is already available.
  3. If one exists, it will have a link in the listing, click the link to navigate to the page, and use the Edit button.
  4. If none exists, copy the text from the English translation by doing the following :
    1. Open the English translation page
    2. Edit the page
    3. Select all the text and copy it
    4. Cancel the edit (do not save the page)
    5. Create a new wiki page for your translation, the name should be "<Name of Mod> Localization"
    6. Paste the English contents onto the new page
  5. Begin your translation.
  6. After you are done, feel free to update the Update History Other..page, so I know you have completed your changes. Signing the page after you are done has a couple of benefits :
    1. It tells me you are done making changes for the day.
      • That way I don't pick up an incomplete translation you may still be working on.
    2. The page provides me with an easy method of tracking changes.
      • When I get home at night, I can simply check that page and download the translation without having to look them up individually.
    • Please only sign the page if you want me to pick up the translation. It is unnecessary to update the page otherwise.

anchor: [[How To Translate#WikitextEditor]]
Wikitext_Editor_Option.pngNOTE : If you are copying and pasting from a text file, you should use the "Wikitext Editor" option available in the menu to the right of the Save button, doing so preserves the line spacing.

Remember that this is a collaborative site, so it is possible that multiple users may edit the same translation. Feel free to discuss changes to the translations on the Discussion forums for that page.
  • Please do not attempt to lock up translations for your sole use.
  • I know you may want to work on these changes off-line, however doing so stops other users from contributing, making your work load that much heavier, and slows down the translation process.
  • If you are intending a larger translation, feel free to make a post regarding your intentions, so other users know that you want to take the lead in the project for the interim.
    • Feel free to chat in your native language on the Translation Discussion pages.

Please refrain from making changes to the translations if you do not actually speak the language. Machine translations and other automated approaches do not serve the collective good, and tend to be worse than simply leaving the mod as English.

Finally, feel free to credit yourself on the Localization Listing page for the translation. Any level of participation is greatly appreciated.
  • If you fully translate a mod, update the Phase number listed on the Localization Listing to that of the English translation.



When will the translation be added to the mod ?

anchor: [[How To Translate#When|About Signing Update History Other]]

Please ensure that you sign the Update History Other page when you are complete, so I know to pick up your translation.

If a user completes a full translation of all the text, the translation will either be added to next version of the mod to be released, or a special translation release will be made for the occasion. The mod is normally updated within a couple days of submission.

Partial translations or corrections to existing translations will be included in the next coding update for that mod, at the discretion of the developer.

Note that failure to sign the Update History Other page may lead to your changes being missed until the next major revision of the mod, which could be on the order of months.



What languages are available for translation?

anchor: [[How To Translate#Languages]]

EA provides STBL (String Table) functionality for the following languages:

  • 01: Chinese (Simplified)
  • 03: Czech
  • 04: Danish
  • 05: Dutch
  • 00: English
  • 06: Finnish
  • 07: French
  • 08: Greek
  • 09: German
  • 0A: Hungarian
  • 0B: Italian
  • 0C: Japanese
  • 0D: Korean
  • 0E: Norwegian
  • 0F: Polish
  • 11: Portuguese (Brazilian)
  • 10: Portuguese (Standard/European)
  • 12: Russian
  • 14: Spanish (Standard/European)
  • 13: Spanish (Mexican)
  • 15: Swedish
  • 16: Thai
  • 02: Taiwanese (Traditional Chinese)

Note: That in this mod suite, the 0x17 Translation is reserved for storing the untranslated keys, so they are available for exporting STBL to text files.



What does the special formatting in the files mean ?

anchor: [[How To Translate#Format]]

When translating these files, there is special formatting involved to ensure that the importer used can read your changes :

  1. <STR> </STR> <KEY> </KEY>
    • These values are XML format strings used by the STBL importer and must prefix and postfix each element in the file.
    • Don't translate these values. They must remain <KEY> and <STR> in all languages, and the importer expects them to be English.

  2. The text between the <KEY> </KEY>
    • The language used within the <KEY></KEY> block must be English, so don't translate this information.
      • You can apply gender suffixes though to make brand new <KEY> blocks specific to certain genders.
      • However for a straight translation, you don't need to do anything with this text.
    • Translate the text within the <STR> </STR> block.
      • This is the text that will appear in-game when you are running the game in this language.

  3. Dynamic Text
    • Text in the format {<number>.<string>} must not be translated. These are dynamic text elements that are replaced in game with the appropriate game value.
    • Example: {0.Number} must remain {0.Number} in all languages

    • You can move the dynamic text anywhere in the sentence, not use it at all, or use it multiple times.
    • Choices:
      • {?.Number} - Can only be used on numeric elements.
        • If the element is a integral value (no fractional value), no decimal places will be displayed.
      • {?.Money} - Can only be used on numeric elements.
        • Values are displayed with a simoleon character and no decimal places (Sims don't use spare change).
      • {?.String} - Can be used on any type of element.
        • This is the only formatting available for purely text data.
    • EA provides several formats when an element is a sim:
      • {?.SimName} - the full name of the sim
      • {?.SimFirstName} - the first name of the sim
      • {?.SimLastName} - the last name of the sim

  4. New-line delimitor: \n
    • The string \n is use to specify a line break. It must remain \n in all languages.

  5. <TEXT> </TEXT> and <?xml version="1.0" ?>
    • These lines do not actually need to exist in these type of files, since the importer simply strips them out when encountered.
    • However they may appear in the file in order to make it readable by an XML Text Editor.
    • Do not translate these lines. They must remain in English.

  6. Spacing between entries
    • You can have as much white space as you want between each <KEY><STR> entry.
    • The spacing is unnecessary, however it may make your translation easier to read for others.
    • In many files, the keys are grouped together to make them easier to read.



How do I handle different genders ?

anchor: [[How To Translate#Gender]]

General Modding


Most translation strings that contain a reference to a sim are gender translatable.

Example:
  1. <KEY>NRaas.StoryProgression.Flirt:NewFlirt0</KEY>
    • By default this key is the male string, and is used when no other strings are provided
    • If no "_Female", "_MaleFemale", or "_FemaleFemale" translation is provided, this key is used instead
  2. <KEY>NRaas.StoryProgression.Flirt:NewFlirt0_Female</KEY>
    • If the first sim is female, this string is used
    • If a "_FemaleFemale" translation is not included, this key is used instead
  3. <KEY>NRaas.StoryProgression.Flirt:NewFlirt0_MaleFemale</KEY>
    • If the first sim is male, and the second sim is female, this string is used
  4. <KEY>NRaas.StoryProgression.Flirt:NewFlirt0_FemaleFemale</KEY>
    • If both sims are female, then this string is used

Note that elements 3 and 4 are only used for strings that involve multiple sims.

The suffixes "_Male", "_MaleMale", and "_FemaleMale" are not valid choices for EA Standard localization.
  • These values are only used by StoryProgression story sets, and only provided for backwards compatibility.
  • It is advised that you do not use them when translating to ensure you do not accidentally use them on a non-compliant mod translation.

The hierarchy of selection for translations is as follows:
  • If "_FemaleFemale" is not available, "_Female" is used.
  • If "_Female" is not available, the no-suffix version is used.
  • If "_MaleFemale" is not available, the no-suffix version is used.
  • If no translation is available, the mod will display the Translation Key instead, for debugging purposes.
    • Note that EA Standard is to simply return an empty translation when no translation is available.

StoryProgression


StoryProgression story sets have a special format for dynamic text, to make translations simpler (at least for the English version)

If index {0} is a sim, the following dynamic elements can be used :
  1. {0.SimName}, {0.SimFirstName}, {0.SimLastName} are still usable
  2. {1.String} through {8.String} access the value stored in:
    • <KEY>NRaas.StoryProgression.Stories:Male1</KEY> through <KEY>NRaas.StoryProgression.Stories:Male8</KEY>
    • <KEY>NRaas.StoryProgression.Stories:Female1</KEY> through <KEY>NRaas.StoryProgression.Stories:Female8</KEY>
  3. For humans {9.String} is based on the age of the sim :
    • <KEY>NRaas.StoryProgression.Stories:MaleAge0</KEY> for children or below
    • <KEY>NRaas.StoryProgression.Stories:MaleAge1</KEY> for young adult or adults
    • <KEY>NRaas.StoryProgression.Stories:MaleAge2</KEY> for elders
    • Equivalent keys exist for females
  4. For pets {9.String} is based on the age AND species of the sim:
    • <KEY>NRaas.StoryProgression.Stories.ChildHorse</KEY> and <KEY>NRaas.StoryProgression.Stories.AdultHorse</KEY>
    • <KEY>NRaas.StoryProgression.Stories.ChildCat</KEY> and <KEY>NRaas.StoryProgression.Stories.AdultCat</KEY>
    • <KEY>NRaas.StoryProgression.Stories.ChildDog</KEY> and <KEY>NRaas.StoryProgression.Stories.AdultDog</KEY>
    • <KEY>NRaas.StoryProgression.Stories.ChildLittleDog</KEY> and <KEY>NRaas.StoryProgression.Stories.AdultLittleDog</KEY>
    • Female strings use the "_Female" suffix

  • NOTE: If two sims are involved in the translation, then index {10} through {19} are used for the second sim, and work the same as the first sim.

Version 204 of the mod will include the following additional suffixes :
  • "_UniMale"
    • Used if the second sim is "Male", and the first sim is any gender.
  • "_UniFemale"
    • Used if the second sim is "Female", and the first sim is any gender.

The hierarchy of selection used for story sets is as follows (this section is written with the use of "_UniMale" and "_UniFemale", which will not exist until Version 204) :
  • If "_FemaleFemale" is not available, "_UniFemale" is used.
    • If "_UniFemale" is not available, "_Female" is used.
  • If "_FemaleMale" is not available, "_UniMale" is used.
    • If "_UniMale" is not available, "_Female" is used.
  • If "_Female" is not available, the no-suffix version is used.

  • If "_MaleMale" is not available, "_UniMale" is used.
    • If "_UniMale" is not available, "_Male" is used.
  • If "_MaleFemale" is not available, "_UniFemale" is used.
    • If "_UniFemale" is not available, "_Male" is used.
  • If "_Male" is not available, the no-suffix version is used.

  • If no translation is available at all, the mod will display the Translation Key instead, for debugging purposes.



Is there anything I should be aware of regarding when translating ?


Couple of technical issues:
  • Be careful how long you make certain translations.
    • In order to fit properly onto the Option Listing window in-game, text must fit entirely within the width of the column it is displayed in
    • If the text is too long, an EA error arises where the listing window become broken and starts drawing outside the window bounds. When this happens it is very difficult to navigate the window.
    • For this reason, you should probably test your translation in-game to ensure that everything fits properly.
  • Remember that the mods are meant for a audience with a wide age-range.
    • It is best to keep translations whimsical and avoid the use of hard graphic terms.
  • When a mod is phased-up and provided new translations, the developer will go through and add the additional keys to the bottom of each pre-existing translation file.
    • You only need to worry about the English translation page if the entire translation is missing.
  • If the developer decides to change an existing translation, they will simply delete the old translation from all pre-existing translation files, and move it to the bottom of the file.
    • This way, you do not need to go hunting through the translation for new untranslated text.



I would like to test my translation in-game, how do I do that ?

anchor: [[How To Translate#Testing]]

First you must copy the contents of the translation into a Unicode text file:
  1. Open the appropriate translation page, and use the Edit button
  2. Select all the text, and copy it
  3. Cancel the edit (do not save the page)
  4. Open a text file editor (in Windows use NotePad), and paste the contents of the translation
  5. Use the File Save As and ensure the encoding for the file is in Unicode

There are two methods to convert the text format stored on the wiki page to the format stored in the package files :
  1. Use Packer, a Package Editor created by this developer. It will import <KEY><STR> Unicode files directly.
    • Note that the newer versions of Packer have more advanced error logging when loading these type of files, than the STBL application below.
  2. Use STBL.exe, contained in the zip attached below, to convert the text file into a STBL file, and then use your favorite package editor to import that file into the appropriate STBL line in the mod package.