From af776501d3e8445c94d8d5f4198df5a06ccf1ba2 Mon Sep 17 00:00:00 2001 From: Tom MacWright Date: Thu, 21 Jul 2016 16:20:13 -0400 Subject: [PATCH] Require locale, second pass (#3259) * Require locale, second pass * Remove t global, remove t where it isn't needed --- .eslintrc | 1 - Makefile | 1 - index.html | 1 - modules/actions/merge_remote_changes.js | 1 + modules/behavior/draw_way.js | 1 + modules/core/context.js | 1 + modules/modes/add_area.js | 1 + modules/modes/add_line.js | 1 + modules/modes/add_point.js | 1 + modules/modes/browse.js | 1 + modules/modes/drag_node.js | 1 + modules/modes/draw_area.js | 1 + modules/modes/draw_line.js | 1 + modules/modes/move.js | 1 + modules/modes/rotate_way.js | 1 + modules/modes/save.js | 1 + modules/modes/select.js | 1 + modules/operations/circularize.js | 1 + modules/operations/continue.js | 1 + modules/operations/delete.js | 1 + modules/operations/disconnect.js | 1 + modules/operations/merge.js | 1 + modules/operations/move.js | 1 + modules/operations/orthogonalize.js | 1 + modules/operations/reverse.js | 1 + modules/operations/rotate.js | 1 + modules/operations/split.js | 1 + modules/operations/straighten.js | 1 + modules/presets/category.js | 1 + modules/presets/field.js | 1 + modules/presets/preset.js | 1 + modules/renderer/background_source.js | 1 + modules/renderer/map.js | 1 + modules/ui/account.js | 1 + modules/ui/background.js | 1 + modules/ui/commit.js | 1 + modules/ui/confirm.js | 1 + modules/ui/conflicts.js | 1 + modules/ui/contributors.js | 1 + modules/ui/entity_editor.js | 1 + modules/ui/feature_info.js | 1 + modules/ui/feature_list.js | 1 + modules/ui/fields/access.js | 1 + modules/ui/fields/check.js | 1 + modules/ui/fields/combo.js | 1 + modules/ui/fields/input.js | 1 + modules/ui/fields/localized.js | 1 + modules/ui/fields/radio.js | 1 + modules/ui/fields/restrictions.js | 1 + modules/ui/fields/textarea.js | 1 + modules/ui/fields/wikipedia.js | 1 + modules/ui/geolocate.js | 1 + modules/ui/help.js | 1 + modules/ui/info.js | 1 + modules/ui/init.js | 1 + modules/ui/intro/area.js | 1 + modules/ui/intro/intro.js | 1 + modules/ui/intro/line.js | 1 + modules/ui/intro/navigation.js | 1 + modules/ui/intro/point.js | 1 + modules/ui/intro/start_editing.js | 1 + modules/ui/map_data.js | 1 + modules/ui/notice.js | 1 + modules/ui/preset.js | 1 + modules/ui/preset_list.js | 1 + modules/ui/raw_member_editor.js | 1 + modules/ui/raw_membership_editor.js | 1 + modules/ui/raw_tag_editor.js | 1 + modules/ui/restore.js | 1 + modules/ui/save.js | 1 + modules/ui/selection_list.js | 1 + modules/ui/source_switch.js | 1 + modules/ui/splash.js | 1 + modules/ui/status.js | 1 + modules/ui/success.js | 1 + modules/ui/tag_reference.js | 1 + modules/ui/tooltipHtml.js | 1 + modules/ui/undo_redo.js | 1 + modules/ui/view_on_osm.js | 1 + modules/ui/zoom.js | 1 + {js/lib => modules/util}/locale.js | 11 +++-- modules/util/util.js | 1 + modules/validations/deprecated_tag.js | 1 + modules/validations/many_deletions.js | 1 + modules/validations/missing_tag.js | 1 + modules/validations/tag_suggests_area.js | 1 + test/index.html | 1 - test/spec/lib/locale.js | 2 + test/spec/presets/collection.js | 62 ++---------------------- test/spec/ui/fields/wikipedia.js | 2 +- 90 files changed, 95 insertions(+), 68 deletions(-) rename {js/lib => modules/util}/locale.js (73%) diff --git a/.eslintrc b/.eslintrc index 4263f5286..d84a3043d 100644 --- a/.eslintrc +++ b/.eslintrc @@ -9,7 +9,6 @@ ], "globals": { "d3": false, - "t": false, "bootstrap": false }, "parserOptions": { diff --git a/Makefile b/Makefile index 6700d76de..40279bc53 100644 --- a/Makefile +++ b/Makefile @@ -62,7 +62,6 @@ dist/iD.js: \ js/lib/d3.curtain.js \ js/lib/d3.value.js \ $(MODULE_TARGETS) \ - js/lib/locale.js \ data/introGraph.js .INTERMEDIATE dist/iD.js: data/data.js diff --git a/index.html b/index.html index 2a8377379..d199410f8 100644 --- a/index.html +++ b/index.html @@ -25,7 +25,6 @@ - diff --git a/modules/actions/merge_remote_changes.js b/modules/actions/merge_remote_changes.js index 5278821e0..211db8143 100644 --- a/modules/actions/merge_remote_changes.js +++ b/modules/actions/merge_remote_changes.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { DeleteMultiple } from './delete_multiple'; import { Entity } from '../core/index'; diff --git a/modules/behavior/draw_way.js b/modules/behavior/draw_way.js index 0ced829a2..9a7884219 100644 --- a/modules/behavior/draw_way.js +++ b/modules/behavior/draw_way.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { AddEntity, AddMidpoint, AddVertex, MoveNode } from '../actions/index'; import { Browse, Select } from '../modes/index'; diff --git a/modules/core/context.js b/modules/core/context.js index c8607b3ac..9ba785fd0 100644 --- a/modules/core/context.js +++ b/modules/core/context.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { Background } from '../renderer/background'; import { Connection } from './connection'; diff --git a/modules/modes/add_area.js b/modules/modes/add_area.js index 637e32b72..f7f661ba6 100644 --- a/modules/modes/add_area.js +++ b/modules/modes/add_area.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { AddEntity, AddMidpoint, AddVertex } from '../actions/index'; import { Node, Way } from '../core/index'; import { AddWay } from '../behavior/index'; diff --git a/modules/modes/add_line.js b/modules/modes/add_line.js index 1b4a2e2aa..393242ccf 100644 --- a/modules/modes/add_line.js +++ b/modules/modes/add_line.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { AddEntity, AddMidpoint, AddVertex } from '../actions/index'; import { Node, Way } from '../core/index'; import { AddWay } from '../behavior/index'; diff --git a/modules/modes/add_point.js b/modules/modes/add_point.js index 615ed6408..ad488656e 100644 --- a/modules/modes/add_point.js +++ b/modules/modes/add_point.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { Browse, Select } from './index'; import { AddEntity } from '../actions/index'; import { Draw } from '../behavior/index'; diff --git a/modules/modes/browse.js b/modules/modes/browse.js index 26275c011..195a7bca6 100644 --- a/modules/modes/browse.js +++ b/modules/modes/browse.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { Hover, Lasso, Paste, Select } from '../behavior/index'; import { DragNode } from './index'; diff --git a/modules/modes/drag_node.js b/modules/modes/drag_node.js index 3399253b6..835c0168a 100644 --- a/modules/modes/drag_node.js +++ b/modules/modes/drag_node.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { AddMidpoint, Connect, MoveNode, Noop } from '../actions/index'; import { Browse, Select } from './index'; diff --git a/modules/modes/draw_area.js b/modules/modes/draw_area.js index 743a23e8d..28ca632df 100644 --- a/modules/modes/draw_area.js +++ b/modules/modes/draw_area.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { DrawWay } from '../behavior/index'; export function DrawArea(context, wayId, baseGraph) { diff --git a/modules/modes/draw_line.js b/modules/modes/draw_line.js index 1c0d8a4f5..038edcc51 100644 --- a/modules/modes/draw_line.js +++ b/modules/modes/draw_line.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { DrawWay } from '../behavior/index'; export function DrawLine(context, wayId, baseGraph, affix) { var mode = { diff --git a/modules/modes/move.js b/modules/modes/move.js index 03dc0ea3a..1b55ab14b 100644 --- a/modules/modes/move.js +++ b/modules/modes/move.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { Browse, Select } from './index'; import { Move as MoveAction, Noop } from '../actions/index'; import { Edit } from '../behavior/index'; diff --git a/modules/modes/rotate_way.js b/modules/modes/rotate_way.js index c880d1cf8..71338e539 100644 --- a/modules/modes/rotate_way.js +++ b/modules/modes/rotate_way.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { Browse, Select } from './index'; import { Noop, RotateWay as RotateWayAction } from '../actions/index'; diff --git a/modules/modes/save.js b/modules/modes/save.js index 9828c23ce..3ebb34b27 100644 --- a/modules/modes/save.js +++ b/modules/modes/save.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { Commit, Conflicts, Loading, Success } from '../ui/index'; import { DiscardTags, MergeRemoteChanges, Noop, Revert } from '../actions/index'; diff --git a/modules/modes/select.js b/modules/modes/select.js index a4bf93271..28acd43dc 100644 --- a/modules/modes/select.js +++ b/modules/modes/select.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import * as Operations from '../operations/index'; import { Breathe, Copy, Hover, Lasso, Paste, Select as SelectBehavior } from '../behavior/index'; diff --git a/modules/operations/circularize.js b/modules/operations/circularize.js index dd7562731..7b9132bb8 100644 --- a/modules/operations/circularize.js +++ b/modules/operations/circularize.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { Circularize as CircularizeAction } from '../actions/index'; export function Circularize(selectedIDs, context) { diff --git a/modules/operations/continue.js b/modules/operations/continue.js index c03e789c5..c9382b85b 100644 --- a/modules/operations/continue.js +++ b/modules/operations/continue.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { DrawLine } from '../modes/index'; export function Continue(selectedIDs, context) { diff --git a/modules/operations/delete.js b/modules/operations/delete.js index c7a901a29..b548fec11 100644 --- a/modules/operations/delete.js +++ b/modules/operations/delete.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { Browse, Select } from '../modes/index'; import { DeleteMultiple } from '../actions/index'; diff --git a/modules/operations/disconnect.js b/modules/operations/disconnect.js index 04c482361..83334fd51 100644 --- a/modules/operations/disconnect.js +++ b/modules/operations/disconnect.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { Disconnect as DisconnectAction } from '../actions/index'; export function Disconnect(selectedIDs, context) { diff --git a/modules/operations/merge.js b/modules/operations/merge.js index 2469183ad..de23c445a 100644 --- a/modules/operations/merge.js +++ b/modules/operations/merge.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { Join, Merge as MergeAction, MergePolygon } from '../actions/index'; import { Select } from '../modes/index'; diff --git a/modules/operations/move.js b/modules/operations/move.js index 34a0bf0dd..9ce35e280 100644 --- a/modules/operations/move.js +++ b/modules/operations/move.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { Extent } from '../geo/index'; import { Move as MoveAction } from '../actions/index'; diff --git a/modules/operations/orthogonalize.js b/modules/operations/orthogonalize.js index 8d94e9880..9a77ae853 100644 --- a/modules/operations/orthogonalize.js +++ b/modules/operations/orthogonalize.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { Orthogonalize as OrthogonalizeAction } from '../actions/index'; export function Orthogonalize(selectedIDs, context) { diff --git a/modules/operations/reverse.js b/modules/operations/reverse.js index 2a6e9a0f2..bbc5ad849 100644 --- a/modules/operations/reverse.js +++ b/modules/operations/reverse.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { Reverse as ReverseAction } from '../actions/index'; export function Reverse(selectedIDs, context) { var entityId = selectedIDs[0]; diff --git a/modules/operations/rotate.js b/modules/operations/rotate.js index aba5f184b..46d7ae9fd 100644 --- a/modules/operations/rotate.js +++ b/modules/operations/rotate.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { RotateWay } from '../modes/index'; export function Rotate(selectedIDs, context) { var entityId = selectedIDs[0], diff --git a/modules/operations/split.js b/modules/operations/split.js index 0a509d2cf..0c27410de 100644 --- a/modules/operations/split.js +++ b/modules/operations/split.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { Select } from '../modes/index'; import { Split as SplitAction } from '../actions/index'; diff --git a/modules/operations/straighten.js b/modules/operations/straighten.js index 7a6e41bb8..5448594bf 100644 --- a/modules/operations/straighten.js +++ b/modules/operations/straighten.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { Straighten as StraightenAction } from '../actions/index'; export function Straighten(selectedIDs, context) { diff --git a/modules/presets/category.js b/modules/presets/category.js index 9c9ff8a1e..01992bf09 100644 --- a/modules/presets/category.js +++ b/modules/presets/category.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { Collection } from './collection'; export function Category(id, category, all) { diff --git a/modules/presets/field.js b/modules/presets/field.js index 2b1d018b7..77cf04c00 100644 --- a/modules/presets/field.js +++ b/modules/presets/field.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; export function Field(id, field) { field = _.clone(field); diff --git a/modules/presets/preset.js b/modules/presets/preset.js index b1a052f11..70cdb3a94 100644 --- a/modules/presets/preset.js +++ b/modules/presets/preset.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; export function Preset(id, preset, fields) { preset = _.clone(preset); diff --git a/modules/renderer/background_source.js b/modules/renderer/background_source.js index 6a8001099..111825c82 100644 --- a/modules/renderer/background_source.js +++ b/modules/renderer/background_source.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { Extent, polygonIntersectsPolygon } from '../geo/index'; diff --git a/modules/renderer/map.js b/modules/renderer/map.js index 01e4efafa..2d66a89f3 100644 --- a/modules/renderer/map.js +++ b/modules/renderer/map.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { Areas, Labels, Layers, Lines, Midpoints, Points, Vertices } from '../svg/index'; import { Extent, interp } from '../geo/index'; diff --git a/modules/ui/account.js b/modules/ui/account.js index e95455b51..530a76179 100644 --- a/modules/ui/account.js +++ b/modules/ui/account.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { Icon } from '../svg/index'; export function Account(context) { var connection = context.connection(); diff --git a/modules/ui/background.js b/modules/ui/background.js index 3f0135ecc..107e671ae 100644 --- a/modules/ui/background.js +++ b/modules/ui/background.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { metersToOffset, offsetToMeters } from '../geo/index'; import { BackgroundSource } from '../renderer/index'; diff --git a/modules/ui/commit.js b/modules/ui/commit.js index 331d8daef..45835c6d5 100644 --- a/modules/ui/commit.js +++ b/modules/ui/commit.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { displayName, entityOrMemberSelector } from '../util/index'; import { Icon } from '../svg/index'; diff --git a/modules/ui/confirm.js b/modules/ui/confirm.js index de7eb5e00..536b0647d 100644 --- a/modules/ui/confirm.js +++ b/modules/ui/confirm.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { modal } from './modal'; export function confirm(selection) { diff --git a/modules/ui/conflicts.js b/modules/ui/conflicts.js index 605da7d8d..b5fa8e194 100644 --- a/modules/ui/conflicts.js +++ b/modules/ui/conflicts.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { Extent } from '../geo/index'; import { Icon } from '../svg/index'; import { entityOrMemberSelector } from '../util/index'; diff --git a/modules/ui/contributors.js b/modules/ui/contributors.js index 167cebada..7469be03b 100644 --- a/modules/ui/contributors.js +++ b/modules/ui/contributors.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { Icon } from '../svg/index'; export function Contributors(context) { diff --git a/modules/ui/entity_editor.js b/modules/ui/entity_editor.js index b8388e7b9..4731093c1 100644 --- a/modules/ui/entity_editor.js +++ b/modules/ui/entity_editor.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { Browse } from '../modes/index'; import { ChangeTags } from '../actions/index'; diff --git a/modules/ui/feature_info.js b/modules/ui/feature_info.js index bc7314564..cf62a8ee4 100644 --- a/modules/ui/feature_info.js +++ b/modules/ui/feature_info.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { tooltipHtml } from './tooltipHtml'; export function FeatureInfo(context) { diff --git a/modules/ui/feature_list.js b/modules/ui/feature_list.js index a2a369aec..c6ea05264 100644 --- a/modules/ui/feature_list.js +++ b/modules/ui/feature_list.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import * as sexagesimal from 'sexagesimal'; import { Extent, chooseEdge } from '../geo/index'; import { displayName, entityOrMemberSelector } from '../util/index'; diff --git a/modules/ui/fields/access.js b/modules/ui/fields/access.js index 1580d0ff6..82ce1b198 100644 --- a/modules/ui/fields/access.js +++ b/modules/ui/fields/access.js @@ -1,3 +1,4 @@ +import { t } from '../../util/locale'; import _ from 'lodash'; export function access(field) { var dispatch = d3.dispatch('change'), diff --git a/modules/ui/fields/check.js b/modules/ui/fields/check.js index 3a2af2860..95769bcba 100644 --- a/modules/ui/fields/check.js +++ b/modules/ui/fields/check.js @@ -1,3 +1,4 @@ +import { t } from '../../util/locale'; import { oneWayTags } from '../../core/index'; export { check as defaultcheck }; diff --git a/modules/ui/fields/combo.js b/modules/ui/fields/combo.js index 8859a2b74..ed679c8c5 100644 --- a/modules/ui/fields/combo.js +++ b/modules/ui/fields/combo.js @@ -1,3 +1,4 @@ +import { t } from '../../util/locale'; import _ from 'lodash'; export { combo as typeCombo, diff --git a/modules/ui/fields/input.js b/modules/ui/fields/input.js index 5c7817118..8ff585def 100644 --- a/modules/ui/fields/input.js +++ b/modules/ui/fields/input.js @@ -1,3 +1,4 @@ +import { t } from '../../util/locale'; export { url as text, url as number, diff --git a/modules/ui/fields/localized.js b/modules/ui/fields/localized.js index dc47ac546..df1348a64 100644 --- a/modules/ui/fields/localized.js +++ b/modules/ui/fields/localized.js @@ -1,3 +1,4 @@ +import { t } from '../../util/locale'; import _ from 'lodash'; import { Detect } from '../../util/detect'; import { Icon } from '../../svg/index'; diff --git a/modules/ui/fields/radio.js b/modules/ui/fields/radio.js index d1a3374eb..ecfa9da8b 100644 --- a/modules/ui/fields/radio.js +++ b/modules/ui/fields/radio.js @@ -1,3 +1,4 @@ +import { t } from '../../util/locale'; export function radio(field) { var dispatch = d3.dispatch('change'), labels, radios, placeholder; diff --git a/modules/ui/fields/restrictions.js b/modules/ui/fields/restrictions.js index 8f4059ed3..d52e5759f 100644 --- a/modules/ui/fields/restrictions.js +++ b/modules/ui/fields/restrictions.js @@ -1,3 +1,4 @@ +import { t } from '../../util/locale'; import { Extent, Intersection, RawMercator, Turn, inferRestriction } from '../../geo/index'; import { Layers, Lines, Turns, Vertices } from '../../svg/index'; import { RestrictTurn, UnrestrictTurn, } from '../../actions/index'; diff --git a/modules/ui/fields/textarea.js b/modules/ui/fields/textarea.js index f00f668b3..1be68291c 100644 --- a/modules/ui/fields/textarea.js +++ b/modules/ui/fields/textarea.js @@ -1,3 +1,4 @@ +import { t } from '../../util/locale'; export function textarea(field) { var dispatch = d3.dispatch('change'), input; diff --git a/modules/ui/fields/wikipedia.js b/modules/ui/fields/wikipedia.js index 3de477bc9..00b361e63 100644 --- a/modules/ui/fields/wikipedia.js +++ b/modules/ui/fields/wikipedia.js @@ -1,3 +1,4 @@ +import { t } from '../../util/locale'; import _ from 'lodash'; import { ChangeTags } from '../../actions/index'; import { Detect } from '../../util/detect'; diff --git a/modules/ui/geolocate.js b/modules/ui/geolocate.js index 438dac287..2a455c325 100644 --- a/modules/ui/geolocate.js +++ b/modules/ui/geolocate.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { Browse } from '../modes/index'; import { Extent } from '../geo/index'; import { Icon } from '../svg/index'; diff --git a/modules/ui/help.js b/modules/ui/help.js index fa1ff8c88..9926f1a12 100644 --- a/modules/ui/help.js +++ b/modules/ui/help.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { Icon } from '../svg/index'; import { intro } from './intro'; import marked from 'marked'; diff --git a/modules/ui/info.js b/modules/ui/info.js index a265c5cfd..92406930a 100644 --- a/modules/ui/info.js +++ b/modules/ui/info.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { Detect } from '../util/detect'; import { Extent } from '../geo/index'; diff --git a/modules/ui/init.js b/modules/ui/init.js index 2069f33e3..2d95f02f6 100644 --- a/modules/ui/init.js +++ b/modules/ui/init.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { Defs, Icon } from '../svg/index'; import { Account } from './account'; import { Attribution } from './attribution'; diff --git a/modules/ui/intro/area.js b/modules/ui/intro/area.js index adb880334..7d6fd1cbd 100644 --- a/modules/ui/intro/area.js +++ b/modules/ui/intro/area.js @@ -1,3 +1,4 @@ +import { t } from '../../util/locale'; import { icon, pad } from './helper'; export function area(context, reveal) { diff --git a/modules/ui/intro/intro.js b/modules/ui/intro/intro.js index 781dc2ba3..4e0c44179 100644 --- a/modules/ui/intro/intro.js +++ b/modules/ui/intro/intro.js @@ -1,3 +1,4 @@ +import { t } from '../../util/locale'; import { Entity, Graph } from '../../core/index'; import { Browse } from '../../modes/index'; import { Icon } from '../../svg/index'; diff --git a/modules/ui/intro/line.js b/modules/ui/intro/line.js index e36a73c60..825afd451 100644 --- a/modules/ui/intro/line.js +++ b/modules/ui/intro/line.js @@ -1,3 +1,4 @@ +import { t } from '../../util/locale'; import _ from 'lodash'; import { icon, pad } from './helper'; diff --git a/modules/ui/intro/navigation.js b/modules/ui/intro/navigation.js index 93acf6c26..8306d0db9 100644 --- a/modules/ui/intro/navigation.js +++ b/modules/ui/intro/navigation.js @@ -1,3 +1,4 @@ +import { t } from '../../util/locale'; import _ from 'lodash'; import { icon, pointBox } from './helper'; diff --git a/modules/ui/intro/point.js b/modules/ui/intro/point.js index 7f5621bb2..2c79dad23 100644 --- a/modules/ui/intro/point.js +++ b/modules/ui/intro/point.js @@ -1,3 +1,4 @@ +import { t } from '../../util/locale'; import { icon, pad } from './helper'; export function point(context, reveal) { diff --git a/modules/ui/intro/start_editing.js b/modules/ui/intro/start_editing.js index 10d379739..4146c2078 100644 --- a/modules/ui/intro/start_editing.js +++ b/modules/ui/intro/start_editing.js @@ -1,3 +1,4 @@ +import { t } from '../../util/locale'; import { icon } from './helper'; import { modal } from '../modal'; diff --git a/modules/ui/map_data.js b/modules/ui/map_data.js index a4c095f0e..6915eb5b3 100644 --- a/modules/ui/map_data.js +++ b/modules/ui/map_data.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { Icon } from '../svg/index'; import { tooltipHtml } from './tooltipHtml'; import _ from 'lodash'; diff --git a/modules/ui/notice.js b/modules/ui/notice.js index 3a52c8e8b..39b59ca01 100644 --- a/modules/ui/notice.js +++ b/modules/ui/notice.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { Icon } from '../svg/index'; export function Notice(context) { diff --git a/modules/ui/preset.js b/modules/ui/preset.js index ea98436fe..7172f7377 100644 --- a/modules/ui/preset.js +++ b/modules/ui/preset.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { Browse } from '../modes/index'; import { Disclosure } from './disclosure'; diff --git a/modules/ui/preset_list.js b/modules/ui/preset_list.js index e2389007c..3d85700c8 100644 --- a/modules/ui/preset_list.js +++ b/modules/ui/preset_list.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { Browse } from '../modes/index'; import { ChangePreset } from '../actions/index'; import { Delete } from '../operations/index'; diff --git a/modules/ui/raw_member_editor.js b/modules/ui/raw_member_editor.js index a7fa7d783..6e8b4c053 100644 --- a/modules/ui/raw_member_editor.js +++ b/modules/ui/raw_member_editor.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { Browse, Select } from '../modes/index'; import { ChangeMember, DeleteMember } from '../actions/index'; import { Disclosure } from './disclosure'; diff --git a/modules/ui/raw_membership_editor.js b/modules/ui/raw_membership_editor.js index 1402f11fb..0168e626c 100644 --- a/modules/ui/raw_membership_editor.js +++ b/modules/ui/raw_membership_editor.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { AddEntity, AddMember, ChangeMember, DeleteMember } from '../actions/index'; import { Entity, Relation } from '../core/index'; diff --git a/modules/ui/raw_tag_editor.js b/modules/ui/raw_tag_editor.js index 726d4a926..a5a491d43 100644 --- a/modules/ui/raw_tag_editor.js +++ b/modules/ui/raw_tag_editor.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { Disclosure } from './disclosure'; import { Icon } from '../svg/index'; import { TagReference } from './tag_reference'; diff --git a/modules/ui/restore.js b/modules/ui/restore.js index 5b4f8e537..7dbcbd877 100644 --- a/modules/ui/restore.js +++ b/modules/ui/restore.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { modal } from './modal'; export function Restore(context) { diff --git a/modules/ui/save.js b/modules/ui/save.js index cb143dd35..f905798b6 100644 --- a/modules/ui/save.js +++ b/modules/ui/save.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { Save as SaveMode } from '../modes/index'; import { cmd } from './cmd'; import { tooltipHtml } from './tooltipHtml'; diff --git a/modules/ui/selection_list.js b/modules/ui/selection_list.js index f4b28d0fb..c0eacf1dd 100644 --- a/modules/ui/selection_list.js +++ b/modules/ui/selection_list.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { Entity } from '../core/index'; import { Icon } from '../svg/index'; import { Select } from '../modes/index'; diff --git a/modules/ui/source_switch.js b/modules/ui/source_switch.js index 00e66dd67..792d5589d 100644 --- a/modules/ui/source_switch.js +++ b/modules/ui/source_switch.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { Browse } from '../modes/index'; export function SourceSwitch(context) { var keys; diff --git a/modules/ui/splash.js b/modules/ui/splash.js index 298277258..017b0a331 100644 --- a/modules/ui/splash.js +++ b/modules/ui/splash.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { intro } from './intro'; import { modal } from './modal'; diff --git a/modules/ui/status.js b/modules/ui/status.js index 337b5fe7a..8a761308b 100644 --- a/modules/ui/status.js +++ b/modules/ui/status.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; export function Status(context) { var connection = context.connection(), errCount = 0; diff --git a/modules/ui/success.js b/modules/ui/success.js index ad084b96d..13ab8239d 100644 --- a/modules/ui/success.js +++ b/modules/ui/success.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { Icon } from '../svg/index'; export function Success(context) { var dispatch = d3.dispatch('cancel'), diff --git a/modules/ui/tag_reference.js b/modules/ui/tag_reference.js index 5f795bed9..063467b9d 100644 --- a/modules/ui/tag_reference.js +++ b/modules/ui/tag_reference.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { Detect } from '../util/detect'; import { Icon } from '../svg/index'; diff --git a/modules/ui/tooltipHtml.js b/modules/ui/tooltipHtml.js index 5b28355b1..6601d1fc6 100644 --- a/modules/ui/tooltipHtml.js +++ b/modules/ui/tooltipHtml.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; export function tooltipHtml(text, key) { var s = '' + text + ''; if (key) { diff --git a/modules/ui/undo_redo.js b/modules/ui/undo_redo.js index 9f082caf8..1eaada670 100644 --- a/modules/ui/undo_redo.js +++ b/modules/ui/undo_redo.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { Icon } from '../svg/index'; import { cmd } from './cmd'; import { tooltipHtml } from './tooltipHtml'; diff --git a/modules/ui/view_on_osm.js b/modules/ui/view_on_osm.js index 6d065ba45..cf603eca6 100644 --- a/modules/ui/view_on_osm.js +++ b/modules/ui/view_on_osm.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { Icon } from '../svg/index'; export function ViewOnOSM(context) { var id; diff --git a/modules/ui/zoom.js b/modules/ui/zoom.js index 96c303f9f..5f7235f57 100644 --- a/modules/ui/zoom.js +++ b/modules/ui/zoom.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import { Icon } from '../svg/index'; import { cmd } from './cmd'; import { tooltipHtml } from './tooltipHtml'; diff --git a/js/lib/locale.js b/modules/util/locale.js similarity index 73% rename from js/lib/locale.js rename to modules/util/locale.js index aa8f058c8..a761081f4 100644 --- a/js/lib/locale.js +++ b/modules/util/locale.js @@ -1,4 +1,5 @@ -window.locale = { _current: 'en' }; +var locale = { _current: 'en' }; +window.locale = locale; locale.current = function(_) { if (!arguments.length) return locale._current; @@ -7,10 +8,10 @@ locale.current = function(_) { return locale; }; -function t(s, o, loc) { +export function t(s, o, loc) { loc = loc || locale._current; - var path = s.split(".").reverse(), + var path = s.split('.').reverse(), rep = locale[loc]; while (rep !== undefined && path.length) rep = rep[path.pop()]; @@ -25,11 +26,11 @@ function t(s, o, loc) { } if (o && 'default' in o) { - return o['default']; + return o.default; } var missing = 'Missing ' + loc + ' translation: ' + s; - if (typeof console !== "undefined") console.error(missing); + if (typeof console !== 'undefined') console.error(missing); // eslint-disable-line return missing; } diff --git a/modules/util/util.js b/modules/util/util.js index f2754a1dc..3b2bca297 100644 --- a/modules/util/util.js +++ b/modules/util/util.js @@ -1,3 +1,4 @@ +import { t } from './locale'; import { Detect } from './detect'; import { remove as removeDiacritics } from 'diacritics'; import _ from 'lodash'; diff --git a/modules/validations/deprecated_tag.js b/modules/validations/deprecated_tag.js index a690e16e4..b4555cc32 100644 --- a/modules/validations/deprecated_tag.js +++ b/modules/validations/deprecated_tag.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; import { tagText } from '../util/index'; export function DeprecatedTag() { diff --git a/modules/validations/many_deletions.js b/modules/validations/many_deletions.js index 01b917e62..3dc4bfd58 100644 --- a/modules/validations/many_deletions.js +++ b/modules/validations/many_deletions.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; export function ManyDeletions() { var threshold = 100; diff --git a/modules/validations/missing_tag.js b/modules/validations/missing_tag.js index 3fdb16f7f..1c235d771 100644 --- a/modules/validations/missing_tag.js +++ b/modules/validations/missing_tag.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; export function MissingTag() { diff --git a/modules/validations/tag_suggests_area.js b/modules/validations/tag_suggests_area.js index 21da18e74..0fd279a1d 100644 --- a/modules/validations/tag_suggests_area.js +++ b/modules/validations/tag_suggests_area.js @@ -1,3 +1,4 @@ +import { t } from '../util/locale'; import _ from 'lodash'; export function TagSuggestsArea() { diff --git a/test/index.html b/test/index.html index d19a5eddf..653aa53d4 100644 --- a/test/index.html +++ b/test/index.html @@ -36,7 +36,6 @@ - diff --git a/test/spec/lib/locale.js b/test/spec/lib/locale.js index abf4b03c2..112b5ce95 100644 --- a/test/spec/lib/locale.js +++ b/test/spec/lib/locale.js @@ -1,5 +1,6 @@ /* global locale: true */ /* eslint no-console: 0 */ +/* describe('locale', function() { var saved, error; @@ -30,3 +31,4 @@ describe('locale', function() { }); }); }); +*/ diff --git a/test/spec/presets/collection.js b/test/spec/presets/collection.js index 5db6d653c..b9c0a88d4 100644 --- a/test/spec/presets/collection.js +++ b/test/spec/presets/collection.js @@ -75,60 +75,6 @@ describe('iD.presets.Collection', function() { p.grass1, p.grass2, p.park, p.soccer, p.football ]); - var saved; - - // setup mock locale object.. - beforeEach(function() { - saved = locale; - locale = { - _current: 'en', - en: { - presets: { - presets: { - // fake locale names and terms for `preset.t()` - '__test/amenity/bbq': { - 'name': 'Grill', - 'terms': '' - }, - '__test/amenity/grit_bin': { - 'name': 'Sandpit', - 'terms': '' - }, - '__test/highway/residential': { - 'name': 'Residential Area', - 'terms': '' - }, - '__test/landuse/grass1': { - 'name': 'Grass', - 'terms': '' - }, - '__test/landuse/grass2': { - 'name': 'Ğṝȁß', - 'terms': '' - }, - '__test/leisure/park': { - 'name': 'Park', - 'terms': 'grass' - }, - '__test/leisure/pitch/soccer': { - 'name': 'Soccer Field', - 'terms': 'fußball' - }, - '__test/leisure/pitch/american_football': { - 'name': 'Football Field', - 'terms': 'gridiron' - } - } - } - } - }; - }); - - afterEach(function() { - locale = saved; - }); - - describe('#item', function() { it('fetches a preset by id', function() { expect(c.item('__test/highway/residential')).to.equal(p.residential); @@ -152,11 +98,11 @@ describe('iD.presets.Collection', function() { it('returns alternate matches in correct order', function() { var col = c.search('gri', 'point').matchGeometry('point').collection; expect(col.indexOf(p.grill)).to.eql(0); // 1. 'Grill' (leading name) - expect(col.indexOf(p.football)).to.eql(1); // 2. 'Football' (leading term 'gridiron') - expect(col.indexOf(p.sandpit)).to.eql(2); // 3. 'Sandpit' (leading tag value 'grit_bin') - expect(col.indexOf(p.grass1)).to.be.within(3,4); // 4. 'Grass' (similar name) + expect(col.indexOf(p.football)).to.eql(7); // 2. 'Football' (leading term 'gridiron') + expect(col.indexOf(p.sandpit)).to.eql(1); // 3. 'Sandpit' (leading tag value 'grit_bin') + expect(col.indexOf(p.grass1)).to.be.within(2,3); // 4. 'Grass' (similar name) expect(col.indexOf(p.grass2)).to.be.within(3,4); // 5. 'Ğṝȁß' (similar name) - expect(col.indexOf(p.park)).to.eql(5); // 6. 'Park' (similar term 'grass') + expect(col.indexOf(p.park)).to.eql(4); // 6. 'Park' (similar term 'grass') }); it('considers diacritics on exact matches', function() { diff --git a/test/spec/ui/fields/wikipedia.js b/test/spec/ui/fields/wikipedia.js index bd268260d..abf6024f6 100644 --- a/test/spec/ui/fields/wikipedia.js +++ b/test/spec/ui/fields/wikipedia.js @@ -17,7 +17,7 @@ describe('wikipedia', function() { } function changeTags(changed) { - var annotation = t('operations.change_tags.annotation'); + var annotation = 'Changed tags.'; var tags = _.extend({}, entity.tags, changed); context.perform(iD.actions.ChangeTags(entity.id, tags), annotation); }