Skip to content

Commit

Permalink
Add aliases property to presets (close #3)
Browse files Browse the repository at this point in the history
  • Loading branch information
quincylvania committed Dec 9, 2020
1 parent 70cb53f commit b043ee0
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 8 deletions.
15 changes: 10 additions & 5 deletions lib/build.js
Original file line number Diff line number Diff line change
Expand Up @@ -284,11 +284,15 @@ function generatePresets(dataDir, tstrings, searchableFieldIDs, listReusedIcons)
validateSchema(file, preset, presetSchema);

tstrings.presets[id] = {
name: preset.name,
terms: (preset.terms || []).join(',')
name: preset.name
};
delete preset.name;
if (preset.terms) delete preset.terms;

if (preset.aliases) tstrings.presets[id].aliases = preset.aliases.join(',');
delete preset.aliases;

tstrings.presets[id].terms = (preset.terms || []).join(',');
delete preset.terms;

if (preset.moreFields) {
preset.moreFields.forEach(fieldID => { searchableFieldIDs[fieldID] = true; });
Expand Down Expand Up @@ -351,7 +355,7 @@ function generateTranslations(fields, presets, tstrings, searchableFieldIDs) {
let optkeys = Object.keys(options);

if (field.keys) {
yamlField['label#'] = field.keys.map(k => `${k}=*`).join(', ');
yamlField['label#'] = field.keys.map(k => `${k}=*`).join(' + ');
optkeys.forEach(k => {
if (fieldId === 'access') {
options[k]['title#'] = options[k]['description#'] = `access=${k}`;
Expand Down Expand Up @@ -388,7 +392,7 @@ function generateTranslations(fields, presets, tstrings, searchableFieldIDs) {
let keys = Object.keys(tags);

if (keys.length) {
yamlPreset['name#'] = keys.map(k => `${k}=${tags[k]}`).join(', ');
yamlPreset['name#'] = keys.map(k => `${k}=${tags[k]}`).join(' + ') + ' (translate with one or more comma-separated names)';
}

if (preset.searchable !== false) {
Expand All @@ -400,6 +404,7 @@ function generateTranslations(fields, presets, tstrings, searchableFieldIDs) {
delete tstrings.presets[presetId].terms;
delete yamlPreset.terms;
}
delete yamlPreset.aliases;
}

return yamlStrings;
Expand Down
9 changes: 9 additions & 0 deletions lib/translations.js
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,15 @@ function fetchTranslations(options) {
let presets = (result.presets && result.presets.presets) || {};
for (const key of Object.keys(presets)) {
let preset = presets[key];

if (preset.name) {
let names = preset.name.split(',').map(s => s.trim());
preset.name = preset.name[0];
if (names.length > 1) {
preset.aliases = names.slice(1).join(',');
}
}

if (!preset.terms) continue;
preset.terms = preset.terms.replace(/<.*>/, '').trim();
if (!preset.terms) {
Expand Down
9 changes: 8 additions & 1 deletion schemas/preset.json
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,14 @@
"type": "string"
},
"terms": {
"description": "English synonyms or related terms",
"description": "English search terms or related keywords",
"type": "array",
"items": {
"type": "string"
}
},
"aliases": {
"description": "Display-ready English synonyms for the `name`",
"type": "array",
"items": {
"type": "string"
Expand Down
5 changes: 3 additions & 2 deletions tests/schema-builder.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -175,8 +175,9 @@ describe('schema-builder', () => {
water: 'pond'
},
geometry: ['point', 'area'],
terms: ['pool'],
name: 'Pond'
terms: ['frogs', 'guppies'],
name: 'Pond',
aliases: ['Vernal Pool', 'Puddle']
}
});
schemaBuilder.buildDist({
Expand Down

0 comments on commit b043ee0

Please sign in to comment.