0
我想翻译视频游戏https://github.com/mdtrooper/Obb,但gettext方法_(“string”)返回一个非Unicode字符串。Pygame,gettext和unicode字符串
嗯,我做了一个简单的例子来说明这个问题:
的文件是UTF8编码:
# -*- coding: utf-8 -*-
import pygame, os
import locale
import gettext
gettext.textdomain('caca')
_ = gettext.gettext
def main():
path_i18n = os.getcwd() + '/i18n/'
gettext.bindtextdomain('caca', path_i18n)
pygame.init()
screen = pygame.display.set_mode((640, 480), 0, 32)
screen.fill(pygame.Color(255, 255, 255, 255))
font = pygame.font.Font("Isuckatgolf.ttf", 30)
text = font.render(_("caca"), True, pygame.Color(0, 0, 0, 255))
screen.blit(text, (0,0))
unstraslate_text = font.render(u"ñadu", True, pygame.Color(0, 0, 0, 255))
screen.blit(unstraslate_text, (100, 100))
pygame.display.update()
exit = False
while not exit:
for e in pygame.event.get():
if e.type == pygame.QUIT:
exit = True
elif e.type == pygame.KEYDOWN:
if e.key == pygame.K_ESCAPE:
exit = True
pygame.quit()
if __name__ == '__main__':
这是西班牙语的PO文件:
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <[email protected]>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2013-03-30 14:06+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <[email protected]>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: UTF-8\n"
#: test.py:19
msgid "caca"
msgstr "ñandu"
中当然字体没有Ñ或ñ字符,但我已修改为添加此字符,您可以在http://depositfiles.com/files/dwwmp912m
例如,第一个字符串(翻译的字符串)显示不好,但第二个显示良好。
任何以'_'开头的符号都被'import *'忽略。这是设计。 –