强迫tkinter'说'英语

时间:2016-12-12 15:09:28

标签: python tkinter

我目前正在使用Python和tkinter开发跨平台GUI应用程序。

虽然我是德国人,但我希望所有按钮标签都以英文显示。到目前为止,这是一个奇怪的混合,因为tkMessageBoxes中的邮件是英文的,但button labelsfile dialog boxes是德语。

有没有办法强制Python / tkinter只使用英文标签?

2 个答案:

答案 0 :(得分:0)

我找到了一个更改GUI语言的tcl命令:

编辑:它适用于Linux但不适用于Windows,所以我认为唯一可以让它适用于所有平台的替代方法是重写自定义消息框。

import tkinter as tk
import tkinter.messagebox as mbox

root = tk.Tk()

def english():
    root.tk.eval('::msgcat::mclocale en')
    mbox.askyesno('Messagebox', 'Buttons in English')

def german():
    root.tk.eval('::msgcat::mclocale de')
    mbox.askyesno('Messagebox', 'Buttons in German')

tk.Button(root, text='English messagebox', command=english).pack()
tk.Button(root, text='German messagebox', command=german).pack()

root.mainloop()

答案 1 :(得分:0)

在Linux和Windows上,如果设置初始化语言环境,Tcl将使用LANG环境变量的值。因此,如果您设置LANG=en,您将获得英语区域设置。如果未设置,则在Windows上检查注册表以识别正在使用的语言环境并从中进行配置。您可以在msgcat.tcl文件中找到执行此操作的Tcl代码(搜索registry)。

它将从环境中按顺序使用LC_ALLLC_MESSAGESLANG