Skip to content

Commit ffe5a52

Browse files
committed
use partially evaluated ux_language_text_source
1 parent 6009139 commit ffe5a52

File tree

1 file changed

+48
-25
lines changed

1 file changed

+48
-25
lines changed

bubble-wrap.yaml

Lines changed: 48 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,56 @@ global:
44
#ux/ui
55
ux_language: false # l10n language code, trusting OSM in v0.10 tiles, fixed in v1.0 tiles
66
ux_language_fallback: false # l10n language code, trusting OSM in v0.10 tiles, fixed in v1.0 tiles
7+
ux_language_text_source_fn: |
8+
function(f) {
9+
var language = global.ux_language ? 'name:'+global.ux_language : '';
10+
var fallback = global.ux_language_fallback ? 'name:'+global.ux_language_fallback : '';
11+
// replace self with evaluated global options
12+
var func = global.ux_language_text_source_fn =
13+
global.ux_language && global.ux_language_fallback ?
14+
function(f) { return f[language] || f[fallback] || f['name']; } :
15+
global.ux_language ?
16+
function(f) { return f[language] || f['name']; } :
17+
global.ux_language_fallback ?
18+
function(f) { return f[fallback] || f['name']; } :
19+
function(f) { return f['name']; };
20+
return func(f);
21+
}
722
ux_language_text_source: |
8-
function() {
9-
// if a ux_langauge has been defined use that, else if there is feature name in the fallback_ux_language then use that, else use the feature's default name in the local language
10-
return (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature.name;
23+
function() { return global.ux_language_text_source_fn(feature); }
24+
ux_language_text_source_short_fn: |
25+
function(f) {
26+
var language = global.ux_language ? 'name:short:'+global.ux_language : '';
27+
var fallback = global.ux_language_fallback ? 'name:short:'+global.ux_language_fallback : '';
28+
var func = global.ux_language_text_source_short_fn =
29+
global.ux_language && global.ux_language_fallback ?
30+
function(f) { return f[language] || f[fallback] || f['name:short']; } :
31+
global.ux_language ?
32+
function(f) { return feature[language] || feature['name:short']; } :
33+
global.ux_language_fallback ?
34+
function(f) { return f[fallback] || f['name:short']; } :
35+
function(f) { return f['name:short']; };
36+
return func(f);
1137
}
1238
ux_language_text_source_short: |
13-
function() {
14-
return (global.ux_language && feature['name:short:'+global.ux_language]) || (global.ux_language_fallback && feature['name:short:'+global.ux_language_fallback]) || feature['name:short'];
15-
}
39+
function() { return global.ux_language_text_source_short_fn(feature); }
1640
ux_language_text_source_short_proxy_name: |
1741
function() {
18-
var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'] || '';
19-
var short = (global.ux_language && feature['name:short:'+global.ux_language]) || (global.ux_language_fallback && feature['name:short:'+global.ux_language_fallback]) || feature['name:short'];
42+
var name = global.ux_language_text_source_fn(feature);
43+
var short = global.ux_language_text_source_short_fn(feature);
2044
return short ? name : '';
2145
}
2246
ux_language_text_source_abbreviation: |
2347
function() {
24-
var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'] || '';
25-
var abbrev = (global.ux_language && feature['name:abbreviation:'+global.ux_language]) || (global.ux_language_fallback && feature['name:abbreviation:'+global.ux_language_fallback]) || feature['name:abbreviation'];
26-
return abbrev || name;
48+
var abbrev = (global.ux_language && feature['name:abbreviation:'+global.ux_language]) ||
49+
(global.ux_language_fallback && feature['name:abbreviation:'+global.ux_language_fallback]) ||
50+
feature['name:abbreviation'];
51+
return abbrev || global.ux_language_text_source_fn(feature);
2752
}
2853
ux_language_text_source_iata: |
2954
function() {
30-
var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'];
31-
if(feature.iata) {
55+
var name = global.ux_language_text_source_fn(feature);
56+
if (feature.iata) {
3257
if (name) {
3358
return name + ' (' + feature.iata + ')';
3459
}
@@ -41,26 +66,25 @@ global:
4166
}
4267
ux_language_text_source_ocean: |
4368
function() {
44-
var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'] || '';
69+
var name = global.ux_language_text_source_fn(feature);
4570
return name.split('').join(' ');
4671
}
4772
ux_language_text_source_sea: |
4873
function() {
49-
var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'] || '';
74+
var name = global.ux_language_text_source_fn(feature);
5075
return name.split('').join(' ');
5176
}
5277
ux_language_text_source_continent: |
5378
function() {
54-
var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'] || '';
79+
var name = global.ux_language_text_source_fn(feature);
5580
return name.split('').join(' ');
5681
}
5782
ux_language_text_source_road_ref_and_name: |
5883
function() {
59-
// if a ux_langauge has been defined use that, else if there is feature name in the fallback_ux_language then use that, else use the feature's default name in the local language
60-
return (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature.name;
84+
return global.ux_language_text_source_fn(feature);
6185
6286
/*
63-
var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'];
87+
var name = global.ux_language_text_source_fn(feature);
6488
if(feature.ref && name) {
6589
return (feature.ref + ' ' + name);
6690
} else {
@@ -70,11 +94,10 @@ global:
7094
}
7195
ux_language_text_source_road_ref_and_name_short: |
7296
function() {
73-
// if a ux_langauge has been defined use that, else if there is feature name in the fallback_ux_language then use that, else use the feature's default name in the local language
74-
return (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature.name;
97+
return global.ux_language_text_source_fn(feature);
7598
7699
/*
77-
var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'];
100+
var name = global.ux_language_text_source_fn(feature);
78101
if (feature.ref && (feature.ref.length < 6) && name) {
79102
return feature.ref + ' ' + name;
80103
} else {
@@ -84,17 +107,17 @@ global:
84107
}
85108
ux_language_text_source_piste_advanced: |
86109
function() {
87-
var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'];
110+
var name = global.ux_language_text_source_fn(feature);
88111
return name ? ('◆ ' + name) : '◆';
89112
}
90113
ux_language_text_source_piste_expert: |
91114
function() {
92-
var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'];
115+
var name = global.ux_language_text_source_fn(feature);
93116
return name ? ('◆◆ ' + name) : '◆◆';
94117
}
95118
ux_language_text_source_building_and_address: |
96119
function() {
97-
var name = (global.ux_language && feature['name:'+global.ux_language]) || (global.ux_language_fallback && feature['name:'+global.ux_language_fallback]) || feature['name'];
120+
var name = global.ux_language_text_source_fn(feature);
98121
if (name && feature.addr_housenumber) {
99122
return name + '\n' + feature.addr_housenumber;
100123
} else {

0 commit comments

Comments
 (0)