Published using Google Docs
Localization Instructions
Updated automatically every 5 minutes

Welcome

Thank you for your interest in helping us localize Shroud of the Avatar: Forsaken Virtues!

Please take some time to read the instructions below before you begin translating text.  As questions arise, we will be adding more information to these instructions, so be sure to check here for anything that you are unsure about.  

Note that Shroud of the Avatar is still in development, and as such is constantly changing as we add and remove content and features, or fix and improve existing ones.  Similarly, text in the game is also constantly changing.  This means that some text will need to be retranslated as it changes.  Some text may even be removed altogether, along with any translations of that text.

Instructions

Using the Zanata Editor

Please refer to this page for instructions about how to use the Zanata Editor.

Length of Translations

Some text in the game has limited space in which it can be displayed.  In these cases, it is necessary to limit the length of translations to 30% larger than the English text.  Please keep this in mind when translating text in the following files:

Exceptions to length rules

  1. location display name: These show up as tooltips, so they can be a little longer. Generally up to twice the English text is acceptable here.

Translations for text from all other files do not need to adhere to this limitation because there is no significant limitation to the amount of space available to display this text.  This includes text in the following files:

Format Parameter Tags

These tags (such as “{0}” and “{1}” in the example below) are replaced with other text at run-time.

Example: You looted {0} gold from {1}.

These should not be altered or removed in the translated version of the text.  However, they may need to be repositioned to an appropriate place within the translated version.

Text that contains one or more of these tags usually includes some associated notes/context that describes what kind of text the tags will be replaced with.  If this context is missing or requires further elaboration, then please let us know and we will clarify things.

Gender Formatting

Used when a word needs to be modified based on the gender of some other controlling word in the sentence. For example:  “{0} plays his instrument.”  We want to use either “his” or “her”, depending on the gender of the noun {0}.

We use a gender formatting pattern for this situation.

Example: {0} plays {@0/his/her/its/} instrument.

The system will select either “his”,”her”,or “its” based on the gender of the noun {0}, which is only known at run-time.

The gender format pattern starts with {@  followed by a digit [0-9], followed by separator character / (forward slash), then a variable number of choices separated by the separator character, and then ending with the separator and then } .   The digit matches the parameter number. If you matching with parameter 0, then the digit can be omitted.  At runtime, if the noun is masculine, the first choice is selected. If the noun is feminine, the second choice is selected, and if the noun is neuter, then third choice is selected.  The system will choose the first choice if there isn’t a choice provided for a given gender. For example, if only male and female choices are given, and at runtime the noun is neuter, then the masculine choice will be used.

You can add more gender replacement patterns in a sentence if you need to. For example:

{0} {@0/plays/plays/plays/} {@0/his/her/its/} instrument.

is also allowed.  All gender formatting patterns are replaced at runtime based on the same controlling noun.

Example when there are more than one numbered parameter in the string:

{0} {@0/looks on/looks on/} as {1} {@1/plays/plays/plays/} {@1/his/her/its/} instrument.

Special Gender Formatting Rules:

Local Character Gender

Sometimes you need to change the gender of a word or words based on the gender of the local player’s character, but the player’s name does not appear as an argument (e.g. {0} would be missing) to the string.  For these strings you can use a special notation: {@C/male/female/neuter/}.   This pattern is just like the regular gender pattern, but has a ‘C’ after the @ symbol - instead of the number.

(“Local” means ‘the player at the keyboard; i.e. not other online players.)

Player Titles

When translating player titles (e.g. “Knight”, or “Duchess”, etc), you may use the standard gender notation specify male / female gender variants for each title. For example:

{@/Archduke/Archduchess/}

“Archduke” will be used for a male character, “Archduchess” for female characters.

Conversations

For strings related to conversations, (e..g barks, responses, keywords), you can use a special gender formatting pattern when you need to modify the gender of words based on the gender of the NPC (non-player character) that is speaking:  {@N/male/female/neuter/}.   This pattern is similNon-player character.ar to the local character gender pattern, but uses an ‘N’ instead of a ‘C’.  The ‘N’ stands for  

Also note that you may use the local character gender pattern in any conversation strings - in the same string if needed.

NPC Names

NPC (non-player character) names may also use the NPC gender selector pattern:  {@N/male/female/neuter/}.  This pattern can be used where the context of the string is either “NPCName” or “NPCGenericName”.  An example of using this would be:  {@N/Bartender/Barmaid/}.   In this case, the NPC’s name will be “Bartender” if the character is male, or “Barmaid” if the character is female.  An NPC can possibly be neuter, in the case of a robot, so you can optionally add a third gender variant if need be.

Plurals Formatting

Used when a word needs to be modified based on the numerical quantity that is only known at run-time.  

For example:  The server will shut down in {0} minutes.

In English, we would like to substitute “minute” for “minutes” when the number is one.  We solve this by using a plurals formatting pattern.

For example: The server will shut down in {0} {?0/minute/minutes/}.

The system will select either “minute” or “minutes” based on the value of {0}, which is only known at runtime.

The plural format pattern starts with {?  followed by a digit [0-9], followed by a separator character / (forward slash), then a variable number of choices separated by the separator character, and then ending with the separator and then } .  The digit matches the parameter number. If you matching with parameter 0, then the digit can be omitted.  At runtime, if the numeric value is one, then the first choice is selected, otherwise the second choice is used.  For French, the first choice is also used when the numeric value is 0.

Tags in Dollar Signs: $tag$

