Tkinter app - Allowing for multiple languages(Tkinter 应用程序 - 允许多种语言)
问题描述
我正在用 Python 编写我的第一个 Tk 应用程序.我找不到如何为屏幕文本/对话框创建支持多种语言的 UI 的示例.最初我会支持英语,但希望能够添加其他语言(从文件,可能是 XML)并让用户从应用程序首选项菜单中选择他们想要的语言.
I'm writing my first Tk app with Python. I can't find an example of how to create a UI which supports multiple languages for the on screen text/dialogs. Initially I'd support English, but would like the ability to add others (from a file, perhaps XML) and have users select which language they want from an applications preferences menu.
有人对最佳方法有建议吗?
Does anyone have advice towards the best approach?
推荐答案
GUI 应使用默认语言的字符串构造其文本.因此,例如,您的代码将如下所示:
The GUI should construct its text with strings from a default language. So, for example, your code would look something like this:
import Tkinter as Tk
root = Tk.Tk()
root.title('Program')
menuButton = Tk.Button(root, text='Menu')
menuButton.grid(row=0, column=0)
root.mainloop()
更改语言就像根据所选语言修改每个 Tk 小部件一样简单.例如,
Changing the language is as simple as modifying each Tk widget depending on the selected language. For example,
def change_language(lang):
if lang == 'English':
root.title('Program')
menuButton.config(text='Menu')
elif lang == 'Spanish':
root.title('Programa')
menuButton.config(text='Menú')
为了更容易编写代码,您可以将语言数据存储在一个文件(例如 csv)中,将其解析为列表或字典,并具有以下内容:
To make it easier to write the code, you could store your language data in a file (e.g. csv), parse it into lists or dictionaries, and have something like this:
english = ['Program', 'Menu']
spanish = ['Programa', 'Menú']
def change_language_2(lang):
root.title(lang[0])
menuButton.config(text=lang[1])
这篇关于Tkinter 应用程序 - 允许多种语言的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Tkinter 应用程序 - 允许多种语言
基础教程推荐
- 在 Django Admin 中使用内联 OneToOneField 2022-01-01
- 比较两个文本文件以找出差异并将它们输出到新的文本文件 2022-01-01
- 究竟什么是“容器"?在蟒蛇?(以及所有的 python 容器类型是什么?) 2022-01-01
- 对多索引数据帧的列进行排序 2022-01-01
- Python,确定字符串是否应转换为 Int 或 Float 2022-01-01
- Kivy 使用 opencv.调整图像大小 2022-01-01
- kivy 应用程序中的一个简单网页作为小部件 2022-01-01
- Python 中是否有任何支持将长字符串转储为块文字或折叠块的 yaml 库? 2022-01-01
- 在 Python 中将货币解析为数字 2022-01-01
- matplotlib 设置 yaxis 标签大小 2022-01-01
