[Python-de] i18n / Tkinter

Olaf 'Rübezahl' Radicke olaf_rad at gmx.de
Sam Jan 24 21:03:17 CET 2004


Hi!
Tkinter hat je bekanntlicher weise keine i18n Klasse zur 
Internationalisierung. Jetzt überlege ich, wie ich mir das
am besten selber zusammen zimmern kann.

Erste Variante:

def i_18_n(laender_code, string):

	if string == "Projekt":
		if laender_code == "en":
			return "project"
		elif  laender_code == "de":
			return string
	elif string == "Nützlich":
		if laender_code == "en":
			return "useful"
		elif  laender_code == "de":
			return string


Ich habe aber bedenken das wenn ich tausende Phrasen vergleichen muss,
die Sache zu langsam wird.

Zweite Variante

def i_18_n(laender_code, string):

	i_18_n_en = {'Projekt':project','Nützlich':'useful'}
	if laender_code == "en":
		return i_18_n_en[string]
	elif  laender_code == "de":
		return string
	
Das ist wahrscheinlich schneller, aber braucht mehr Speicher.

Fällt euch noch was geniales ein?