From b02c4f7102bc5cd8d5fa28a61714f9cf917a9061 Mon Sep 17 00:00:00 2001 From: Shahin Mursalov Date: Wed, 27 Jul 2016 00:09:19 +0400 Subject: [PATCH] Support for Azerbaijani Language --- lib/lang/az.js | 112 ++++++++++++++++++++ test_cases/az.json | 248 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 360 insertions(+) create mode 100644 lib/lang/az.js create mode 100644 test_cases/az.json diff --git a/lib/lang/az.js b/lib/lang/az.js new file mode 100644 index 00000000..6be7858b --- /dev/null +++ b/lib/lang/az.js @@ -0,0 +1,112 @@ +module.exports = require("../template")({ + "clear": "buludsuz", + "no-precipitation": "yağmursuz", + "mixed-precipitation": "qarışıq yağış", + "possible-very-light-precipitation": "yüngül yağış ehtimalı", + "very-light-precipitation": "yüngül yağış", + "possible-light-precipitation": "yüngül yağış ehtimalı", + "light-precipitation": "yüngül yağış", + "medium-precipitation": "yağış", + "heavy-precipitation": "güclü yağış", + "possible-very-light-rain": "çiskin yağış ehtimalı", + "very-light-rain": "çiskin", + "possible-light-rain": "yüngül yağış ehtimalı", + "light-rain": "yüngül yağış", + "medium-rain": "yağış", + "heavy-rain": "güclü yağış", + "possible-very-light-sleet": "yüngül sulu qar ehtimalı", + "very-light-sleet": "yüngül sulu qar", + "possible-light-sleet": "yüngül sulu qar ehtimalı", + "light-sleet": "yüngül sulu qar", + "medium-sleet": "sulu qar", + "heavy-sleet": "güclü sulu qar", + "possible-very-light-snow": "sulu qar ehtimalı", + "very-light-snow": "sulu qar", + "possible-light-snow": "yüngül qar ehtimalı", + "light-snow": "yüngül qar", + "medium-snow": "qar", + "heavy-snow": "güclü qar", + "light-wind": "sərin", + "medium-wind": "külək", + "heavy-wind": "güclü külək", + "low-humidity": "rütubətsiz", + "high-humidity": "rütubətli", + "fog": "dumanlı", + "light-clouds": "qismən buludlu", + "medium-clouds": "əsasən buludlu", + "heavy-clouds": "tutqun hava", + "today-morning": "bu gün səhər", + "later-today-morning": "bu gün səhərdən sonra", + "today-afternoon": "bu gün günortadan sonra", + "later-today-afternoon": "bu gün günortadan sonra", + "today-evening": "bu gün axşam", + "later-today-evening": "bu gün axşam", + "today-night": "bu gün gecə", + "later-today-night": "bu gün gecə", + "tomorrow-morning": "sabah səhər", + "tomorrow-afternoon": "sabah günortadan sonra", + "tomorrow-evening": "sabah axşam", + "tomorrow-night": "sabah gecə", + "morning": "səhər", + "afternoon": "günortadan sonra", + "evening": "axşam", + "night": "gecə", + "today": "bu gün", + "tomorrow": "sabah", + "sunday": "bazar günü", + "monday": "bazar ertəsi", + "tuesday": "çərşənbə axşamı", + "wednesday": "çərşənbə günü", + "thursday": "cümə axşamı", + "friday": "cümə günü", + "saturday": "şənbə günü", + "minutes": "$1 dəq.", + "fahrenheit": "$1\u00B0F", + "celsius": "$1\u00B0C", + "inches": "$1 düym", + "centimeters": "$1 sm.", + "less-than": "$1-dən aşağı", + "and": function(a, b) { return a + " və " + b; }, + "through": function(a, b) { return a + " ilə " + b + " arası"; }, + "with": "$1, $2", + "range": "$1\u2013$2", + "parenthetical": function(a, b) { return a + " (" + b + (a === "qarışıq yağış" ? " qar)" : ")"); }, + "for-hour": "1 saat boyunca $1 olacaq", + "starting-in": "$2 sonra $1 başlayacaq", + "stopping-in": "$1 $2 sonra dayanacaq", + "starting-then-stopping-later": "$1 $2 sonra başlayacaq, $3 davam edib dayanacaq", + "stopping-then-starting-later": "$1 $2 sonra dayanacaq, $3 sonra yenidən başlayacaq", + "for-day": "gün boyu $1 olacaq", + "starting": "$2 $1 başlayacaq", + "until": function(condition, period) { return condition + " " + period + " dayanacaq"; }, + "until-starting-again": function(condition, a, b) { return condition + " " + a + " dayanıb, " + b + " yenidən başlayacaq"; }, + "starting-continuing-until": function(condition, a, b) { return a + " " + condition + " başlayıb, " + b + " dayanacaq"; }, + "during": "$2 $1 olacaq", + "for-week": "həftə boyunca $1 olacaq", + "over-weekend": "həftə sonu $1 olacaq", + "temperatures-peaking": "$2 hava kəskin istiləşəcək və temperatur $1-yə qalxacaq", + "temperatures-rising": "$2 temperatur $1-yə qalxacaq", + "temperatures-valleying": "$2 hava kəskin soyuyacaq və temperatur $1-yə düşəcək", + "temperatures-falling": "$2 temperatur $1-yə düşəcək", + + /* Capitalize the first letter of every word, except if that word is + * "and". (This is a very crude bastardization of proper English titling + * rules, but it is adequate for the purposes of this module.) */ + "title": function(str) { + return str.replace(/([a-zA-ZÇ窺IıƏəÖöĞğÜü.]+)/g, + function(txt) { + if(txt === "və" | txt === "düym"| txt === "sm.") return txt; + return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); + }); + }, + /* Capitalize the first word of the sentence and end with a period. */ + "sentence": function(str) { + /* Capitalize. */ + str = str.charAt(0).toUpperCase() + str.slice(1); + + /* Add a period if there isn't already one. */ + if(str.charAt(str.length - 1) !== ".") str += "."; + + return str; + } +}); diff --git a/test_cases/az.json b/test_cases/az.json new file mode 100644 index 00000000..2ab3b767 --- /dev/null +++ b/test_cases/az.json @@ -0,0 +1,248 @@ +{ + "Buludsuz": + ["title", "clear"], + + "Yüngül Yağış Ehtimalı": + ["title", "possible-very-light-precipitation"], + + "Yüngül Yağış": + ["title", "very-light-precipitation"], + + "Yüngül Yağış Ehtimalı": + ["title", "possible-light-precipitation"], + + "Yüngül Yağış": + ["title", "light-precipitation"], + + "Yağış": + ["title", "medium-precipitation"], + + "Güclü Yağış": + ["title", "heavy-precipitation"], + + "Çiskin Yağış Ehtimalı": + ["title", "possible-very-light-rain"], + + "Çiskin": + ["title", "very-light-rain"], + + "Yüngül Yağış Ehtimalı": + ["title", "possible-light-rain"], + + "Yüngül Yağış": + ["title", "light-rain"], + + "Yağış": + ["title", "medium-rain"], + + "Güclü Yağış": + ["title", "heavy-rain"], + + "Yüngül Sulu Qar Ehtimalı": + ["title", "possible-very-light-sleet"], + + "Yüngül Sulu Qar": + ["title", "very-light-sleet"], + + "Yüngül Sulu Qar Ehtimalı": + ["title", "possible-light-sleet"], + + "Yüngül Sulu Qar": + ["title", "light-sleet"], + + "Sulu Qar": + ["title", "medium-sleet"], + + "Güclü Sulu Qar": + ["title", "heavy-sleet"], + + "Sulu Qar Ehtimalı": + ["title", "possible-very-light-snow"], + + "Sulu Qar": + ["title", "very-light-snow"], + + "Yüngül Qar Ehtimalı": + ["title", "possible-light-snow"], + + "Yüngül Qar": + ["title", "light-snow"], + + "Qar": + ["title", "medium-snow"], + + "Güclü Qar": + ["title", "heavy-snow"], + + "Külək": + ["title", "medium-wind"], + + "Güclü Külək": + ["title", "heavy-wind"], + + "Dumanlı": + ["title", "fog"], + + "Əsasən Buludlu": + ["title", "medium-clouds"], + + "Tutqun Hava": + ["title", "heavy-clouds"], + + "Rütubətsiz və Sərin": + ["title", ["and", "low-humidity", "light-wind"]], + + "Çiskin və Güclü Külək": + ["title", ["and", "very-light-rain", "heavy-wind"]], + + "Rütubətli və Qismən Buludlu": + ["title", ["and", "high-humidity", "light-clouds"]], + + "1 saat boyunca buludsuz olacaq.": + ["sentence", ["for-hour", "clear"]], + + "35 dəq. sonra sulu qar başlayacaq.": + ["sentence", ["starting-in", "very-light-snow", ["minutes", 35]]], + + "Yüngül yağış 15 dəq. sonra dayanacaq.": + ["sentence", ["stopping-in", "light-rain", ["minutes", 15]]], + + "Güclü sulu qar 20 dəq. sonra başlayacaq, 30 dəq. davam edib dayanacaq.": + ["sentence", + ["starting-then-stopping-later", + "heavy-sleet", + ["minutes", 20], + ["minutes", 30]]], + + "Yağış 25 dəq. sonra dayanacaq, 8 dəq. sonra yenidən başlayacaq.": + ["sentence", + ["stopping-then-starting-later", + "medium-rain", + ["minutes", 25], + ["minutes", 8]]], + + "Gün boyu əsasən buludlu olacaq.": + ["sentence", ["for-day", "medium-clouds"]], + + "Səhər yüngül sulu qar başlayacaq.": + ["sentence", ["starting", "very-light-sleet", "morning"]], + + "Külək bu gün gecə dayanacaq.": + ["sentence", ["until", "medium-wind", "today-night"]], + + "Güclü yağış günortadan sonra dayanacaq.": + ["sentence", ["until", "heavy-precipitation", "afternoon"]], + + "Günortadan sonra sərin olacaq.": + ["sentence", ["during", "light-wind", "afternoon"]], + + "Bu gün axşam və sabah səhər qar olacaq.": + ["sentence", ["during", + "medium-snow", + ["and", "later-today-evening", "tomorrow-morning"]]], + + "Güclü yağış bu gün səhərdən sonra dayanıb, bu gün axşam yenidən başlayacaq.": + ["sentence", ["until-starting-again", + "heavy-rain", + "later-today-morning", + "today-evening"]], + + "Axşam tutqun hava başlayıb, gecə dayanacaq.": + ["sentence", ["starting-continuing-until", + "heavy-clouds", + "evening", + "night"]], + + "Bu gün günortadan sonra yüngül sulu qar olacaq və sabah səhər dumanlı olacaq.": + ["sentence", ["and", + ["during", "light-sleet", "later-today-afternoon"], + ["during", "fog", "tomorrow-morning"]]], + + "Bu gün səhər güclü külək başlayıb, bu gün günortadan sonra dayanacaq və sabah səhər sulu qar olacaq.": + ["sentence", ["and", + ["starting-continuing-until", + "heavy-wind", + "today-morning", + "today-afternoon"], + ["during", "medium-sleet", "tomorrow-morning"]]], + + "Bu gün gecə tutqun hava başlayacaq və sabah günortadan sonra güclü qar olacaq.": + ["sentence", ["and", + ["starting", "heavy-clouds", "later-today-night"], + ["during", "heavy-snow", "tomorrow-afternoon"]]], + + "Bu gün gecə rütubətsiz olacaq və sabah axşam yüngül yağış başlayıb, sabah gecə dayanacaq.": + ["sentence", ["and", + ["during", "low-humidity", "today-night"], + ["starting-continuing-until", + "light-precipitation", + "tomorrow-evening", + "tomorrow-night"]]], + + "Gecə qar (5 düym) olacaq.": + ["sentence", ["during", + ["parenthetical", "medium-snow", ["inches", 5]], + "night"]], + + "Bu gün səhərdən sonra yüngül qar (2 sm.) olacaq.": + ["sentence", ["during", + ["parenthetical", "light-snow", ["centimeters", 2]], + "later-today-morning"]], + + "Gün boyu güclü qar (8–12 düym) olacaq.": + ["sentence", ["for-day", + ["parenthetical", "heavy-snow", ["inches", ["range", 8, 12]]]]], + + "Günortadan sonra qar (1 sm.-dən aşağı) olacaq.": + ["sentence", ["during", + ["parenthetical", "medium-snow", ["less-than", ["centimeters", 1]]], + "afternoon"]], + + "Həftə boyunca yağmursuz olacaq, sabah hava kəskin istiləşəcək və temperatur 85°F-yə qalxacaq.": + ["sentence", ["with", + ["for-week", "no-precipitation"], + ["temperatures-peaking", + ["fahrenheit", 85], + "tomorrow"]]], + + "Həftə sonu qarışıq yağış olacaq, cümə axşamı temperatur 32°C-yə qalxacaq.": + ["sentence", ["with", + ["over-weekend", "mixed-precipitation"], + ["temperatures-rising", + ["celsius", 32], + "thursday"]]], + + "Bazar ertəsi çiskin olacaq, cümə günü hava kəskin soyuyacaq və temperatur 15°F-yə düşəcək.": + ["sentence", ["with", + ["during", "very-light-rain", "monday"], + ["temperatures-valleying", + ["fahrenheit", 15], + "friday"]]], + + "Çərşənbə axşamı və çərşənbə günü yüngül qar olacaq, bazar günü temperatur 0°C-yə düşəcək.": + ["sentence", ["with", + ["during", "light-snow", ["and", "tuesday", "wednesday"]], + ["temperatures-falling", + ["celsius", 0], + "sunday"]]], + + "Bu gün ilə şənbə günü arası yağış olacaq, bazar ertəsi hava kəskin istiləşəcək və temperatur 100°F-yə qalxacaq.": + ["sentence", ["with", + ["during", + "medium-precipitation", + ["through", "today", "saturday"]], + ["temperatures-peaking", + ["fahrenheit", 100], + "monday"]]], + + "Gün boyu qarışıq yağış (1–3 düym qar) olacaq.": + ["sentence", + ["for-day", + ["parenthetical", "mixed-precipitation", ["inches", ["range", 1, 3]]]]], + + "Güclü Qar (1–3 düym)": + ["title", ["parenthetical", "heavy-snow", ["inches", ["range", 1, 3]]]], + + "Güclü Qar (3–5 sm.)": + ["title", ["parenthetical", "heavy-snow", ["centimeters", ["range", 3, 5]]]] +}