Skip to content

Commit

Permalink
Merge pull request #274 from yuryleb/tx-hu
Browse files Browse the repository at this point in the history
Add Hungarian localization
  • Loading branch information
1ec5 authored Mar 26, 2019
2 parents d401ef7 + 6a9c2ea commit 9de8ca2
Show file tree
Hide file tree
Showing 666 changed files with 1,508 additions and 3 deletions.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ All notable changes to this project will be documented in this file. For change

## master

- Added an Japanese localization. [#277](https://github.com/Project-OSRM/osrm-text-instructions/pull/277)
- Added a Hungarian localization and grammar. [#274](https://github.com/Project-OSRM/osrm-text-instructions/pull/274)
- Added a Japanese localization. [#277](https://github.com/Project-OSRM/osrm-text-instructions/pull/277)
- Added an Arabic localization. [#267](https://github.com/Project-OSRM/osrm-text-instructions/pull/267)
- Added a Slovenian localization. [#264](https://github.com/Project-OSRM/osrm-text-instructions/pull/264)
- Updated French grammar with 'chaussée' status street name. [#268](https://github.com/Project-OSRM/osrm-text-instructions/pull/268)
Expand Down
4 changes: 2 additions & 2 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -237,8 +237,8 @@ module.exports = function(version) {
},
grammarize: function(language, name, grammar) {
if (!language) throw new Error('No language code provided');
// Process way/rotary name with applying grammar rules if any
if (name && grammar && grammars && grammars[language] && grammars[language][version]) {
// Process way/rotary/any name with applying grammar rules if any
if (grammar && grammars && grammars[language] && grammars[language][version]) {
var rules = grammars[language][version][grammar];
if (rules) {
// Pass original name to rules' regular expressions enclosed with spaces for simplier parsing
Expand Down
4 changes: 4 additions & 0 deletions languages.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ var instructionsEsEs = require('./languages/translations/es-ES.json');
var instructionsFi = require('./languages/translations/fi.json');
var instructionsFr = require('./languages/translations/fr.json');
var instructionsHe = require('./languages/translations/he.json');
var instructionsHu = require('./languages/translations/hu.json');
var instructionsId = require('./languages/translations/id.json');
var instructionsIt = require('./languages/translations/it.json');
var instructionsJa = require('./languages/translations/ja.json');
Expand All @@ -31,6 +32,7 @@ var instructionsZhHans = require('./languages/translations/zh-Hans.json');

// Load all grammar files
var grammarFr = require('./languages/grammar/fr.json');
var grammarHu = require('./languages/grammar/hu.json');
var grammarRu = require('./languages/grammar/ru.json');

// Load all abbreviations files
Expand Down Expand Up @@ -63,6 +65,7 @@ var instructions = {
'fi': instructionsFi,
'fr': instructionsFr,
'he': instructionsHe,
'hu': instructionsHu,
'id': instructionsId,
'it': instructionsIt,
'ja': instructionsJa,
Expand All @@ -86,6 +89,7 @@ var instructions = {
// Create list of supported grammar
var grammars = {
'fr': grammarFr,
'hu': grammarHu,
'ru': grammarRu
};

Expand Down
174 changes: 174 additions & 0 deletions languages/grammar/hu.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
{
"meta": {
"regExpFlags": "gi"
},
"v5": {
"article": [
["^ ", " a "],

["^ a ([AÁÄÅÂEÉËIÍÏOÓŐÖUÚŰÜYŸАЕЁИОУЭЮЯ])", " az $1"],
["^ a ([FLMNRSXЛМНРСФ][ \\-\\d])", " az $1"],
["^ a ([15][ \\-\\.])", " az $1"],
["^ a (5\\d+[ \\-\\.])", " az $1"]
],
"sublative_to": [
["^ ", " a "],

["^ a ([AÁÄÅÂEÉËIÍÏOÓŐÖUÚŰÜYŸАЕЁИОУЭЮЯ])", " az $1"],
["^ a ([FLMNRSXЛМНРСФ][ \\-\\d])", " az $1"],
["^ a ([15][ \\-\\.])", " az $1"],
["^ a (5\\d+[ \\-\\.])", " az $1"],

[" $", " _"],

[" alagút _", " alagútra"],
[" árok _", " árokra"],
[" átjáró _", " átjáróra"],
[" dűlő _", " dűlőre"],
[" dűlőút _", " dűlőútra"],
[" erdősor _", " erdősorra"],
[" fasor _", " fasorra"],
[" forduló _", " fordulóra"],
[" gát _", " gátra"],
[" határsor _", " határsorra"],
[" határút _", " határútra"],
[" híd _", " hídra"],
[" kapu _", " kapura"],
[" körönd _", " köröndre"],
[" körtér _", " körtérre"],
[" körút _", " körútra"],
[" köz _", " közre"],
[" lakótelep _", " lakótelepre"],
[" lejáró _", " lejáróra"],
[" lejtő _", " lejtőre"],
[" lépcső _", " lépcsőre"],
[" lánchíd _", " lánchídra"],
[" liget _", " ligetre"],
[" mélyút _", " mélyútra"],
[" orom _", " oromra"],
[" ösvény _", " ösvényre"],
[" park _", " parkra"],
[" part _", " partra"],
[" pincesor _", " pincesorra"],
[" rakpart _", " rakpartra"],
[" sétány _", " sétányra"],
[" sétaút _", " sétaútra"],
[" sikátor _", " sikátorra"],
[" sor _", " sorra"],
[" sugárút _", " sugárútra"],
[" tér _", " térre"],
[" udvar _", " udvarra"],
[" út _", " útra"],
[" utca _", " utcára"],
[" üdülőpart _", " üdülőpartra"],

[" _$", " felé"]
],
"sublative_toward": [
["^ ", " a "],

["^ a ([AÁÄÅÂEÉËIÍÏOÓŐÖUÚŰÜYŸАЕЁИОУЭЮЯ])", " az $1"],
["^ a ([FLMNRSXЛМНРСФ][ \\-\\d])", " az $1"],
["^ a ([15][ \\-\\.])", " az $1"],
["^ a (5\\d+[ \\-\\.])", " az $1"],

[" $", " _"],

[" alagút _", " alagútra"],
[" árok _", " árokra"],
[" átjáró _", " átjáróra"],
[" dűlő _", " dűlőre"],
[" dűlőút _", " dűlőútra"],
[" erdősor _", " erdősorra"],
[" fasor _", " fasorra"],
[" forduló _", " fordulóra"],
[" gát _", " gátra"],
[" határsor _", " határsorra"],
[" határút _", " határútra"],
[" híd _", " hídra"],
[" kapu _", " kapura"],
[" körönd _", " köröndre"],
[" körtér _", " körtérre"],
[" körút _", " körútra"],
[" köz _", " közre"],
[" lakótelep _", " lakótelepre"],
[" lejáró _", " lejáróra"],
[" lejtő _", " lejtőre"],
[" lépcső _", " lépcsőre"],
[" lánchíd _", " lánchídra"],
[" liget _", " ligetre"],
[" mélyút _", " mélyútra"],
[" orom _", " oromra"],
[" ösvény _", " ösvényre"],
[" park _", " parkra"],
[" part _", " partra"],
[" pincesor _", " pincesorra"],
[" rakpart _", " rakpartra"],
[" sétány _", " sétányra"],
[" sétaút _", " sétaútra"],
[" sikátor _", " sikátorra"],
[" sor _", " sorra"],
[" sugárút _", " sugárútra"],
[" tér _", " térre"],
[" udvar _", " udvarra"],
[" út _", " útra"],
[" utca _", " utcára"],
[" üdülőpart _", " üdülőpartra"],

[" _$", " irányába"]
],
"superessive": [
["^ ", " a "],

["^ a ([AÁÄÅÂEÉËIÍÏOÓŐÖUÚŰÜYŸАЕЁИОУЭЮЯ])", " az $1"],
["^ a ([FLMNRSXЛМНРСФ][ \\-\\d])", " az $1"],
["^ a ([15][ \\-\\.])", " az $1"],
["^ a (5\\d+[ \\-\\.])", " az $1"],

[" $", " _"],

[" alagút _", " alagúton"],
[" árok _", " árkon"],
[" átjáró _", " átjárón"],
[" dűlő _", " dűlőn"],
[" dűlőút _", " dűlőúton"],
[" erdősor _", " erdősoron"],
[" fasor _", " fasoron"],
[" forduló _", " fordulón"],
[" gát _", " gáton"],
[" határsor _", " határsoron"],
[" határút _", " határúton"],
[" híd _", " hídon"],
[" kapu _", " kapun"],
[" körönd _", " köröndön"],
[" körtér _", " körtéren"],
[" körút _", " körúton"],
[" köz _", " közön"],
[" lakótelep _", " lakótelepen"],
[" lejáró _", " lejárón"],
[" lejtő _", " lejtőn"],
[" lépcső _", " lépcsőn"],
[" lánchíd _", " lánchídon"],
[" liget _", " ligeten"],
[" mélyút _", " mélyúton"],
[" orom _", " ormon"],
[" ösvény _", " ösvényen"],
[" park _", " parkon"],
[" part _", " parton"],
[" pincesor _", " pincesoron"],
[" rakpart _", " rakparton"],
[" sétány _", " sétányon"],
[" sétaút _", " sétaúton"],
[" sikátor _", " sikátoron"],
[" sor _", " soron"],
[" sugárút _", " sugárúton"],
[" tér _", " téren"],
[" udvar _", " udvaron"],
[" út _", " úton"],
[" utca _", " utcán"],
[" üdülőpart _", " üdülőparton"],

[" _$", " szakaszon"]
]
}
}
36 changes: 36 additions & 0 deletions languages/overrides/hu.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
// Add grammar option to {way_name} and others depending on phrase context

var replaces = [
[' (a\\(z\\) +)?\\{((way_name)|(destination))\\} +felé', ' {$2:sublative_to}'], // eslint-disable-line no-useless-escape
[' (a\\(z\\) +)?\\{((way_name)|(destination))\\} +irányába\\b', ' {$2:sublative_toward}'], // eslint-disable-line no-useless-escape
[' (a\\(z\\) +)?\\{((way_name)|(destination))\\} +szakaszon\\b', ' {$2:superessive}'], // eslint-disable-line no-useless-escape
[' a\\(z\\) +\\{(\\w+)\\}', ' {$1:article}'] // eslint-disable-line no-useless-escape
];

function optionize(phrase) {
var result = phrase;
replaces.forEach(function(pattern) {
var re = new RegExp(pattern[0], 'gi');
result = result.replace(re, pattern[1]);
});

return result;
}

function iterate(values) {
Object.keys(values).forEach(function (key) {
var value = values[key];
if (typeof value === 'string') {
values[key] = optionize(value);
} else if (typeof value === 'object') {
iterate(value);
}
});
}

module.exports = function(content) {
// Iterate all content string values recursively
iterate(content.v5);

return content;
};
Loading

0 comments on commit 9de8ca2

Please sign in to comment.