From cd4ae68153c186b6f90bf115c2c8ea840587ef42 Mon Sep 17 00:00:00 2001 From: Tom MacWright Date: Thu, 21 Mar 2013 17:34:20 -0400 Subject: [PATCH 1/8] Update translations --- data/locales.js | 1843 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1825 insertions(+), 18 deletions(-) diff --git a/data/locales.js b/data/locales.js index 9e159756e..fc6a0dd2d 100644 --- a/data/locales.js +++ b/data/locales.js @@ -1613,7 +1613,7 @@ locale.zh = { "okay": "确定", "view_on_osm": "在OSM上查看", "name": "名称", - "editing": "编辑 {type}", + "editing_feature": "编辑{feature}", "additional": "附加标签", "choose": "选择对象的类型", "results": "{search}共有{n}个结果", @@ -1665,6 +1665,13 @@ locale.zh = { "in": "放大", "out": "缩小" }, + "imagery": { + "provided_by": "影像由{source}提供" + }, + "gpx": { + "local_layer": "本地GPX文件", + "drag_drop": "把GPX文件拖到页面上。" + }, "presets": { "fields": { "access": { @@ -1688,6 +1695,9 @@ locale.zh = { "atm": { "label": "ATM" }, + "barrier": { + "label": "类型" + }, "bicycle_parking": { "label": "类型" }, @@ -1798,6 +1808,9 @@ locale.zh = { "place": { "label": "类型" }, + "power": { + "label": "类型" + }, "railway": { "label": "类型" }, @@ -1929,6 +1942,9 @@ locale.zh = { "amenity/library": { "name": "图书馆" }, + "amenity/marketplace": { + "name": "市场" + }, "amenity/parking": { "name": "停车场" }, @@ -1986,15 +2002,58 @@ locale.zh = { "amenity/university": { "name": "大学" }, + "barrier": { + "name": "屏障" + }, + "barrier/block": { + "name": "街区" + }, + "barrier/bollard": { + "name": "短柱" + }, + "barrier/city_wall": { + "name": "城墙" + }, + "barrier/ditch": { + "name": "沟" + }, + "barrier/entrance": { + "name": "入口" + }, + "barrier/fence": { + "name": "篱笆" + }, + "barrier/gate": { + "name": "门" + }, + "barrier/lift_gate": { + "name": "电梯门" + }, + "barrier/retaining_wall": { + "name": "挡土墙" + }, + "barrier/toll_booth": { + "name": "收费站" + }, + "barrier/wall": { + "name": "墙" + }, "building": { "name": "建筑物" }, + "building/entrance": { + "name": "入口" + }, "entrance": { "name": "入口" }, "highway": { "name": "公路" }, + "highway/bridleway": { + "name": "台阶", + "terms": "楼梯" + }, "highway/bus_stop": { "name": "公交车站" }, @@ -2034,7 +2093,7 @@ locale.zh = { "name": "三级道路" }, "highway/track": { - "name": "轨迹" + "name": "小路" }, "highway/traffic_signals": { "name": "红绿灯", @@ -2052,9 +2111,24 @@ locale.zh = { "historic": { "name": "历史遗迹" }, + "historic/archaeological_site": { + "name": "考古遗址" + }, + "historic/castle": { + "name": "城堡" + }, + "historic/memorial": { + "name": "纪念馆" + }, "historic/monument": { "name": "纪念碑" }, + "historic/ruins": { + "name": "废墟" + }, + "historic/wayside_shrine": { + "name": "路边的神社" + }, "landuse": { "name": "土地用途" }, @@ -2112,6 +2186,9 @@ locale.zh = { "leisure/golf_course": { "name": "高尔夫球场" }, + "leisure/marina": { + "name": "码头" + }, "leisure/park": { "name": "公园" }, @@ -2136,6 +2213,9 @@ locale.zh = { "leisure/playground": { "name": "运动场" }, + "leisure/slipway": { + "name": "下水滑道" + }, "leisure/stadium": { "name": "体育场" }, @@ -2231,15 +2311,42 @@ locale.zh = { "place/village": { "name": "村庄" }, + "power": { + "name": "动力" + }, + "power/generator": { + "name": "发电厂" + }, + "power/line": { + "name": "电路线" + }, + "power/pole": { + "name": "电线杆" + }, "power/sub_station": { "name": "变电站" }, + "power/tower": { + "name": "高压电塔" + }, + "power/transformer": { + "name": "变压器" + }, "railway": { "name": "铁路" }, + "railway/abandoned": { + "name": "废弃的铁路" + }, + "railway/disused": { + "name": "废弃的铁路" + }, "railway/level_crossing": { "name": "平交路口" }, + "railway/monorail": { + "name": "单轨铁路" + }, "railway/rail": { "name": "铁轨" }, @@ -2249,15 +2356,160 @@ locale.zh = { "railway/subway_entrance": { "name": "地铁口" }, + "railway/tram": { + "name": "电车", + "terms": "电车" + }, "shop": { "name": "商店" }, + "shop/alcohol": { + "name": "酒品店" + }, + "shop/bakery": { + "name": "面包店" + }, + "shop/beauty": { + "name": "美容店" + }, + "shop/beverages": { + "name": "饮料店" + }, + "shop/books": { + "name": "书店" + }, + "shop/boutique": { + "name": "精品" + }, "shop/butcher": { "name": "肉贩" }, + "shop/car": { + "name": "汽车经销商" + }, + "shop/car_parts": { + "name": "汽车配件店" + }, + "shop/car_repair": { + "name": "汽车修理店" + }, + "shop/chemist": { + "name": "化学家" + }, + "shop/clothes": { + "name": "服装店" + }, + "shop/computer": { + "name": "电脑店" + }, + "shop/confectionery": { + "name": "糕饼" + }, + "shop/convenience": { + "name": "便利店" + }, + "shop/deli": { + "name": "熟食店" + }, + "shop/department_store": { + "name": "百货店" + }, + "shop/doityourself": { + "name": "DIY商店" + }, + "shop/dry_cleaning": { + "name": "干洗店" + }, + "shop/electronics": { + "name": "鱼贩子" + }, + "shop/florist": { + "name": "花店" + }, + "shop/furniture": { + "name": "家具店" + }, + "shop/garden_centre": { + "name": "花园中心" + }, + "shop/gift": { + "name": "礼品店" + }, + "shop/greengrocer": { + "name": "蔬菜水果店" + }, + "shop/hairdresser": { + "name": "理发师" + }, + "shop/hardware": { + "name": "五金商店" + }, + "shop/hifi": { + "name": "音响店" + }, + "shop/jewelry": { + "name": "珠宝商" + }, + "shop/kiosk": { + "name": "亭" + }, + "shop/laundry": { + "name": "洗衣店" + }, + "shop/mall": { + "name": "购物中心" + }, + "shop/mobile_phone": { + "name": "手机店" + }, + "shop/motorcycle": { + "name": "摩托车经销商" + }, + "shop/music": { + "name": "音乐店" + }, + "shop/newsagent": { + "name": "书报" + }, + "shop/optician": { + "name": "配镜师" + }, + "shop/outdoor": { + "name": "户外店" + }, + "shop/pet": { + "name": "宠物店" + }, + "shop/shoes": { + "name": "鞋店" + }, + "shop/sports": { + "name": "体育用品店" + }, + "shop/stationery": { + "name": "文化用品店" + }, "shop/supermarket": { "name": "超级市场" }, + "shop/toys": { + "name": "玩具店" + }, + "shop/travel_agency": { + "name": "旅行社" + }, + "shop/tyres": { + "name": "轮胎店" + }, + "shop/vacant": { + "name": "空置铺位" + }, + "shop/variety_store": { + "name": "杂货店" + }, + "shop/video": { + "name": "影像店" + }, "tourism": { "name": "旅游业" }, @@ -2516,7 +2768,6 @@ locale.zh_TW = { "okay": "確定", "view_on_osm": "在OSM上顯示", "name": "名稱", - "editing": "編輯詳細資料", "additional": "附加的標籤", "choose": "選擇功能種類", "results": "{search} 的 {n} 個結果", @@ -3625,7 +3876,6 @@ locale.nl = { "okay": "OK", "view_on_osm": "Bekijk op OSM", "name": "Name", - "editing": "Editing {type}", "additional": "Additional tags", "choose": "What are you adding?", "results": "{n} results for {search}" @@ -3846,15 +4096,18 @@ locale.fr = { "inspector": { "no_documentation_combination": "Aucune documentation n'est disponible pour cette combinaison de tag", "no_documentation_key": "Aucune documentation n'est disponible pour cette clé", + "show_more": "Plus d'infornations", "new_tag": "Nouveau tag", "edit_tags": "Editer les tags", "okay": "Okay", "view_on_osm": "Visualiser sur OSM", "name": "Nom", - "editing": "Edité {type}", + "editing_feature": "Édition de {feature}", "additional": "Tags complémentaires", "choose": "Que souhaitez vous ajouter?", - "results": "{n} résultats pour {search}" + "results": "{n} résultats pour {search}", + "reference": "Consulter sur le Wiki d'OpenStreetMap", + "back_tooltip": "Changer le type de l'objet " }, "background": { "title": "Fond de carte", @@ -3871,6 +4124,7 @@ locale.fr = { "save": { "title": "Sauvegarder", "help": "Envoie des modifications au serveyr OpenStreetMap afin qu'elles soient visibles par les autres contributeurs.", + "no_changes": "Aucune modification à sauvegarder", "error": "Une erreur est survenue lors de l'enregistrement des données", "uploading": "Envoie des modifications vers OpenStreetMap.", "unsaved_changes": "Vous avez des modifications non enregistrées" @@ -3899,6 +4153,353 @@ locale.fr = { "zoom": { "in": "Zoomer", "out": "Dézoomer" + }, + "imagery": { + "provided_by": "Image provenant de {source}" + }, + "gpx": { + "local_layer": "Fichier GPX personnel", + "drag_drop": "Glisser et déposer un fichier .gpx sur la page" + }, + "presets": { + "fields": { + "address": { + "label": "Adresse", + "placeholders": { + "number": "123", + "street": "Rue", + "city": "Ville" + } + }, + "aeroway": { + "label": "Type" + }, + "amenity": { + "label": "Type" + }, + "bicycle_parking": { + "label": "Type" + }, + "building": { + "label": "Bâtiment " + }, + "building_area": { + "label": "Bâtiment" + }, + "building_yes": { + "label": "Bâtiment" + }, + "capacity": { + "label": "Capacité" + }, + "construction": { + "label": "Type" + }, + "crossing": { + "label": "Type" + }, + "cuisine": { + "label": "Cuisine" + }, + "denomination": { + "label": "Denomination " + }, + "elevation": { + "label": "Elevation " + }, + "entrance": { + "label": "Type" + }, + "fax": { + "label": "Fax" + }, + "highway": { + "label": "Type" + }, + "historic": { + "label": "Type" + }, + "internet_access": { + "label": "Accès Internet", + "options": { + "wlan": "Wifi" + } + }, + "landuse": { + "label": "Type" + }, + "layer": { + "label": "Couche" + }, + "leisure": { + "label": "Type" + }, + "levels": { + "label": "Niveaux" + }, + "man_made": { + "label": "Type" + }, + "maxspeed": { + "label": "Limite de vitesse" + }, + "note": { + "label": "Note" + }, + "office": { + "label": "Type" + }, + "oneway": { + "label": "Sens unique" + }, + "opening_hours": { + "label": "Heures" + }, + "operator": { + "label": "Operateur " + }, + "phone": { + "label": "Telephone " + }, + "place": { + "label": "Type" + }, + "railway": { + "label": "Type" + }, + "religion": { + "label": "Religion", + "options": { + "christian": "Christianisme", + "muslim": "Musulmane", + "buddhist": "Budhiste ", + "jewish": "Juive", + "hindu": "Indouiste ", + "taoist": "Taoiste " + } + }, + "service": { + "label": "Type" + }, + "shop": { + "label": "Type" + }, + "source": { + "label": "Source" + }, + "sport": { + "label": "Sport" + }, + "surface": { + "label": "Surface" + }, + "tourism": { + "label": "Type" + }, + "water": { + "label": "Type" + }, + "waterway": { + "label": "Type" + }, + "website": { + "label": "Site Internet" + }, + "wetland": { + "label": "Type" + }, + "wikipedia": { + "label": "Wikipedia" + }, + "wood": { + "label": "Type" + } + }, + "presets": { + "aeroway/aerodrome": { + "name": "Aeroport " + }, + "amenity/bank": { + "name": "Banque" + }, + "amenity/bar": { + "name": "Bar" + }, + "amenity/bicycle_parking": { + "name": "Parc à velos " + }, + "amenity/bicycle_rental": { + "name": "Location de velos " + }, + "amenity/cafe": { + "name": "Cafe " + }, + "amenity/cinema": { + "name": "Cinema " + }, + "amenity/fast_food": { + "name": "Fast Food" + }, + "amenity/fire_station": { + "name": "Caserne de pompier" + }, + "amenity/grave_yard": { + "name": "Cimetière" + }, + "amenity/hospital": { + "name": "Hopital " + }, + "amenity/library": { + "name": "Bibliotheque " + }, + "amenity/parking": { + "name": "Parking " + }, + "amenity/pharmacy": { + "name": "Pharmacie" + }, + "amenity/place_of_worship": { + "name": "Lieu de culte" + }, + "amenity/place_of_worship/christian": { + "name": "Eglise " + }, + "amenity/place_of_worship/jewish": { + "name": "Cynagogue " + }, + "amenity/place_of_worship/muslim": { + "name": "Mosque " + }, + "amenity/police": { + "name": "Poste de police" + }, + "amenity/post_box": { + "name": "Boite aux lettres" + }, + "amenity/pub": { + "name": "Pub" + }, + "amenity/restaurant": { + "name": "Restaurant" + }, + "amenity/school": { + "name": "Ecole " + }, + "amenity/toilets": { + "name": "Toiletes " + }, + "amenity/university": { + "name": "Universite " + }, + "building": { + "name": "Batiment " + }, + "entrance": { + "name": "Entree " + }, + "highway/bus_stop": { + "name": "Arret de bus " + }, + "highway/crossing": { + "name": "Passage pieton " + }, + "highway/primary": { + "name": "Route principale" + }, + "highway/residential": { + "name": "Route residentielle " + }, + "highway/secondary": { + "name": "Route secondaire" + }, + "highway/steps": { + "name": "Escaliers" + }, + "highway/tertiary": { + "name": "Route tertiaire" + }, + "highway/traffic_signals": { + "name": "Feux tricolores" + }, + "highway/turning_circle": { + "name": "Rond point" + }, + "historic": { + "name": "Site historique" + }, + "historic/monument": { + "name": "Monument" + }, + "landuse/cemetery": { + "name": "Cimetiere " + }, + "landuse/commercial": { + "name": "Commerciale" + }, + "landuse/construction": { + "name": "Construction" + }, + "landuse/farm": { + "name": "Ferme" + }, + "landuse/forest": { + "name": "Forêt" + }, + "landuse/grass": { + "name": "Herbe" + }, + "landuse/industrial": { + "name": "Industrielle" + }, + "landuse/residential": { + "name": "Residentielle " + }, + "leisure/golf_course": { + "name": "Parcours de golf" + }, + "leisure/park": { + "name": "Parc" + }, + "leisure/pitch/tennis": { + "name": "Court de tennis" + }, + "man_made/lighthouse": { + "name": "Phare" + }, + "natural/bay": { + "name": "Baie" + }, + "natural/beach": { + "name": "Plage" + }, + "natural/tree": { + "name": "Arbre" + }, + "natural/water/lake": { + "name": "Lac" + }, + "place/island": { + "name": "Ile " + }, + "place/village": { + "name": "Village" + }, + "shop": { + "name": "Magasin" + }, + "shop/butcher": { + "name": "Boucher " + }, + "shop/supermarket": { + "name": "Supermarche " + }, + "tourism": { + "name": "Tourisme" + }, + "tourism/museum": { + "name": "Musee " + } + } } }; locale.de = { @@ -4077,7 +4678,6 @@ locale.de = { "okay": "OK", "view_on_osm": "auf OpenStreetMap ansehen", "name": "Name", - "editing": "Details verändern", "additional": "Weitere Merkmale", "results": "{n} Resultate für {search}", "reference": "In der OpenSteetMap Wiki anschauen →" @@ -4126,6 +4726,9 @@ locale.de = { "in": "Hineinzoomen", "out": "Herauszoomen" }, + "imagery": { + "provided_by": "Bilddaten von {source}" + }, "presets": { "fields": { "access": { @@ -4628,7 +5231,6 @@ locale.it = { "okay": "Ok", "view_on_osm": "Mostra su OSM", "name": "Nome", - "editing": "Modifica dettagli", "additional": "Tag aggiuntivi", "choose": "Seleziona il tipo di caratteristica", "results": "{n} risultati per {search}", @@ -5707,7 +6309,6 @@ locale.lv = { "okay": "Labi", "view_on_osm": "Apskatīt OSM", "name": "Name", - "editing": "Mainīt detaļas", "additional": "Papildus apzīmējumi", "choose": "Izvēlieties objekta tipu", "results": "Atrasti {n} rezultāti meklējot {search}", @@ -6282,7 +6883,6 @@ locale.pt = { "okay": "OK", "view_on_osm": "Ver em OSM", "name": "Nome", - "editing": "A editar {type}", "additional": "Tags adicionais", "choose": "O que está a adicionar?", "results": "{n} resultados para {search}" @@ -6507,7 +7107,6 @@ locale.ru = { "okay": "Готово", "view_on_osm": "Посмотреть в OSM", "name": "Name", - "editing": "Editing {type}", "additional": "Additional tags", "choose": "What are you adding?", "results": "{n} results for {search}", @@ -6947,7 +7546,6 @@ locale.sv = { "okay": "Ok", "view_on_osm": "Visa på OSM", "name": "Namn", - "editing": "Redigerar {type}", "additional": "Fler taggar", "choose": "Vad lägger du till?", "results": "{n} sökresult för {search}", @@ -7165,7 +7763,6 @@ locale.tr = { "okay": "Tamam", "view_on_osm": "OSM üzerinde gör", "name": "İsim", - "editing": "{type} düzenleniyor", "additional": "Ekstra etiketler", "choose": "Neyi ekliyorsunuz?", "results": "{n} results for {search}" @@ -7326,7 +7923,17 @@ locale.uk = { "point": "Точку посунуто.", "vertex": "Точку лінії посунуто.", "line": "Лінію посунуто.", - "area": "Полігон посунуто." + "area": "Полігон посунуто.", + "multiple": "Посунуто кілька об’єктів." + } + }, + "rotate": { + "title": "Обернути", + "description": "Обернути об’єкт навколо його центру.", + "key": "R", + "annotation": { + "line": "Напрямок лінії змінено.", + "area": "Полігон обернуто." } }, "reverse": { @@ -7376,11 +7983,18 @@ locale.uk = { "inspector": { "no_documentation_combination": "Для цієї комбінації теґів немає документації", "no_documentation_key": "Для цього теґа немає документації", + "show_more": "Ще", "new_tag": "Новий теґ", "edit_tags": "Редагувати теґи", "okay": "Готово", "view_on_osm": "Подивтись в ОСМ", - "name": "Name" + "name": "Name", + "editing_feature": "Властивості {feature}", + "additional": "Додаткові теґи", + "choose": "Виберіть тип об’єкту", + "results": "знайдено {n} об’єктів на запит {search}", + "reference": "Подивитись на OpenStreetMap Wiki →", + "back_tooltip": "Змінити тип об’єкта" }, "background": { "title": "Фон", @@ -7397,6 +8011,7 @@ locale.uk = { "save": { "title": "Зберегти", "help": "Зберегти зміни надіславши їх на OpenStreetMap, та зробивши їх доступними всім іншим.", + "no_changes": "Зміни для збереження відсутні.", "error": "Під час збереження виникла помилка", "uploading": "Надсилання змін до OpenStreetMap.", "unsaved_changes": "Ви маєте незбережені правки" @@ -7418,13 +8033,932 @@ locale.uk = { "untagged_point": "Точка без теґів, що не є частиною лінію чи полігону", "untagged_line": "Лінія без теґів", "untagged_area": "Полігон без теґів", - "many_deletions": "You're deleting {n} objects. Are you sure you want to do this? This will delete them from the map that everyone else sees on openstreetmap.org.", "tag_suggests_area": "Теґ {tag} зазвичай ставться на полігони, але об’єкт ним не є", "deprecated_tags": "Застарілі теґи: {tags}" }, "zoom": { "in": "Наблизитись", "out": "Віддалитись" + }, + "imagery": { + "provided_by": "Фон наданий {source}" + }, + "gpx": { + "local_layer": "Локальний файл GPX", + "drag_drop": "Перетягніть файл .gpx на сторінку" + }, + "presets": { + "fields": { + "access": { + "label": "Доступ" + }, + "address": { + "label": "Адреса", + "placeholders": { + "housename": "Назвабудинку", + "number": "123", + "street": "Вулиця", + "city": "Місто" + } + }, + "aeroway": { + "label": "Тип" + }, + "amenity": { + "label": "Тип" + }, + "atm": { + "label": "Банкомат" + }, + "barrier": { + "label": "Тип" + }, + "bicycle_parking": { + "label": "Тип" + }, + "building": { + "label": "Будинок" + }, + "building_area": { + "label": "Будинок" + }, + "building_yes": { + "label": "Будинок" + }, + "capacity": { + "label": "Міськість" + }, + "construction": { + "label": "Тип" + }, + "country": { + "label": "Країна" + }, + "crossing": { + "label": "Тип" + }, + "cuisine": { + "label": "Кухня" + }, + "denomination": { + "label": "Віросповідання" + }, + "denotation": { + "label": "Позначення" + }, + "elevation": { + "label": "Висота" + }, + "emergency": { + "label": "Аварійні служби" + }, + "entrance": { + "label": "Тип" + }, + "fax": { + "label": "Факс" + }, + "fee": { + "label": "Плата" + }, + "highway": { + "label": "Тип" + }, + "historic": { + "label": "Тип" + }, + "internet_access": { + "label": "Доступ до Інтеренету", + "options": { + "wlan": "Wifi", + "wired": "Дротовий", + "terminal": "Термінал" + } + }, + "landuse": { + "label": "Тип" + }, + "layer": { + "label": "Шар" + }, + "leisure": { + "label": "Тип" + }, + "levels": { + "label": "Поверхи" + }, + "man_made": { + "label": "Тип" + }, + "maxspeed": { + "label": "Обмеження швидкості" + }, + "natural": { + "label": "Природа" + }, + "network": { + "label": "Мережа" + }, + "note": { + "label": "Примітка" + }, + "office": { + "label": "Тип" + }, + "opening_hours": { + "label": "Години" + }, + "operator": { + "label": "Оператор" + }, + "phone": { + "label": "Телефон" + }, + "place": { + "label": "Тип" + }, + "power": { + "label": "Тип" + }, + "railway": { + "label": "Тип" + }, + "ref": { + "label": "Посилання" + }, + "religion": { + "label": "Релігія", + "options": { + "christian": "Християнство", + "muslim": "Мусульманство", + "buddhist": "Будизм", + "jewish": "Іудейство", + "hindu": "Хінду", + "shinto": "Сінто", + "taoist": "Даосизм" + } + }, + "service": { + "label": "Тип" + }, + "shelter": { + "label": "Притулок" + }, + "shop": { + "label": "Тип" + }, + "source": { + "label": "Джерело" + }, + "sport": { + "label": "Спорт" + }, + "structure": { + "label": "Споруда", + "options": { + "bridge": "Міст", + "tunnel": "Тунель", + "embankment": "Насип", + "cutting": "Виїмка" + } + }, + "surface": { + "label": "Поверхня" + }, + "tourism": { + "label": "Тип" + }, + "water": { + "label": "Тип" + }, + "waterway": { + "label": "Тип" + }, + "website": { + "label": "Вебсайт" + }, + "wetland": { + "label": "Тип" + }, + "wheelchair": { + "label": "Для інвалідних візків" + }, + "wikipedia": { + "label": "Вікіпедія" + }, + "wood": { + "label": "Тип" + } + }, + "presets": { + "aeroway": { + "name": "Аеропорт" + }, + "aeroway/aerodrome": { + "name": "Аеропорт", + "terms": "літак,аеропорт,аеродром" + }, + "aeroway/helipad": { + "name": "Вертолітний майданчик", + "terms": "вертоліт,вертолітний майданчик,вертодром" + }, + "amenity": { + "name": "Зручності" + }, + "amenity/bank": { + "name": "Банк", + "terms": "депозитний сейф,бухгалтерія,кредитна спілка,казна,фонди,накопичення,інвестиційна компанія,сховище,резерв,скарбниця,сейф,заощадження,біржа,запаси,запас,скарбниця,багатство,казначейство,трастова компанія,сховище" + }, + "amenity/bar": { + "name": "Бар" + }, + "amenity/bench": { + "name": "Лавка" + }, + "amenity/bicycle_parking": { + "name": "Вело-парковка" + }, + "amenity/bicycle_rental": { + "name": "Прокат велосипедів" + }, + "amenity/cafe": { + "name": "Кафе", + "terms": "кава,чай,кав’ярня" + }, + "amenity/cinema": { + "name": "Кінотеатр" + }, + "amenity/courthouse": { + "name": "Суд" + }, + "amenity/embassy": { + "name": "Амбасада" + }, + "amenity/fast_food": { + "name": "Фаст-Фуд" + }, + "amenity/fire_station": { + "name": "Пожежна станція" + }, + "amenity/grave_yard": { + "name": "Цвинтар" + }, + "amenity/hospital": { + "name": "Лікарня" + }, + "amenity/library": { + "name": "Бібліотека" + }, + "amenity/marketplace": { + "name": "Ринок" + }, + "amenity/parking": { + "name": "Стоянка" + }, + "amenity/pharmacy": { + "name": "Аптека" + }, + "amenity/place_of_worship": { + "name": "Культове місце" + }, + "amenity/place_of_worship/christian": { + "name": "Церква" + }, + "amenity/place_of_worship/jewish": { + "name": "Синагога", + "terms": "іудейство,синагога" + }, + "amenity/place_of_worship/muslim": { + "name": "Мечеть", + "terms": "мусульманство,мечеть" + }, + "amenity/police": { + "name": "Міліція/Поліція" + }, + "amenity/post_box": { + "name": "Поштова скриня" + }, + "amenity/post_office": { + "name": "Пошта" + }, + "amenity/pub": { + "name": "Паб" + }, + "amenity/restaurant": { + "name": "Ресторан" + }, + "amenity/school": { + "name": "Школа" + }, + "amenity/swimming_pool": { + "name": "Басейн" + }, + "amenity/telephone": { + "name": "Телефон" + }, + "amenity/theatre": { + "name": "Театр", + "terms": "театр,вистава,гра,музичний" + }, + "amenity/toilets": { + "name": "Туалет" + }, + "amenity/townhall": { + "name": "Міська державна адміністрація" + }, + "amenity/university": { + "name": "Університет" + }, + "barrier": { + "name": "Перепони" + }, + "barrier/block": { + "name": "Блок" + }, + "barrier/bollard": { + "name": "Стовпчик" + }, + "barrier/cattle_grid": { + "name": "Перешкода для худоби" + }, + "barrier/city_wall": { + "name": "Міська стіна" + }, + "barrier/cycle_barrier": { + "name": "Перешкода для велосипедистів" + }, + "barrier/ditch": { + "name": "Канава" + }, + "barrier/entrance": { + "name": "Вхід" + }, + "barrier/fence": { + "name": "Огорожа" + }, + "barrier/gate": { + "name": "Ворота" + }, + "barrier/hedge": { + "name": "Жива огорожа" + }, + "barrier/kissing_gate": { + "name": "Вузька хвіртка" + }, + "barrier/lift_gate": { + "name": "Шлагбаум" + }, + "barrier/retaining_wall": { + "name": "Підпірна стіна" + }, + "barrier/stile": { + "name": "Перелаз/Турнікет" + }, + "barrier/toll_booth": { + "name": "Пункт сплати за проїзд" + }, + "barrier/wall": { + "name": "Стіна" + }, + "building": { + "name": "Будинок" + }, + "building/entrance": { + "name": "Вхід" + }, + "entrance": { + "name": "Вхід" + }, + "highway": { + "name": "Дорога" + }, + "highway/bridleway": { + "name": "Сходи" + }, + "highway/bus_stop": { + "name": "Автобусна зупинка" + }, + "highway/crossing": { + "name": "Прехресття" + }, + "highway/cycleway": { + "name": "Вело-доріжка" + }, + "highway/footway": { + "name": "Тротуар" + }, + "highway/motorway": { + "name": "Автомагістраль" + }, + "highway/path": { + "name": "Тропа" + }, + "highway/primary": { + "name": "Головна дорога" + }, + "highway/residential": { + "name": "Дорога місцевого значення" + }, + "highway/secondary": { + "name": "Другорядна дорога" + }, + "highway/service": { + "name": "Третинна дорога" + }, + "highway/steps": { + "name": "Сходи" + }, + "highway/tertiary": { + "name": "Третинна дорога" + }, + "highway/track": { + "name": "Грунтовка" + }, + "highway/traffic_signals": { + "name": "Світлофор" + }, + "highway/trunk": { + "name": "Шосе" + }, + "highway/turning_circle": { + "name": "Місце для розвороту" + }, + "highway/unclassified": { + "name": "Не має класифікації" + }, + "historic": { + "name": "Історичні місця" + }, + "historic/archaeological_site": { + "name": "Археологічні пам’ятки" + }, + "historic/boundary_stone": { + "name": "Прикордонний камінь" + }, + "historic/castle": { + "name": "За́мок" + }, + "historic/memorial": { + "name": "Пам’ятник" + }, + "historic/monument": { + "name": "Пам’ятник" + }, + "historic/ruins": { + "name": "Руїни" + }, + "historic/wayside_cross": { + "name": "Придорожній хрест" + }, + "historic/wayside_shrine": { + "name": "Придорожня рака" + }, + "landuse": { + "name": "Землекористування" + }, + "landuse/allotments": { + "name": "Дачі/горо́ди" + }, + "landuse/basin": { + "name": "Водойма" + }, + "landuse/cemetery": { + "name": "Кладовище" + }, + "landuse/commercial": { + "name": "Діловий район" + }, + "landuse/construction": { + "name": "Будівництво" + }, + "landuse/farm": { + "name": "Ферма" + }, + "landuse/farmyard": { + "name": "Двір ферми" + }, + "landuse/forest": { + "name": "Лісовий масив" + }, + "landuse/grass": { + "name": "Трава" + }, + "landuse/industrial": { + "name": "Промзона" + }, + "landuse/meadow": { + "name": "Левада" + }, + "landuse/orchard": { + "name": "Сад" + }, + "landuse/quarry": { + "name": "Кар’єр" + }, + "landuse/residential": { + "name": "Житлова зона" + }, + "landuse/vineyard": { + "name": "Виноградник" + }, + "leisure": { + "name": "Дозвілля" + }, + "leisure/garden": { + "name": "Сад" + }, + "leisure/golf_course": { + "name": "Поле для гольфу" + }, + "leisure/marina": { + "name": "Пристань для яхт" + }, + "leisure/park": { + "name": "Парк" + }, + "leisure/pitch": { + "name": "Спортивний майданчик" + }, + "leisure/pitch/american_football": { + "name": "Поле для американського футболу" + }, + "leisure/pitch/baseball": { + "name": "Бейсбольний майданчик" + }, + "leisure/pitch/basketball": { + "name": "Баскетбольний майданчик" + }, + "leisure/pitch/soccer": { + "name": "Футбольне поле" + }, + "leisure/pitch/tennis": { + "name": "Тенісний майданчик" + }, + "leisure/playground": { + "name": "Ігровий майданчик" + }, + "leisure/slipway": { + "name": "Сліп" + }, + "leisure/stadium": { + "name": "Стадіон" + }, + "leisure/swimming_pool": { + "name": "Басейн" + }, + "man_made": { + "name": "Штучні споруди" + }, + "man_made/lighthouse": { + "name": "Маяк" + }, + "man_made/pier": { + "name": "Пірс" + }, + "man_made/survey_point": { + "name": "Геодезичний пункт" + }, + "man_made/water_tower": { + "name": "Водонапірна вежа" + }, + "natural": { + "name": "Природа" + }, + "natural/bay": { + "name": "Затока" + }, + "natural/beach": { + "name": "Пляж" + }, + "natural/cliff": { + "name": "Скеля/Яр" + }, + "natural/coastline": { + "name": "Берегова лінія", + "terms": "прибійна смуга" + }, + "natural/glacier": { + "name": "Льодовик" + }, + "natural/grassland": { + "name": "Трави" + }, + "natural/heath": { + "name": "Пустир/Вереск" + }, + "natural/peak": { + "name": "Пік" + }, + "natural/scrub": { + "name": "Чагарник" + }, + "natural/spring": { + "name": "Джерело" + }, + "natural/tree": { + "name": "Дерево" + }, + "natural/water": { + "name": "Вода" + }, + "natural/water/lake": { + "name": "Озеро" + }, + "natural/water/pond": { + "name": "Ставок" + }, + "natural/water/reservoir": { + "name": "Резервуар" + }, + "natural/wetland": { + "name": "Заболочені землі" + }, + "natural/wood": { + "name": "Дерева" + }, + "office": { + "name": "Офіс" + }, + "place": { + "name": "Місцевість" + }, + "place/hamlet": { + "name": "Хутір" + }, + "place/island": { + "name": "Острів" + }, + "place/locality": { + "name": "Місцевість" + }, + "place/village": { + "name": "Село" + }, + "power": { + "name": "Енергетика" + }, + "power/generator": { + "name": "Електростанція" + }, + "power/line": { + "name": "Лінія електропередач" + }, + "power/pole": { + "name": "Опора" + }, + "power/sub_station": { + "name": "Підстанція" + }, + "power/tower": { + "name": "Опора ЛЕП" + }, + "power/transformer": { + "name": "Трансформатор" + }, + "railway": { + "name": "Залізниця" + }, + "railway/abandoned": { + "name": "Занедбані колії" + }, + "railway/disused": { + "name": "Путі, що не використовуються" + }, + "railway/level_crossing": { + "name": "Залізничний переїзд" + }, + "railway/monorail": { + "name": "Монорейка" + }, + "railway/rail": { + "name": "Рейки" + }, + "railway/subway": { + "name": "Метрополітен" + }, + "railway/subway_entrance": { + "name": "Вхід до метро" + }, + "railway/tram": { + "name": "Трамвай" + }, + "shop": { + "name": "Магазини/Майстерні" + }, + "shop/bakery": { + "name": "Булочна" + }, + "shop/beverages": { + "name": "Напої" + }, + "shop/bicycle": { + "name": "Веломагазин" + }, + "shop/books": { + "name": "Книгарня" + }, + "shop/boutique": { + "name": "Бутік" + }, + "shop/butcher": { + "name": "М’ясна лавка" + }, + "shop/car_parts": { + "name": "Автозапчастини" + }, + "shop/car_repair": { + "name": "Автомайстерня" + }, + "shop/chemist": { + "name": "Побутова хімія" + }, + "shop/clothes": { + "name": "Одяг" + }, + "shop/computer": { + "name": "Комп’ютери" + }, + "shop/confectionery": { + "name": "Кондитерська" + }, + "shop/convenience": { + "name": "міні-маркет" + }, + "shop/deli": { + "name": "Делікатеси/Вишукана їжа" + }, + "shop/department_store": { + "name": "Універмаг" + }, + "shop/doityourself": { + "name": "Зроби сам" + }, + "shop/dry_cleaning": { + "name": "Хімчистка" + }, + "shop/electronics": { + "name": "Електроніка" + }, + "shop/fishmonger": { + "name": "Риба" + }, + "shop/florist": { + "name": "Квіти" + }, + "shop/furniture": { + "name": "Меблі" + }, + "shop/garden_centre": { + "name": "Садово-парковий центр" + }, + "shop/gift": { + "name": "Подарунки" + }, + "shop/greengrocer": { + "name": "Овочевий" + }, + "shop/hairdresser": { + "name": "Перукарня" + }, + "shop/hardware": { + "name": "Господарські товари" + }, + "shop/hifi": { + "name": "Аудіо апаратура" + }, + "shop/jewelry": { + "name": "Ювелірні прикраси" + }, + "shop/kiosk": { + "name": "Кіоск" + }, + "shop/laundry": { + "name": "Пральня" + }, + "shop/mall": { + "name": "Торгівельний центр" + }, + "shop/mobile_phone": { + "name": "Мобільні телефони" + }, + "shop/motorcycle": { + "name": "Мотомагазин" + }, + "shop/music": { + "name": "Музичний магазин" + }, + "shop/optician": { + "name": "Оптика" + }, + "shop/outdoor": { + "name": "Товари для активного відпочинку" + }, + "shop/pet": { + "name": "Товари для тварин" + }, + "shop/shoes": { + "name": "Взуття" + }, + "shop/sports": { + "name": "Спорттовари" + }, + "shop/supermarket": { + "name": "Супермаркет" + }, + "shop/toys": { + "name": "Іграшки" + }, + "shop/travel_agency": { + "name": "Туристична агенція" + }, + "shop/tyres": { + "name": "Колеса та шини" + }, + "shop/variety_store": { + "name": "Універсам" + }, + "shop/video": { + "name": "Відео" + }, + "tourism": { + "name": "Туризм" + }, + "tourism/alpine_hut": { + "name": "Гірський притулок" + }, + "tourism/artwork": { + "name": "Витвори мистецтв" + }, + "tourism/attraction": { + "name": "Визначне місце" + }, + "tourism/camp_site": { + "name": "Кемпінг" + }, + "tourism/caravan_site": { + "name": "Караван-парк" + }, + "tourism/chalet": { + "name": "Шале" + }, + "tourism/guest_house": { + "name": "Гостьовий будинок" + }, + "tourism/hostel": { + "name": "Хостел" + }, + "tourism/hotel": { + "name": "Готель" + }, + "tourism/information": { + "name": "Інформація" + }, + "tourism/motel": { + "name": "Мотель" + }, + "tourism/museum": { + "name": "Музей" + }, + "tourism/picnic_site": { + "name": "Місце для пікніка" + }, + "tourism/theme_park": { + "name": "Тематичний парк" + }, + "tourism/viewpoint": { + "name": "Оглядовий майданчик" + }, + "tourism/zoo": { + "name": "Зоопарк" + }, + "waterway": { + "name": "Водний шлях" + }, + "waterway/canal": { + "name": "Канал" + }, + "waterway/dam": { + "name": "Дамба" + }, + "waterway/ditch": { + "name": "Канава" + }, + "waterway/drain": { + "name": "Дренажний канал" + }, + "waterway/river": { + "name": "Ріка" + }, + "waterway/riverbank": { + "name": "Берег ріки" + }, + "waterway/stream": { + "name": "Струмок" + }, + "waterway/weir": { + "name": "Водозлив" + } + } } }; locale.vi = { @@ -7604,7 +9138,7 @@ locale.vi = { "okay": "OK", "view_on_osm": "Xem tại OSM", "name": "Tên", - "editing": "Sửa các chi tiết", + "editing_feature": "Đang sửa {feature}", "additional": "Các thẻ nâng cao", "choose": "Chọn loại đối tượng", "results": "{n} kết quả cho {search}", @@ -7659,6 +9193,10 @@ locale.vi = { "imagery": { "provided_by": "Hình ảnh do {source} cung cấp" }, + "gpx": { + "local_layer": "Tập tin GPX địa phương", + "drag_drop": "Kéo thả một tập tin .gpx vào trang" + }, "presets": { "fields": { "access": { @@ -7682,6 +9220,9 @@ locale.vi = { "atm": { "label": "Máy Rút tiền" }, + "barrier": { + "label": "Kiểu" + }, "bicycle_parking": { "label": "Kiểu" }, @@ -7792,6 +9333,9 @@ locale.vi = { "place": { "label": "Kiểu" }, + "power": { + "label": "Kiểu" + }, "railway": { "label": "Kiểu" }, @@ -7926,6 +9470,9 @@ locale.vi = { "amenity/library": { "name": "Thư viện" }, + "amenity/marketplace": { + "name": "Chợ phiên" + }, "amenity/parking": { "name": "Bãi Đậu xe" }, @@ -7990,6 +9537,57 @@ locale.vi = { "amenity/university": { "name": "Trường Đại học" }, + "barrier": { + "name": "Chướng ngại" + }, + "barrier/block": { + "name": "Tấm Bê tông" + }, + "barrier/bollard": { + "name": "Cột Bê tông" + }, + "barrier/cattle_grid": { + "name": "Bẫy Trâu bò Trên đường" + }, + "barrier/city_wall": { + "name": "Tường thành" + }, + "barrier/cycle_barrier": { + "name": "Hàng rào Ngăn Xe đạp" + }, + "barrier/ditch": { + "name": "Mương" + }, + "barrier/entrance": { + "name": "Cửa vào" + }, + "barrier/fence": { + "name": "Hàng rào" + }, + "barrier/gate": { + "name": "Cổng" + }, + "barrier/hedge": { + "name": "Hàng rào Cây" + }, + "barrier/kissing_gate": { + "name": "Cửa Hàng rào Chắn Trâu bò" + }, + "barrier/lift_gate": { + "name": "Rào chắn Đóng mở" + }, + "barrier/retaining_wall": { + "name": "Tường Chắn Đất" + }, + "barrier/stile": { + "name": "Bậc trèo" + }, + "barrier/toll_booth": { + "name": "Nhà thu phí" + }, + "barrier/wall": { + "name": "Tường" + }, "building": { "name": "Tòa nhà" }, @@ -8002,12 +9600,16 @@ locale.vi = { "highway": { "name": "Đường Giao thông" }, + "highway/bridleway": { + "name": "Đường mòn Ngựa", + "terms": "đường mòn ngựa,đường cưỡi ngựa,đường đi ngựa" + }, "highway/bus_stop": { "name": "Trạm Xe buýt" }, "highway/crossing": { "name": "Lối Băng qua Đường", - "terms": "lối băng qua đường,lối qua đường" + "terms": "lối băng qua đường,lối qua đường,đường ngựa vằn" }, "highway/cycleway": { "name": "Đường Xe đạp" @@ -8060,9 +9662,30 @@ locale.vi = { "historic": { "name": "Nơi Lịch sử" }, + "historic/archaeological_site": { + "name": "Khu vực Khảo cổ" + }, + "historic/boundary_stone": { + "name": "Mốc Biên giới" + }, + "historic/castle": { + "name": "Lâu đài" + }, + "historic/memorial": { + "name": "Đài Tưởng niệm" + }, "historic/monument": { "name": "Đài tưởng niệm" }, + "historic/ruins": { + "name": "Tàn tích" + }, + "historic/wayside_cross": { + "name": "Thánh Giá Dọc đường" + }, + "historic/wayside_shrine": { + "name": "Đền thánh Dọc đường" + }, "landuse": { "name": "Kiểu Sử dụng Đất" }, @@ -8120,6 +9743,9 @@ locale.vi = { "leisure/golf_course": { "name": "Sân Golf" }, + "leisure/marina": { + "name": "Bến tàu" + }, "leisure/park": { "name": "Công viên", "terms": "công viên,vườn,vườn hoa,vườn cây,bãi cỏ,bãi cỏ xanh,thảm cỏ xanh,vành đai xanh,sân chơi,khu vui chơi,khu vui chơi trẻ em,khu chơi trẻ em,quảng trường,rừng" @@ -8145,6 +9771,9 @@ locale.vi = { "leisure/playground": { "name": "Khu Vui chơi Trẻ em" }, + "leisure/slipway": { + "name": "Đường Trượt tàu" + }, "leisure/stadium": { "name": "Sân vận động" }, @@ -8243,16 +9872,43 @@ locale.vi = { "place/village": { "name": "Làng" }, + "power": { + "name": "Điện năng" + }, + "power/generator": { + "name": "Nhà máy điện" + }, + "power/line": { + "name": "Đường Dây điện" + }, + "power/pole": { + "name": "Cột điện" + }, "power/sub_station": { "name": "Trạm Điện Phụ" }, + "power/tower": { + "name": "Cột điện Cao thế" + }, + "power/transformer": { + "name": "Máy biến áp" + }, "railway": { "name": "Đường sắt" }, + "railway/abandoned": { + "name": "Đường sắt Bỏ hoang" + }, + "railway/disused": { + "name": "Đường sắt Không hoạt động" + }, "railway/level_crossing": { "name": "Giao lộ Đường sắt", "terms": "giao lộ đường sắt,giao lộ đường ray,nút giao đường sắt" }, + "railway/monorail": { + "name": "Đường sắt Một ray" + }, "railway/rail": { "name": "Đường sắt" }, @@ -8262,16 +9918,167 @@ locale.vi = { "railway/subway_entrance": { "name": "Cửa vào Nhà ga Tàu điện ngầm" }, + "railway/tram": { + "name": "Đường Tàu điện", + "terms": "đường tàu điện,tàu điện,đường xe điện,xe điện" + }, "shop": { "name": "Tiệm" }, + "shop/alcohol": { + "name": "Tiệm Rượu" + }, + "shop/bakery": { + "name": "Tiệm Bánh" + }, + "shop/beauty": { + "name": "Tiệm Mỹ phẩm" + }, + "shop/beverages": { + "name": "Tiệm Đồ uống" + }, + "shop/bicycle": { + "name": "Tiệm Xe đạp" + }, + "shop/books": { + "name": "Hiệu Sách" + }, + "shop/boutique": { + "name": "Tiệm Thời trang" + }, "shop/butcher": { "name": "Tiệm Thịt" }, + "shop/car": { + "name": "Tiệm Xe hơi" + }, + "shop/car_parts": { + "name": "Tiệm Phụ tùng Xe hơi" + }, + "shop/car_repair": { + "name": "Tiệm Sửa Xe" + }, + "shop/chemist": { + "name": "Tiệm Dược phẩm" + }, + "shop/clothes": { + "name": "Tiệm Quần áo" + }, + "shop/computer": { + "name": "Tiệm Máy tính" + }, + "shop/confectionery": { + "name": "Tiệm Kẹo" + }, + "shop/convenience": { + "name": "Tiệm Tiện lợi" + }, + "shop/deli": { + "name": "Tiệm Deli" + }, + "shop/department_store": { + "name": "Tiệm Bách hóa" + }, + "shop/doityourself": { + "name": "Tiệm Vật liệu Xây dựng" + }, + "shop/dry_cleaning": { + "name": "Tiệm Giặt Hấp tẩy" + }, + "shop/electronics": { + "name": "Tiệm Thiết bị Điện tử" + }, + "shop/fishmonger": { + "name": "Tiệm Cá" + }, + "shop/florist": { + "name": "Tiệm Hoa" + }, + "shop/furniture": { + "name": "Tiệm Đồ đạc" + }, + "shop/garden_centre": { + "name": "Trung tâm Làm vườn" + }, + "shop/gift": { + "name": "Tiệm Quà tặng" + }, + "shop/greengrocer": { + "name": "Tiệm Rau quả" + }, + "shop/hairdresser": { + "name": "Tiệm Làm tóc" + }, + "shop/hardware": { + "name": "Tiệm Ngũ kim" + }, + "shop/hifi": { + "name": "Tiệm Thiết bị Âm thanh" + }, + "shop/jewelry": { + "name": "Tiệm Kim hoàn" + }, + "shop/kiosk": { + "name": "Gian hàng" + }, + "shop/laundry": { + "name": "Tiệm Máy giặt" + }, + "shop/mall": { + "name": "Trung tâm Thương mại" + }, + "shop/mobile_phone": { + "name": "Tiệm Điện thoại Di động" + }, + "shop/motorcycle": { + "name": "Tiệm Xe máy" + }, + "shop/music": { + "name": "Tiệm Âm nhạc" + }, + "shop/newsagent": { + "name": "Quầy báo" + }, + "shop/optician": { + "name": "Tiệm Kính mắt" + }, + "shop/outdoor": { + "name": "Tiệm Thể thao Ngoài trời" + }, + "shop/pet": { + "name": "Tiệm Vật nuôi" + }, + "shop/shoes": { + "name": "Tiệm Giày" + }, + "shop/sports": { + "name": "Tiệm Thể thao" + }, + "shop/stationery": { + "name": "Tiệm Văn phòng phẩm" + }, "shop/supermarket": { "name": "Siêu thị", "terms": "siêu thị,chợ,tiệm,cửa hàng,khu buôn bán,trung tâm buôn bán,chợ trời,chợ phiên,chợ xổm" }, + "shop/toys": { + "name": "Tiệm Đồ chơ" + }, + "shop/travel_agency": { + "name": "Văn phòng Du lịch" + }, + "shop/tyres": { + "name": "Tiệm Lốp xe" + }, + "shop/vacant": { + "name": "Tiệm Đóng cửa" + }, + "shop/variety_store": { + "name": "Tiệm Tạp hóa" + }, + "shop/video": { + "name": "Tiệm Phim" + }, "tourism": { "name": "Du lịch" }, From 15b9eb7b3fcafe3a7b0a57a7fe3f1430d3ed57a6 Mon Sep 17 00:00:00 2001 From: Ansis Brammanis Date: Thu, 21 Mar 2013 17:56:59 -0400 Subject: [PATCH 2/8] second half of 871961d0779c53d92d5abe266f321830ab36a3ff --- js/id/ui/tag_editor.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/id/ui/tag_editor.js b/js/id/ui/tag_editor.js index 79ebedf9b..8b3f101d7 100644 --- a/js/id/ui/tag_editor.js +++ b/js/id/ui/tag_editor.js @@ -98,7 +98,7 @@ iD.ui.TagEditor = function(context, entity) { // Don't add for created entities if (entity.osmId() > 0) { tageditorpreset.append('div') - .attr('class','inspector-inner') + .attr('class','view-on-osm') .append('a') .attr('href', 'http://www.openstreetmap.org/browse/' + entity.type + '/' + entity.osmId()) .attr('target', '_blank') From 317090be12dad612f3856ba0392c468153773be0 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Thu, 21 Mar 2013 14:47:07 -0700 Subject: [PATCH 3/8] `preset` is always present --- js/id/ui/tag_editor.js | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/js/id/ui/tag_editor.js b/js/id/ui/tag_editor.js index 8b3f101d7..737680c0d 100644 --- a/js/id/ui/tag_editor.js +++ b/js/id/ui/tag_editor.js @@ -17,7 +17,6 @@ iD.ui.TagEditor = function(context, entity) { // preset was explicitly chosen if (newpreset) { - tags = preset.removeTags(tags, geometry); newpreset.applyTags(tags, geometry); @@ -40,7 +39,7 @@ iD.ui.TagEditor = function(context, entity) { back.append('div') .attr('class', 'col12') .append('span') - .attr('class', 'preset-icon icon' + (preset ? ' feature-' + (preset.icon || fallbackIcon) : '')); + .attr('class', 'preset-icon icon feature-' + (preset.icon || fallbackIcon)); back.append('div') .attr('class', 'col12') @@ -77,6 +76,7 @@ iD.ui.TagEditor = function(context, entity) { presetUI = iD.ui.preset(context) .entity(entity) + .preset(preset) .on('change', changeTags) .on('close', event.close); @@ -84,12 +84,8 @@ iD.ui.TagEditor = function(context, entity) { .on('change', changeTags); var tageditorpreset = editorwrap.append('div') - .attr('class', 'inspector-preset cf fillL col12'); - - if (preset) { - tageditorpreset.call(presetUI - .preset(preset)); - } + .attr('class', 'inspector-preset cf fillL col12') + .call(presetUI); editorwrap.append('div') .attr('class','inspector-inner col12 fillL2 additional-tags') From 87a4d600308df79c494e979b6bb8590d031f99d7 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Thu, 21 Mar 2013 14:53:27 -0700 Subject: [PATCH 4/8] Cleanup --- js/id/ui/tag_editor.js | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/js/id/ui/tag_editor.js b/js/id/ui/tag_editor.js index 737680c0d..b51798f3a 100644 --- a/js/id/ui/tag_editor.js +++ b/js/id/ui/tag_editor.js @@ -9,7 +9,6 @@ iD.ui.TagEditor = function(context, entity) { tagList; function tageditor(selection, newpreset) { - selection_ = selection; var geometry = entity.geometry(context.graph()); @@ -34,12 +33,12 @@ iD.ui.TagEditor = function(context, entity) { event.choose(preset); }); - var fallbackIcon = geometry === 'line' ? 'other-line' : 'marker-stroked'; + var icon = preset.icon || (geometry === 'line' ? 'other-line' : 'marker-stroked'); back.append('div') .attr('class', 'col12') .append('span') - .attr('class', 'preset-icon icon feature-' + (preset.icon || fallbackIcon)); + .attr('class', 'preset-icon icon feature-' + icon); back.append('div') .attr('class', 'col12') @@ -57,7 +56,7 @@ iD.ui.TagEditor = function(context, entity) { .attr('class', 'icon close'); var editorwrap = selection.append('div') - .attr('class', 'tag-wrap inspector-body fillL2 inspector-body-' + entity.geometry(context.graph())); + .attr('class', 'tag-wrap inspector-body fillL2 inspector-body-' + geometry); var namewrap = editorwrap.append('div') .attr('class', 'name fillL inspector-inner col12'); @@ -88,17 +87,16 @@ iD.ui.TagEditor = function(context, entity) { .call(presetUI); editorwrap.append('div') - .attr('class','inspector-inner col12 fillL2 additional-tags') + .attr('class', 'inspector-inner col12 fillL2 additional-tags') .call(tagList, preset.id === 'other'); - // Don't add for created entities - if (entity.osmId() > 0) { + if (!entity.isNew()) { tageditorpreset.append('div') - .attr('class','view-on-osm') + .attr('class', 'view-on-osm') .append('a') - .attr('href', 'http://www.openstreetmap.org/browse/' + entity.type + '/' + entity.osmId()) - .attr('target', '_blank') - .text(t('inspector.view_on_osm')); + .attr('href', 'http://www.openstreetmap.org/browse/' + entity.type + '/' + entity.osmId()) + .attr('target', '_blank') + .text(t('inspector.view_on_osm')); } tageditor.tags(tags); From 96056c5c0abef1a4c5b871aa70927a1df7cd314b Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Thu, 21 Mar 2013 14:59:12 -0700 Subject: [PATCH 5/8] Pass entity directly --- js/id/ui/preset.js | 9 +-------- js/id/ui/tag_editor.js | 3 +-- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/js/id/ui/preset.js b/js/id/ui/preset.js index 99ccc564a..e47ab3f17 100644 --- a/js/id/ui/preset.js +++ b/js/id/ui/preset.js @@ -1,6 +1,5 @@ -iD.ui.preset = function(context) { +iD.ui.preset = function(context, entity) { var event = d3.dispatch('change', 'setTags', 'close'), - entity, tags, keys, preset, @@ -126,11 +125,5 @@ iD.ui.preset = function(context) { return presets; }; - presets.entity = function(_) { - if (!arguments.length) return entity; - entity = _; - return presets; - }; - return d3.rebind(presets, event, 'on'); }; diff --git a/js/id/ui/tag_editor.js b/js/id/ui/tag_editor.js index b51798f3a..fb17db865 100644 --- a/js/id/ui/tag_editor.js +++ b/js/id/ui/tag_editor.js @@ -73,8 +73,7 @@ iD.ui.TagEditor = function(context, entity) { changeTags({ name: name.property('value') }); }); - presetUI = iD.ui.preset(context) - .entity(entity) + presetUI = iD.ui.preset(context, entity) .preset(preset) .on('change', changeTags) .on('close', event.close); From 9796d4027d1fea719b2e2a00409e774ebbc53108 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Thu, 21 Mar 2013 15:05:56 -0700 Subject: [PATCH 6/8] Cleanup --- js/id/ui/preset.js | 69 ++++++++++++++++++++++------------------------ 1 file changed, 33 insertions(+), 36 deletions(-) diff --git a/js/id/ui/preset.js b/js/id/ui/preset.js index e47ab3f17..ceb73734e 100644 --- a/js/id/ui/preset.js +++ b/js/id/ui/preset.js @@ -6,27 +6,10 @@ iD.ui.preset = function(context, entity) { formwrap, formbuttonwrap; - function input(d) { - var i = iD.ui.preset[d.type](d, context) - .on('close', event.close) - .on('change', event.change); - - event.on('setTags.' + d.key || d.type, function(tags) { - i.tags(_.clone(tags)); - }); - - if (d.type === 'address') i.entity(entity); - - keys = keys.concat(d.key ? [d.key] : d.keys); - - d3.select(this).call(i); - } - function presets(selection) { - selection.html(''); - keys = []; + keys = []; formwrap = selection.append('div'); var geometry = entity.geometry(context.graph()); @@ -44,32 +27,31 @@ iD.ui.preset = function(context, entity) { .data(context.presets().universal().filter(notInForm)) .enter() .append('button') - .attr('class', 'preset-add-field') - .on('click', addForm) - .each(tooltip) - .append('span') - .attr('class', function(d) { return 'icon ' + d.icon; }); + .attr('class', 'preset-add-field') + .on('click', addForm) + .call(bootstrap.tooltip() + .placement('top') + .title(function(d) { return d.label(); })) + .append('span') + .attr('class', function(d) { return 'icon ' + d.icon; }); function notInForm(p) { return preset.fields.indexOf(p) < 0; } - function tooltip(d) { - d3.select(this).call(bootstrap.tooltip() - .placement('top') - .title(d.label())); - } - function addForm(d) { draw(formwrap, [d]); + d3.select(this) .style('opacity', 1) - .transition().style('opacity', 0).each('end', function() { - d3.select(this).remove(); - }); - if (!wrap.selectAll('button').node()) wrap.remove(); - } + .transition() + .style('opacity', 0) + .remove(); + if (!wrap.selectAll('button').node()) { + wrap.remove(); + } + } } function draw(selection, fields) { @@ -86,9 +68,24 @@ iD.ui.preset = function(context, entity) { .attr('for', function(d) { return 'input-' + d.key; }) .text(function(d) { return d.label(); }); - sections.transition().style('opacity', 1); + sections.transition() + .style('opacity', 1); - sections.each(input); + sections.each(function(field) { + var i = iD.ui.preset[field.type](field, context) + .on('close', event.close) + .on('change', event.change); + + event.on('setTags.' + field.key || field.type, function (tags) { + i.tags(_.clone(tags)); + }); + + if (field.type === 'address') i.entity(entity); + + keys = keys.concat(field.key ? [field.key] : field.keys); + + d3.select(this).call(i); + }); } presets.rendered = function() { From 0baaf1a3fdba6c6e3d5b0542bbe5e938009a022f Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Thu, 21 Mar 2013 15:24:42 -0700 Subject: [PATCH 7/8] Make name field less of a special case --- css/app.css | 20 +++++++++----------- data/core.yaml | 3 --- data/locales.js | 3 +++ data/presets.yaml | 2 ++ data/presets/fields.json | 5 +++++ data/presets/fields/name.json | 5 +++++ js/id/presets.js | 5 ++++- js/id/ui/preset.js | 12 ++++++++---- js/id/ui/tag_editor.js | 19 +------------------ 9 files changed, 37 insertions(+), 37 deletions(-) create mode 100644 data/presets/fields/name.json diff --git a/css/app.css b/css/app.css index d1348a0f7..06b897d74 100644 --- a/css/app.css +++ b/css/app.css @@ -912,18 +912,8 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;} .tag-wrap .grid-button-wrap .grid-entry .label { background: #eef0ff; - } - -.inspector-body .name { - padding-bottom: 0; } -.name input.major { - padding-top: 35px; - height: 70px; -} - -.inspector-body .name h4, .preset-field h4[for*="input-"] { border: 1px solid #cfcfcf; padding: 5px 10px; @@ -951,7 +941,15 @@ h4 + .preset-input input:first-child { .preset-field h4[for="input-building:levels"], .preset-field h4[for="input-ele"], .preset-field.checkselect h4 { - right: 50%;} + right: 50%; +} + +.preset-field-name h4 + input { + padding-top: 35px; + height: 70px; + font-size: 18px; + font-weight: bold; +} /* adding additional preset fields */ diff --git a/data/core.yaml b/data/core.yaml index ff65d5278..bf65bff04 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -135,10 +135,7 @@ en: no_documentation_key: There is no documentation available for this key show_more: Show More new_tag: New tag - edit_tags: Edit tags - okay: Okay view_on_osm: View on OSM - name: Name editing_feature: "Editing {feature}" additional: Additional tags choose: Select feature type diff --git a/data/locales.js b/data/locales.js index fc6a0dd2d..8dba73d28 100644 --- a/data/locales.js +++ b/data/locales.js @@ -345,6 +345,9 @@ locale.en = { "maxspeed": { "label": "Speed Limit" }, + "name": { + "label": "Name" + }, "natural": { "label": "Natural" }, diff --git a/data/presets.yaml b/data/presets.yaml index 8c4a42d36..39ac13f76 100644 --- a/data/presets.yaml +++ b/data/presets.yaml @@ -76,6 +76,8 @@ en: label: Type maxspeed: label: Speed Limit + name: + label: Name natural: label: Natural network: diff --git a/data/presets/fields.json b/data/presets/fields.json index 42489382c..bf31d2fe1 100644 --- a/data/presets/fields.json +++ b/data/presets/fields.json @@ -196,6 +196,11 @@ "type": "combo", "label": "Speed Limit" }, + "name": { + "key": "name", + "type": "text", + "label": "Name" + }, "natural": { "key": "natural", "type": "combo", diff --git a/data/presets/fields/name.json b/data/presets/fields/name.json new file mode 100644 index 000000000..7eee07a8e --- /dev/null +++ b/data/presets/fields/name.json @@ -0,0 +1,5 @@ +{ + "key": "name", + "type": "text", + "label": "Name" +} \ No newline at end of file diff --git a/js/id/presets.js b/js/id/presets.js index 0f43ddf31..e1a8cc97d 100644 --- a/js/id/presets.js +++ b/js/id/presets.js @@ -52,6 +52,10 @@ iD.presets = function(context) { return all; }; + all.field = function(id) { + return fields[id]; + }; + all.universal = function() { return universal; }; @@ -69,6 +73,5 @@ iD.presets = function(context) { return all; }; - return all; }; diff --git a/js/id/ui/preset.js b/js/id/ui/preset.js index ceb73734e..7d3fb412b 100644 --- a/js/id/ui/preset.js +++ b/js/id/ui/preset.js @@ -12,10 +12,14 @@ iD.ui.preset = function(context, entity) { keys = []; formwrap = selection.append('div'); - var geometry = entity.geometry(context.graph()); - draw(formwrap, preset.fields.filter(function(f) { - return f.matchGeometry(geometry); - })); + var geometry = entity.geometry(context.graph()), + fields = preset.fields.filter(function(f) { + return f.matchGeometry(geometry); + }); + + fields.unshift(context.presets().field('name')); + + draw(formwrap, fields); var wrap = selection.append('div') .attr('class', 'col12 more-buttons inspector-inner'); diff --git a/js/id/ui/tag_editor.js b/js/id/ui/tag_editor.js index fb17db865..b9881f682 100644 --- a/js/id/ui/tag_editor.js +++ b/js/id/ui/tag_editor.js @@ -2,7 +2,6 @@ iD.ui.TagEditor = function(context, entity) { var event = d3.dispatch('changeTags', 'choose', 'close'), presets = context.presets(), tags, - name, preset, selection_, presetUI, @@ -58,21 +57,6 @@ iD.ui.TagEditor = function(context, entity) { var editorwrap = selection.append('div') .attr('class', 'tag-wrap inspector-body fillL2 inspector-body-' + geometry); - var namewrap = editorwrap.append('div') - .attr('class', 'name fillL inspector-inner col12'); - - namewrap.append('h4') - .text(t('inspector.name')); - - name = namewrap.append('input') - .attr('placeholder', 'unknown') - .attr('class', 'major') - .attr('type', 'text') - .property('value', entity.tags.name || '') - .on('blur', function() { - changeTags({ name: name.property('value') }); - }); - presetUI = iD.ui.preset(context, entity) .preset(preset) .on('change', changeTags) @@ -127,9 +111,8 @@ iD.ui.TagEditor = function(context, entity) { return tageditor(selection_, newmatch); } - name.property('value', tags.name || ''); presetUI.change(tags); - var rendered = ['name'] + var rendered = [] .concat(Object.keys(preset.tags)) .concat(presetUI.rendered()); tagList.tags(_.omit(tags, rendered)); From 478eb8871aa0e089d470be580f85973748943207 Mon Sep 17 00:00:00 2001 From: Saman Bemel-Benrud Date: Thu, 21 Mar 2013 17:02:22 -0400 Subject: [PATCH 8/8] big commit modal cleanup. --- css/app.css | 183 ++++++++++++++-------------------------- data/core.yaml | 1 + data/locales.js | 1 + js/id/ui/commit.js | 44 +++++----- js/id/ui/confirm.js | 10 +-- js/id/ui/modal.js | 8 +- js/id/ui/preset_grid.js | 6 +- js/id/ui/restore.js | 2 +- js/id/ui/success.js | 23 +++-- js/id/ui/tag_editor.js | 2 +- 10 files changed, 105 insertions(+), 175 deletions(-) diff --git a/css/app.css b/css/app.css index 06b897d74..807b545ba 100644 --- a/css/app.css +++ b/css/app.css @@ -70,12 +70,12 @@ h2:last-child, h4:last-child { margin-bottom: 0;} h3 { - font-size: 18px; + font-size: 16px; line-height: 1.3333; font-weight: bold; margin-bottom: 10px; text-overflow: ellipsis; - white-space: nowrap + white-space: nowrap; } h4 { @@ -134,6 +134,7 @@ a:hover { textarea { resize: vertical; + font:normal 12px/20px 'Helvetica Neue', Arial, sans-serif; } textarea, @@ -285,9 +286,6 @@ form.hide { } .pad1 {padding: 10px;} -.pad2 {padding: 20px;} -.margin1 {margin: 10px;} -.margin2 {margin: 20px;} .loading { background: url(../img/loader_bg.gif); @@ -443,12 +441,6 @@ button.save.has-count .count::before { border-right: 6px solid rgba(255,255,255,.5); } -button.close { - position: absolute; - top: 10px; - right: 10px; -} - button[disabled] { cursor:auto; background: rgba(255,255,255,.5); @@ -580,6 +572,37 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;} border-radius: 0; } + +/* Header for modals / panes +------------------------------------------------------- */ + +.header { + border-bottom: 1px solid #ccc; + z-index: 2; + position: relative; +} + +.header h3 { + margin-bottom: 0; +} + +.modal > button, +.header button { + height: 100%; + border-radius: 0; + border-left: 1px solid #CCC; + width: 40px; + text-align: center; + overflow: hidden; + position: absolute; + right: 0; +} + +.modal > button { + height: 61px; + z-index: 3; +} + /* Inspector ------------------------------------------------------- */ @@ -616,24 +639,13 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;} position: relative; } -.inspector-wrap .message { - height: 60px; - border-bottom: 1px solid #ccc; - z-index: 100; - position: relative; -} - -.inspector-wrap .message button { - height: 100%; - border-radius: 0; +.inspector-wrap .header button.preset-reset { border-right: 1px solid #CCC; - width: 60px; - text-align: center; - overflow: hidden; position: relative; + width: 60px; } -.inspector-wrap .message button > div { +.inspector-wrap .header button.preset-reset > div { height: 100%; padding: 20px 0; -webkit-transition: opacity 200ms; @@ -641,38 +653,26 @@ a.selected:hover .toggle.icon { background-position: -40px -180px;} transition: opacity 200ms; } -.inspector-wrap .message button .col12:last-child { +.inspector-wrap .header button.preset-reset .col12:last-child { position: absolute; width: 100%; padding: 20px 0; opacity: 0; } -.inspector-wrap .message button:hover .col12:first-child { +.inspector-wrap .header button:hover .col12:first-child { opacity: 0; } -.inspector-wrap .message button:hover .col12:last-child { +.inspector-wrap .header button:hover .col12:last-child { opacity: 1; } -.inspector-wrap .message button.line > div { +.inspector-wrap .header button.line > div { padding: 0; } -.inspector-wrap .message button.fr { - border-left: 1px solid #CCC; - width: 40px; -} - -.inspector-wrap .message h3 { - display: block; - font-size: 16px; - line-height: 20px; - overflow: hidden; -} - -.pane:last-child .message h3 { +.pane:last-child .header h3 { position: absolute; left: 60px; right: 40px; @@ -1637,11 +1637,9 @@ div.typeahead a:first-child { .modal { display: inline-block; position:absolute; - width: 50%; left: 0; right: 0; margin: auto; - max-width: 600px; top: 80px; z-index: 3; } @@ -1650,27 +1648,10 @@ div.typeahead a:first-child { margin-bottom: 10px; } -.modal .content { - margin-bottom: 40px; -} - .modal .description { text-align: center; } -.modal button.close-modal { - float:right; - position: absolute; - right:5px; - top:5px; - opacity: .5; -} - -.modal button.close-modal:hover { - background-color: transparent; - opacity: 1; -} - .shaded { z-index: 2; position: absolute; @@ -1678,6 +1659,7 @@ div.typeahead a:first-child { width: 100%; overflow: auto; } + .shaded:before { content:''; background:rgba(0,0,0,0.5); @@ -1687,29 +1669,7 @@ div.typeahead a:first-child { .modal-section { padding: 20px; -} - -.modal-section:first-child { - border-radius: 4px 4px 0 0; -} - -.modal-section:last-child { - border-radius: 0 0 4px 4px; -} - -.modal-section:only-of-type { - border-radius: 4px; -} - -.modal-section .buttons { - padding-top: 10px; - width: 100%; -} - -.modal-section img.wiki-image { - max-width: 100%; - max-height: 300px; - display: block; + border-bottom: 1px solid #CCC; } .modal-flash .content { @@ -1750,6 +1710,7 @@ div.typeahead a:first-child { .commit-modal .commit-info { margin-top: 10px; + padding-bottom: 20px; } .commit-modal .user-info img { @@ -1773,66 +1734,46 @@ div.typeahead a:first-child { .commit-modal .changeset-list { overflow: auto; border:1px solid #ccc; + border-radius: 4px; background:#fff; max-height: 160px; } +.commit-modal .warning-section .changeset-list { + border-radius: 4px 0 0 4px; +} + .commit-modal .warning-section .changeset-list button { float: right; + position: absolute; + right: 0; + top: 0; + bottom: 0; + border-radius: 0; + height: 100%; + width: 30px; } -.commit-section.modal-section { - padding-bottom: 0; -} - -.commit-section.modal-section:last-child { padding-bottom: 20px;} - .commit-modal .changeset-list li { position: relative; border-top:1px solid #ccc; padding:5px 10px; } -.modal-section { - padding: 20px; -} - -.modal-section img.wiki-image { - max-width: 100%; - max-height: 300px; - display: block; -} - -.modal-flash .content { - box-shadow: none; - border-radius: 4px; - background: #111; - color: #eee; -} - -.modal-flash .close-modal { - display:none; -} - .changeset-list li span.count { font-size:10px; color:#555; } .changeset-list li span.count:before { content: '('; } + .changeset-list li span.count:after { content: ')'; } .changeset-list li:first-child { border-top: 0;} -.commit-modal .changeset-comment { - height: 60px; - width:100%; - /* firefox uses monospace in textareas */ - font:normal 12px/20px 'Helvetica Neue', Arial, sans-serif; -} - /* Success ------------------------------------------------------- */ + a.success-action { display:inline-block; padding:10px; @@ -2096,10 +2037,10 @@ a.success-action { ------------------------------------------------------- */ @media only screen and (max-width: 840px) { - span.label {display: none;} + #bar span.label {display: none;} + #bar .icon.icon-pre-text { margin-right: 0px;} /* override hide for save button */ - .icon.icon-pre-text { margin-right: 0px;} - .save .label, .apply .label, .cancel .label { display: block;} + #bar .save .label { display: block;} } @media only screen and (max-height: 840px) { diff --git a/data/core.yaml b/data/core.yaml index bf65bff04..4d9ebb88c 100644 --- a/data/core.yaml +++ b/data/core.yaml @@ -114,6 +114,7 @@ en: commit: title: Save Changes description_placeholder: Brief description of your contributions + message_label: Commit message upload_explanation: "The changes you upload as {user} will be visible on all maps that use OpenStreetMap data." save: Save cancel: Cancel diff --git a/data/locales.js b/data/locales.js index 8dba73d28..4dd2da36f 100644 --- a/data/locales.js +++ b/data/locales.js @@ -146,6 +146,7 @@ locale.en = { "commit": { "title": "Save Changes", "description_placeholder": "Brief description of your contributions", + "message_label": "Commit message", "upload_explanation": "The changes you upload as {user} will be visible on all maps that use OpenStreetMap data.", "save": "Save", "cancel": "Cancel", diff --git a/js/id/ui/commit.js b/js/id/ui/commit.js index efdc1c190..770bb67f3 100644 --- a/js/id/ui/commit.js +++ b/js/id/ui/commit.js @@ -28,22 +28,30 @@ iD.ui.Commit = function(context) { var changes = selection.datum(), connection = changes.connection, user = connection.user(), - header = selection.append('div').attr('class', 'header modal-section fillL'), + header = selection.append('div').attr('class', 'header modal-section'), body = selection.append('div').attr('class', 'body'); - header.append('h2') + header.append('h3') .text(t('commit.title')); + // Comment Section var commentSection = body.append('div') - .attr('class', 'modal-section fillD'); + .attr('class', 'modal-section preset-field'); - var commentField = commentSection.append('textarea') - .attr('class', 'changeset-comment') - .attr('placeholder', t('commit.description_placeholder')) - .property('value', context.storage('comment') || ''); + commentSection.append('h4') + .attr('for','input-commit-note') + .text(t('commit.message_label')); + + var commentField = commentSection + .append('textarea') + .attr('placeholder', t('commit.description_placeholder')) + .property('value', context.storage('comment') || ''); commentField.node().select(); + // Save Section + var saveSection = body.append('div').attr('class','modal-section cf'); + var userLink = d3.select(document.createElement('div')); if (user.image_url) { @@ -58,18 +66,14 @@ iD.ui.Commit = function(context) { .attr('href', connection.url() + '/user/' + user.display_name) .attr('target', '_blank'); - commentSection.append('p') + saveSection.append('p') .attr('class', 'commit-info') .html(t('commit.upload_explanation', {user: userLink.html()})); // Confirm / Cancel Buttons - var buttonWrap = commentSection.append('div') - .attr('class', 'buttons cf') - .append('div') - .attr('class', 'button-wrap joined col4'); - var saveButton = buttonWrap.append('button') - .attr('class', 'save action col6 button') + var saveButton = saveSection.append('button') + .attr('class', 'action col3 button') .on('click.save', function() { var comment = commentField.node().value; localStorage.comment = comment; @@ -82,21 +86,11 @@ iD.ui.Commit = function(context) { .attr('class', 'label') .text(t('commit.save')); - var cancelButton = buttonWrap.append('button') - .attr('class', 'cancel col6 button') - .on('click.cancel', function() { - event.cancel(); - }); - - cancelButton.append('span') - .attr('class', 'label') - .text(t('commit.cancel')); - var warnings = body.selectAll('div.warning-section') .data(iD.validate(changes, context.graph())) .enter() .append('div') - .attr('class', 'modal-section warning-section fillL'); + .attr('class', 'modal-section warning-section fillL2'); warnings.append('h3') .text(t('commit.warnings')); diff --git a/js/id/ui/confirm.js b/js/id/ui/confirm.js index 6851e739f..5ff8f72f8 100644 --- a/js/id/ui/confirm.js +++ b/js/id/ui/confirm.js @@ -5,7 +5,7 @@ iD.ui.confirm = function(selection) { .classed('modal-alert', true); var section = modal.select('.content') - .attr('class', 'modal-section fillD'); + .attr('class', 'modal-section'); var description = section.append('div') .attr('class', 'description'); @@ -17,13 +17,7 @@ iD.ui.confirm = function(selection) { .attr('class', 'col2 action centered') .on('click.confirm', function() { modal.remove(); - }); - - okbutton.append('span') - .attr('class', 'icon apply icon-pre-text'); - - okbutton.append('span') - .attr('class', 'label') + }) .text('Okay'); return modal; diff --git a/js/id/ui/modal.js b/js/id/ui/modal.js index 539c89de8..5da396a2b 100644 --- a/js/id/ui/modal.js +++ b/js/id/ui/modal.js @@ -21,13 +21,15 @@ iD.ui.modal = function(selection, blocking) { }); var modal = shaded.append('div') - .attr('class', 'modal'); + .attr('class', 'modal fillL col6'); modal.append('button') - .attr('class', 'icon remove') + .attr('class', 'close') .on('click', function() { if (!blocking) shaded.remove(); - }); + }) + .append('div') + .attr('class','icon close'); modal.append('div') .attr('class', 'content'); diff --git a/js/id/ui/preset_grid.js b/js/id/ui/preset_grid.js index 1ed641149..004de7510 100644 --- a/js/id/ui/preset_grid.js +++ b/js/id/ui/preset_grid.js @@ -12,7 +12,7 @@ iD.ui.PresetGrid = function(context, entity) { presets = context.presets().matchGeometry(entity, context.graph()); var messagewrap = selection.append('div') - .attr('class', 'message fillL'); + .attr('class', 'header fillL cf'); var message = messagewrap.append('h3') .attr('class', 'inspector-inner fl') @@ -20,13 +20,13 @@ iD.ui.PresetGrid = function(context, entity) { if (preset) { messagewrap.append('button') - .attr('class', 'tooltip-bottom preset-choose fr') + .attr('class', 'preset-choose') .on('click', event.choose) .append('span') .attr('class', 'icon forward'); } else { messagewrap.append('button') - .attr('class', 'tooltip-bottom preset-close fr') + .attr('class', 'close') .on('click', event.close) .append('span') .attr('class', 'icon close'); diff --git a/js/id/ui/restore.js b/js/id/ui/restore.js index 0c3d0a617..e5d272004 100644 --- a/js/id/ui/restore.js +++ b/js/id/ui/restore.js @@ -16,7 +16,7 @@ iD.ui.Restore = function(context) { .text(t('restore.description')); var buttonWrap = introModal.append('div') - .attr('class', 'modal-section fillD cf col12'); + .attr('class', 'modal-section cf col12'); var buttons = buttonWrap .append('div') diff --git a/js/id/ui/success.js b/js/id/ui/success.js index 4d4799ffd..fd3f14c0b 100644 --- a/js/id/ui/success.js +++ b/js/id/ui/success.js @@ -3,12 +3,10 @@ iD.ui.Success = function(connection) { function success(selection) { var changeset = selection.datum(), - header = selection.append('div').attr('class', 'header fillL modal-section'), + header = selection.append('div').attr('class', 'header modal-section'), body = selection.append('div').attr('class', 'body'); - var section = body.append('div').attr('class','modal-section fillD'); - - header.append('h2').text(t('just_edited')); + header.append('h3').text(t('just_edited')); var m = ''; if (changeset.comment) { @@ -18,7 +16,9 @@ iD.ui.Success = function(connection) { var message = (m || 'Edited OSM!') + connection.changesetUrl(changeset.id); - header.append('a') + var links = body.append('div').attr('class','modal-section'); + + links.append('a') .attr('href', function() { return connection.changesetUrl(changeset.id); }) @@ -26,7 +26,7 @@ iD.ui.Success = function(connection) { .attr('class', 'success-action') .text(t('view_on_osm')); - header.append('a') + links.append('a') .attr('target', '_blank') .attr('href', function() { return 'https://twitter.com/intent/tweet?source=webclient&text=' + @@ -35,17 +35,14 @@ iD.ui.Success = function(connection) { .attr('class', 'success-action') .text('Tweet'); - var buttonwrap = section.append('div') - .attr('class', 'buttons cf'); + var section = body.append('div').attr('class','modal-section cf'); - var okbutton = buttonwrap.append('button') + section.append('button') .attr('class', 'action col2') .on('click.save', function() { event.cancel(); - }); - - okbutton.append('span').attr('class','icon apply icon-pre-text'); - okbutton.append('span').attr('class','label').text('Okay'); + }) + .append('span').attr('class','label').text('Okay'); } return d3.rebind(success, event, 'on'); diff --git a/js/id/ui/tag_editor.js b/js/id/ui/tag_editor.js index b9881f682..69d29d057 100644 --- a/js/id/ui/tag_editor.js +++ b/js/id/ui/tag_editor.js @@ -24,7 +24,7 @@ iD.ui.TagEditor = function(context, entity) { selection.html(''); var messagewrap = selection.append('div') - .attr('class', 'message fillL'); + .attr('class', 'header fillL cf'); var back = messagewrap.append('button') .attr('class', 'preset-reset fl ' + geometry)