首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将导入的常量列表替换为Python中的另一个列表

将导入的常量列表替换为Python中的另一个列表
EN

Stack Overflow用户
提问于 2018-06-19 06:01:10
回答 1查看 31关注 0票数 0

我的GUI应用程序有两个单选按钮,用于更改显示的语言。这些单词在两个文件中被分配给常量text1、text2等:

代码语言:javascript
复制
 file\_en.py:
代码语言:javascript
复制
text1 = 'Hello'  
text2 = 'Goodbye'  
...  

file_fr.py:

代码语言:javascript
复制
text1 = 'Bonjour'  
text2 = 'Au revoir'  
...  

开始时,主模块导入file_en或file_fr,一切正常。现在,当用户更改语言时-我可以立即将一个导入的常量赋值替换为另一个吗?

EN

回答 1

Stack Overflow用户

发布于 2018-06-19 06:28:29

我认为这是不可能的,但我想我找到了一个解决方法。如果你有一个函数(loadLang()或者别的什么),它会在每次调用时改变语言,读取2个不同的文本文件。

代码语言:javascript
复制
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

更新的解决方案

你应该试试这个,它一定会更简单和高效。

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50918048

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档