@@ -326,43 +326,51 @@ class Preferences(object):
326326 ['general'], choices=categories + ['none']
327327 ),
328328 'language': SearchLanguageSetting(
329− settings['search']['default_lang'],
329+ settings['search'].get('default_lang', ''),
330330 choices=list(LANGUAGE_CODES) + ['']
331331 ),
332332 'locale': EnumStringSetting(
333− settings['ui']['default_locale'],
333+ settings['ui'].get('default_locale', ''),
334334 choices=list(settings['locales'].keys()) + ['']
335335 ),
336336 'autocomplete': EnumStringSetting(
337− settings['search']['autocomplete'],
337+ settings['search'].get('autocomplete', ''),
338338 choices=list(autocomplete.backends.keys()) + ['']
339339 ),
340340 'image_proxy': MapSetting(
341− settings['server']['image_proxy'],
342− map={ '': settings['server']['image_proxy'],
343− '0': False,
344− '1': True,
345− 'True': True,
346− 'False': False}
341+ settings['server'].get('image_proxy', False),
342+ map={
343+ '': settings['server'].get('image_proxy', 0),
344+ '0': False,
345+ '1': True,
346+ 'True': True,
347+ 'False': False
348+ }
347349 ),
348350 'method': EnumStringSetting(
349351 'POST',
350352 choices=('GET', 'POST')
351353 ),
352354 'safesearch': MapSetting(
353− settings['search']['safe_search'],
354− map={'0': 0,
355− '1': 1,
356− '2': 2}),
355+ settings['search'].get('safe_search', 0),
356+ map={
357+ '0': 0,
358+ '1': 1,
359+ '2': 2
360+ }
361+ ),
357362 'theme': EnumStringSetting(
358− settings['ui']['default_theme'],
363+ settings['ui'].get('default_theme', 'oscar'),
359364 choices=themes
360365 ),
361366 'results_on_new_tab': MapSetting(
362367 False,
363− map ={'0': False, '1': True,
364− 'False': False,
365− 'True': True}
368+ map={
369+ '0': False,
370+ '1': True,
371+ 'False': False,
372+ 'True': True
373+ }
366374 ),
367375 'doi_resolver': MultipleChoiceSetting(
368376 ['oadoi.org'], choices=DOI_RESOLVERS