我写的,我想这取决于当前的区域用不同的语言来翻译一个简单的程序,但我不能得到它的工作翻译Python应用程序
我是以下各种网站。这是其中之一:translating your python
我没有问题,直到执行从哪里获得该区域不可用,它必须使用“C”语言环境
所以,我可以得到锅编译的文件,林间空地和非空地的绳子。这是网站写在我的程序上的内容:
我检查过的一件事是,os.environ.get返回类似es_ES.UTF-8的东西,然后代码表示将默认设置为without。 UTF-8
#!/usr/bin/python
# -*- coding: UTF-8 -*-
import gi
from gi.repository import Gtk
import subprocess, sys, os
import threading
import gettext
# # Algunas cosas para gettext (para las traducciones)
APP_NAME="welcn"
WELCN_DIR = '/home/pruebas/welcn-0.1/'
class main():
def __init__(self):
#Translation stuff
#Get the local directory since we are not installing anything
self.local_path = os.path.realpath(os.path.dirname(sys.argv[0]))
# Init the list of languages to support
langs = []
#Check the default locale
lc, encoding = locale.getdefaultlocale()
if (lc):
#If we have a default, it's the first in the list
langs = [lc]
# Now lets get all of the supported languages on the system
language = os.environ.get('LANG', None)
if (language):
"""langage comes back something like en_CA:en_US:en_GB:en
on linuxy systems, on Win32 it's nothing, so we need to
split it up into a list"""
langs += language.split(":")
"""Now add on to the back of the list the translations that we
know that we have, our defaults"""
langs += ["en_CA", "en_US"]
"""Now langs is a list of all of the languages that we are going
to try to use. First we check the default, then what the system
told us, and finally the 'known' list"""
gettext.bindtextdomain(APP_NAME, self.local_path)
gettext.textdomain(APP_NAME)
# Get the language to use
self.lang = gettext.translation(APP_NAME, self.local_path
, languages=langs, fallback = True)
"""Install the language, map _() (which we marked our
strings to translate with) to self.lang.gettext() which will
translate them."""
_ = self.lang.gettext
builder = Gtk.Builder()
builder.add_from_file(WELCN_DIR + "welcn.ui")
#### Language and Keymap window
self.window = builder.get_object("window1")
self.button_try = builder.get_object("button1")
self.button_cli_installer = builder.get_object("button2")
self.window.connect("delete-event", Gtk.main_quit)
builder.connect_signals(self)
self.window.set_title(_('Welcome!'))
self.window.set_position(Gtk.WindowPosition.CENTER)
self.window.show_all()
def on_button1_clicked(self, widget, data=None):
Gtk.main_quit()
def on_button2_clicked(self, widget, data=None):
subprocess.Popen(["cinnarch-setup"])
sys.exit(0)
if __name__ == '__main__':
main()
Gtk.main()
我在做什么错?
我不明白'进口locale'随时随地在你的代码。 –