From be850dd0b0f3d4ea9b14a16b01af69bd58704768 Mon Sep 17 00:00:00 2001 From: John Glover Date: Wed, 30 May 2012 12:31:44 +0100 Subject: [PATCH] Fix bug in translating lists in multilingual plugin. Get translations of individual items in a list instead of looking for a translation of the entire list object. Also use 'in' to check for dict keys instead of the deprecated '.has_key()'. --- ckanext/multilingual/plugin.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/ckanext/multilingual/plugin.py b/ckanext/multilingual/plugin.py index b43d72a6ee7..0766b2e0d7f 100644 --- a/ckanext/multilingual/plugin.py +++ b/ckanext/multilingual/plugin.py @@ -69,7 +69,7 @@ def translate_data_dict(data_dict): translated_flattened[key] = value elif isinstance(value, basestring): - if desired_translations.has_key(value): + if value in desired_translations: translated_flattened[key] = desired_translations[value] else: translated_flattened[key] = fallback_translations.get( @@ -81,11 +81,12 @@ def translate_data_dict(data_dict): else: translated_value = [] for item in value: - if desired_translations.has_key(value): - translated_flattened[key] = desired_translations[value] + if item in desired_translations: + translated_value.append(desired_translations[item]) else: - translated_flattened[key] = fallback_translations.get( - value, value) + translated_value.append( + fallback_translations.get(item, item) + ) translated_flattened[key] = translated_value # Finally unflatten and return the translated data dict.