我正在Tkinter中编写一个程序(我也在使用PIL),python,即将“克罗地亚语”中输入的单词“翻译”为“Glgoljica”。 glagoljica是一个古老的克罗地亚字母,看起来像这样:
所以我想知道是否有办法用Tkinter中的字典来解决这个问题?例如,我可以在glagoljica上映射字母“a”“与字母”a“on”glagoljica“,字母b与glagoljica上的字母”b“的图片,以便as和end-result用户获得完整的声明翻译在那个古老的克罗地亚字母上?
我想要的是算法,但只是将图片(而不是字符串)作为dict.keys()
的值。
dict={}
dict["a"]="e"
dict
>>>{'a': 'e'}
dict["i"]="u"
word="ai"
string=""
for letter in word:
if letter in dict:
string+=dict[letter]
>>> string
'eu'
答案 0 :(得分:0)
大/小写的glagoljica字母表占据unicode块U + 2C00-U + 2C5F,其中U + 2C2F和U + 2C5F未定义。 Tkinter可以处理并根据您使用的系统和字体显示字符。不应该需要PIL。
如果您使用字典,则应将slavic字符映射到glagoljica字符。
glag = {'\u0410':'\u2C00', '\u0410':'\u2c01',} # etc
print('\u0410', glag['\u0410'])
# ('А', 'Ⰱ')
我在Win7上使用3.4.2使用Lucida Console。
但是,字符串转换不应使用显式循环,而应使用str.translate和str.maketrans中的表。
trans1 = str.maketrans(glag)
print('ААБАБ'.translate(trans1))
#'ⰁⰁБⰁБ'
有了这个,就不需要dict对象。
trans2 = str.maketrans('АБ', 'ⰁБ') # could enter with \u excapes
print('ААБАБ'.translate(trans1))
#'ⰁⰁБⰁБ'