mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-26 11:08:13 +00:00
Reformatting of country keys
This commit is contained in:
@@ -114,9 +114,10 @@ class ParameterParser
|
|||||||
}
|
}
|
||||||
|
|
||||||
foreach ($aLanguages as $sLanguage => $fLanguagePref) {
|
foreach ($aLanguages as $sLanguage => $fLanguagePref) {
|
||||||
$aLangPrefOrder['name:'.$sLanguage] = 'name:'.$sLanguage;
|
$aLangPrefOrder[$sLanguage] = $sLanguage;
|
||||||
}
|
}
|
||||||
$aLangPrefOrder['name'] = 'name';
|
|
||||||
|
$aLangPrefOrder['default'] = 'default';
|
||||||
$aLangPrefOrder['brand'] = 'brand';
|
$aLangPrefOrder['brand'] = 'brand';
|
||||||
foreach ($aLanguages as $sLanguage => $fLanguagePref) {
|
foreach ($aLanguages as $sLanguage => $fLanguagePref) {
|
||||||
$aLangPrefOrder['official_name:'.$sLanguage] = 'official_name:'.$sLanguage;
|
$aLangPrefOrder['official_name:'.$sLanguage] = 'official_name:'.$sLanguage;
|
||||||
|
|||||||
@@ -43,8 +43,9 @@ BEGIN
|
|||||||
END IF;
|
END IF;
|
||||||
END LOOP;
|
END LOOP;
|
||||||
|
|
||||||
|
-- change this code below
|
||||||
-- anything will do as a fallback - just take the first name type thing there is
|
-- anything will do as a fallback - just take the first name type thing there is
|
||||||
RETURN trim((avals(name))[1]);
|
RETURN trim((avals(name))[array_length(avals(name), 1)]);
|
||||||
END;
|
END;
|
||||||
$$
|
$$
|
||||||
LANGUAGE plpgsql IMMUTABLE;
|
LANGUAGE plpgsql IMMUTABLE;
|
||||||
@@ -56,6 +57,7 @@ CREATE OR REPLACE FUNCTION get_address_by_language(for_place_id BIGINT,
|
|||||||
languagepref TEXT[])
|
languagepref TEXT[])
|
||||||
RETURNS TEXT
|
RETURNS TEXT
|
||||||
AS $$
|
AS $$
|
||||||
|
-- ARRAY['zh','default','brand','official_name:zh','short_name:zh','official_name','short_name','ref','type']
|
||||||
DECLARE
|
DECLARE
|
||||||
result TEXT[];
|
result TEXT[];
|
||||||
currresult TEXT;
|
currresult TEXT;
|
||||||
|
|||||||
@@ -76,19 +76,20 @@ def setup_country_tables(dsn, sql_dir, ignore_partitions=False):
|
|||||||
lang = props['languages'][0] if len(props['languages']) == 1 else None
|
lang = props['languages'][0] if len(props['languages']) == 1 else None
|
||||||
params.append((ccode, partition, lang))
|
params.append((ccode, partition, lang))
|
||||||
|
|
||||||
name = json.dumps(props.get('name'), ensure_ascii=False, separators=(', ', '=>'))
|
name = json.dumps(props.get('names').get('name'), ensure_ascii=False,
|
||||||
|
separators=(', ', '=>'))
|
||||||
country_names_data += ccode + '\t' + name[1:-1] + '\n'
|
country_names_data += ccode + '\t' + name[1:-1] + '\n'
|
||||||
|
|
||||||
with connect(dsn) as conn:
|
with connect(dsn) as conn:
|
||||||
with conn.cursor() as cur:
|
with conn.cursor() as cur:
|
||||||
cur.execute(
|
cur.execute(
|
||||||
"""CREATE TABLE public.country_name (
|
""" CREATE TABLE public.country_name (
|
||||||
country_code character varying(2),
|
country_code character varying(2),
|
||||||
name public.hstore,
|
name public.hstore,
|
||||||
derived_name public.hstore,
|
derived_name public.hstore,
|
||||||
country_default_language_code text,
|
country_default_language_code text,
|
||||||
partition integer
|
partition integer
|
||||||
);""")
|
); """)
|
||||||
data = StringIO(country_names_data)
|
data = StringIO(country_names_data)
|
||||||
cur.copy_from(data, 'country_name', columns=('country_code', 'name'))
|
cur.copy_from(data, 'country_name', columns=('country_code', 'name'))
|
||||||
cur.execute_values(
|
cur.execute_values(
|
||||||
@@ -109,8 +110,8 @@ def create_country_names(conn, tokenizer, languages=None):
|
|||||||
languages = languages.split(',')
|
languages = languages.split(',')
|
||||||
|
|
||||||
def _include_key(key):
|
def _include_key(key):
|
||||||
return key == 'name' or \
|
return key == 'default' or \
|
||||||
(key.startswith('name:') and (not languages or key[5:] in languages))
|
(not languages or key in languages)
|
||||||
|
|
||||||
with conn.cursor() as cur:
|
with conn.cursor() as cur:
|
||||||
psycopg2.extras.register_hstore(cur)
|
psycopg2.extras.register_hstore(cur)
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -183,8 +183,7 @@ class ParameterParserTest extends \PHPUnit\Framework\TestCase
|
|||||||
{
|
{
|
||||||
$oParams = new ParameterParser(array('accept-language' => ''));
|
$oParams = new ParameterParser(array('accept-language' => ''));
|
||||||
$this->assertSame(array(
|
$this->assertSame(array(
|
||||||
'name:default' => 'name:default',
|
'default' => 'default',
|
||||||
'name' => 'name',
|
|
||||||
'brand' => 'brand',
|
'brand' => 'brand',
|
||||||
'official_name:default' => 'official_name:default',
|
'official_name:default' => 'official_name:default',
|
||||||
'short_name:default' => 'short_name:default',
|
'short_name:default' => 'short_name:default',
|
||||||
@@ -196,8 +195,8 @@ class ParameterParserTest extends \PHPUnit\Framework\TestCase
|
|||||||
|
|
||||||
$oParams = new ParameterParser(array('accept-language' => 'de,en'));
|
$oParams = new ParameterParser(array('accept-language' => 'de,en'));
|
||||||
$this->assertSame(array(
|
$this->assertSame(array(
|
||||||
'name:de' => 'name:de',
|
'de' => 'de',
|
||||||
'name:en' => 'name:en',
|
'en' => 'en',
|
||||||
'name' => 'name',
|
'name' => 'name',
|
||||||
'brand' => 'brand',
|
'brand' => 'brand',
|
||||||
'official_name:de' => 'official_name:de',
|
'official_name:de' => 'official_name:de',
|
||||||
@@ -212,10 +211,10 @@ class ParameterParserTest extends \PHPUnit\Framework\TestCase
|
|||||||
|
|
||||||
$oParams = new ParameterParser(array('accept-language' => 'fr-ca,fr;q=0.8,en-ca;q=0.5,en;q=0.3'));
|
$oParams = new ParameterParser(array('accept-language' => 'fr-ca,fr;q=0.8,en-ca;q=0.5,en;q=0.3'));
|
||||||
$this->assertSame(array(
|
$this->assertSame(array(
|
||||||
'name:fr-ca' => 'name:fr-ca',
|
'fr-ca' => 'fr-ca',
|
||||||
'name:fr' => 'name:fr',
|
'fr' => 'fr',
|
||||||
'name:en-ca' => 'name:en-ca',
|
'en-ca' => 'en-ca',
|
||||||
'name:en' => 'name:en',
|
'en' => 'en',
|
||||||
'name' => 'name',
|
'name' => 'name',
|
||||||
'brand' => 'brand',
|
'brand' => 'brand',
|
||||||
'official_name:fr-ca' => 'official_name:fr-ca',
|
'official_name:fr-ca' => 'official_name:fr-ca',
|
||||||
@@ -234,10 +233,10 @@ class ParameterParserTest extends \PHPUnit\Framework\TestCase
|
|||||||
|
|
||||||
$oParams = new ParameterParser(array('accept-language' => 'ja_rm,zh_pinyin'));
|
$oParams = new ParameterParser(array('accept-language' => 'ja_rm,zh_pinyin'));
|
||||||
$this->assertSame(array(
|
$this->assertSame(array(
|
||||||
'name:ja_rm' => 'name:ja_rm',
|
'ja_rm' => 'ja_rm',
|
||||||
'name:zh_pinyin' => 'name:zh_pinyin',
|
'zh_pinyin' => 'zh_pinyin',
|
||||||
'name:ja' => 'name:ja',
|
'ja' => 'ja',
|
||||||
'name:zh' => 'name:zh',
|
'zh' => 'zh',
|
||||||
'name' => 'name',
|
'name' => 'name',
|
||||||
'brand' => 'brand',
|
'brand' => 'brand',
|
||||||
'official_name:ja_rm' => 'official_name:ja_rm',
|
'official_name:ja_rm' => 'official_name:ja_rm',
|
||||||
|
|||||||
Reference in New Issue
Block a user