Update l10n to ensure decoding actually works

Fix for encoding issue in #706
This commit is contained in:
bmng-dev 2014-08-16 04:23:30 +00:00
parent 0a2fb54f78
commit 33800064c7

View File

@ -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.