国际化


国际化允许Evennia的核心服务器返回英语之外的其他语言文本,不需要任何人去手动添加。看一下Evennia安装的 locale 目录,在那里你可以找到它目前支持的语言。

请注意,这种方式翻译的是服务器硬编码的字符串,如“连接已关闭”或“重新启动服务器”之类玩家可以看到的东西,游戏开发者不应该自行更改这些字符串。所以,出现在日志文件或在标准输出上的文字不会被翻译,而且默认的命令集没有翻译,这样做是因为指令应该由用户自己修改。添加国际化的命令集会使代码经常变化,增加了代码的复杂性,而Evennia的目标之一就是让用户可更改的代码保持整洁、易于阅读。


更改服务器语言

把以下内容添加到你的 game/settings.py 文件以更改语言:
USE_I18N = True
LANGUAGE_CODE ='en'
在这里,'en'应修改为 locale/ 中支持的语言的缩写。重新启动服务器以激活国际化设置。


翻译Evennia

如果你在 locale/ 中找不到你的语言(目前还没有中文——译者),那是因为还没有人来翻译它;或者你可能找到了语言,但发现翻译得不好......欢迎你来帮助改进它!

要开始一个新的翻译,请将自己移动到Evennia的根目录,然后运行
django-admin makemessages -l <语言代码>
其中<语言代码>是你语言的两个字母的地区代码,如“sv”代表瑞典语、“es”代表西班牙语。

然后前往 locale/<语言代码>/LC_MESSAGES ,编辑你在那里找到的 **.po 文件。你不必用普通的文本编辑器来编辑这个文件,最好用网上的po文件编辑器(在网上搜索“po”可以找到很多免费产品)。

翻译的方法很简单,只要在 **.po 文件中找到英文字符串并添加你能做到的最好的翻译就行了。**.po 格式(和许多支持它的编辑)允许你给翻译的内容添加“fuzzy(不明确的)”标志,这可以告诉系统(及未来的译者),你对翻译还不确定,或者你无法找到符合原文原意的准确翻译。

最后,你需要将你翻译的内容编译成效率更高的格式。
django-admin compilemessages
这会遍历所有的语言,并为他们创建或更新编译文件(**.mo)。每当 **.po 文件更新就要这样执行一次。

完成后,请将 **.po 和 *.mo 文件发送到 Evennia developer 目录(或将其push到你自己的克隆仓库),这样我们就可以把翻译加入Evennia了!