我寫的,我想這取決於當前的區域用不同的語言來翻譯一個簡單的程序,但我不能得到它的工作翻譯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'隨時隨地在你的代碼。 –