Localization
The Localization for WalkScape is open source, which means that you, yes YOU, can contribute. Please note that this article will contain light spoilers for many parts of the game.
Getting started on Weblate
WalkScape uses a tool called Weblate to manage the translations. Follow these steps to get started:
- Go to https://localize.walkscape.app/
- On the top right, click the 'Register' button
- Enter your email address
- Enter your WalkScape username as your username
- Enter your username in the 'Full name' field as well. Do not enter your real name, as other users will be able to see this.
- Solve the ridiculously hard math question, bonus points for not using a calculator
- Click the 'Register' button
- Click the confirmation link sent to your e-mail inbox and start using your account. Please look into your spam folder if you cannot see it in your inbox. The confirmation link will expire after 48 hours. Register again if the confirmation link expires. E-mail is not an instant technology. Please wait for the confirmation e-mail at least 30 minutes before you write to us about issues. If there is a problem with your registration, please contact us.
- Enter a secure password, bonus points for using a password manager
- Click the 'Change my password' button
- On the top right, click on your username and click on 'Settings'
- In the 'Languages' settings, set up the desired interface language, languages you want to translate to, and any other secondary languages, and click the 'Save' button
- Let Bwuh on Discord know you've signed up to get a fancy role and get access to the localization team chats
- The #localization-game channel has threads for specific languages for you to discuss things with other translators using your language
- Please read the guidelines below!
Translation Guidelines
Keep the goal in mind
We want WalkScape to be enjoyed by as many players as possible. The following guidelines should help to achieve this. They can all be summarized to the SCARF core values we find important, which are:
Simplicity | Don't overcomplicate things |
Clarity | Keep it understandable for all ages |
Accessibility | Some people might have vision problems! |
Relatability | Players feel more immersed when they can relate to things |
Fun | Last but definitely not least, keep it fun for the player, but also for yourself!
Feel free to add a healthy dose of humor! |
We encourage you to be creative and not to translate too directly. You are free to change things up a little bit. Think about what the intention of the text is and how you would word that in your language. As long as you keep asking yourself "Is this SCARF?", not much can go wrong!
Mind the variables
Some entries might have a reference to variables. You can reorder the placements of these code blocks in your translated text as it makes sense in the target language, however do not alter anything within them. They might look like:
$pointCount achievement points
Do not translate anything from the "$" until the next space.
Have <numberProgress current="${current}" max="${max}" style="achievement_text" maxStyle="achievement_text" /> different gems in your inventory.
Do not translate anything from the opening "<" to the closing "/>" angle brackets. Anything between HTML opening and closing tags should still be translated. For example:
Welcome to the <c>Kallaheim's Frosty Finds</c>!
In this case, the shop name should always remain within those tags when translating it to the target language.
Pluralization
Different languages use different rules for pluralization. These rules per language can be found here. If a translation key has the "plurals" tag, these rules should be followed. If a pluralization entry is not applicable to your language, you can enter a "-". This way everyone knows it's been looked at but not applicable, and it will not be used in the game.
Machine translation
Weblate offers translation suggestions using machine learning. These are not always reliable as they lack context and consistency. We recommend first thinking of a translation yourself without looking at the suggestion, and then using it to potentially correct and/or improve your translation.
Cultural references
It is okay to replace specific cultural references to something that makes more sense in the target language. Be careful that if it relates to a specific item, it should still match the image of that item.
References to other media
Some text might reference other media such as books, movies, games, music, or memes.
- If the referenced text has an official translation, use that. Subtitles for movies can be found here.
- If there is no official translation but the English text is well known in the target language, it is okay to keep it English.
- If not, it can be translated.
Names of characters and locations
- Common English first names of characters may be changed to names that are common in the target language. This helps keep the player immersed.
- Last names and names of locations should only be translated if they are of English origin. These names should already provide the player with some background information of the subject. Some examples:
- Peter Banksworth
- Galeforge
- Painful Islands
- If the names cannot be directly translated, they can be slightly altered to match common naming styles of the target language or to switch out uncommon/unused characters for more common ones. Some examples for Dutch:
- Jarvonia becomes Jarvonië
- Wallisia becomes Wallisië
- Wrentmark becomes Frentmark
- If a real person or a person from other media is referenced, do not change their names. Some examples:
- Flora Floursifter
- Non-English names should not be translated. They can however be transliterated into the target language's script. Some examples:
- Runa Norrberga
- Rid Raddak
- Ewerethien
Text style
- Stick to the same capitalization style as the original text if this makes sense in the target language. Following the target language's rules should always take priority.
- Try to keep the translation to a similar length as the original text, or shorter. This makes sure all text is displayed correctly.
- Try to stick to simple and conventional language and avoid difficult or long words. We favor using more words instead of such words, if possible (see previous point). Nobody should be looking up words to see what they mean.
- Avoid using multiple different translations for the same word to prevent confusion.
Accessibility
We want players that are visually impaired to be able to enjoy the game just as much as anyone else. They might be using screen readers to have their device read out loud what's on the screen and/or they might have trouble seeing images. To increase immersion, not just for them but for everyone, try to use descriptive language where applicable. This is especially important when translating anything that directly relates to an image, such as:
- Item descriptions
- Location descriptions
- NPC descriptions
- Character customization
The translation community
While looking through translations, remember that you can comment on the original text or already made translations you think could be improved! If you have any questions, or just want to have a second opinion when you're not sure about something, feel free to reach out to the community on Discord in the #localization channel. If it is language specific, you can ask in the specific thread of the target language.
Weblate Instructions
Start translating
- In the top menu, click the 'Projects' button and select 'Browse all projects'
- Click the project you want to translate for, we currently have:
- WalkScape Game
- These are the strings that are actually present within the app itself
- WalkScape Portal
- These strings are for the Portal environment for WalkScape, which functions as the community hub
- WalkScape website
- These strings are for the main WalkScape website
- WalkScape Game
- Select the component you want to start translating
- We recommend completing the project's 'Glossary' first, as those translations can be used as a reference in other components. It has the name of the project, is marked with a [Glossary] tag, and can usually be found at the bottom of the components list. Do not confuse this with the components that are actually named 'Glossary' or '[Project name] - glossary'.
- Click the language you want to translate for
- If your language is not listed or not clickable, you can click the plus to add it
- Click the 'Translate' button to the right
Top controls
You can find these controls on the top of the screen when translating. The first control displays the current index of the translation you are looking at. In this example, we are looking at string number 4 of 10 in the component. You can use the arrow buttons to navigate to other entries within the selected component. Next we have the active filter, currently set to 'Unfinished strings', which means any strings with a state less than 'translated'. At the end there is the option to change the sorting of the strings as you navigate through them with the arrow buttons.
Translation view
The translation view is quite straightforward. The first input shows the English source string, this cannot be edited. Parts of this string could be marked with a yellow color, indicating that it is present in the glossary. On the top right of it you can see the unique identifier of the string. At the very end of the source input, there is a button to copy the source string to your clipboard. The button next to that copies the source string to the translated string input and enables the 'Needs editing' checkmark. Some strings also have an extra input at the top, that provides additional context or explanation for the translation.
The second input is for the translated string. Using the green buttons to the top right of it, you can easily enter characters that are otherwise annoying to enter. Below the input, on the left side, is the checkmark to mark a translation as 'Needs editing'. This will make it so it is included in the 'Unfinished strings' filter and signifies to other translators that the current translation is not finished. To the right you can see the maximum allowed length of the translation, and the length of the source string.
Next we have the four buttons:
- Save and continue
- Saves your changes (including the 'Needs editing' setting) and navigates to the next string
- Save and stay
- Saves your changes (including the 'Needs editing' setting) and stays on the current string
- Suggest
- The entered translation is saved as a suggestion and navigates to the next string. Another translator can approve or accept your suggestion.
- Skip
- Navigates to the next string without saving anything
Glossary
The glossary component is a collection of strings that are commonly used throughout the project of which the translation should always be the same in all occurrences. Examples are proper nouns (character or location names etc.) or skill names. The translation view will display any related glossary strings on the right sight of the screen for ease of access.
Checks
Checks are issues that translations could have. For example, interpunction or capitalization that is inconsistent with the source string could be marked with a check. Fixing checks is an important aspect of the localization as it helps guarantee high quality translations. Dismissing checks should only be done if 100% sure that the check is not applicable.