Repository: darkskyapp/forecast-io-translations (js)

Issue:
Support Thunderstorm and Next-Week Properties in Italian
In the near future, the API will begin generating the following new properties:

*   `possible-thunderstorm`
*   `thunderstorm`
*   `next-sunday`
*   `next-monday`
*   `next-tuesday`
*   `next-wednesday`
*   `next-thursday`
*   `next-friday`
*   `next-saturday`

Add support for these properties to Italian. (Information is available in the README, and examples are visible in `/lib/lang/en.js` and `/test_cases/en.js`.)


Pull request:
Fix #103  - Add 'thunderstorm' and 'next-*' translations for Italian

Patch:
diff --git a/lib/lang/it.js b/lib/lang/it.js
index 53aed7f..30d2d48 100644
--- a/lib/lang/it.js
+++ b/lib/lang/it.js
@@ -37,7 +37,7 @@ module.exports = require("../template")({
   "possible-light-rain": "possibilità di pioggia leggera",
   "light-rain": "pioggia leggera",
   "medium-rain": "pioggia",
-  "heavy-rain": "temporale",
+  "heavy-rain": "temporali",
   "possible-very-light-sleet": "possibilità di nevischio molto leggero",
   "very-light-sleet": "nevischio molto leggero",
   "possible-light-sleet": "possibilità di nevischio leggero",
@@ -50,6 +50,8 @@ module.exports = require("../template")({
   "light-snow": "neve leggera",
   "medium-snow": "nevicate",
   "heavy-snow": "forti nevicate",
+  "possible-thunderstorm": "possibili nubifragi",
+  "thunderstorm": "nubifragi",
   "light-wind": "venticello",
   "medium-wind": "vento",
   "heavy-wind": "forte vento",
@@ -84,6 +86,13 @@ module.exports = require("../template")({
   "thursday": "Giovedì",
   "friday": "Venerdì",
   "saturday": "Sabato",
+  "next-sunday": "prossima Domanica",
+  "next-monday": "prossimo Lunedì",
+  "next-tuesday": "prossimo Martedì",
+  "next-wednesday": "prossimo Mercoledì",
+  "next-thursday": "prossimo Giovedì",
+  "next-friday": "prossimo Venerdì",
+  "next-saturday": "prossimo Sabato",
   "minutes": "$1 min.",
   "fahrenheit": "$1\u00B0F",
   "celsius": "$1\u00B0C",
@@ -91,18 +100,23 @@ module.exports = require("../template")({
   "centimeters": "$1 cm.",
   "less-than": "meno di $1",
   "and": function(a, b) {
-    return join_with_shared_prefix(
-      a,
-      b,
-      a.indexOf(",") !== -1 ? ", e " : " e "
-    );
+    var joiner = b.length > 8 && b.slice(0,8) === "prossimo" ? " e il " :
+                 b.length > 8 && b.slice(0,8) === "prossima" ? " e la " :
+                 " e ";
+    if (a.indexOf(",") !== -1) joiner = "," + joiner;
+    return join_with_shared_prefix(a,b,joiner);
   },
   "through": function(a, b) {
-    return join_with_shared_prefix(a, b, " fino a ");
+    var joiner = b.length > 8 && b.slice(0,8) === "prossimo" ? " fino al " :
+                 b.length > 8 && b.slice(0,8) === "prossima" ? " fino alla " :
+                 " fino a ";
+    return join_with_shared_prefix(a, b, joiner);
   },
   "with": "$1, con $2",
   "range": "$1\u2013$2",
-  "parenthetical": "$1 ($2)",
+  "parenthetical": function(a, b) {
+    return a + " (" + b + (a === "precipitazioni miste" ? " di neve)" : ")");
+  },
   "for-hour": "$1 per un ora",
   "starting-in": "$1 tra $2",
   "stopping-in": "$1 per $2",


Test patch:
diff --git a/test_cases/it.json b/test_cases/it.json
index bda5069..3c9b774 100644
--- a/test_cases/it.json
+++ b/test_cases/it.json
@@ -35,13 +35,13 @@
   "Pioggia":
     ["title", "medium-rain"],
 
-  "Temporale":
+  "Temporali":
     ["title", "heavy-rain"],
 
-  "Possibilità Di Nevischio Leggero":
+  "Possibilità Di Nevischio Molto Leggero":
     ["title", "possible-very-light-sleet"],
 
-  "Nevischio Leggero":
+  "Nevischio Molto Leggero":
     ["title", "very-light-sleet"],
 
   "Possibilità Di Nevischio Leggero":
@@ -83,7 +83,7 @@
   "Nebbia":
     ["title", "fog"],
 
-  "Nuvoloso":
+  "Nubi Sparse":
     ["title", "medium-clouds"],
 
   "Nuvoloso":
@@ -141,7 +141,7 @@
       "medium-snow",
       ["and", "later-today-evening", "tomorrow-morning"]]],
 
-  "Temporale fino a a mattina inoltrata, ricominciando da stasera.":
+  "Temporali fino a a mattina inoltrata, ricominciando da stasera.":
     ["sentence", ["until-starting-again",
       "heavy-rain",
       "later-today-morning",
@@ -220,9 +220,9 @@
         ["fahrenheit", 15],
         "friday"]]],
 
-  "Neve leggera Martedì e Mercoledì, con temperature in diminuzione fino a 0\u00B0C Domenica.":
+  "Neve leggera Martedì e il prossimo Mercoledì, con temperature in diminuzione fino a 0\u00B0C Domenica.":
     ["sentence", ["with",
-      ["during", "light-snow", ["and", "tuesday", "wednesday"]],
+      ["during", "light-snow", ["and", "tuesday", "next-wednesday"]],
       ["temperatures-falling",
         ["celsius", 0],
         "sunday"]]],
@@ -234,5 +234,22 @@
         ["through", "today", "saturday"]],
       ["temperatures-peaking",
         ["fahrenheit", 100],
-        "monday"]]]
+        "monday"]]],
+
+  "Precipitazioni miste (1\u20133 in. di neve) durante il giorno.":
+    ["sentence",
+      ["for-day",
+        ["parenthetical", "mixed-precipitation", ["inches", ["range", 1, 3]]]]],
+
+  "Forti Nevicate (1\u20133 In.)":
+    ["title", ["parenthetical", "heavy-snow", ["inches", ["range", 1, 3]]]],
+
+  "Forti Nevicate (3\u20135 Cm.)":
+    ["title", ["parenthetical", "heavy-snow", ["centimeters", ["range", 3, 5]]]],
+
+  "Possibili Nubifragi":
+    ["title", "possible-thunderstorm"],
+
+  "Temporali e Nubifragi":
+    ["title", ["and", "heavy-rain", "thunderstorm"]]
 }