From 92ba7880691d44e3f53d1f0285790b4ade885c6b Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Wed, 8 Oct 2008 04:10:03 -0700 Subject: [PATCH] Fix #940 (Cyrrilic file names on device) --- src/calibre/utils/filenames.py | 144 ++++++++++++++++++--------------- 1 file changed, 77 insertions(+), 67 deletions(-) diff --git a/src/calibre/utils/filenames.py b/src/calibre/utils/filenames.py index bcd30068e8..ad5d3f9f05 100644 --- a/src/calibre/utils/filenames.py +++ b/src/calibre/utils/filenames.py @@ -5,73 +5,84 @@ meaning as possible. ''' import re, string - - + MAP = { - u"‘" : u"'", - u"’" : u"'", - u"«" : u'"', - u"»" : u'"', - u"…" : u"...", - u"№" : u"#", - u"Щ" : u"Sch", - u"Щ" : u"SCH", - u"Ё" : u"Yo", - u"Ё" : u"YO", - u"Ж" : u"Zh", - u"Ж" : u"ZH", - u"Ц" : u"Ts", - u"Ц" : u"TS", - u"Ч" : u"Ch", - u"Ч" : u"CH", - u"Ш" : u"Sh", - u"Ш" : u"SH", - u"Ы" : u"Yi", - u"Ы" : u"YI", - u"Ю" : u"Yu", - u"Ю" : u"YU", - u"Я" : u"Ya", - u"Я" : u"YA", - u"Б" : u"B", - u"Г" : u"G", - u"Д" : u"D", - u"И" : u"I", - u"Й" : u"J", - u"К" : u"K", - u"Л" : u"L", - u"П" : u"P", - u"Ф" : u"F", - u"Э" : u"E", - u"Ъ" : u"`", - u"Ь" : u"'", - u"щ" : u"sch", - u"ё" : u"yo", - u"ж" : u"zh", - u"ц" : u"ts", - u"ч" : u"ch", - u"ш" : u"sh", - u"ы" : u"yi", - u"ю" : u"yu", - u"я" : u"ya", - u"б" : u"b", - u"в" : u"v", - u"г" : u"g", - u"д" : u"d", - u"з" : u"z", - u"и" : u"i", - u"й" : u"j", - u"к" : u"k", - u"л" : u"l", - u"м" : u"m", - u"н" : u"n", - u"о" : u"o", - u"п" : u"p", - u"т" : u"t", - u"ф" : u"f", - u"э" : u"e", - u"ъ" : u"`", - u"ь" : u"'", - } #: Translation table + u"‘" : "'", + u"’" : "'", + u"«" : '"', + u"»" : '"', + u"…" : "...", + u"№" : "#", + u"Щ" : "Shh", + u"Ё" : "Jo", + u"Ж" : "Zh", + u"Ц" : "C", + u"Ч" : "Ch", + u"Ш" : "Sh", + u"Ы" : "Y", + u"Ю" : "Ju", + u"Я" : "Ja", + u"Б" : "B", + u"Г" : "G", + u"Д" : "D", + u"И" : "I", + u"Й" : "J", + u"К" : "K", + u"Л" : "L", + u"П" : "P", + u"Ф" : "F", + u"Э" : "E", + u"Ъ" : "`", + u"Ь" : "'", + u"щ" : "shh", + u"ё" : "jo", + u"ж" : "zh", + u"ц" : "c", + u"ч" : "ch", + u"ш" : "sh", + u"ы" : "y", + u"ю" : "ju", + u"я" : "ja", + u"б" : "b", + u"в" : "v", + u"г" : "g", + u"д" : "d", + u"з" : "z", + u"и" : "i", + u"й" : "j", + u"к" : "k", + u"л" : "l", + u"м" : "m", + u"н" : "n", + u"о" : "o", + u"п" : "p", + u"т" : "t", + u"ф" : "f", + u"э" : "e", + u"ъ" : "`", + u"ь" : "'", + u"А" : "A", + u"В" : "V", + u"Е" : "Je", + u"З" : "Z", + u"М" : "M", + u"Н" : "N", + u"О" : "O", + u"Р" : "R", + u"С" : "S", + u"Т" : "T", + u"У" : "U", + u"Х" : "Kh", + u"Є" : "Je", + u"Ї" : "Ji", + u"а" : "a", + u"е" : "je", + u"р" : "r", + u"с" : "s", + u"у" : "u", + u"х" : "kh", + u"є" : "je", +} #: Translation table for c in string.whitespace: MAP[c] = ' ' @@ -84,4 +95,3 @@ def ascii_filename(orig): val = ord(orig[i]) buf.append('_' if val < 33 or val > 126 else orig[i]) return (''.join(buf)).encode('ascii') -