From b8e4c191468f83ac669802a6a34d87767a67273e Mon Sep 17 00:00:00 2001 From: Al Date: Sun, 23 Aug 2015 14:25:33 -0400 Subject: [PATCH] [mv] Moving the get regional/country languages logic out of language polygons --- scripts/geodata/i18n/languages.py | 14 ++++++++++++++ scripts/geodata/polygons/language_polys.py | 11 +++-------- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/scripts/geodata/i18n/languages.py b/scripts/geodata/i18n/languages.py index 3e93edbd..2568957b 100644 --- a/scripts/geodata/i18n/languages.py +++ b/scripts/geodata/i18n/languages.py @@ -57,3 +57,17 @@ def init_languages(languages_dir=LANGUAGES_DIR): languages.add(lang) initialized = True + + +def get_country_languages(country): + languages = official_languages[country] + overrides = road_language_overrides.get(country) + if overrides and overrides.values()[0]: + languages = overrides + elif overrides: + languages.update(overrides) + return languages + + +def get_regional_languages(country, key, value): + return regional_languages.get((country, key, value), OrderedDict()) diff --git a/scripts/geodata/polygons/language_polys.py b/scripts/geodata/polygons/language_polys.py index c2d8335c..96a2eaf1 100644 --- a/scripts/geodata/polygons/language_polys.py +++ b/scripts/geodata/polygons/language_polys.py @@ -81,22 +81,17 @@ class LanguagePolygonIndex(RTreePolygonIndex): regional = None if name_key: - regional = regional_languages.get((country, name_key, admin1), None) + regional = get_regional_languages(country, name_key, admin1) if code_key and not regional: - regional = regional_languages.get((country, code_key, admin1_code), None) + regional = get_regional_languages(country, code_key, admin1_code) if not regional: continue languages = regional.items() else: - languages = official_languages[country].items() - overrides = road_language_overrides.get(country) - if overrides and overrides.values()[0]: - languages = overrides.items() - elif overrides: - languages.extend(overrides.items()) + languages = get_country_languages(country) properties['languages'] = [{'lang': lang, 'default': default} for lang, default in languages]