diff --git a/build.js b/build.js index 8d39da11a..297fd0914 100644 --- a/build.js +++ b/build.js @@ -69,10 +69,17 @@ function generateFields() { validate(file, field, fieldSchema); - translations.fields[id] = {label: field.label}; + var t = translations.fields[id] = { + label: field.label + }; + + if (field.placeholder) { + t.placeholder = field.placeholder; + } + if (field.strings) { for (var i in field.strings) { - translations.fields[id][i] = field.strings[i]; + t[i] = field.strings[i]; } } diff --git a/data/presets.yaml b/data/presets.yaml index a1e404ad4..4a497fe3d 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -211,6 +211,7 @@ en: label: Type website: label: Website + placeholder: "http://example.com/" wetland: label: Type wheelchair: diff --git a/dist/locales/en.json b/dist/locales/en.json index 97939097a..db5f3491a 100644 --- a/dist/locales/en.json +++ b/dist/locales/en.json @@ -655,7 +655,8 @@ "label": "Type" }, "website": { - "label": "Website" + "label": "Website", + "placeholder": "http://example.com/" }, "wetland": { "label": "Type" diff --git a/js/id/presets/field.js b/js/id/presets/field.js index b6e751324..6e5525627 100644 --- a/js/id/presets/field.js +++ b/js/id/presets/field.js @@ -15,5 +15,9 @@ iD.presets.Field = function(id, field) { return field.t('label', {'default': id}); }; + field.placeholder = function() { + return field.t('placeholder', {'default': field.placeholder}); + }; + return field; }; diff --git a/js/id/ui/preset/input.js b/js/id/ui/preset/input.js index 85846c1b7..eafc818b6 100644 --- a/js/id/ui/preset/input.js +++ b/js/id/ui/preset/input.js @@ -14,7 +14,7 @@ iD.ui.preset.url = function(field) { input.enter().append('input') .attr('type', field.type) .attr('id', 'preset-input-' + field.id) - .attr('placeholder', field.placeholder || ''); + .attr('placeholder', field.placeholder()); input .on('blur', change) diff --git a/js/id/ui/preset/localized.js b/js/id/ui/preset/localized.js index a396913e0..e02678929 100644 --- a/js/id/ui/preset/localized.js +++ b/js/id/ui/preset/localized.js @@ -12,7 +12,7 @@ iD.ui.preset.localized = function(field, context) { .attr('type', 'text') .attr('id', 'preset-input-' + field.id) .attr('class', 'localized-main') - .attr('placeholder', field.placeholder || ''); + .attr('placeholder', field.placeholder()); input .on('blur', change) diff --git a/js/id/ui/preset/textarea.js b/js/id/ui/preset/textarea.js index 0fd78955d..e94ad9823 100644 --- a/js/id/ui/preset/textarea.js +++ b/js/id/ui/preset/textarea.js @@ -9,7 +9,7 @@ iD.ui.preset.textarea = function(field) { input.enter().append('textarea') .attr('id', 'preset-input-' + field.id) - .attr('placeholder', field.placeholder || '') + .attr('placeholder', field.placeholder()) .attr('maxlength', 255); input