Repository: darkskyapp/forecast-io-translations
Pull request #44 (2015-09-12 17:31:22)

Added Greek translation


Patch:
diff --git a/lib/lang/el.js b/lib/lang/el.js
new file mode 100644
index 0000000..dcdb022
--- /dev/null
+++ b/lib/lang/el.js
@@ -0,0 +1,142 @@
+function join_with_shared_prefix(a, b, joiner) {
+  var m = a,
+      i = 0,
+      j;
+
+  while(i !== m.length &&
+        i !== b.length &&
+        m.charCodeAt(i) === b.charCodeAt(i)) {
+    ++i;
+  }
+  while(i && m.charCodeAt(i - 1) !== 32) {
+    --i;
+  }
+
+  return a + joiner + b.slice(i);
+}
+
+function strip_prefix(period) {
+  return period             === "απόψε"   ? "σήμερα το βράδυ" :
+         period.slice(0, 7) === "σήμερα " ? period.slice(7) :
+                                            period;
+}
+
+module.exports = require("../template")({
+  "clear": "αίθριος",
+  "no-precipitation": "καθόλου υετός",
+  "mixed-precipitation": "μικτός υετός",
+  "possible-very-light-precipitation": "πιθανός ασθενής υετός",
+  "very-light-precipitation": "ασθενής υετός",
+  "possible-light-precipitation": "πιθανός ελαφρύς υετός",
+  "light-precipitation": "ελαφρύς υετός",
+  "medium-precipitation": "υετός",
+  "heavy-precipitation": "ισχυρός υετός",
+  "possible-very-light-rain": "πιθανή ασθενής βροχή",
+  "very-light-rain": "ασθενής βροχή",
+  "possible-light-rain": "πιθανή ελαφριά βροχή",
+  "light-rain": "ελαφριά βροχή",
+  "medium-rain": "βροχή",
+  "heavy-rain": "καταιγίδα",
+  "possible-very-light-sleet": "πιθανό ασθενές χιονόνερο",
+  "very-light-sleet": "ασθενές χιονόνερο",
+  "possible-light-sleet": "πιθανό ελαφρύ χιονόνερο",
+  "light-sleet": "ελαφρύ χιονόνερο",
+  "medium-sleet": "χιονόνερο",
+  "heavy-sleet": "ισχυρό χιονόνερο",
+  "possible-very-light-snow": "πιθανή ασθενής χιονόπτωση",
+  "very-light-snow": "ασθενής χιονόπτωση",
+  "possible-light-snow": "πιθανή ελαφρά χιονόπτωση",
+  "light-snow": "ελαφρά χιονόπτωση",
+  "medium-snow": "χιονόπτωση",
+  "heavy-snow": "ισχυρή χιονόπτωση",
+  "light-wind": "ασθενής άνεμος",
+  "medium-wind": "μέτριος άνεμος",
+  "heavy-wind": "ισχυρός άνεμος",
+  "low-humidity": "ξηρασία",
+  "high-humidity": "υγρασία",
+  "fog": "ομίχλη",
+  "light-clouds": "αραιές νεφώσεις",
+  "medium-clouds": "μερικώς νεφελώδης",
+  "heavy-clouds": "νεφελώδης",
+  "today-morning": "σήμερα το πρωί",
+  "later-today-morning": "αργότερα σήμερα το πρωί",
+  "today-afternoon": "σήμερα το μεσημέρι",
+  "later-today-afternoon": "αργότερα σήμερα το μεσημέρι",
+  "today-evening": "σήμερα το απόγευμα",
+  "later-today-evening": "αργότερα σήμερα το απόγευμα",
+  "today-night": "απόψε",
+  "later-today-night": "αργότερα το βράδυ",
+  "tomorrow-morning": "αύριο το πρωί",
+  "tomorrow-afternoon": "αύριο το μεσημέρι",
+  "tomorrow-evening": "αύριο το απόγευμα",
+  "tomorrow-night": "αύριο το βράδυ",
+  "morning": "το πρωί",
+  "afternoon": "το μεσημέρι",
+  "evening": "το απόγευμα",
+  "night": "το βράδυ",
+  "today": "σήμερα",
+  "tomorrow": "αύριο",
+  "sunday": "την Κυριακή",
+  "monday": "την Δευτέρα",
+  "tuesday": "την Τρίτη",
+  "wednesday": "την Τετάρτη",
+  "thursday": "την Πέμπτη",
+  "friday": "την Παρασκευή",
+  "saturday": "το Σάββατο",
+  "minutes": "$1 λεπτά",
+  "fahrenheit": "$1\u00B0F",
+  "celsius": "$1\u00B0C",
+  "inches": "$1 ιν.",
+  "centimeters": "$1 εκ.",
+  "less-than": "λιγότερα από $1",
+  "and": function(a, b) {
+    return a + (a.indexOf(",") !== -1 ? ", και " : " και ") + b
+  },
+  "through": function(a, b) {
+    return a + " μέχρι " + b
+  },
+  "with": "$1, με $2",
+  "range": "$1\u2013$2",
+  "parenthetical": function(a, b) {
+    return a + " (" + b + (a === "μικτός υετός" ? " χιονιού)" : ")");
+  },
+  "for-hour": "$1 για αυτή την ώρα",
+  "starting-in": "$1 που θα αρχίσει σε $2",
+  "stopping-in": "$1 που θα σταματήσει σε $2",
+  "starting-then-stopping-later": "$1 που θα αρχίσει σε $2, και θα σταματήσει $3 αργότερα",
+  "stopping-then-starting-later": "$1 που θα σταματήσει σε $2, και θα συνεχιστεί $3 αργότερα",
+  "for-day": "$1 κατά τη διάρκεια της ημέρας",
+  "starting": "$1 που θα αρχίσει $2",
+  "until": function(condition, period) {
+    return condition + " μέχρι " + strip_prefix(period);
+  },
+  "until-starting-again": function(condition, a, b) {
+    return condition + " μέχρι " + strip_prefix(a) + ", που θα συνεχιστεί και " + b;
+  },
+  "starting-continuing-until": function(condition, a, b) {
+    return condition + " που θα αρχίσει " + a + ", και θα συνεχιστεί μέχρι " +
+           strip_prefix(b);
+  },
+  "during": "$1 $2",
+  "for-week": "$1 κατά τη διάρκεια της εβδομάδας",
+  "over-weekend": "$1 το Σαββατοκύριακο",
+  "temperatures-peaking": "θερμοκρασίες να κορυφώνονται στους $1 $2",
+  "temperatures-rising": "θερμοκρασίες να αυξάνονται έως τους $1 $2",
+  "temperatures-valleying": "θερμοκρασίες να πέφτουν στους $1 $2",
+  "temperatures-falling": "θερμοκρασίες να μειώνονται στους $1 $2",
+  /* Capitalize the first letter of every word */
+  "title": function(str) {
+    return str.charAt(0).toUpperCase() + str.slice(1);
+  },
+  /* 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;
+  }
+});


Test patch:
diff --git a/test_cases/el.json b/test_cases/el.json
new file mode 100644
index 0000000..b7560c6
--- /dev/null
+++ b/test_cases/el.json
@@ -0,0 +1,249 @@
+{
+  "Αίθριος":
+    ["title", "clear"],
+
+  "Πιθανός ασθενής υετός":
+    ["title", "possible-very-light-precipitation"],
+
+  "Ασθενής υετός":
+    ["title", "very-light-precipitation"],
+
+  "Πιθανός ελαφρύς υετός":
+    ["title", "possible-light-precipitation"],
+
+  "Ελαφρύς υετός":
+    ["title", "light-precipitation"],
+
+  "Υετός":
+    ["title", "medium-precipitation"],
+
+  "Ισχυρός υετός":
+    ["title", "heavy-precipitation"],
+
+  "Πιθανή ασθενής βροχή":
+    ["title", "possible-very-light-rain"],
+
+  "Ασθενής βροχή":
+    ["title", "very-light-rain"],
+
+  "Πιθανή ελαφριά βροχή":
+    ["title", "possible-light-rain"],
+
+  "Ελαφριά βροχή":
+    ["title", "light-rain"],
+
+  "Βροχή":
+    ["title", "medium-rain"],
+
+  "Καταιγίδα":
+    ["title", "heavy-rain"],
+
+  "Πιθανό ασθενές χιονόνερο":
+    ["title", "possible-very-light-sleet"],
+
+  "Ασθενές χιονόνερο":
+    ["title", "very-light-sleet"],
+
+  "Πιθανό ελαφρύ χιονόνερο":
+    ["title", "possible-light-sleet"],
+
+  "Ελαφρύ χιονόνερο":
+    ["title", "light-sleet"],
+
+  "Χιονόνερο":
+    ["title", "medium-sleet"],
+
+  "Ισχυρό χιονόνερο":
+    ["title", "heavy-sleet"],
+
+  "Πιθανή ασθενής χιονόπτωση":
+    ["title", "possible-very-light-snow"],
+
+  "Ασθενής χιονόπτωση":
+    ["title", "very-light-snow"],
+
+  "Πιθανή ελαφρά χιονόπτωση":
+    ["title", "possible-light-snow"],
+
+  "Ελαφρά χιονόπτωση":
+    ["title", "light-snow"],
+
+  "Χιονόπτωση":
+    ["title", "medium-snow"],
+
+  "Ισχυρή χιονόπτωση":
+    ["title", "heavy-snow"],
+
+  "Μέτριος άνεμος":
+    ["title", "medium-wind"],
+
+  "Ισχυρός άνεμος":
+    ["title", "heavy-wind"],
+
+  "Ομίχλη":
+    ["title", "fog"],
+
+  "Μερικώς νεφελώδης":
+    ["title", "medium-clouds"],
+
+  "Νεφελώδης":
+    ["title", "heavy-clouds"],
+
+
+  "Ξηρασία και ασθενής άνεμος":
+    ["title", ["and", "low-humidity", "light-wind"]],
+
+  "Ασθενής βροχή και ισχυρός άνεμος":
+    ["title", ["and", "very-light-rain", "heavy-wind"]],
+
+  "Υγρασία και αραιές νεφώσεις":
+    ["title", ["and", "high-humidity", "light-clouds"]],
+
+  "Αίθριος για αυτή την ώρα.":
+    ["sentence", ["for-hour", "clear"]],
+
+  "Ασθενής χιονόπτωση που θα αρχίσει σε 35 λεπτά.":
+    ["sentence", ["starting-in", "very-light-snow", ["minutes", 35]]],
+
+  "Ελαφριά βροχή που θα σταματήσει σε 15 λεπτά.":
+    ["sentence", ["stopping-in", "light-rain", ["minutes", 15]]],
+
+  "Ισχυρό χιονόνερο που θα αρχίσει σε 20 λεπτά, και θα σταματήσει 30 λεπτά αργότερα.":
+    ["sentence",
+      ["starting-then-stopping-later",
+        "heavy-sleet",
+        ["minutes", 20],
+        ["minutes", 30]]],
+
+  "Βροχή που θα σταματήσει σε 25 λεπτά, και θα συνεχιστεί 8 λεπτά αργότερα.":
+    ["sentence",
+      ["stopping-then-starting-later",
+        "medium-rain",
+        ["minutes", 25],
+        ["minutes", 8]]],
+
+  "Μερικώς νεφελώδης κατά τη διάρκεια της ημέρας.":
+    ["sentence", ["for-day", "medium-clouds"]],
+
+  "Ασθενές χιονόνερο που θα αρχίσει το πρωί.":
+    ["sentence", ["starting", "very-light-sleet", "morning"]],
+
+  "Μέτριος άνεμος μέχρι σήμερα το βράδυ.":
+    ["sentence", ["until", "medium-wind", "today-night"]],
+
+  "Ισχυρός υετός μέχρι το μεσημέρι.":
+    ["sentence", ["until", "heavy-precipitation", "afternoon"]],
+
+  "Ασθενής άνεμος το μεσημέρι.":
+    ["sentence", ["during", "light-wind", "afternoon"]],
+
+  "Χιονόπτωση αργότερα σήμερα το απόγευμα και αύριο το πρωί.":
+    ["sentence", ["during",
+      "medium-snow",
+      ["and", "later-today-evening", "tomorrow-morning"]]],
+
+  "Καταιγίδα μέχρι αργότερα σήμερα το πρωί, που θα συνεχιστεί και σήμερα το απόγευμα.":
+    ["sentence", ["until-starting-again",
+      "heavy-rain",
+      "later-today-morning",
+      "today-evening"]],
+
+  "Νεφελώδης που θα αρχίσει το απόγευμα, και θα συνεχιστεί μέχρι το βράδυ.":
+    ["sentence", ["starting-continuing-until",
+      "heavy-clouds",
+      "evening",
+      "night"]],
+
+  "Ελαφρύ χιονόνερο αργότερα σήμερα το μεσημέρι και ομίχλη αύριο το πρωί.":
+    ["sentence", ["and",
+      ["during", "light-sleet", "later-today-afternoon"],
+      ["during", "fog", "tomorrow-morning"]]],
+
+  "Ισχυρός άνεμος που θα αρχίσει σήμερα το πρωί, και θα συνεχιστεί μέχρι το μεσημέρι, και χιονόνερο αύριο το πρωί.":
+    ["sentence", ["and",
+      ["starting-continuing-until",
+        "heavy-wind",
+        "today-morning",
+        "today-afternoon"],
+      ["during", "medium-sleet", "tomorrow-morning"]]],
+
+  "Νεφελώδης που θα αρχίσει αργότερα το βράδυ και ισχυρή χιονόπτωση αύριο το μεσημέρι.":
+    ["sentence", ["and",
+      ["starting", "heavy-clouds", "later-today-night"],
+      ["during", "heavy-snow", "tomorrow-afternoon"]]],
+
+  "Ξηρασία απόψε και ελαφρύς υετός που θα αρχίσει αύριο το απόγευμα, και θα συνεχιστεί μέχρι αύριο το βράδυ.":
+    ["sentence", ["and",
+      ["during", "low-humidity", "today-night"],
+      ["starting-continuing-until",
+        "light-precipitation",
+        "tomorrow-evening",
+        "tomorrow-night"]]],
+
+  "Χιονόπτωση (5 ιν.) το βράδυ.":
+    ["sentence", ["during",
+      ["parenthetical", "medium-snow", ["inches", 5]],
+      "night"]],
+
+  "Ελαφρά χιονόπτωση (2 εκ.) αργότερα σήμερα το πρωί.":
+    ["sentence", ["during",
+      ["parenthetical", "light-snow", ["centimeters", 2]],
+      "later-today-morning"]],
+
+  "Ισχυρή χιονόπτωση (8\u201312 ιν.) κατά τη διάρκεια της ημέρας.":
+    ["sentence", ["for-day",
+      ["parenthetical", "heavy-snow", ["inches", ["range", 8, 12]]]]],
+
+  "Χιονόπτωση (λιγότερα από 1 εκ.) το μεσημέρι.":
+    ["sentence", ["during",
+      ["parenthetical", "medium-snow", ["less-than", ["centimeters", 1]]],
+      "afternoon"]],
+
+
+  "Καθόλου υετός κατά τη διάρκεια της εβδομάδας, με θερμοκρασίες να κορυφώνονται στους 85\u00B0F αύριο.":
+    ["sentence", ["with",
+      ["for-week", "no-precipitation"],
+      ["temperatures-peaking",
+        ["fahrenheit", 85],
+        "tomorrow"]]],
+
+  "Μικτός υετός το Σαββατοκύριακο, με θερμοκρασίες να αυξάνονται έως τους 32\u00B0C την Πέμπτη.":
+    ["sentence", ["with",
+      ["over-weekend", "mixed-precipitation"],
+      ["temperatures-rising",
+        ["celsius", 32],
+        "thursday"]]],
+
+  "Ασθενής βροχή την Δευτέρα, με θερμοκρασίες να πέφτουν στους 15\u00B0F την Παρασκευή.":
+    ["sentence", ["with",
+      ["during", "very-light-rain", "monday"],
+      ["temperatures-valleying",
+        ["fahrenheit", 15],
+        "friday"]]],
+
+  "Ελαφρά χιονόπτωση την Τρίτη και την Τετάρτη, με θερμοκρασίες να μειώνονται στους 0\u00B0C την Κυριακή.":
+    ["sentence", ["with",
+      ["during", "light-snow", ["and", "tuesday", "wednesday"]],
+      ["temperatures-falling",
+        ["celsius", 0],
+        "sunday"]]],
+
+  "Υετός σήμερα μέχρι το Σάββατο, με θερμοκρασίες να κορυφώνονται στους 100\u00B0F την Δευτέρα.":
+    ["sentence", ["with",
+      ["during",
+        "medium-precipitation",
+        ["through", "today", "saturday"]],
+      ["temperatures-peaking",
+        ["fahrenheit", 100],
+        "monday"]]],
+
+  "Μικτός υετός (1\u20133 ιν. χιονιού) κατά τη διάρκεια της ημέρας.":
+    ["sentence", ["for-day",
+      ["parenthetical", "mixed-precipitation", ["inches", ["range", 1, 3]]]]],
+
+  "Ισχυρή χιονόπτωση (1\u20133 ιν.)":
+    ["title", ["parenthetical", "heavy-snow", ["inches", ["range", 1, 3]]]],
+
+  "Ισχυρή χιονόπτωση (3\u20135 εκ.)":
+    ["title", ["parenthetical", "heavy-snow", ["centimeters", ["range", 3, 5]]]]
+}