Repository: darkskyapp/forecast-io-translations
Pull request #49 (2015-09-18 19:33:33)

Added Croatian translation


Patch:
diff --git a/lib/lang/hr.js b/lib/lang/hr.js
new file mode 100644
index 0000000..56c03f4
--- /dev/null
+++ b/lib/lang/hr.js
@@ -0,0 +1,151 @@
+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.slice(0, 9) === "overnight" ? period.slice(4) :
+         period.slice(0, 7) ===   "in the " ? period.slice(7) :
+                                              period;
+}
+
+module.exports = require("../template")({
+  "clear": "vedro",
+  "no-precipitation": "nema padalina",
+  "mixed-precipitation": "različite padaline",
+  "possible-very-light-precipitation": "moguće su slabe padaline",
+  "very-light-precipitation": "slabe padaline",
+  "possible-light-precipitation": "moguće su slabe padaline",
+  "light-precipitation": "slabe padaline",
+  "medium-precipitation": "padaline",
+  "heavy-precipitation": "jake padaline",
+  "possible-very-light-rain": "moguća je sitna kiša",
+  "very-light-rain": "sitna kiša",
+  "possible-light-rain": "moguća je sitna kiša",
+  "light-rain": "sitna kiša",
+  "medium-rain": "kiša",
+  "heavy-rain": "jaka kiša",
+  "possible-very-light-sleet": "moguća je slaba susnježica",
+  "very-light-sleet": "slaba susnježica",
+  "possible-light-sleet": "moguća je slaba susnježica",
+  "light-sleet": "slaba susnježica",
+  "medium-sleet": "susnježica",
+  "heavy-sleet": "jaka susnježica",
+  "possible-very-light-snow": "moguć je sitan snijeg",
+  "very-light-snow": "sitan snijeg",
+  "possible-light-snow": "moguć je sitan snijeg",
+  "light-snow": "sitan snijeg",
+  "medium-snow": "snijeg",
+  "heavy-snow": "jak snijeg",
+  "light-wind": "vjetrovito",
+  "medium-wind": "vjetrovito",
+  "heavy-wind": "jako vjetrovito",
+  "low-humidity": "suho",
+  "high-humidity": "vlažno",
+  "fog": "maglovito",
+  "light-clouds": "djelomice oblačno",
+  "medium-clouds": "pretežno oblačno",
+  "heavy-clouds": "oblačno",
+  "today-morning": "ovo jutro",
+  "later-today-morning": "kasnije ovog jutra",
+  "today-afternoon": "poslijepodne",
+  "later-today-afternoon": "kasnije poslijepodne",
+  "today-evening": "večeras",
+  "later-today-evening": "kasnije večeras",
+  "today-night": "noći",
+  "later-today-night": "kasnije u noć",
+  "tomorrow-morning": "sutra ujutro",
+  "tomorrow-afternoon": "sutra popodne",
+  "tomorrow-evening": "sutra navečer",
+  "tomorrow-night": "sutra u noć",
+  "morning": "ujutro",
+  "afternoon": "popodne",
+  "evening": "večeras",
+  "night": "noći",
+  "today": "danas",
+  "tomorrow": "sutra",
+  "sunday": "u nedjelju",
+  "monday": "u ponedjeljak",
+  "tuesday": "u utorak",
+  "wednesday": "u srijedu",
+  "thursday": "u četvrtak",
+  "friday": "u petak",
+  "saturday": "u subotu",
+  "minutes": "$1 minuta",
+  "fahrenheit": "$1\u00B0F",
+  "celsius": "$1\u00B0C",
+  "inches": "$1 inča",
+  "centimeters": "$1 centimetra",
+  "less-than": "ispod $1",
+  "and": function(a, b) {
+    return join_with_shared_prefix(
+      a,
+      b,
+      a.indexOf(",") !== -1 ? ", i " : " i "
+    );
+  },
+  "through": function(a, b) {
+    return join_with_shared_prefix(a, b, " do ");
+  },
+  "with": "$1, sa $2",
+  "range": "$1\u2013$2",
+  "parenthetical": "$1 ($2)",
+  "for-hour": "$1 za ovaj sat",
+  "starting-in": "$1 počinje za $2",
+  "stopping-in": "$1 prestaje za $2",
+  "starting-then-stopping-later": "$1 počinje za $2, pa prestaje za $3",
+  "stopping-then-starting-later": "$1 prestaje za $2, pa počinje za $3",
+  "for-day": "$1 tijekom cijelog dana",
+  "starting": "$1 počinje $2",
+  "until": function(condition, period) {
+    return condition + " do " + strip_prefix(period);
+  },
+  "until-starting-again": function(condition, a, b) {
+    return condition + " do " + strip_prefix(a) + ", i opet počinje " + b;
+  },
+  "starting-continuing-until": function(condition, a, b) {
+    return condition + " počinje " + a + ", ostaje do " +
+           strip_prefix(b);
+  },
+  "during": "$1 $2",
+  "for-week": "$1 tijekom tjedna",
+  "over-weekend": "$1 tijekom vikenda",
+  "temperatures-peaking": "temperaturom najviše do $1 $2",
+  "temperatures-rising": "temperaturom raste do $1 $2",
+  "temperatures-valleying": "temperaturom najniže do $1 $2",
+  "temperatures-falling": "temperaturom pada do $1 $2",
+  /* 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.charAt(0).toUpperCase() + str.slice(1);
+    /*return str.replace(
+      /\b(?:a(?!nd\b)|[^\Wa])/g,
+      function(letter) {
+        return letter.toUpperCase();
+      }
+    );*/
+  },
+  /* 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/hr.json b/test_cases/hr.json
new file mode 100644
index 0000000..ea0b5d9
--- /dev/null
+++ b/test_cases/hr.json
@@ -0,0 +1,239 @@
+{
+  "Vedro":
+    ["title", "clear"],
+
+  "Moguće su slabe padaline":
+    ["title", "possible-very-light-precipitation"],
+
+  "Slabe padaline":
+    ["title", "very-light-precipitation"],
+
+  "Moguće su slabe padaline":
+    ["title", "possible-light-precipitation"],
+
+  "Slabe padaline":
+    ["title", "light-precipitation"],
+
+  "Padaline":
+    ["title", "medium-precipitation"],
+
+  "Jake padaline":
+    ["title", "heavy-precipitation"],
+
+  "Moguća je sitna kiša":
+    ["title", "possible-very-light-rain"],
+
+  "Sitna kiša":
+    ["title", "very-light-rain"],
+
+  "Moguća je sitna kiša":
+    ["title", "possible-light-rain"],
+
+  "Sitna kiša":
+    ["title", "light-rain"],
+
+  "Kiša":
+    ["title", "medium-rain"],
+
+  "Jaka kiša":
+    ["title", "heavy-rain"],
+
+  "Moguća je slaba susnježica":
+    ["title", "possible-very-light-sleet"],
+
+  "Slaba susnježica":
+    ["title", "very-light-sleet"],
+
+  "Moguća je slaba susnježica":
+    ["title", "possible-light-sleet"],
+
+  "Slaba susnježica":
+    ["title", "light-sleet"],
+
+  "Susnježica":
+    ["title", "medium-sleet"],
+
+  "Jaka susnježica":
+    ["title", "heavy-sleet"],
+
+  "Moguć je sitan snijeg":
+    ["title", "possible-very-light-snow"],
+
+  "Sitan snijeg":
+    ["title", "very-light-snow"],
+
+  "Moguć je sitan snijeg":
+    ["title", "possible-light-snow"],
+
+  "Sitan snijeg":
+    ["title", "light-snow"],
+
+  "Snijeg":
+    ["title", "medium-snow"],
+
+  "Jak snijeg":
+    ["title", "heavy-snow"],
+
+  "Vjetrovito":
+    ["title", "medium-wind"],
+
+  "Jako vjetrovito":
+    ["title", "heavy-wind"],
+
+  "Maglovito":
+    ["title", "fog"],
+
+  "Pretežno oblačno":
+    ["title", "medium-clouds"],
+
+  "Oblačno":
+    ["title", "heavy-clouds"],
+
+  "Suho i vjetrovito":
+    ["title", ["and", "low-humidity", "light-wind"]],
+
+  "Sitna kiša i jako vjetrovito":
+    ["title", ["and", "very-light-rain", "heavy-wind"]],
+
+  "Vlažno i djelomice oblačno":
+    ["title", ["and", "high-humidity", "light-clouds"]],
+
+  "Vedro za ovaj sat.":
+    ["sentence", ["for-hour", "clear"]],
+
+  "Sitan snijeg počinje za 35 minuta.":
+    ["sentence", ["starting-in", "very-light-snow", ["minutes", 35]]],
+
+  "Sitna kiša prestaje za 15 minuta.":
+    ["sentence", ["stopping-in", "light-rain", ["minutes", 15]]],
+
+  "Jaka susnježica počinje za 20 minuta, pa prestaje za 30 minuta.":
+    ["sentence",
+      ["starting-then-stopping-later",
+        "heavy-sleet",
+        ["minutes", 20],
+        ["minutes", 30]]],
+
+  "Kiša prestaje za 25 minuta, pa počinje za 8 minuta.":
+    ["sentence",
+      ["stopping-then-starting-later",
+        "medium-rain",
+        ["minutes", 25],
+        ["minutes", 8]]],
+
+
+  "Pretežno oblačno tijekom cijelog dana.":
+    ["sentence", ["for-day", "medium-clouds"]],
+
+  "Slaba susnježica počinje ujutro.":
+    ["sentence", ["starting", "very-light-sleet", "morning"]],
+
+  "Vjetrovito do noći.":
+    ["sentence", ["until", "medium-wind", "today-night"]],
+
+  "Jake padaline do popodne.":
+    ["sentence", ["until", "heavy-precipitation", "afternoon"]],
+
+  "Vjetrovito popodne.":
+    ["sentence", ["during", "light-wind", "afternoon"]],
+
+  "Snijeg kasnije večeras i sutra ujutro.":
+    ["sentence", ["during",
+      "medium-snow",
+      ["and", "later-today-evening", "tomorrow-morning"]]],
+
+  "Jaka kiša do kasnije ovog jutra, i opet počinje večeras.":
+    ["sentence", ["until-starting-again",
+      "heavy-rain",
+      "later-today-morning",
+      "today-evening"]],
+
+  "Oblačno počinje večeras, ostaje do noći.":
+    ["sentence", ["starting-continuing-until",
+      "heavy-clouds",
+      "evening",
+      "night"]],
+
+  "Slaba susnježica kasnije poslijepodne i maglovito sutra ujutro.":
+    ["sentence", ["and",
+      ["during", "light-sleet", "later-today-afternoon"],
+      ["during", "fog", "tomorrow-morning"]]],
+
+  "Jako vjetrovito počinje ovo jutro, ostaje do poslijepodne, i susnježica sutra ujutro.":
+    ["sentence", ["and",
+      ["starting-continuing-until",
+        "heavy-wind",
+        "today-morning",
+        "today-afternoon"],
+      ["during", "medium-sleet", "tomorrow-morning"]]],
+
+  "Oblačno počinje kasnije u noć i jak snijeg sutra popodne.":
+    ["sentence", ["and",
+      ["starting", "heavy-clouds", "later-today-night"],
+      ["during", "heavy-snow", "tomorrow-afternoon"]]],
+
+  "Suho noći i slabe padaline počinje sutra navečer, ostaje do sutra u noć.":
+    ["sentence", ["and",
+      ["during", "low-humidity", "today-night"],
+      ["starting-continuing-until",
+        "light-precipitation",
+        "tomorrow-evening",
+        "tomorrow-night"]]],
+
+  "Snijeg (5 inča) noći.":
+    ["sentence", ["during",
+      ["parenthetical", "medium-snow", ["inches", 5]],
+      "night"]],
+
+  "Sitan snijeg (2 centimetra) kasnije ovog jutra.":
+    ["sentence", ["during",
+      ["parenthetical", "light-snow", ["centimeters", 2]],
+      "later-today-morning"]],
+
+  "Jak snijeg (8\u201312 inča) tijekom cijelog dana.":
+    ["sentence", ["for-day",
+      ["parenthetical", "heavy-snow", ["inches", ["range", 8, 12]]]]],
+
+  "Snijeg (ispod 1 centimetra) popodne.":
+    ["sentence", ["during",
+      ["parenthetical", "medium-snow", ["less-than", ["centimeters", 1]]],
+      "afternoon"]],
+
+
+  "Nema padalina tijekom tjedna, sa temperaturom najviše do 85°F sutra.":
+    ["sentence", ["with",
+      ["for-week", "no-precipitation"],
+      ["temperatures-peaking",
+        ["fahrenheit", 85],
+        "tomorrow"]]],
+
+  "Različite padaline tijekom vikenda, sa temperaturom raste do 32\u00B0C u četvrtak.":
+    ["sentence", ["with",
+      ["over-weekend", "mixed-precipitation"],
+      ["temperatures-rising",
+        ["celsius", 32],
+        "thursday"]]],
+
+  "Sitna kiša u ponedjeljak, sa temperaturom najniže do 15°F u petak.":
+    ["sentence", ["with",
+      ["during", "very-light-rain", "monday"],
+      ["temperatures-valleying",
+        ["fahrenheit", 15],
+        "friday"]]],
+
+  "Sitan snijeg u utorak i srijedu, sa temperaturom pada do 0\u00B0C u nedjelju.":
+    ["sentence", ["with",
+      ["during", "light-snow", ["and", "tuesday", "wednesday"]],
+      ["temperatures-falling",
+        ["celsius", 0],
+        "sunday"]]],
+
+  "Padaline danas do u subotu, sa temperaturom najviše do 100\u00B0F u ponedjeljak.":
+    ["sentence", ["with",
+      ["during",
+        "medium-precipitation",
+        ["through", "today", "saturday"]],
+      ["temperatures-peaking",
+        ["fahrenheit", 100],
+        "monday"]]]     
+}