Guide to translating World Anvil in World Anvil Codex | World Anvil

Guide to translating World Anvil

Restructuring the Codex

We are currently moving articles around and changing the general structure of the Codex. Please come back later if you get lost!
This article is for volunteers who help translating the interface of World Anvil to other languages. If you are fluent in a language other than English, feel free to join the translation Discord server to help!
Important note: the translation project is currently paused, so no new translations can be added and current translations can't be updated. You can still join the translation team to be the first to know when we're ready to relaunch the project!
  The interface of World Anvil is displayed in English by default. However, we want to make sure that people all around the world feel welcome and comfortable using it even if they are not fluent in English. The translator team of World Anvil, composed of multilingual volunteers, takes care of this task.  

How to join a team

Right now there are 28 translation teams composed of at least three people, each taking care of a different language. If you want to start translating, you need to join the Discord server ( and follow these steps:  
  1. Head to the #language-selection channel under the Server information category. React with the flag assigned to your language.
    • If your language is not in the list, follow the steps in the sidebar to create a new team.
  2. After clicking on a flag, the channel associated with your language will appear under the Translation channels category. For example, if you click on the Hebrew flag, you will be granted access to the #he-עברית channel.
    • These are private channels that only translators of a language (and the staff team) can see. You are free to speak in the channel's associated language there.
  3. Open your web browser and go to
  4. Register a new account. You don't need to use your World Anvil username, although it's recommended for better identification.
  5. Access your Weblate profile and choose which languages you wish to translated.
  6. You're all set! Keep reading to know how the translation process works.
  If you have trouble following any of these steps, don't hesitate to ping the staff of the server.  

Understanding Weblate

Note: you can set Weblate to different languages (the translation of its interface is not managed by World Anvil), but this guide will use the English labels for the different menus and buttons.   In order to start translating, you need to access your Dashboard from the black top menu bar. This page shows a list of all World Anvil components in the languages you have selected in your profile. Components are messages grouped together according to their function. For example, the Worldanvil/presentation component contains messages in the presentation interface of World Anvil (that is, the "reading" interface). The different statistics for each component show their translation progress.  

Translating your first message

From the Dashboard, choose a component that is not 100% translated, and click on its name. This will take you to a page with more statistics. In the "Strings to check" box you can find various options you can use. They all have different uses, but in order to translate, click on the Not translated strings option (it will be highlighted in red). This will take you to the translating interface:  
  At the top of the page (highlighted in red) is the Translate box. The original string in English will appear there, as well as an empty text box for your translation language (if the string is already translated, the text box will be filled with the translation). If you selected a secondary language, it will also appear there so that you can see how other teams translated the message. Keep in mind that unless you are a team leader, you can only suggest translations —the leader of the team is responsible for approving them afterwards.   The sidebar contains some data for the string, as well as a Glossary (highlighted in yellow). The glossary of your language is not automatic and has to be created by the team leader. Your language may or may not have one, but they are useful to ensure consistency between different messages that use the same term. If your language has a Glossary, relevant entries will appear there based on the words used in the English string.   Under the translation box you can find a set of tools (highlighted in Green). They include a list of nearby string (i.e. messages that are close in the translation source file), other translations (useful if the string is duplicated somewhere else) and other tools that might be useful. This is a basic guide, so we won't go into more detail here. If you are curious, feel free to ask in the Discord server!  

Reviewing translations

This section is for leaders of translation teams. If you are not a translation leader, you can skip it.
  As a team leader, it's your responsibility to approve the translations of your fellow team members —if you don't approve them, they will not go live! To do so, access the component page but instead of clicking the Not translated strings, click on the Strings with suggestions option (it will be highlighted in light blue). You will access the regular translation interface, but you will only see strings that have suggestions. In the tools underneath the translation box you will see an additional option: Suggestions. Click on it and use the Accept, Accept and edit, or Delete buttons to resolve the suggestion.   Additionally, all accepted suggestions will be automatically marked for review when you accept them. In order to approve them, choose Strings waiting for review (highlighted in orange) in the component page and check the Approved box before saving the translation.   Tip: in order to make the approval process faster, you can click on the Zen button in the translation interface. This will open all strings in a single page so that you can deal with them faster, since you won't have to wait for the page to load in order to get to the next string (note, however, that tools like the Glossary will be disabled in Zen mode).  

Creating a new team

If your language is not in the #language-selection list, you can create a new translation team as long as there are at least three people (including yourself) interested in forming a team. Once this happens, ping an Admin of the server and they will sort it out. Please keep in mind that it is not an immediate process because it's manual. You will be notified as soon as Discord and Weblate have been set up for your new language.   You will become the leader of the team (your Discord name will turn purple) and will get access to the private leader channels under the Round table category, where leaders can discuss and raise questions to the staff.


How do I see my translations on the site?
Head to your account details on World Anvil and choose the interface language from the drop-down list. Refresh the page, and it should be translated!
Weblate says that my language is 100% translated, but there are still parts of World Anvil that are in English!
That's because World Anvil is constantly rolling out new features or enhancing old ones. Because strings are generally ready for translation after the feature release, interface translation will often be missing some parts.
I remember translating a specific string, but I still see it in English on the web site. What's going on?
Implementing the translations on site is a manual process, so there will be a delay between translations being approved and making them go live on the site. Also, make sure that the leader of your team has actually marked the string as approved.
I don't know how to translate an expression because I lack context or knowledge. What can I do?
First of all, talk to your fellow team members! All teams have a specific role that can be pinged, so you can quickly get their attention. If they don't know the answer, ask your team leader to raise the issue to the Round Table, the channels where leaders and the staff team can resolve different issues or problems.
What's up with all the titles?
You will see that on the discord, many (if not all) team leaders have a nickname that matches a specific pattern: "[Name], [Title] of the Nth [Formation]" (example: Ondo, Head of the 21st Micalets). This is an unofficial tradition that started in the beginning of the translation project. In the example, Ondo created a team for the Catalan language, which happened to be the 21st translation team in order of creation. The formation ("Micalets") is often (but not necessarily) a military formation somehow associated with the team's language.

Things to keep in mind

Here you have several tips that will be useful when you translate.  

Variables and HTML code

Sometimes, in the original message, you will see a word surrounded by % signs. For example, %world_name%. This is a variable, something that is replaced when displayed on the web site (in this case, it's the world name). You are free to move this around in your translation, but don't translate it or edit it in anyway, and make sure you include it. The purpose of these variables is to make sure that languages where word order is different can still be used.   Sometimes, you will also find HTML code. This looks like words or characters surrounded by < and > (it's similar to the BBCode used on World Anvil, but with <angle brackets> instead of [square brackets]). Don't translate the words inside these HTML tags! If you do, the translation will be broken.  


While you are translating, there is a Source information panel in the right side of your screen. Among other information, you can find the context of the message you are translating. For example:  
  In the screenshot above, you can see that the message being translated is inside the stream box of the campaign dashboard. This will help you figure out the context of the message if it has multiple translations.  

Translating buttons

Buttons should be translated as concisely as possible because they are graphical elements and there are space limits. You don't need to do a literal translation, especially with a button, if the meaning is the same. If a message has _btn at the end of its context, that means that this message appears inside a button. For example, this is an edit button, and you can see the _btn at the end of the context:  


Author's Notes

Header image taken from Pixabay

Please Login in order to comment!