Skip to content

Commit

Permalink
Merge pull request #1 from Georeactor/master
Browse files Browse the repository at this point in the history
Changes I was talking about in the OSM PR
  • Loading branch information
Milad Karbasizadeh authored Jan 3, 2017
2 parents af1ac89 + 88efc0c commit 4738917
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 24 deletions.
9 changes: 1 addition & 8 deletions modules/services/osm.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ import { geoExtent } from '../geo/index';
import { osmEntity, osmNode, osmRelation, osmWay } from '../osm/index';
import { utilDetect } from '../util/detect';
import { utilRebind } from '../util/rebind';
import { fixArabicScriptTextForSvg } from '../util/svg_paths_arabic_fix';


var dispatch = d3.dispatch('authLoading', 'authDone', 'change', 'loading', 'loaded'),
useHttps = window.location.protocol === 'https:',
Expand Down Expand Up @@ -71,12 +69,7 @@ function getTags(obj) {
var attrs = elems[i].attributes;
tags[attrs.k.value] = attrs.v.value;
}
var isFirefox = utilDetect().browser.toLowerCase().indexOf('firefox') > -1
var arabicRegex = /[\u0600-\u06FF]/g
if(tags.name && tags.highway && !isFirefox && arabicRegex.test(tags.name)){
tags.real_name = tags.name;
tags.name = fixArabicScriptTextForSvg(tags.real_name);
}

return tags;
}

Expand Down
10 changes: 0 additions & 10 deletions modules/ui/entity_editor.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@ import { uiRawTagEditor } from './raw_tag_editor';
import { uiTagReference } from './tag_reference';
import { uiPreset } from './preset';
import { utilRebind } from '../util/rebind';
import { fixArabicScriptTextForSvg } from '../util/svg_paths_arabic_fix';


export function uiEntityEditor(context) {
var dispatch = d3.dispatch('choose'),
Expand Down Expand Up @@ -225,14 +223,6 @@ export function uiEntityEditor(context) {
tags[k] = v;
}
});
var arabicRegex = /[\u0600-\u06FF]/g
if(tags.highway && tags.real_name){
if(arabicRegex.test(tags.real_name)){
tags.name = fixArabicScriptTextForSvg(tags.real_name);
} else{
tags.name = tags.real_name;
}
}

if (!onInput) {
tags = clean(tags);
Expand Down
33 changes: 28 additions & 5 deletions modules/util/svg_paths_arabic_fix.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,21 @@
const chars = {
// madda above alef
1570: {initial: "آ‎", isolated: "ﺁ", medial: "ﺁ", final: "ﺂ" },

// hamza above and below alef
1571: { initial: "أ", isolated: "ﺃ", medial: "", final: "ﺄ" },
// 1572 is ؤ
1573: { initial: "إ", isolated: "ﺇ", medial: "", final: "ﺈ" },
// 1574 is ئ
1575: {initial: "ا", isolated: "ا", medial: "", final: "ﺎ" },
1576: {initial: "ﺑ", isolated: "ﺏ", medial: "ﺒ", final: "ﺐ" },
1662: {initial: "ﭘ", isolated: "ﭖ", medial: "ﭙ", final: "ﭗ" },

// 1577 ة
1577: {initial: "", isolated: "ة", medial: "", final: "ﺔ" },

1578: {initial: "ﺗ", isolated: "ﺕ", medial: "ﺘ", final: "ﺖ" },
1579: {initial: "ﺛ", isolated: "ﺙ", medial: "ﺜ", final: "ﺚ" },
1580: {initial: "ﺟ", isolated: "ﺝ", medial: "ﺠ", final: "ﺞ" },
1670: {initial: "ﭼ", isolated: "ﭺ", medial: "ﭽ", final: "ﭻ" },
1581: {initial: "ﺣ", isolated: "ﺡ", medial: "ﺤ", final: "ﺢ" },
1582: {initial: "ﺧ", isolated: "ﺥ", medial: "ﺨ", final: "ﺦ" },
1583: {initial: "ﺩ", isolated: "ﺩ", medial: "", final: "ﺪ" },
Expand All @@ -21,15 +31,28 @@ const chars = {
1592: {initial: "ﻇ", isolated: "ﻅ", medial: "ﻈ", final: "ﻆ" },
1593: {initial: "ﻋ", isolated: "ﻉ", medial: "ﻌ", final: "ﻊ" },
1594: {initial: "ﻏ", isolated: "ﻍ", medial: "ﻐ", final: "ﻎ" },

// 1595 ػ - may be very rare

1601: {initial: "ﻓ", isolated: "ﻑ", medial: "ﻔ", final: "ﻒ" },
1602: {initial: "ﻗ", isolated: "ﻕ", medial: "ﻘ", final: "ﻖ" },
1705: {initial: "ﻛ", isolated: "ﮎ", medial: "ﻜ", final: "ﮏ" },
1711: {initial: "ﮔ", isolated: "ﮒ", medial: "ﮕ", final: "ﮓ" },
1604: {initial: "ﻟ", isolated: "ﻝ", medial: "ﻠ", final: "ﻞ" },
1605: {initial: "ﻣ", isolated: "ﻡ", medial: "ﻤ", final: "ﻢ" },
1606: {initial: "ﻧ", isolated: "ﻥ", medial: "ﻨ", final: "ﻦ" },
1608: {initial: "ﻭ", isolated: "ﻭ", medial: "", final: "ﻮ" },
1607: {initial: "ﻫ", isolated: "ﻩ", medial: "ﻬ", final: "ﻪ" },
1608: {initial: "ﻭ", isolated: "ﻭ", medial: "", final: "ﻮ" },

// 1609 ى
1609: {initial: "ﯨ", isolated: "ﻯ", medial: "ﯩ", final: "ﻰ" },
// 1610 ي
1610: {initial: "ﻳ", isolated: "ﻱ", medial: "ﻴ", final: "ﻲ" },
// short vowel sounds / tashkil markings

1662: {initial: "ﭘ", isolated: "ﭖ", medial: "ﭙ", final: "ﭗ" },

1670: {initial: "ﭼ", isolated: "ﭺ", medial: "ﭽ", final: "ﭻ" },
1705: {initial: "ﻛ", isolated: "ﮎ", medial: "ﻜ", final: "ﮏ" },
1711: {initial: "ﮔ", isolated: "ﮒ", medial: "ﮕ", final: "ﮓ" },
1740: {initial: "ﻳ", isolated: "ﻯ", medial: "ﻴ", final: "ﻰ" },
5000: {initial: "ﻻ", isolated: "ﻻ", medial: "", final: "ﻼ" }
};
Expand Down
9 changes: 8 additions & 1 deletion modules/util/util.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import * as d3 from 'd3';
import { t, textDirection } from './locale';
import { utilDetect } from './detect';
import { remove as removeDiacritics } from 'diacritics';

import { fixArabicScriptTextForSvg } from '../util/svg_paths_arabic_fix';

export function utilTagText(entity) {
return d3.entries(entity.tags).map(function(e) {
Expand Down Expand Up @@ -66,6 +66,13 @@ export function utilDisplayName(entity) {
name = network + ' ' + name;
}
}

var isFirefox = utilDetect().browser.toLowerCase().indexOf('firefox') > -1
var arabicRegex = /[\u0600-\u06FF]/g
if(!isFirefox && name && entity.tags.highway && arabicRegex.test(name)){
name = fixArabicScriptTextForSvg(name);
}

return name;
}

Expand Down

0 comments on commit 4738917

Please sign in to comment.