equal
deleted
inserted
replaced
80 _unicodeTransTable[code] = char |
80 _unicodeTransTable[code] = char |
81 |
81 |
82 _fillUnicodeTransTable() |
82 _fillUnicodeTransTable() |
83 |
83 |
84 |
84 |
85 def translateString(s, escapeSlashes=False, forceLower=True, spaces=' ') : |
85 def translateString(s, escapeSlashes=False, forceLower=True, spaces=' ', keep_chars='_-.'): |
86 """Remove extended characters from string and replace them with 'basic' ones |
86 """Remove extended characters from string and replace them with 'basic' ones |
87 |
87 |
88 @param s: text to be cleaned. |
88 @param s: text to be cleaned. |
89 @type s: str or unicode |
89 @type s: str or unicode |
90 @param escapeSlashes: if True, slashes are also converted |
90 @param escapeSlashes: if True, slashes are also converted |
98 s = string.replace(s, "\\", "/").split("/")[-1] |
98 s = string.replace(s, "\\", "/").split("/")[-1] |
99 s = s.strip() |
99 s = s.strip() |
100 if isinstance(s, str): |
100 if isinstance(s, str): |
101 s = unicode(s, "utf8", "replace") |
101 s = unicode(s, "utf8", "replace") |
102 s = s.translate(_unicodeTransTable) |
102 s = s.translate(_unicodeTransTable) |
103 s = ''.join([a for a in s.translate(_unicodeTransTable) if a.replace(' ', '-') in (string.ascii_letters + string.digits + '_-.')]) |
103 s = ''.join([a for a in s.translate(_unicodeTransTable) |
|
104 if a.replace(' ', '-') in (string.ascii_letters + string.digits + (keep_chars or ''))]) |
104 if forceLower: |
105 if forceLower: |
105 s = s.lower() |
106 s = s.lower() |
106 if spaces != ' ': |
107 if spaces != ' ': |
107 s = s.replace(' ', spaces) |
108 s = s.replace(' ', spaces) |
108 return s |
109 return s |