Я создаю программное обеспечение с многоязычным функционалом. Я думаю о том, как разделить и легко назвать тексты на разных языках. Вот что я получил:
import tkinter as tk # GUI
class Texts():
def __init__(self, txtENG, txtRU):
self.txtENG = txtENG
self.txtRU = txtRU
def txt_ENG(self):
return self.txtENG # should return English text
def txt_RU(self):
return self.txtRU # should return Russian text
language_Q = 'Choose the language:'
language_A = ['English','русский'] # two options for OptionMenu
txt_ENG_greetings = 'Hello!' # English text
txt_RU_greetings = 'Привет!' # Russian text
# initializing English and Russian texts to Texts class as greetings attribute
greetings = Texts(txt_ENG_greetings, txt_RU_greetings)
def secondstep():
# assigning methode as a variable according to chosen option
if q1.get() == 'English': language = Texts.txt_ENG
if q1.get() == 'русский': language = Texts.txt_RU
# label that should display greetings called by the right methode
greetings_label = tk.Label(window, text = greetings.language()).grid(row=3)
window.mainloop()
window = tk.Tk()
window.title('Hello StackerOverflow')
# option menu to choose the language
q1 = tk.StringVar(window); q1.set(language_Q)
w = tk.OptionMenu(window, q1, *language_A).grid(row=0);
# button to call secondstep function
button = tk.Button(window, text='Continue', command=secondstep).grid(row=1)
window.mainloop()
Код не работает. У меня проблема с использованием метода в качестве параметра. Ошибка:
greetings_label = tk.Label(window, text = greetings.language()).grid(row=3)
AttributeError: 'Texts' object has no attribute 'language'
Я потратил много времени, пытаясь исправить это, но ничего не получил, поэтому, если это невозможно, что будет лучшей альтернативой? Спасибо!