|
|
package main
|
|
|
|
|
|
var (
|
|
|
locale = map[string]string{
|
|
|
"af": "af_ZA",
|
|
|
"am": "am_ET",
|
|
|
"ar": "ar_TN",
|
|
|
"az": "az_AZ",
|
|
|
"be": "be_BY",
|
|
|
"bg": "bg_BG",
|
|
|
"bn": "bn_IN",
|
|
|
"bs": "bs_BA",
|
|
|
"ca": "ca_ES",
|
|
|
"cs": "cs_CZ",
|
|
|
"cy": "cy_GB",
|
|
|
"da": "da_DK",
|
|
|
"de": "de_DE",
|
|
|
"el": "el_GR",
|
|
|
"eo": "eo",
|
|
|
"es": "es_ES",
|
|
|
"et": "et_EE",
|
|
|
"eu": "eu_ES",
|
|
|
"fa": "fa_IR",
|
|
|
"fi": "fi_FI",
|
|
|
"fr": "fr_FR",
|
|
|
"fy": "fy_NL",
|
|
|
"ga": "ga_IE",
|
|
|
"gl": "gl_ES",
|
|
|
"he": "he_IL",
|
|
|
"hi": "hi_IN",
|
|
|
"hr": "hr_HR",
|
|
|
"hu": "hu_HU",
|
|
|
"hy": "hy_AM",
|
|
|
"ia": "ia",
|
|
|
"id": "id_ID",
|
|
|
"is": "is_IS",
|
|
|
"it": "it_IT",
|
|
|
"ja": "ja_JP",
|
|
|
"jv": "en_US",
|
|
|
"ka": "ka_GE",
|
|
|
"kk": "kk_KZ",
|
|
|
"ko": "ko_KR",
|
|
|
"ky": "ky_KG",
|
|
|
"lt": "lt_LT",
|
|
|
"lv": "lv_LV",
|
|
|
"mg": "mg_MG",
|
|
|
"mk": "mk_MK",
|
|
|
"ml": "ml_IN",
|
|
|
"mr": "mr_IN",
|
|
|
"nb": "nb_NO",
|
|
|
"nl": "nl_NL",
|
|
|
"nn": "nn_NO",
|
|
|
"oc": "oc_FR",
|
|
|
"pl": "pl_PL",
|
|
|
"pt-br": "pt_BR",
|
|
|
"pt": "pt_PT",
|
|
|
"ro": "ro_RO",
|
|
|
"ru": "ru_RU",
|
|
|
"sk": "sk_SK",
|
|
|
"sl": "sl_SI",
|
|
|
"sr-lat": "sr_RS@latin",
|
|
|
"sr": "sr_RS",
|
|
|
"sv": "sv_SE",
|
|
|
"sw": "sw_KE",
|
|
|
"ta": "ta_IN",
|
|
|
"th": "th_TH",
|
|
|
"tr": "tr_TR",
|
|
|
"uk": "uk_UA",
|
|
|
"uz": "uz_UZ",
|
|
|
"vi": "vi_VN",
|
|
|
"zh-cn": "zh_CN",
|
|
|
"zh-tw": "zh_TW",
|
|
|
"zh": "zh_CN",
|
|
|
"zu": "zu_ZA",
|
|
|
}
|
|
|
|
|
|
localizedCaption = map[string]string{
|
|
|
"af": "Weer verslag vir:",
|
|
|
"am": "የአየር ሁኔታ ዘገባ ለ ፥",
|
|
|
"ar": "تقرير حالة ألطقس",
|
|
|
"az": "Hava proqnozu:",
|
|
|
"be": "Прагноз надвор'я для:",
|
|
|
"bg": "Прогноза за времето в:",
|
|
|
"bn": "আবহাওয়া সঙ্ক্রান্ত তথ্য",
|
|
|
"bs": "Vremenske prognoze za:",
|
|
|
"ca": "Informe del temps per a:",
|
|
|
"cs": "Předpověď počasí pro:",
|
|
|
"cy": "Adroddiad tywydd ar gyfer:",
|
|
|
"da": "Vejret i:",
|
|
|
"de": "Wetterbericht für:",
|
|
|
"el": "Πρόγνωση καιρού για:",
|
|
|
"eo": "Veterprognozo por:",
|
|
|
"es": "El tiempo en:",
|
|
|
"et": "Ilmaprognoos:",
|
|
|
"eu": "Eguraldia:",
|
|
|
"fa": "اوه و بآ تیعضو شرازگ",
|
|
|
"fi": "Säätiedotus:",
|
|
|
"fr": "Prévisions météo pour:",
|
|
|
"fy": "Waarberjocht foar:",
|
|
|
"ga": "Réamhaisnéis na haimsire do:",
|
|
|
"gl": "Previsión do tempo en:",
|
|
|
"he": ":ריוואה גזמ תיזחת",
|
|
|
"hi": "मौसम की जानकारी",
|
|
|
"hr": "Vremenska prognoza za:",
|
|
|
"hu": "Időjárás előrejelzés:",
|
|
|
"hy": "Եղանակի տեսություն:",
|
|
|
"ia": "Le tempore a:",
|
|
|
"id": "Prakiraan cuaca:",
|
|
|
"it": "Previsioni meteo:",
|
|
|
"is": "Veðurskýrsla fyrir:",
|
|
|
"ja": "天気予報:",
|
|
|
"jv": "Weather forecast for:",
|
|
|
"ka": "ამინდის პროგნოზი:",
|
|
|
"kk": "Ауа райы:",
|
|
|
"ko": "일기 예보:",
|
|
|
"ky": "Аба ырайы:",
|
|
|
"lt": "Orų prognozė:",
|
|
|
"lv": "Laika ziņas:",
|
|
|
"mk": "Прогноза за времето во:",
|
|
|
"ml": "കാലാവസ്ഥ റിപ്പോർട്ട്:",
|
|
|
"mr": "हवामानाचा अंदाज:",
|
|
|
"nb": "Værmelding for:",
|
|
|
"nl": "Weerbericht voor:",
|
|
|
"nn": "Vêrmelding for:",
|
|
|
"oc": "Previsions metèo per:",
|
|
|
"pl": "Pogoda w:",
|
|
|
"pt": "Previsão do tempo para:",
|
|
|
"pt-br": "Previsão do tempo para:",
|
|
|
"ro": "Prognoza meteo pentru:",
|
|
|
"ru": "Прогноз погоды:",
|
|
|
"sk": "Predpoveď počasia pre:",
|
|
|
"sl": "Vremenska napoved za",
|
|
|
"sr": "Временска прогноза за:",
|
|
|
"sr-lat": "Vremenska prognoza za:",
|
|
|
"sv": "Väderleksprognos för:",
|
|
|
"sw": "Ripoti ya hali ya hewa, jiji la:",
|
|
|
"ta": "வானிலை அறிக்கை",
|
|
|
"te": "వాతావరణ సమాచారము:",
|
|
|
"th": "รายงานสภาพอากาศ:",
|
|
|
"tr": "Hava beklentisi:",
|
|
|
"uk": "Прогноз погоди для:",
|
|
|
"uz": "Ob-havo bashorati:",
|
|
|
"vi": "Báo cáo thời tiết:",
|
|
|
"zu": "Isimo sezulu:",
|
|
|
"zh": "天气预报:",
|
|
|
"zh-cn": "天气预报:",
|
|
|
"zh-tw": "天氣預報:",
|
|
|
"mg": "Vinavina toetr'andro hoan'ny:",
|
|
|
}
|
|
|
|
|
|
daytimeTranslation = map[string][]string{
|
|
|
"af": {"Oggend", "Middag", "Vroegaand", "Laatnag"},
|
|
|
"am": {"ጠዋት", "ከሰዓት በኋላ", "ምሽት", "ሌሊት"},
|
|
|
"ar": {"ﺎﻠﻠﻴﻟ", "ﺎﻠﻤﺳﺍﺀ", "ﺎﻠﻈﻫﺭ", "ﺎﻠﺼﺑﺎﺣ"},
|
|
|
"az": {"Səhər", "Gün", "Axşam", "Gecə"},
|
|
|
"be": {"Раніца", "Дзень", "Вечар", "Ноч"},
|
|
|
"bg": {"Сутрин", "Обяд", "Вечер", "Нощ"},
|
|
|
"bn": {"সকাল", "দুপুর", "সন্ধ্যা", "রাত্রি"},
|
|
|
"bs": {"Ujutro", "Dan", "Večer", "Noć"},
|
|
|
"cs": {"Ráno", "Ve dne", "Večer", "V noci"},
|
|
|
"ca": {"Matí", "Dia", "Tarda", "Nit"},
|
|
|
"cy": {"Bore", "Dydd", "Hwyr", "Nos"},
|
|
|
"da": {"Morgen", "Middag", "Aften", "Nat"},
|
|
|
"de": {"Früh", "Mittag", "Abend", "Nacht"},
|
|
|
"el": {"Πρωί", "Μεσημέρι", "Απόγευμα", "Βράδυ"},
|
|
|
"en": {"Morning", "Noon", "Evening", "Night"},
|
|
|
"eo": {"Mateno", "Tago", "Vespero", "Nokto"},
|
|
|
"es": {"Mañana", "Mediodía", "Tarde", "Noche"},
|
|
|
"et": {"Hommik", "Päev", "Õhtu", "Öösel"},
|
|
|
"eu": {"Goiza", "Eguerdia", "Arratsaldea", "Gaua"},
|
|
|
"fa": {"حبص", "رهظ", "رصع", "بش"},
|
|
|
"fi": {"Aamu", "Keskipäivä", "Ilta", "Yö"},
|
|
|
"fr": {"Matin", "Après-midi", "Soir", "Nuit"},
|
|
|
"fy": {"Moarns", "Middeis", "Jûns", "Nachts"},
|
|
|
"ga": {"Maidin", "Nóin", "Tráthnóna", "Oíche"},
|
|
|
"gl": {"Mañá", "Mediodía", "Tarde", "Noite"},
|
|
|
"he": {"רקוב", "םוֹיְ", "ברֶעֶ", "הלָיְלַ"},
|
|
|
"hi": {"प्रातःकाल", "दोपहर", "सायंकाल", "रात"},
|
|
|
"hr": {"Jutro", "Dan", "Večer", "Noć"},
|
|
|
"hu": {"Reggel", "Dél", "Este", "Éjszaka"},
|
|
|
"hy": {"Առավոտ", "Կեսօր", "Երեկո", "Գիշեր"},
|
|
|
"ia": {"Matino", "Mediedie", "Vespere", "Nocte"},
|
|
|
"id": {"Pagi", "Hari", "Petang", "Malam"},
|
|
|
"it": {"Mattina", "Pomeriggio", "Sera", "Notte"},
|
|
|
"is": {"Morgunn", "Dagur", "Kvöld", "Nótt"},
|
|
|
"ja": {"朝", "昼", "夕", "夜"},
|
|
|
"jv": {"Morning", "Noon", "Evening", "Night"},
|
|
|
"ka": {"დილა", "დღე", "საღამო", "ღამე"},
|
|
|
"kk": {"Таң", "Күндіз", "Кеш", "Түн"},
|
|
|
"ko": {"아침", "낮", "저녁", "밤"},
|
|
|
"ky": {"Эртең", "Күн", "Кеч", "Түн"},
|
|
|
"lt": {"Rytas", "Diena", "Vakaras", "Naktis"},
|
|
|
"lv": {"Rīts", "Diena", "Vakars", "Nakts"},
|
|
|
"mk": {"Утро", "Пладне", "Вечер", "Ноќ"},
|
|
|
"ml": {"രാവിലെ", "മധ്യാഹ്നം", "വൈകുന്നേരം", "രാത്രി"},
|
|
|
"mr": {"सकाळ", "दुपार", "संध्याकाळ", "रात्र"},
|
|
|
"nl": {"'s Ochtends", "'s Middags", "'s Avonds", "'s Nachts"},
|
|
|
"nb": {"Morgen", "Middag", "Kveld", "Natt"},
|
|
|
"nn": {"Morgon", "Middag", "Kveld", "Natt"},
|
|
|
"oc": {"Matin", "Jorn", "Vèspre", "Nuèch"},
|
|
|
"pl": {"Ranek", "Dzień", "Wieczór", "Noc"},
|
|
|
"pt": {"Manhã", "Meio-dia", "Tarde", "Noite"},
|
|
|
"pt-br": {"Manhã", "Meio-dia", "Tarde", "Noite"},
|
|
|
"ro": {"Dimineaţă", "Amiază", "Seară", "Noapte"},
|
|
|
"ru": {"Утро", "День", "Вечер", "Ночь"},
|
|
|
"sk": {"Ráno", "Cez deň", "Večer", "V noci"},
|
|
|
"sl": {"Jutro", "Dan", "Večer", "Noč"},
|
|
|
"sr": {"Јутро", "Подне", "Вече", "Ноћ"},
|
|
|
"sr-lat": {"Jutro", "Podne", "Veče", "Noć"},
|
|
|
"sv": {"Morgon", "Eftermiddag", "Kväll", "Natt"},
|
|
|
"sw": {"Asubuhi", "Adhuhuri", "Jioni", "Usiku"},
|
|
|
"ta": {"காலை", "நண்பகல்", "சாயங்காலம்", "இரவு"},
|
|
|
"te": {"ఉదయం", "రోజు", "సాయంత్రం", "రాత్రి"},
|
|
|
"th": {"เช้า", "วัน", "เย็น", "คืน"},
|
|
|
"tr": {"Sabah", "Öğle", "Akşam", "Gece"},
|
|
|
"uk": {"Ранок", "День", "Вечір", "Ніч"},
|
|
|
"uz": {"Ertalab", "Kunduzi", "Kechqurun", "Kecha"},
|
|
|
"vi": {"Sáng", "Trưa", "Chiều", "Tối"},
|
|
|
"zh": {"早上", "中午", "傍晚", "夜间"},
|
|
|
"zh-cn": {"早上", "中午", "傍晚", "夜间"},
|
|
|
"zh-tw": {"早上", "中午", "傍晚", "夜間"},
|
|
|
"zu": {"Morning", "Noon", "Evening", "Night"},
|
|
|
"mg": {"Maraina", "Tolakandro", "Ariva", "Alina"},
|
|
|
}
|
|
|
|
|
|
unitTemp = map[bool]string{
|
|
|
false: "C",
|
|
|
true: "F",
|
|
|
}
|
|
|
|
|
|
localizedRain = map[string]map[bool]string{
|
|
|
"en": map[bool]string{
|
|
|
false: "mm",
|
|
|
true: "in",
|
|
|
},
|
|
|
"be": map[bool]string{
|
|
|
false: "мм",
|
|
|
true: "in",
|
|
|
},
|
|
|
"ru": map[bool]string{
|
|
|
false: "мм",
|
|
|
true: "in",
|
|
|
},
|
|
|
"uk": map[bool]string{
|
|
|
false: "мм",
|
|
|
true: "in",
|
|
|
},
|
|
|
}
|
|
|
|
|
|
localizedVis = map[string]map[bool]string{
|
|
|
"en": map[bool]string{
|
|
|
false: "km",
|
|
|
true: "mi",
|
|
|
},
|
|
|
"be": map[bool]string{
|
|
|
false: "км",
|
|
|
true: "mi",
|
|
|
},
|
|
|
"ru": map[bool]string{
|
|
|
false: "км",
|
|
|
true: "mi",
|
|
|
},
|
|
|
"uk": map[bool]string{
|
|
|
false: "км",
|
|
|
true: "mi",
|
|
|
},
|
|
|
}
|
|
|
|
|
|
localizedWind = map[string]map[int]string{
|
|
|
"en": map[int]string{
|
|
|
0: "km/h",
|
|
|
1: "mph",
|
|
|
2: "m/s",
|
|
|
},
|
|
|
"be": map[int]string{
|
|
|
0: "км/г",
|
|
|
1: "mph",
|
|
|
2: "м/c",
|
|
|
},
|
|
|
"ru": map[int]string{
|
|
|
0: "км/ч",
|
|
|
1: "mph",
|
|
|
2: "м/c",
|
|
|
},
|
|
|
"tr": map[int]string{
|
|
|
0: "km/sa",
|
|
|
1: "mph",
|
|
|
2: "m/s",
|
|
|
},
|
|
|
"uk": map[int]string{
|
|
|
0: "км/год",
|
|
|
1: "mph",
|
|
|
2: "м/c",
|
|
|
},
|
|
|
}
|
|
|
)
|
|
|
|
|
|
func unitWind(unit int, lang string) string {
|
|
|
translation, ok := localizedWind[lang]
|
|
|
if !ok {
|
|
|
translation = localizedWind["en"]
|
|
|
}
|
|
|
return translation[unit]
|
|
|
}
|
|
|
|
|
|
func unitVis(unit bool, lang string) string {
|
|
|
translation, ok := localizedVis[lang]
|
|
|
if !ok {
|
|
|
translation = localizedVis["en"]
|
|
|
}
|
|
|
return translation[unit]
|
|
|
}
|
|
|
|
|
|
func unitRain(unit bool, lang string) string {
|
|
|
translation, ok := localizedRain[lang]
|
|
|
if !ok {
|
|
|
translation = localizedRain["en"]
|
|
|
}
|
|
|
return translation[unit]
|
|
|
}
|