Localization
Z Norganna's AddOns
<lang:en> (For information about localization here in the wiki, visit WikiLocalization.)
Localization of an addon means that the interaction with the user of the addon is translated to his/her language of choice.
The Auctioneer and Gatherer suites of addons uses our own internally developed library, called Babylonian, to provide localization services for our AddOns.
Spis treści |
The Basics: How It Works at a High Level
Inside the code of our AddOns we specify a "token" for strings that will be displayed to the user. In another part of the AddOn code, these tokens are defined as various strings depending on the locale your game is set to. In this way, the string actually used and displayed in game is one which is properly localized for your locale.
Note: If there is no localized string matching the token, the localization system will fall back to using the enUS string.
How You Can Help
When a developer creates a new string which needs localization, they create a new token, and provide just a single translation for it to start with: the English (enUS) localization. After that, we rely on our community of users to provide localization assistance for all other supported locales. Here's how.
- Go to http://localizer.norganna.org/ and create a new account. Note that your forum/wiki credentials will NOT be recognized here - you will have to create a new account in order to help us localize.
- Log in with your new localizer credentials.
- You should now see a list of AddOn components down the left hand side, and a list of locales across the top.
- Scroll across until you find the locale column you are comfortable helping us localize. Now scroll down. Are any of the numbers listed less than 100%? If so, we need your help! At least one of our AddOn components is not yet fully localized for your locale.
- Click on the "percentage" number corresponding to the component you wish to localize. You may see another sub-menu with more percentages listed. Click one.
- You should end up on a screen which shows the various token names, their enUS translations, and then the localization for your selected locale. Find ones which are missing translations, and go ahead and provide them. Then click the update button.
- The description is there to help you understand the context and meaning of a string, along with the enUS version of the string. If you can't understand the context or meaning, ask the developers (usually in IRC) for help.
- If there are translations which are incorrect or can be improved, you can update the current translation as well.
- Repeat as necessary for other strings needing translations.
That's it! The final step that happens is that the site admins, when creating a new build of our AddOns, will first pull a new set of translation strings into the code. Note that this does not happen with every build, so if you are particularly excited to see your new strings in game, you might consider contacting the admin in our IRC channel to request a new build of the localizations.
Translation Tips
Please keep the following guidelines in mind as you assist with localization:
- We realize that some statements do not translate well, but please make a conscious effort to keep the translated text approximately the same size as the English root. Otherwise, you may find that your translation text overflows the space allotted for it in our interface.
- If there is a specific location where such a thing is not possible, please post in our forums or contact us on IRC, and we can discuss alternative naming that will "fit", or possibly changing the UI layout to accommodate additional characters.
- Please do not engage in translation wars with other users. If you feel that you and another user are both entrenched in your ideas about which is a proper translation, please contact the site admins for assistance.
- When something is defined as a "game constant" - remember that it should exactly match the strings used by the game. Also remember that Blizzard's localization may change over time - and our game constants will need to be updated to match. (Unfortunately, we can't get all of them automatically from the scripting system and game localization)
- Some strings have pattern match symbols (.+) or output formatting symbols %d %s, etc. Those are used by the addon code to match patterns or format the output values. Those need to remain, but have the correct strings supplied around them and the correct localized formatting applied. Be careful with them.
- In some strings, %% is used to get the "%" symbol through the formatting engine. Again, this needs to be preserved in the localized string as well.
Technical Details for Auctioneer Developers
Any text displayed to the user in game should, if possible, be localized. Try to avoid hard coding any string display in your code. The gives our addons the widest possible usability and audience.
Internal code constructs (e.g. variable names, code comments) should NEVER be localized.
You need to get your account on localizer specially designated as a developer account. This will create a new option for you to "Add Item", which allows you to add new tokens to the site. Contact the lead devs for developer status.
- Please remember to set the product (addon) correctly when adding a new string.
- "PhraseName" is the token (short form). Your PhraseName should conform to any pre-fixing standards already in place (scroll through the existing tokens first to get an idea, but generally tokens have an all caps prefix indicating the specific component, an underscore, then a section designator, another underscore, then a mixed case specific name indicator).
- The section is for organization and convenience. There is a dropdown menu for selecting the section, or you can type in the text name of the section.
- Please enter a useful description: something that will help non-enUS localizers understand the usage of the string and how to localize it in the correct context.
- "Initial" is the enUS string value (long form).
- Global and Locked: if you don't know what they are, don't mess with them.
- Bulk Entry: again, for power users. (and when an admin is handy to clean up the mistakes)
</lang>