diff options
Diffstat (limited to 'jfr_playoff/gui/frames/translations.py')
-rw-r--r-- | jfr_playoff/gui/frames/translations.py | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/jfr_playoff/gui/frames/translations.py b/jfr_playoff/gui/frames/translations.py new file mode 100644 index 0000000..a369159 --- /dev/null +++ b/jfr_playoff/gui/frames/translations.py @@ -0,0 +1,49 @@ +#coding=utf-8 + +import copy +from collections import OrderedDict + +import tkinter as tk +from tkinter import ttk + +from ..frames import RepeatableFrame, WidgetRepeater, ScrollableFrame +from ...i18n import PLAYOFF_I18N_DEFAULTS +from ..variables import NotifyStringVar + +class TranslationRow(RepeatableFrame): + def renderContent(self): + self.key = NotifyStringVar() + self.value = NotifyStringVar() + + (ttk.Entry(self, textvariable=self.key, width=40)).pack( + side=tk.LEFT, fill=tk.BOTH, expand=True) + (ttk.Entry(self, textvariable=self.value, width=80)).pack( + side=tk.RIGHT, fill=tk.BOTH, expand=True) + + def setValue(self, value): + self.key.set(value[0]) + self.value.set(value[1]) + + def getValue(self): + return (self.key.get(), self.value.get()) + +class TranslationConfigurationFrame(ScrollableFrame): + + def setTranslations(self, translations): + default_translations = copy.copy(PLAYOFF_I18N_DEFAULTS) + default_translations.update(translations) + values = [] + for value in default_translations.iteritems(): + values.append(value) + self.repeater.setValue(values) + + def getTranslations(self): + return OrderedDict({ + key: value for key, value in self.repeater.getValue() + }) + + def renderContent(self, container): + self.repeater = WidgetRepeater(container, TranslationRow) + self.repeater.pack(side=tk.TOP, fill=tk.BOTH, expand=True) + +__all__ = ['TranslationConfigurationFrame'] |