These tags are similar to format parameters (described above).  These tags should not be altered or removed in the translated version of the text, but may need to be repositioned to an appropriate place within the translated version.

Dialog barks that contain latin.

Some characters have “bark” text that contains latin, which needs special treatment. The string will contain latin words in all caps. The latin text should not be translated.

Multiline Conversation Strings

A conversation string can sometimes contain lines spoken by multiple characters.

How are you doing, my old friend?

[spoken/Kardan Marbane/Fiona FitzOwen] I’m doing fine.  Why are you here?

[spoken/Fiona FitzOwen/Kardan Marbane] I’m inspecting the trenches.

The first line is spoken by the character indicated in the comments for the string. The [spoken/name/name2] pattern on the second line indicates that the text that follows is spoken by “Kardan Marbane” to the character named “Fiona FitzOwen”, and the third line has “Fiona FitzOwen” speaking to “Kardan Marbane”.

The [spoken/name/name2] pattern always follows a newline (or begins a string).   The contents of the [spoken/name/name2] pattern should not be translated.

Special care should be taken when using the {@N/ pattern on a multiline string.  There can be multiple characters speaking in this same line, but {@N/ will always resolve to the gender of the first character speaking.   So it’s best to avoid using {@N/  on these lines, and instead use the context provided to decide the appropriate gender for each speaker.

Bold, Underline, Italics, and Color Tags

The following tags are use to change the way that the text looks by making it bold, underlined, italicized, and/or colored.  In general, these tags should not be added, removed, or altered in any way unless specifically required by the rules of the target language.

[b]bold text[/b] – “[b]” and “[/b]” mark the beginning and end, respectively, of a section of text that will be made bold.

[u]underlined text[/u] – “[u]” and “[/u]” mark the beginning and end, respectively, of a section of text that will be underlined.

[i]italicized text[/i] - “[i]” and “[/i]” mark the beginning and end, respectively, of a section of text that will be italicized.

[00f0ff]colored text[-] – “[00f0ff]” and [-]  mark the beginning and end, respectively, of a section of text that will be colored.  The color is defined by the 6-character code (“00f0ff”) within the first set of square brackets.  This color code should not be changed.

Page Breaks: {pagebreak}

This tag marks the location of a page break in a book.  It should not be altered/translated, and should remain in the same place relative to the rest of the text.

Chapter Titles: {ch=Chapter Title}

This tag marks the beginning of a chapter in a book.  The chapter title (“Chapter Title” in the example above) should be translated, but the rest of the tag should remain unaltered.  This tag should remain in the same place relative to the rest of the text.

Images: {img=imagename}

This tag marks the location of a named image in a book.  This tag should not be altered/translated, and should remain in the same place relative to the rest of the text.

Conversation keyword choices: /word1/word2/word3/

Conversation keywords are a variably sized list of words or phrases, separated by a forward slash. The Source Comment for a conversation keyword will include the word “keyword”, the name of the character speaking, and the response associated with the keyword.  

The word list contains synonyms, and just about anything we think the player might type that the character should respond to. Words in the list are not case sensitive, and also not sensitive to accent marks.  For example: “Resume” matches “resumé”.

The choice list is variably sized.  You may add (or remove) as many choices as you feel appropriate. For example, if the English word is /snow/  and your language has 10 synonyms, then feel free to add all of them. Keep in mind that adding additional keywords adds to the risk of keyword duplication and errors if those words might appear commonly in different contexts across many conversations and lead to errors and miscommunication. While many keywords are possible, remaining brief will help down the road.

Keywords may optionally begin or end with an asterisk. Place an asterisk at the end of a word to match any word that begins with the same sequence of letters.  For example:   /snow*/  will match “snow” and “snowball”, but not “sno”..  Place an asterisk at the beginning of the word to match any word that ends with the same sequence of letters.  For example:  /*tion/ will match “option” and “conversation”, but not “tionesta”.

Conversation keywords formatting:  {#id#word or phrase#}

Some strings in conversations have special keyword formatting to indicate where a word or phrase should “link” to another part of the conversation.  The “id” portion of the formatting is a numeric identifier for the related keyword. The word or phrase that follows the id will be underlined in-game.  When a player clicks on the underlined text, the conversation will respond with the line related to the keyword.   The #id# portion should remain unchanged in the translated string.  The “word or phrase” should be translated.  

For example:

The quick {#23#brown#} {#65#fox}.

El {#65#zorro#} {#23#marrón#} rápido.

FAQ

  1. I translated this string already. Now I see that string is either “fuzzy” or “untranslated”.
    Two main reasons why this happens:
  1. The same English string appears in multiple places in the project.  When this happens, it can look like your previous work was lost, but actually this is different string, as far as the project is concerned. Check the string’s comment - it’s likely to have a different context than the other string.
  2. The English string has changed since this was translated.  Any change to the English text will cause the string to be marked as “fuzzy”.

When this happens, look in the look in the Translation Memory (TM) panel at the bottom of the page.  You will often find your previous translation, or the translation of a similar string.  Cut-n-paste from previous work as a starting point for your new translation.

  1. I found a bug or issue in the string I’m translating (typos, punctuation, grammatical issues, content etc.) How do I get Portalarium to fix it?
  1. For any bugs found within the content or process of translating within Zanata dealing with the original text, or how the translations are appearing in-game, you can create bugs within the Bugs/Typos section of the Localization Forums found here: https://www.shroudoftheavatar.com/forum/index.php?forums/bugs-typos-in-specific-strings.447/