Tkinter 应用程序 - 允许多种语言

2023-07-23Python开发问题
10

本文介绍了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 应用程序 - 允许多种语言的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

The End

相关推荐

在xarray中按单个维度的多个坐标分组
groupby multiple coords along a single dimension in xarray(在xarray中按单个维度的多个坐标分组)...
2024-08-22 Python开发问题
15

Pandas中的GROUP BY AND SUM不丢失列
Group by and Sum in Pandas without losing columns(Pandas中的GROUP BY AND SUM不丢失列)...
2024-08-22 Python开发问题
17

GROUP BY+新列+基于条件的前一行抓取值
Group by + New Column + Grab value former row based on conditionals(GROUP BY+新列+基于条件的前一行抓取值)...
2024-08-22 Python开发问题
18

PANDA中的Groupby算法和插值算法
Groupby and interpolate in Pandas(PANDA中的Groupby算法和插值算法)...
2024-08-22 Python开发问题
11

PANAS-基于列对行进行分组,并将NaN替换为非空值
Pandas - Group Rows based on a column and replace NaN with non-null values(PANAS-基于列对行进行分组,并将NaN替换为非空值)...
2024-08-22 Python开发问题
10

按10分钟间隔对 pandas 数据帧进行分组
Grouping pandas DataFrame by 10 minute intervals(按10分钟间隔对 pandas 数据帧进行分组)...
2024-08-22 Python开发问题
11