我的GUI应用程序有两个单选按钮,用于更改显示的语言。这些单词在两个文件中被分配给常量text1、text2等:
file\_en.py:
text1 = 'Hello'
text2 = 'Goodbye'
...
file_fr.py:
text1 = 'Bonjour'
text2 = 'Au revoir'
...
开始时,主模块导入file_en或file_fr,一切正常。现在,当用户更改语言时-我可以立即将一个导入的常量赋值替换为另一个吗?
发布于 2018-06-19 06:28:29
我认为这是不可能的,但我想我找到了一个解决方法。如果你有一个函数(loadLang()
或者别的什么),它会在每次调用时改变语言,读取2个不同的文本文件。
text1=''
text2=''
activeLang = 'en' #current language
def loadLang(lang):
global text1
global text2
global activeLang
if activeLang != lang: #check if current language is
already what user wants
file=open("file_" + lang + ".txt", "r") #open file
#assuming contents are same as your post without spaces
text1=file.readline().rstrip()
text2=file.readline(2).rstrip() #read line and remove
\n
return
#main code
#idk how you're doing it so:
def onClick():
global text1
global text2
if 'fr' in button.text:
loadLang('fr')
button1.text = text1
button2.text = text2
更新的解决方案
你应该试试这个,它一定会更简单和高效。
import file_en
import file_fr
text1=""
text2=""
activeLang = 'en'#current language
def onClick():
global text1
global text2
global activeLang
if activeLang == 'en':
text1 = file_fr.text1
text2 = file_fr.text2
elif activeLang == 'fr': #check lang
text1 = file_en.text1
text2 = file_en.text2
else:
# Error handling goes here
https://stackoverflow.com/questions/50918048
复制相似问题