Python ttkwidgets日历按钮语言

Python ttkwidgets日历按钮语言,python,tkinter,calendar,ttkwidgets,Python,Tkinter,Calendar,Ttkwidgets,我想知道,是否可以更改按钮“上一个”和“下一个”的语言。如果我更改“区域设置”,则只会更改月份名称,而不会更改按钮。 提前谢谢。按钮的文本是硬编码的,并且按钮不是日历的属性,因此更改它们的文本并不容易。但是,可以创建一个从ttkwidgets.Calendar继承的自定义类,只需重写函数\uu place\u widgets(),其中定义了按钮: import tkinter as tk from tkinter import ttk import ttkwidgets translation

我想知道,是否可以更改按钮“上一个”和“下一个”的语言。如果我更改“区域设置”,则只会更改月份名称,而不会更改按钮。
提前谢谢。

按钮的文本是硬编码的,并且按钮不是日历的属性,因此更改它们的文本并不容易。但是,可以创建一个从
ttkwidgets.Calendar
继承的自定义类,只需重写函数
\uu place\u widgets()
,其中定义了按钮:

import tkinter as tk
from tkinter import ttk
import ttkwidgets

translation = {"Previous": "Précédant", "Next": "Suivant"}

def _(string):
    return translation.get(string, string)


class Calendar(ttkwidgets.Calendar):
    def __place_widgets(self):
        # header frame and its widgets
        hframe = ttk.Frame(self)
        lbtn = ttk.Button(hframe, command=self._prev_month, text=_("Previous"))
        rbtn = ttk.Button(hframe, command=self._next_month, text=_("Next"))
        self._header = ttk.Label(hframe, width=15, anchor='center')
        # the calendar
        self._calendar = ttk.Treeview(self, show='', selectmode='none', height=7)

        # pack the widgets
        hframe.pack(side='top', pady=4, anchor='center')
        lbtn.grid(sticky=tk.N + tk.S + tk.W + tk.E)
        self._header.grid(column=1, row=0, padx=12)
        rbtn.grid(column=2, row=0, sticky=tk.N + tk.S + tk.W + tk.E)
        self._calendar.pack(expand=1, fill='both', side='bottom')



root = tk.Tk()
cal = Calendar(root, locale="fr_FR.UTF-8")
cal.pack()
root.mainloop()

它提供了一个法语日历

如果您正在谈论更改按钮的文本,那么您可以使用
mybutton.config(text=“previous”)
基本上没有,因为这两个字符串是在
ttkwidget
的源代码中硬编码的。