Skip to content

Commit 9f94f91

Browse files
committed
Merge branch 'master' into tx-ru-arrive
2 parents b6786ea + 9de8ca2 commit 9f94f91

File tree

666 files changed

+1508
-3
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

666 files changed

+1508
-3
lines changed

CHANGELOG.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@ All notable changes to this project will be documented in this file. For change
33

44
## master
55

6-
- Added an Japanese localization. [#277](https://github.com/Project-OSRM/osrm-text-instructions/pull/277)
6+
- Added a Hungarian localization and grammar. [#274](https://github.com/Project-OSRM/osrm-text-instructions/pull/274)
7+
- Added a Japanese localization. [#277](https://github.com/Project-OSRM/osrm-text-instructions/pull/277)
78
- Added an Arabic localization. [#267](https://github.com/Project-OSRM/osrm-text-instructions/pull/267)
89
- Added a Slovenian localization. [#264](https://github.com/Project-OSRM/osrm-text-instructions/pull/264)
910
- Updated Russian arrive instructions. [#278](https://github.com/Project-OSRM/osrm-text-instructions/pull/278)

index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -237,8 +237,8 @@ module.exports = function(version) {
237237
},
238238
grammarize: function(language, name, grammar) {
239239
if (!language) throw new Error('No language code provided');
240-
// Process way/rotary name with applying grammar rules if any
241-
if (name && grammar && grammars && grammars[language] && grammars[language][version]) {
240+
// Process way/rotary/any name with applying grammar rules if any
241+
if (grammar && grammars && grammars[language] && grammars[language][version]) {
242242
var rules = grammars[language][version][grammar];
243243
if (rules) {
244244
// Pass original name to rules' regular expressions enclosed with spaces for simplier parsing

languages.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ var instructionsEsEs = require('./languages/translations/es-ES.json');
1010
var instructionsFi = require('./languages/translations/fi.json');
1111
var instructionsFr = require('./languages/translations/fr.json');
1212
var instructionsHe = require('./languages/translations/he.json');
13+
var instructionsHu = require('./languages/translations/hu.json');
1314
var instructionsId = require('./languages/translations/id.json');
1415
var instructionsIt = require('./languages/translations/it.json');
1516
var instructionsJa = require('./languages/translations/ja.json');
@@ -31,6 +32,7 @@ var instructionsZhHans = require('./languages/translations/zh-Hans.json');
3132

3233
// Load all grammar files
3334
var grammarFr = require('./languages/grammar/fr.json');
35+
var grammarHu = require('./languages/grammar/hu.json');
3436
var grammarRu = require('./languages/grammar/ru.json');
3537

3638
// Load all abbreviations files
@@ -63,6 +65,7 @@ var instructions = {
6365
'fi': instructionsFi,
6466
'fr': instructionsFr,
6567
'he': instructionsHe,
68+
'hu': instructionsHu,
6669
'id': instructionsId,
6770
'it': instructionsIt,
6871
'ja': instructionsJa,
@@ -86,6 +89,7 @@ var instructions = {
8689
// Create list of supported grammar
8790
var grammars = {
8891
'fr': grammarFr,
92+
'hu': grammarHu,
8993
'ru': grammarRu
9094
};
9195

languages/grammar/hu.json

Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
{
2+
"meta": {
3+
"regExpFlags": "gi"
4+
},
5+
"v5": {
6+
"article": [
7+
["^ ", " a "],
8+
9+
["^ a ([AÁÄÅÂEÉËIÍÏOÓŐÖUÚŰÜYŸАЕЁИОУЭЮЯ])", " az $1"],
10+
["^ a ([FLMNRSXЛМНРСФ][ \\-\\d])", " az $1"],
11+
["^ a ([15][ \\-\\.])", " az $1"],
12+
["^ a (5\\d+[ \\-\\.])", " az $1"]
13+
],
14+
"sublative_to": [
15+
["^ ", " a "],
16+
17+
["^ a ([AÁÄÅÂEÉËIÍÏOÓŐÖUÚŰÜYŸАЕЁИОУЭЮЯ])", " az $1"],
18+
["^ a ([FLMNRSXЛМНРСФ][ \\-\\d])", " az $1"],
19+
["^ a ([15][ \\-\\.])", " az $1"],
20+
["^ a (5\\d+[ \\-\\.])", " az $1"],
21+
22+
[" $", " _"],
23+
24+
[" alagút _", " alagútra"],
25+
[" árok _", " árokra"],
26+
[" átjáró _", " átjáróra"],
27+
[" dűlő _", " dűlőre"],
28+
[" dűlőút _", " dűlőútra"],
29+
[" erdősor _", " erdősorra"],
30+
[" fasor _", " fasorra"],
31+
[" forduló _", " fordulóra"],
32+
[" gát _", " gátra"],
33+
[" határsor _", " határsorra"],
34+
[" határút _", " határútra"],
35+
[" híd _", " hídra"],
36+
[" kapu _", " kapura"],
37+
[" körönd _", " köröndre"],
38+
[" körtér _", " körtérre"],
39+
[" körút _", " körútra"],
40+
[" köz _", " közre"],
41+
[" lakótelep _", " lakótelepre"],
42+
[" lejáró _", " lejáróra"],
43+
[" lejtő _", " lejtőre"],
44+
[" lépcső _", " lépcsőre"],
45+
[" lánchíd _", " lánchídra"],
46+
[" liget _", " ligetre"],
47+
[" mélyút _", " mélyútra"],
48+
[" orom _", " oromra"],
49+
[" ösvény _", " ösvényre"],
50+
[" park _", " parkra"],
51+
[" part _", " partra"],
52+
[" pincesor _", " pincesorra"],
53+
[" rakpart _", " rakpartra"],
54+
[" sétány _", " sétányra"],
55+
[" sétaút _", " sétaútra"],
56+
[" sikátor _", " sikátorra"],
57+
[" sor _", " sorra"],
58+
[" sugárút _", " sugárútra"],
59+
[" tér _", " térre"],
60+
[" udvar _", " udvarra"],
61+
[" út _", " útra"],
62+
[" utca _", " utcára"],
63+
[" üdülőpart _", " üdülőpartra"],
64+
65+
[" _$", " felé"]
66+
],
67+
"sublative_toward": [
68+
["^ ", " a "],
69+
70+
["^ a ([AÁÄÅÂEÉËIÍÏOÓŐÖUÚŰÜYŸАЕЁИОУЭЮЯ])", " az $1"],
71+
["^ a ([FLMNRSXЛМНРСФ][ \\-\\d])", " az $1"],
72+
["^ a ([15][ \\-\\.])", " az $1"],
73+
["^ a (5\\d+[ \\-\\.])", " az $1"],
74+
75+
[" $", " _"],
76+
77+
[" alagút _", " alagútra"],
78+
[" árok _", " árokra"],
79+
[" átjáró _", " átjáróra"],
80+
[" dűlő _", " dűlőre"],
81+
[" dűlőút _", " dűlőútra"],
82+
[" erdősor _", " erdősorra"],
83+
[" fasor _", " fasorra"],
84+
[" forduló _", " fordulóra"],
85+
[" gát _", " gátra"],
86+
[" határsor _", " határsorra"],
87+
[" határút _", " határútra"],
88+
[" híd _", " hídra"],
89+
[" kapu _", " kapura"],
90+
[" körönd _", " köröndre"],
91+
[" körtér _", " körtérre"],
92+
[" körút _", " körútra"],
93+
[" köz _", " közre"],
94+
[" lakótelep _", " lakótelepre"],
95+
[" lejáró _", " lejáróra"],
96+
[" lejtő _", " lejtőre"],
97+
[" lépcső _", " lépcsőre"],
98+
[" lánchíd _", " lánchídra"],
99+
[" liget _", " ligetre"],
100+
[" mélyút _", " mélyútra"],
101+
[" orom _", " oromra"],
102+
[" ösvény _", " ösvényre"],
103+
[" park _", " parkra"],
104+
[" part _", " partra"],
105+
[" pincesor _", " pincesorra"],
106+
[" rakpart _", " rakpartra"],
107+
[" sétány _", " sétányra"],
108+
[" sétaút _", " sétaútra"],
109+
[" sikátor _", " sikátorra"],
110+
[" sor _", " sorra"],
111+
[" sugárút _", " sugárútra"],
112+
[" tér _", " térre"],
113+
[" udvar _", " udvarra"],
114+
[" út _", " útra"],
115+
[" utca _", " utcára"],
116+
[" üdülőpart _", " üdülőpartra"],
117+
118+
[" _$", " irányába"]
119+
],
120+
"superessive": [
121+
["^ ", " a "],
122+
123+
["^ a ([AÁÄÅÂEÉËIÍÏOÓŐÖUÚŰÜYŸАЕЁИОУЭЮЯ])", " az $1"],
124+
["^ a ([FLMNRSXЛМНРСФ][ \\-\\d])", " az $1"],
125+
["^ a ([15][ \\-\\.])", " az $1"],
126+
["^ a (5\\d+[ \\-\\.])", " az $1"],
127+
128+
[" $", " _"],
129+
130+
[" alagút _", " alagúton"],
131+
[" árok _", " árkon"],
132+
[" átjáró _", " átjárón"],
133+
[" dűlő _", " dűlőn"],
134+
[" dűlőút _", " dűlőúton"],
135+
[" erdősor _", " erdősoron"],
136+
[" fasor _", " fasoron"],
137+
[" forduló _", " fordulón"],
138+
[" gát _", " gáton"],
139+
[" határsor _", " határsoron"],
140+
[" határút _", " határúton"],
141+
[" híd _", " hídon"],
142+
[" kapu _", " kapun"],
143+
[" körönd _", " köröndön"],
144+
[" körtér _", " körtéren"],
145+
[" körút _", " körúton"],
146+
[" köz _", " közön"],
147+
[" lakótelep _", " lakótelepen"],
148+
[" lejáró _", " lejárón"],
149+
[" lejtő _", " lejtőn"],
150+
[" lépcső _", " lépcsőn"],
151+
[" lánchíd _", " lánchídon"],
152+
[" liget _", " ligeten"],
153+
[" mélyút _", " mélyúton"],
154+
[" orom _", " ormon"],
155+
[" ösvény _", " ösvényen"],
156+
[" park _", " parkon"],
157+
[" part _", " parton"],
158+
[" pincesor _", " pincesoron"],
159+
[" rakpart _", " rakparton"],
160+
[" sétány _", " sétányon"],
161+
[" sétaút _", " sétaúton"],
162+
[" sikátor _", " sikátoron"],
163+
[" sor _", " soron"],
164+
[" sugárút _", " sugárúton"],
165+
[" tér _", " téren"],
166+
[" udvar _", " udvaron"],
167+
[" út _", " úton"],
168+
[" utca _", " utcán"],
169+
[" üdülőpart _", " üdülőparton"],
170+
171+
[" _$", " szakaszon"]
172+
]
173+
}
174+
}

languages/overrides/hu.js

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
// Add grammar option to {way_name} and others depending on phrase context
2+
3+
var replaces = [
4+
[' (a\\(z\\) +)?\\{((way_name)|(destination))\\} +felé', ' {$2:sublative_to}'], // eslint-disable-line no-useless-escape
5+
[' (a\\(z\\) +)?\\{((way_name)|(destination))\\} +irányába\\b', ' {$2:sublative_toward}'], // eslint-disable-line no-useless-escape
6+
[' (a\\(z\\) +)?\\{((way_name)|(destination))\\} +szakaszon\\b', ' {$2:superessive}'], // eslint-disable-line no-useless-escape
7+
[' a\\(z\\) +\\{(\\w+)\\}', ' {$1:article}'] // eslint-disable-line no-useless-escape
8+
];
9+
10+
function optionize(phrase) {
11+
var result = phrase;
12+
replaces.forEach(function(pattern) {
13+
var re = new RegExp(pattern[0], 'gi');
14+
result = result.replace(re, pattern[1]);
15+
});
16+
17+
return result;
18+
}
19+
20+
function iterate(values) {
21+
Object.keys(values).forEach(function (key) {
22+
var value = values[key];
23+
if (typeof value === 'string') {
24+
values[key] = optionize(value);
25+
} else if (typeof value === 'object') {
26+
iterate(value);
27+
}
28+
});
29+
}
30+
31+
module.exports = function(content) {
32+
// Iterate all content string values recursively
33+
iterate(content.v5);
34+
35+
return content;
36+
};

0 commit comments

Comments
 (0)