Update l10n to ensure decoding actually works #707
21
src/l10n.py
21
src/l10n.py
|
@ -30,10 +30,31 @@ if shared.config.has_option('bitmessagesettings', 'timeformat'):
|
||||||
try:
|
try:
|
||||||
time.strftime(time_format)
|
time.strftime(time_format)
|
||||||
except:
|
except:
|
||||||
|
logger.exception('Could not format timestamp')
|
||||||
time_format = DEFAULT_TIME_FORMAT
|
time_format = DEFAULT_TIME_FORMAT
|
||||||
else:
|
else:
|
||||||
time_format = DEFAULT_TIME_FORMAT
|
time_format = DEFAULT_TIME_FORMAT
|
||||||
|
|
||||||
|
#It seems some systems lie about the encoding they use so we perform
|
||||||
|
#comprehensive decoding tests
|
||||||
|
if time_format != DEFAULT_TIME_FORMAT:
|
||||||
|
try:
|
||||||
|
#Check day names
|
||||||
|
for i in xrange(7):
|
||||||
|
unicode(time.strftime(time_format, (0, 0, 0, 0, 0, 0, i, 0, 0)), encoding)
|
||||||
|
#Check month names
|
||||||
|
for i in xrange(1, 13):
|
||||||
|
unicode(time.strftime(time_format, (0, i, 0, 0, 0, 0, 0, 0, 0)), encoding)
|
||||||
|
#Check AM/PM
|
||||||
|
unicode(time.strftime(time_format, (0, 0, 0, 11, 0, 0, 0, 0, 0)), encoding)
|
||||||
|
unicode(time.strftime(time_format, (0, 0, 0, 13, 0, 0, 0, 0, 0)), encoding)
|
||||||
|
#Check DST
|
||||||
|
unicode(time.strftime(time_format, (0, 0, 0, 0, 0, 0, 0, 0, 1)), encoding)
|
||||||
|
except:
|
||||||
|
logger.exception('Could not decode locale formatted timestamp')
|
||||||
|
time_format = DEFAULT_TIME_FORMAT
|
||||||
|
encoding = DEFAULT_ENCODING
|
||||||
|
|
||||||
|
|
||||||
def formatTimestamp(timestamp = None, as_unicode = True):
|
def formatTimestamp(timestamp = None, as_unicode = True):
|
||||||
#For some reason some timestamps are strings so we need to sanitize.
|
#For some reason some timestamps are strings so we need to sanitize.
|
||||||
|
|
Reference in New Issue
Block a user