Changing server language¶
Change language by adding the following to your
USE_I18N = True LANGUAGE_CODE = 'en'
'en' should be changed to the abbreviation for one of the
supported languages found in
locale/. Restart the server to activate
i18n. The two-character international language codes are found here.
Important Note: Evennia offers translations of hard-coded strings in the server, things like “Connection closed” or “Server restarted”, strings that end users will see and which game devs are not supposed to change on their own. Text you see in the log file or on the command line (like error messages) are generally not translated (this is a part of Python).
In addition, text in default Commands and in default Typeclasses will not be translated by switching i18n language. To translate Commands and Typeclass hooks you must overload them in your game directory and translate their returns to the language you want. This is because from Evennia’s perspective, adding i18n code to commands tend to add complexity to code that is meant to be changed anyway. One of the goals of Evennia is to keep the user-changeable code as clean and easy-to-read as possible.
If you cannot find your language in
evennia/locale/ it’s because
noone has translated it yet. Alternatively you might have the language
but find the translation bad … You are welcome to help improve the
To start a new translation you need to first have cloned the Evennia
repositry with GIT and activated a python virtualenv as described on the
Getting Started page. You now need to
cd to the
directory. This is not your created game folder but the main Evennia
library folder. If you see a folder
locale/ then you are in the
right place. From here you run:
evennia makemessages <language-code>
<language-code> is the two-letter locale code for the
language you want, like ‘sv’ for Swedish or ‘es’ for Spanish. After a
moment it will tell you the language has been processed. For instance:
evennia makemessages sv
If you started a new language a new folder for that language will have
emerged in the
locale/ folder. Otherwise the system will just have
updated the existing translation with eventual new strings found in the
server. Running this command will not overwrite any existing strings so
you can run it as much as you want.
Note: in Django, the
makemessagescommand prefixes the locale name by the
... makemessages -l svfor instance). This syntax is not allowed in Evennia, due to the fact that
-lis the option to tail log files. Hence,
makemessagesdoesn’t use the
Next head to
locale/<language-code>/LC_MESSAGES and edit the
**.po file you find there. You can edit this with a normal text
editor but it is easiest if you use a special po-file editor from the
web (search the web for “po editor” for many free alternatives).
**.pofile and add your language’s translation best you can. The
**.poformat (and many
This will go through all languages and create/update compiled files
**.mo) for them. This needs to be done whenever a
**.po file is
When you are done, send the
*.mo file to the Evennia
developer list (or push it into your own repository clone) so we can
integrate your translation into Evennia!