Repository: darkskyapp/forecast-io-translations
Pull request #152 (2017-07-03 20:55:38)

A few improvements in the Greek translation.
- Deal better with singular and plural forms in a few edge cases. E.g. instead of `Αραιές νεφώσεις που θα αρχίσει αργότερα σήμερα το μεσημέρι.` which is incorrect, it now produces `Αραιή νέφωση που θα αρχίσει αργότερα σήμερα το μεσημέρι.` Another example: instead of `Μικτός υετός την Κυριακή και την επόμενη Δευτέρα, με θερμοκρασίες να μειώνονται στους 1°C την Παρασκευή.` it now produces `Μικτός υετός την Κυριακή και την επόμενη Δευτέρα, με τη θερμοκρασία να μειώνεται στον 1°C την Παρασκευή.`

- Removed unused function `join_with_shared_prefix`


Patch:
diff --git a/lib/lang/el.js b/lib/lang/el.js
index 7f79cea..43b6d49 100644
--- a/lib/lang/el.js
+++ b/lib/lang/el.js
@@ -1,18 +1,5 @@
-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 singular_or_plural(n,singular,plural){
+  return Math.abs(parseInt(n)) === 1 ? singular : plural;
 }
 
 function strip_prefix(period) {
@@ -57,9 +44,9 @@ module.exports = require("../template")({
   "low-humidity": "ξηρασία",
   "high-humidity": "υγρασία",
   "fog": "ομίχλη",
-  "light-clouds": "αραιές νεφώσεις",
-  "medium-clouds": "μερικώς νεφελώδης",
-  "heavy-clouds": "νεφελώδης",
+  "light-clouds": "αραιή νέφωση",
+  "medium-clouds": "μερική νέφωση",
+  "heavy-clouds": "συννεφιά",
   "today-morning": "σήμερα το πρωί",
   "later-today-morning": "αργότερα σήμερα το πρωί",
   "today-afternoon": "σήμερα το μεσημέρι",
@@ -97,7 +84,7 @@ module.exports = require("../template")({
   "celsius": "$1\u00B0C",
   "inches": "$1 ιν.",
   "centimeters": "$1 εκ.",
-  "less-than": "λιγότερα από $1",
+  "less-than": "λιγότερο από $1",
   "and": function(a, b) {
     return a + (a.indexOf(",") !== -1 ? ", και " : " και ") + b;
   },
@@ -129,10 +116,22 @@ module.exports = require("../template")({
   "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",
+  "temperatures-peaking": function(temperature,day){
+    let sop = singular_or_plural(temperature,'στον','στους');
+    return `τη θερμοκρασία να κορυφώνεται ${sop} ${temperature} ${day}`;
+  },
+  "temperatures-rising": function(temperature,day){
+    let sop = singular_or_plural(temperature,'τον','τους');
+    return `τη θερμοκρασία να αυξάνεται έως ${sop} ${temperature} ${day}`;
+  },
+  "temperatures-valleying": function(temperature,day){
+    let sop = singular_or_plural(temperature,'στον','στους');
+    return `τη θερμοκρασία να πέφτει ${sop} ${temperature} ${day}`;
+  },
+  "temperatures-falling": function(temperature,day){
+    let sop = singular_or_plural(temperature,'στον','στους');
+    return `τη θερμοκρασία να μειώνεται ${sop} ${temperature} ${day}`;
+  },
   /* Capitalize the first letter of every word */
   "title": function(str) {
     return str.charAt(0).toUpperCase() + str.slice(1);


Test patch:
diff --git a/test_cases/el.json b/test_cases/el.json
index 89cbafd..805ac16 100644
--- a/test_cases/el.json
+++ b/test_cases/el.json
@@ -83,10 +83,10 @@
   "Ομίχλη":
     ["title", "fog"],
 
-  "Μερικώς νεφελώδης":
+  "Μερική νέφωση":
     ["title", "medium-clouds"],
 
-  "Νεφελώδης":
+  "Συννεφιά":
     ["title", "heavy-clouds"],
 
 
@@ -96,7 +96,7 @@
   "Ασθενής βροχή και ισχυρός άνεμος":
     ["title", ["and", "very-light-rain", "heavy-wind"]],
 
-  "Υγρασία και αραιές νεφώσεις":
+  "Υγρασία και αραιή νέφωση":
     ["title", ["and", "high-humidity", "light-clouds"]],
 
   "Αίθριος για αυτή την ώρα.":
@@ -122,7 +122,7 @@
         ["minutes", 25],
         ["minutes", 8]]],
 
-  "Μερικώς νεφελώδης κατά τη διάρκεια της ημέρας.":
+  "Μερική νέφωση κατά τη διάρκεια της ημέρας.":
     ["sentence", ["for-day", "medium-clouds"]],
 
   "Ασθενές χιονόνερο που θα αρχίσει το πρωί.":
@@ -148,7 +148,7 @@
       "later-today-morning",
       "today-evening"]],
 
-  "Νεφελώδης που θα αρχίσει το απόγευμα, και θα συνεχιστεί μέχρι το βράδυ.":
+  "Συννεφιά που θα αρχίσει το απόγευμα, και θα συνεχιστεί μέχρι το βράδυ.":
     ["sentence", ["starting-continuing-until",
       "heavy-clouds",
       "evening",
@@ -167,7 +167,7 @@
         "today-afternoon"],
       ["during", "medium-sleet", "tomorrow-morning"]]],
 
-  "Νεφελώδης που θα αρχίσει αργότερα το βράδυ και ισχυρή χιονόπτωση αύριο το μεσημέρι.":
+  "Συννεφιά που θα αρχίσει αργότερα το βράδυ και ισχυρή χιονόπτωση αύριο το μεσημέρι.":
     ["sentence", ["and",
       ["starting", "heavy-clouds", "later-today-night"],
       ["during", "heavy-snow", "tomorrow-afternoon"]]],
@@ -194,41 +194,41 @@
     ["sentence", ["for-day",
       ["parenthetical", "heavy-snow", ["inches", ["range", 8, 12]]]]],
 
-  "Χιονόπτωση (λιγότερα από 1 εκ.) το μεσημέρι.":
+  "Χιονόπτωση (λιγότερο από 1 εκ.) το μεσημέρι.":
     ["sentence", ["during",
       ["parenthetical", "medium-snow", ["less-than", ["centimeters", 1]]],
       "afternoon"]],
 
 
-  "Καθόλου υετός κατά τη διάρκεια της εβδομάδας, με θερμοκρασίες να κορυφώνονται στους 85\u00B0F αύριο.":
+  "Καθόλου υετός κατά τη διάρκεια της εβδομάδας, με τη θερμοκρασία να κορυφώνεται στους 85\u00B0F αύριο.":
     ["sentence", ["with",
       ["for-week", "no-precipitation"],
       ["temperatures-peaking",
         ["fahrenheit", 85],
         "tomorrow"]]],
 
-  "Μικτός υετός το Σαββατοκύριακο, με θερμοκρασίες να αυξάνονται έως τους 32\u00B0C την Πέμπτη.":
+  "Μικτός υετός το Σαββατοκύριακο, με τη θερμοκρασία να αυξάνεται έως τους 32\u00B0C την Πέμπτη.":
     ["sentence", ["with",
       ["over-weekend", "mixed-precipitation"],
       ["temperatures-rising",
         ["celsius", 32],
         "thursday"]]],
 
-  "Ασθενής βροχή την Δευτέρα, με θερμοκρασίες να πέφτουν στους 15\u00B0F την Παρασκευή.":
+  "Ασθενής βροχή την Δευτέρα, με τη θερμοκρασία να πέφτει στους 15\u00B0F την Παρασκευή.":
     ["sentence", ["with",
       ["during", "very-light-rain", "monday"],
       ["temperatures-valleying",
         ["fahrenheit", 15],
         "friday"]]],
 
-  "Ελαφρά χιονόπτωση την Τρίτη και την Τετάρτη, με θερμοκρασίες να μειώνονται στους 0\u00B0C την Κυριακή.":
+  "Ελαφρά χιονόπτωση την Τρίτη και την Τετάρτη, με τη θερμοκρασία να μειώνεται στους 0\u00B0C την Κυριακή.":
     ["sentence", ["with",
       ["during", "light-snow", ["and", "tuesday", "wednesday"]],
       ["temperatures-falling",
         ["celsius", 0],
         "sunday"]]],
 
-  "Υετός σήμερα μέχρι το Σάββατο, με θερμοκρασίες να κορυφώνονται στους 100\u00B0F την Δευτέρα.":
+  "Υετός σήμερα μέχρι το Σάββατο, με τη θερμοκρασία να κορυφώνεται στους 100\u00B0F την Δευτέρα.":
     ["sentence", ["with",
       ["during",
         "medium-precipitation",