Update plasma
This commit is contained in:
parent
cf88cf4a7b
commit
d83c5a0a54
160 changed files with 7837 additions and 0 deletions
|
@ -0,0 +1,39 @@
|
|||
function getNameCity(latitude, longitud, leng, callback) {
|
||||
let url = `https://nominatim.openstreetmap.org/reverse?format=json&lat=${latitude}&lon=${longitud}&accept-language=${leng}`;
|
||||
console.log("Generated URL: ", url); // Para verificar la URL generada
|
||||
|
||||
let req = new XMLHttpRequest();
|
||||
req.open("GET", url, true);
|
||||
|
||||
req.onreadystatechange = function () {
|
||||
if (req.readyState === 4) {
|
||||
if (req.status === 200) {
|
||||
try {
|
||||
let datos = JSON.parse(req.responseText);
|
||||
let address = datos.address;
|
||||
let city = address.city;
|
||||
let county = address.county;
|
||||
let state = address.state;
|
||||
let full = city ? city : state ? state : county;
|
||||
console.log(full);
|
||||
callback(full);
|
||||
} catch (e) {
|
||||
console.error("Error al analizar la respuesta JSON: ", e);
|
||||
}
|
||||
} else {
|
||||
console.error(`city failed`);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
req.onerror = function () {
|
||||
console.error("La solicitud falló");
|
||||
};
|
||||
|
||||
req.ontimeout = function () {
|
||||
console.error("La solicitud excedió el tiempo de espera");
|
||||
};
|
||||
|
||||
req.send();
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
function obtenerDatosClimaticos(latitud, longitud, fechaInicio, fechaFin, hours, callback) {
|
||||
let url = `https://api.open-meteo.com/v1/forecast?latitude=${latitud}&longitude=${longitud}&hourly=temperature_2m,weather_code¤t=temperature_2m,is_day,weather_code,wind_speed_10m&hourly=uv_index&daily=temperature_2m_max,temperature_2m_min,precipitation_probability_max&timezone=auto&start_date=${fechaInicio}&end_date=${(fechaFin)}`;
|
||||
|
||||
const now = new Date();
|
||||
const hoursC = now.getHours(); // Horas (0-23)
|
||||
const minutes = now.getMinutes(); // Minutos (0-59)
|
||||
const currentTime = minutes > 44 ? hoursC + 2 : hoursC + 1;
|
||||
|
||||
|
||||
let req = new XMLHttpRequest();
|
||||
req.open("GET", url, true);
|
||||
|
||||
req.onreadystatechange = function () {
|
||||
if (req.readyState === 4) {
|
||||
if (req.status === 200) {
|
||||
let datos = JSON.parse(req.responseText);
|
||||
let currents = datos.current;
|
||||
let isday = currents.is_day;
|
||||
|
||||
let temperaturaActual = currents.temperature_2m;
|
||||
let windSpeed = currents.wind_speed_10m;
|
||||
let codeCurrentWeather = currents.weather_code;
|
||||
|
||||
let datosDiarios = datos.daily;
|
||||
let propabilityPrecipitationCurrent = datosDiarios.precipitation_probability_max[0];
|
||||
|
||||
let hourly = datos.hourly
|
||||
let propabilityUVindex = hourly.uv_index[hours];
|
||||
|
||||
let tempForecastHorylOne = hourly.temperature_2m[currentTime];
|
||||
let tempForecastHorylTwo = hourly.temperature_2m[currentTime + 1];
|
||||
let tempForecastHorylThree = hourly.temperature_2m[currentTime + 2];
|
||||
let tempForecastHorylFour = hourly.temperature_2m[currentTime + 3];
|
||||
let tempForecastHorylFive = hourly.temperature_2m[currentTime + 4];
|
||||
|
||||
let hoursWether = tempForecastHorylOne + " " + tempForecastHorylTwo + " " + tempForecastHorylThree + " " + tempForecastHorylFour + " " + tempForecastHorylFive
|
||||
|
||||
let codeForecastHorylOne = hourly.weather_code[currentTime];
|
||||
let codeForecastHorylTwo = hourly.weather_code[currentTime + 1];
|
||||
let codeForecastHorylThree = hourly.weather_code[currentTime + 2];
|
||||
let codeForecastHorylFour = hourly.weather_code[currentTime + 3];
|
||||
let codeForecastHorylFive = hourly.weather_code[currentTime + 4];
|
||||
|
||||
let weather_codeWether = codeForecastHorylOne + " " + codeForecastHorylTwo + " " + codeForecastHorylThree + " " + codeForecastHorylFour + " " + codeForecastHorylFive
|
||||
|
||||
let tempMin = datosDiarios.temperature_2m_min[0];
|
||||
let tempMax = datosDiarios.temperature_2m_max[0];
|
||||
|
||||
let full = temperaturaActual + " " + tempMin + " " + tempMax + " " + codeCurrentWeather + " " + propabilityPrecipitationCurrent + " " + windSpeed + " " + propabilityUVindex + " " + isday + " " + hoursWether + " " + weather_codeWether
|
||||
console.log(`${full}`);
|
||||
callback(full);
|
||||
console.log(`https://api.open-meteo.com/v1/forecast?latitude=${latitud}&longitude=${longitud}&hourly=temperature_2m,weather_code¤t=temperature_2m,is_day,weather_code,wind_speed_10m&hourly=uv_index&daily=temperature_2m_max,temperature_2m_min,precipitation_probability_max&timezone=auto&start_date=${fechaInicio}&end_date=${fechaInicio}`)
|
||||
} else {
|
||||
console.error(`Error en la solicitud: weathergeneral ${req.status}`);
|
||||
//callback(`failed ${req.status}`)
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
req.send();
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
function GetForecastWeather(latitud, longitud, fechaInicio, fechaFin, callback) {
|
||||
let url = `https://api.open-meteo.com/v1/forecast?latitude=${latitud}&longitude=${longitud}&daily=weather_code,temperature_2m_max,temperature_2m_min&timezone=auto&start_date=${fechaInicio}&end_date=${fechaFin}`;
|
||||
|
||||
let req = new XMLHttpRequest();
|
||||
req.open("GET", url, true);
|
||||
|
||||
req.onreadystatechange = function () {
|
||||
if (req.readyState === 4) {
|
||||
if (req.status === 200) {
|
||||
let datos = JSON.parse(req.responseText);
|
||||
|
||||
let daily = datos.daily;
|
||||
let codes = daily.weather_code.join(' ');
|
||||
let max = daily.temperature_2m_max.join(' ');
|
||||
let min = daily.temperature_2m_min.join(' ');
|
||||
|
||||
let full = codes + " " + max + " " + min
|
||||
console.log(`${full}`);
|
||||
callback(full);
|
||||
} else {
|
||||
console.error(`Error en la solicitud: ${req.status}`);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
req.send();
|
||||
}
|
|
@ -0,0 +1,145 @@
|
|||
function getBtDevice() {
|
||||
var connectedDevices = [];
|
||||
|
||||
for (var i = 0; i < btManager.devices.length; ++i) {
|
||||
var device = btManager.devices[i];
|
||||
if (device.connected) {
|
||||
connectedDevices.push(device);
|
||||
}
|
||||
}
|
||||
|
||||
if (btManager.bluetoothBlocked) {
|
||||
return i18n("Disabled");
|
||||
} else if (!btManager.bluetoothOperational) {
|
||||
if (!btManager.adapters.length) {
|
||||
return i18n("Unavailable");
|
||||
} else {
|
||||
return i18n("Offline");
|
||||
}
|
||||
} else if (connectedDevices.length >= 1) {
|
||||
return i18n(connectedDevices[0].name)
|
||||
} else {
|
||||
return i18n("Not Connected");
|
||||
}
|
||||
}
|
||||
|
||||
function toggleBluetooth()
|
||||
{
|
||||
var enable = !btManager.bluetoothOperational;
|
||||
btManager.bluetoothBlocked = !enable;
|
||||
|
||||
for (var i = 0; i < btManager.adapters.length; ++i) {
|
||||
var adapter = btManager.adapters[i];
|
||||
adapter.powered = enable;
|
||||
}
|
||||
}
|
||||
|
||||
function checkInhibition() {
|
||||
var inhibited = false;
|
||||
|
||||
if (!NotificationManager.Server.valid) {
|
||||
return false;
|
||||
}
|
||||
console.log("pass")
|
||||
var inhibitedUntil = notificationSettings.notificationsInhibitedUntil;
|
||||
if (!isNaN(inhibitedUntil.getTime())) {
|
||||
inhibited |= (Date.now() < inhibitedUntil.getTime());
|
||||
}
|
||||
|
||||
if (notificationSettings.notificationsInhibitedByApplication) {
|
||||
inhibited |= true;
|
||||
}
|
||||
|
||||
if (notificationSettings.inhibitNotificationsWhenScreensMirrored) {
|
||||
inhibited |= notificationSettings.screensMirrored;
|
||||
}
|
||||
return inhibited;
|
||||
}
|
||||
|
||||
function toggleDnd() {
|
||||
if (Funcs.checkInhibition()) {
|
||||
notificationSettings.notificationsInhibitedUntil = undefined;
|
||||
notificationSettings.revokeApplicationInhibitions();
|
||||
|
||||
// overrules current mirrored screen setup, updates again when screen configuration
|
||||
notificationSettings.screensMirrored = false;
|
||||
notificationSettings.save();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
var d = new Date();
|
||||
d.setYear(d.getFullYear()+1)
|
||||
|
||||
notificationSettings.notificationsInhibitedUntil = d
|
||||
notificationSettings.save()
|
||||
}
|
||||
|
||||
function revokeInhibitions() {
|
||||
notificationSettings.notificationsInhibitedUntil = undefined;
|
||||
notificationSettings.revokeApplicationInhibitions();
|
||||
// overrules current mirrored screen setup, updates again when screen configuration changes
|
||||
notificationSettings.screensMirrored = false;
|
||||
|
||||
notificationSettings.save();
|
||||
}
|
||||
|
||||
function toggleRedshiftInhibition() {
|
||||
if (!monitor.available) {
|
||||
return;
|
||||
}
|
||||
switch (inhibitor.state) {
|
||||
case Redshift.Inhibitor.Inhibiting:
|
||||
case Redshift.Inhibitor.Inhibited:
|
||||
inhibitor.uninhibit();
|
||||
break;
|
||||
case Redshift.Inhibitor.Uninhibiting:
|
||||
case Redshift.Inhibitor.Uninhibited:
|
||||
inhibitor.inhibit();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
function volumePercent(volume) {
|
||||
return volume / PulseAudio.NormalVolume * 100
|
||||
}
|
||||
|
||||
function boundVolume(volume) {
|
||||
return Math.max(PulseAudio.MinimalVolume, Math.min(volume, PulseAudio.NormalVolume));
|
||||
}
|
||||
|
||||
function changeVolumeByPercent(volumeObject, deltaPercent) {
|
||||
const oldVolume = volumeObject.volume;
|
||||
const oldPercent = volumePercent(oldVolume);
|
||||
const targetPercent = oldPercent + deltaPercent;
|
||||
const newVolume = boundVolume(Math.round(PulseAudio.NormalVolume * (targetPercent/100)));
|
||||
const newPercent = volumePercent(newVolume);
|
||||
volumeObject.muted = newPercent == 0;
|
||||
volumeObject.volume = newVolume;
|
||||
return newPercent;
|
||||
}
|
||||
function volIconName(volume, muted, prefix) {
|
||||
console.log(volume, muted, prefix)
|
||||
if (!prefix) {
|
||||
prefix = "audio-volume";
|
||||
}
|
||||
var icon = null;
|
||||
var percent = volume / PulseAudio.NormalVolume
|
||||
if (percent <= 0.0 || muted) {
|
||||
icon = prefix + "-muted";
|
||||
} else if (percent <= 0.25) {
|
||||
icon = prefix + "-low";
|
||||
} else if (percent <= 0.75) {
|
||||
icon = prefix + "-medium";
|
||||
} else {
|
||||
icon = prefix + "-high";
|
||||
}
|
||||
return icon;
|
||||
}
|
||||
function sumarDia(a) {
|
||||
var fechaActual = new Date();
|
||||
fechaActual.setDate(fechaActual.getDate() + a);
|
||||
var fechaFormateada = Qt.formatDateTime(fechaActual, "dddd");
|
||||
console.log("Fecha con un día añadido:", fechaFormateada);
|
||||
return fechaFormateada
|
||||
}
|
|
@ -0,0 +1,34 @@
|
|||
function obtenerCoordenadas(callback) {
|
||||
let url = "http://ip-api.com/json/?fields=lat,lon";
|
||||
|
||||
let req = new XMLHttpRequest();
|
||||
req.open("GET", url, true);
|
||||
|
||||
req.onreadystatechange = function () {
|
||||
if (req.readyState === 4) {
|
||||
if (req.status === 200) {
|
||||
try {
|
||||
let datos = JSON.parse(req.responseText);
|
||||
let latitud = datos.lat;
|
||||
let longitud = datos.lon;
|
||||
let full = `${latitud}, ${longitud}`;
|
||||
console.log(`Coordenadas obtenidas: ${full}`);
|
||||
callback(full); // Devolver coordenadas completas
|
||||
} catch (error) {
|
||||
console.error("Error procesando la respuesta JSON:", error);
|
||||
callback(null); // Devolver null en caso de error de parsing
|
||||
}
|
||||
} else {
|
||||
console.error(`Error en la solicitud: ${req.status}`);
|
||||
callback(null); // Devolver null en caso de error de solicitud
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
req.onerror = function () {
|
||||
console.error("Error de red al intentar obtener coordenadas.");
|
||||
callback(null); // Devolver null en caso de error de red
|
||||
};
|
||||
|
||||
req.send();
|
||||
}
|
|
@ -0,0 +1,866 @@
|
|||
function weatherShortText(languageCode, code) {
|
||||
let descriptions = {
|
||||
en: {
|
||||
0: "Clear",
|
||||
1: "Clear",
|
||||
2: "Cloudy",
|
||||
3: "Cloudy",
|
||||
51: "Drizzle",
|
||||
53: "Drizzle",
|
||||
55: "Drizzle",
|
||||
56: "Drizzle",
|
||||
57: "Drizzle",
|
||||
61: "Rain",
|
||||
63: "Rain",
|
||||
65: "Rain",
|
||||
66: "Rain",
|
||||
67: "Rain",
|
||||
71: "Snow",
|
||||
73: "Snow",
|
||||
75: "Snow",
|
||||
77: "Hail",
|
||||
80: "Showers",
|
||||
81: "Showers",
|
||||
82: "Showers",
|
||||
85: "Showers",
|
||||
86: "Showers",
|
||||
95: "Storm",
|
||||
96: "Storm",
|
||||
99: "Storm"
|
||||
},
|
||||
es: {
|
||||
0: "Despejado",
|
||||
1: "Despejado",
|
||||
2: "Nublado",
|
||||
3: "Nublado",
|
||||
51: "Llovizna",
|
||||
53: "Llovizna",
|
||||
55: "Llovizna",
|
||||
56: "Llovizna",
|
||||
57: "Llovizna",
|
||||
61: "Lluvia",
|
||||
63: "Lluvia",
|
||||
65: "Lluvia",
|
||||
66: "Lluvia",
|
||||
67: "Lluvia",
|
||||
71: "Nieve",
|
||||
73: "Nieve",
|
||||
75: "Nieve",
|
||||
77: "Granizo",
|
||||
80: "Aguaceros",
|
||||
81: "Aguaceros",
|
||||
82: "Aguaceros",
|
||||
85: "Aguaceros",
|
||||
86: "Aguaceros",
|
||||
95: "Tormenta",
|
||||
96: "Tormenta",
|
||||
99: "Tormenta"
|
||||
},
|
||||
hi: {
|
||||
0: "साफ",
|
||||
1: "साफ",
|
||||
2: "बादल",
|
||||
3: "बादल",
|
||||
51: "बूँदा बाँदी",
|
||||
53: "बूँदा बाँदी",
|
||||
55: "बूँदा बाँदी",
|
||||
56: "बूँदा बाँदी",
|
||||
57: "बूँदा बाँदी",
|
||||
61: "वर्षा",
|
||||
63: "वर्षा",
|
||||
65: "वर्षा",
|
||||
66: "वर्षा",
|
||||
67: "वर्षा",
|
||||
71: "बर्फ",
|
||||
73: "बर्फ",
|
||||
75: "बर्फ",
|
||||
77: "ओला",
|
||||
80: "झरी",
|
||||
81: "झरी",
|
||||
82: "झरी",
|
||||
85: "झरी",
|
||||
86: "झरी",
|
||||
95: "तूफान",
|
||||
96: "तूफान",
|
||||
99: "तूफान"
|
||||
},
|
||||
fr: {
|
||||
0: "Clair",
|
||||
1: "Clair",
|
||||
2: "Nuageux",
|
||||
3: "Nuageux",
|
||||
51: "Bruine",
|
||||
53: "Bruine",
|
||||
55: "Bruine",
|
||||
56: "Bruine",
|
||||
57: "Bruine",
|
||||
61: "Pluie",
|
||||
63: "Pluie",
|
||||
65: "Pluie",
|
||||
66: "Pluie",
|
||||
67: "Pluie",
|
||||
71: "Neige",
|
||||
73: "Neige",
|
||||
75: "Neige",
|
||||
77: "Grêle",
|
||||
80: "Averses",
|
||||
81: "Averses",
|
||||
82: "Averses",
|
||||
85: "Averses",
|
||||
86: "Averses",
|
||||
95: "Tempête",
|
||||
96: "Tempête",
|
||||
99: "Tempête"
|
||||
},
|
||||
ru: {
|
||||
0: "Ясно",
|
||||
1: "Ясно",
|
||||
2: "Облачно",
|
||||
3: "Облачно",
|
||||
51: "Морось",
|
||||
53: "Морось",
|
||||
55: "Морось",
|
||||
56: "Морось",
|
||||
57: "Морось",
|
||||
61: "Дождь",
|
||||
63: "Дождь",
|
||||
65: "Дождь",
|
||||
66: "Дождь",
|
||||
67: "Дождь",
|
||||
71: "Снег",
|
||||
73: "Снег",
|
||||
75: "Снег",
|
||||
77: "Град",
|
||||
80: "Ливни",
|
||||
81: "Ливни",
|
||||
82: "Ливни",
|
||||
85: "Ливни",
|
||||
86: "Ливни",
|
||||
95: "Буря",
|
||||
96: "Буря",
|
||||
99: "Буря"
|
||||
},
|
||||
zh: {
|
||||
0: "晴朗",
|
||||
1: "晴朗",
|
||||
2: "多云",
|
||||
3: "多云",
|
||||
51: "小雨",
|
||||
53: "小雨",
|
||||
55: "小雨",
|
||||
56: "小雨",
|
||||
57: "小雨",
|
||||
61: "雨",
|
||||
63: "雨",
|
||||
65: "雨",
|
||||
66: "雨",
|
||||
67: "雨",
|
||||
71: "雪",
|
||||
73: "雪",
|
||||
75: "雪",
|
||||
77: "冰雹",
|
||||
80: "阵雨",
|
||||
81: "阵雨",
|
||||
82: "阵雨",
|
||||
85: "阵雨",
|
||||
86: "阵雨",
|
||||
95: "暴风",
|
||||
96: "暴风",
|
||||
99: "暴风"
|
||||
},
|
||||
pt: {
|
||||
0: "Claro",
|
||||
1: "Claro",
|
||||
2: "Nublado",
|
||||
3: "Nublado",
|
||||
51: "Garoa",
|
||||
53: "Garoa",
|
||||
55: "Garoa",
|
||||
56: "Garoa",
|
||||
57: "Garoa",
|
||||
61: "Chuva",
|
||||
63: "Chuva",
|
||||
65: "Chuva",
|
||||
66: "Chuva",
|
||||
67: "Chuva",
|
||||
71: "Neve",
|
||||
73: "Neve",
|
||||
75: "Neve",
|
||||
77: "Granizo",
|
||||
80: "Chuvas",
|
||||
81: "Chuvas",
|
||||
82: "Chuvas",
|
||||
85: "Chuvas",
|
||||
86: "Chuvas",
|
||||
95: "Tempestade",
|
||||
96: "Tempestade",
|
||||
99: "Tempestade"
|
||||
},
|
||||
ar: {
|
||||
0: "صافي",
|
||||
1: "صافي",
|
||||
2: "غائم",
|
||||
3: "غائم",
|
||||
51: "رذاذ",
|
||||
53: "رذاذ",
|
||||
55: "رذاذ",
|
||||
56: "رذاذ",
|
||||
57: "رذاذ",
|
||||
61: "مطر",
|
||||
63: "مطر",
|
||||
65: "مطر",
|
||||
66: "مطر",
|
||||
67: "مطر",
|
||||
71: "ثلج",
|
||||
73: "ثلج",
|
||||
75: "ثلج",
|
||||
77: "بَرَد",
|
||||
80: "زخات",
|
||||
81: "زخات",
|
||||
82: "زخات",
|
||||
85: "زخات",
|
||||
86: "زخات",
|
||||
95: "عاصفة",
|
||||
96: "عاصفة",
|
||||
99: "عاصفة"
|
||||
},
|
||||
bn: {
|
||||
0: "পরিষ্কার",
|
||||
1: "পরিষ্কার",
|
||||
2: "মেঘলা",
|
||||
3: "মেঘলা",
|
||||
51: "ঝিরঝিরি",
|
||||
53: "ঝিরঝিরি",
|
||||
55: "ঝিরঝিরি",
|
||||
56: "ঝিরঝিরি",
|
||||
57: "ঝিরঝিরি",
|
||||
61: "বৃষ্টি",
|
||||
63: "বৃষ্টি",
|
||||
65: "বৃষ্টি",
|
||||
66: "বৃষ্টি",
|
||||
67: "বৃষ্টি",
|
||||
71: "তুষার",
|
||||
73: "তুষার",
|
||||
75: "তুষার",
|
||||
77: "শিলা",
|
||||
80: "ঝরণা",
|
||||
81: "ঝরণা",
|
||||
82: "ঝরণা",
|
||||
85: "ঝরণা",
|
||||
86: "ঝরণা",
|
||||
95: "ঝড়",
|
||||
96: "ঝড়",
|
||||
99: "ঝড়"
|
||||
},
|
||||
de: {
|
||||
0: "Klar",
|
||||
1: "Klar",
|
||||
2: "Bewölkt",
|
||||
3: "Bewölkt",
|
||||
51: "Niesel",
|
||||
53: "Niesel",
|
||||
55: "Niesel",
|
||||
56: "Niesel",
|
||||
57: "Niesel",
|
||||
61: "Regen",
|
||||
63: "Regen",
|
||||
65: "Regen",
|
||||
66: "Regen",
|
||||
67: "Regen",
|
||||
71: "Schnee",
|
||||
73: "Schnee",
|
||||
75: "Schnee",
|
||||
77: "Hagel",
|
||||
80: "Schauer",
|
||||
81: "Schauer",
|
||||
82: "Schauer",
|
||||
85: "Schauer",
|
||||
86: "Schauer",
|
||||
95: "Sturm",
|
||||
96: "Sturm",
|
||||
99: "Sturm"
|
||||
},
|
||||
ja: {
|
||||
0: "晴れ",
|
||||
1: "晴れ",
|
||||
2: "曇り",
|
||||
3: "曇り",
|
||||
51: "霧雨",
|
||||
53: "霧雨",
|
||||
55: "霧雨",
|
||||
56: "霧雨",
|
||||
57: "霧雨",
|
||||
61: "雨",
|
||||
63: "雨",
|
||||
65: "雨",
|
||||
66: "雨",
|
||||
67: "雨",
|
||||
71: "雪",
|
||||
73: "雪",
|
||||
75: "雪",
|
||||
77: "ひょう",
|
||||
80: "にわか雨",
|
||||
81: "にわか雨",
|
||||
82: "にわか雨",
|
||||
85: "にわか雨",
|
||||
86: "にわか雨",
|
||||
95: "嵐",
|
||||
96: "嵐",
|
||||
99: "嵐"
|
||||
},
|
||||
ko: {
|
||||
0: "맑음",
|
||||
1: "맑음",
|
||||
2: "흐림",
|
||||
3: "흐림",
|
||||
51: "이슬비",
|
||||
53: "이슬비",
|
||||
55: "이슬비",
|
||||
56: "이슬비",
|
||||
57: "이슬비",
|
||||
61: "비",
|
||||
63: "비",
|
||||
65: "비",
|
||||
66: "비",
|
||||
67: "비",
|
||||
71: "눈",
|
||||
73: "눈",
|
||||
75: "눈",
|
||||
77: "우박",
|
||||
80: "소나기",
|
||||
81: "소나기",
|
||||
82: "소나기",
|
||||
85: "소나기",
|
||||
86: "소나기",
|
||||
95: "폭풍",
|
||||
96: "폭풍",
|
||||
99: "폭풍"
|
||||
},
|
||||
it: {
|
||||
0: "Sereno",
|
||||
1: "Sereno",
|
||||
2: "Nuvoloso",
|
||||
3: "Nuvoloso",
|
||||
51: "Pioggerella",
|
||||
53: "Pioggerella",
|
||||
55: "Pioggerella",
|
||||
56: "Pioggerella",
|
||||
57: "Pioggerella",
|
||||
61: "Pioggia",
|
||||
63: "Pioggia",
|
||||
65: "Pioggia",
|
||||
66: "Pioggia",
|
||||
67: "Pioggia",
|
||||
71: "Neve",
|
||||
73: "Neve",
|
||||
75: "Neve",
|
||||
77: "Grandine",
|
||||
80: "Rovesci",
|
||||
81: "Rovesci",
|
||||
82: "Rovesci",
|
||||
85: "Rovesci",
|
||||
86: "Rovesci",
|
||||
95: "Tempesta",
|
||||
96: "Tempesta",
|
||||
99: "Tempesta"
|
||||
}
|
||||
};
|
||||
|
||||
if (descriptions[languageCode]) {
|
||||
return descriptions[languageCode][code] || "Unknown";
|
||||
} else {
|
||||
return "Language not supported";
|
||||
}
|
||||
}
|
||||
|
||||
function weatherLongText(languageCode, code) {
|
||||
let descriptions = {
|
||||
en: {
|
||||
0: "Clear",
|
||||
1: "Mainly clear",
|
||||
2: "Partly cloudy",
|
||||
3: "Overcast",
|
||||
51: "Drizzle light intensity",
|
||||
53: "Drizzle moderate intensity",
|
||||
55: "Drizzle dense intensity",
|
||||
56: "Freezing Drizzle light intensity",
|
||||
57: "Freezing Drizzle dense intensity",
|
||||
61: "Rain slight intensity",
|
||||
63: "Rain moderate intensity",
|
||||
65: "Rain heavy intensity",
|
||||
66: "Freezing Rain light intensity",
|
||||
67: "Freezing Rain heavy intensity",
|
||||
71: "Snowfall slight intensity",
|
||||
73: "Snowfall moderate intensity",
|
||||
75: "Snowfall heavy intensity",
|
||||
77: "Snow grains",
|
||||
80: "Rain showers slight",
|
||||
81: "Rain showers moderate",
|
||||
82: "Rain showers violent",
|
||||
85: "Snow showers slight",
|
||||
86: "Snow showers heavy",
|
||||
95: "Thunderstorm",
|
||||
96: "Thunderstorm with slight hail",
|
||||
99: "Thunderstorm with heavy hail"
|
||||
},
|
||||
es: {
|
||||
0: "Despejado",
|
||||
1: "Mayormente despejado",
|
||||
2: "Parcialmente nublado",
|
||||
3: "Nublado",
|
||||
51: "Llovizna de baja intensidad",
|
||||
53: "Llovizna de intensidad moderada",
|
||||
55: "Llovizna de intensidad densa",
|
||||
56: "Llovizna helada de baja intensidad",
|
||||
57: "Llovizna helada de intensidad densa",
|
||||
61: "Lluvia de ligera intensidad",
|
||||
63: "Lluvia de intensidad moderada",
|
||||
65: "Lluvia de intensidad fuerte",
|
||||
66: "Lluvia helada de baja intensidad",
|
||||
67: "Lluvia helada de alta intensidad",
|
||||
71: "Nieve de ligera intensidad",
|
||||
73: "Nieve de intensidad moderada",
|
||||
75: "Nieve de intensidad fuerte",
|
||||
77: "Granizo",
|
||||
80: "Aguaceros de lluvia de ligera intensidad",
|
||||
81: "Aguaceros de lluvia de intensidad moderada",
|
||||
82: "Aguaceros de lluvia de intensidad violenta",
|
||||
85: "Aguaceros de nieve de ligera intensidad",
|
||||
86: "Aguaceros de nieve de intensidad fuerte",
|
||||
95: "Tormenta",
|
||||
96: "Tormenta con granizo ligero",
|
||||
99: "Tormenta con granizo fuerte"
|
||||
},
|
||||
fr: {
|
||||
0: "Clair",
|
||||
1: "Partiellement clair",
|
||||
2: "Partiellement nuageux",
|
||||
3: "Couvert",
|
||||
51: "Bruine légère",
|
||||
53: "Bruine modérée",
|
||||
55: "Bruine dense",
|
||||
56: "Bruine verglaçante légère",
|
||||
57: "Bruine verglaçante dense",
|
||||
61: "Pluie légère",
|
||||
63: "Pluie modérée",
|
||||
65: "Pluie forte",
|
||||
66: "Pluie verglaçante légère",
|
||||
67: "Pluie verglaçante forte",
|
||||
71: "Légère chute de neige",
|
||||
73: "Chute de neige modérée",
|
||||
75: "Chute de neige forte",
|
||||
77: "Grains de neige",
|
||||
80: "Averses de pluie légères",
|
||||
81: "Averses de pluie modérées",
|
||||
82: "Averses de pluie violentes",
|
||||
85: "Averses de neige légères",
|
||||
86: "Averses de neige fortes",
|
||||
95: "Orage",
|
||||
96: "Orage avec grêle légère",
|
||||
99: "Orage avec grêle forte"
|
||||
},
|
||||
de: {
|
||||
0: "Klar",
|
||||
1: "Überwiegend klar",
|
||||
2: "Teilweise bewölkt",
|
||||
3: "Bedeckt",
|
||||
51: "Leichter Nieselregen",
|
||||
53: "Mäßiger Nieselregen",
|
||||
55: "Dichter Nieselregen",
|
||||
56: "Leichter Gefrierender Nieselregen",
|
||||
57: "Dichter Gefrierender Nieselregen",
|
||||
61: "Leichter Regen",
|
||||
63: "Mäßiger Regen",
|
||||
65: "Starker Regen",
|
||||
66: "Leichter Gefrierender Regen",
|
||||
67: "Starker Gefrierender Regen",
|
||||
71: "Leichter Schneefall",
|
||||
73: "Mäßiger Schneefall",
|
||||
75: "Starker Schneefall",
|
||||
77: "Schneekörner",
|
||||
80: "Leichte Regenschauer",
|
||||
81: "Mäßige Regenschauer",
|
||||
82: "Starker Regenschauer",
|
||||
85: "Leichte Schneeschauer",
|
||||
86: "Starke Schneeschauer",
|
||||
95: "Gewitter",
|
||||
96: "Gewitter mit leichtem Hagel",
|
||||
99: "Gewitter mit starkem Hagel"
|
||||
},
|
||||
it: {
|
||||
0: "Sereno",
|
||||
1: "Prevalentemente sereno",
|
||||
2: "Parzialmente nuvoloso",
|
||||
3: "Nuvoloso",
|
||||
51: "Pioviggine debole",
|
||||
53: "Pioviggine moderata",
|
||||
55: "Pioviggine intensa",
|
||||
56: "Pioviggine ghiacciata debole",
|
||||
57: "Pioviggine ghiacciata intensa",
|
||||
61: "Pioggia debole",
|
||||
63: "Pioggia moderata",
|
||||
65: "Pioggia intensa",
|
||||
66: "Pioggia ghiacciata debole",
|
||||
67: "Pioggia ghiacciata intensa",
|
||||
71: "Nevicata debole",
|
||||
73: "Nevicata moderata",
|
||||
75: "Nevicata intensa",
|
||||
77: "Granuli di neve",
|
||||
80: "Pioggia debole con rovesci",
|
||||
81: "Pioggia moderata con rovesci",
|
||||
82: "Pioggia intensa con rovesci",
|
||||
85: "Nevicata debole con rovesci",
|
||||
86: "Nevicata intensa con rovesci",
|
||||
95: "Temporale",
|
||||
96: "Temporale con grandine leggera",
|
||||
99: "Temporale con grandine forte"
|
||||
},
|
||||
pt: {
|
||||
0: "Céu limpo",
|
||||
1: "Céu pouco nublado",
|
||||
2: "Parcialmente nublado",
|
||||
3: "Céu nublado",
|
||||
51: "Chuviscos de fraca intensidade",
|
||||
53: "Chuviscos de intensidade moderada",
|
||||
55: "Chuviscos de intensidade forte",
|
||||
56: "Chuviscos congelantes de fraca intensidade",
|
||||
57: "Chuviscos congelantes de intensidade forte",
|
||||
61: "Chuva de fraca intensidade",
|
||||
63: "Chuva de intensidade moderada",
|
||||
65: "Chuva de intensidade forte",
|
||||
66: "Chuva congelante de fraca intensidade",
|
||||
67: "Chuva congelante de intensidade forte",
|
||||
71: "Queda de neve de fraca intensidade",
|
||||
73: "Queda de neve de intensidade moderada",
|
||||
75: "Queda de neve de intensidade forte",
|
||||
77: "Granulado de neve",
|
||||
80: "Aguaceiros de chuva fracos",
|
||||
81: "Aguaceiros de chuva moderados",
|
||||
82: "Aguaceiros de chuva fortes",
|
||||
85: "Aguaceiros de neve fracos",
|
||||
86: "Aguaceiros de neve fortes",
|
||||
95: "Trovoada",
|
||||
96: "Trovoada com granizo fraco",
|
||||
99: "Trovoada com granizo forte"
|
||||
},
|
||||
ja: {
|
||||
0: "晴れ",
|
||||
1: "大部分晴れ",
|
||||
2: "一部曇り",
|
||||
3: "曇り",
|
||||
51: "わずかな霧雨",
|
||||
53: "穏やかな霧雨",
|
||||
55: "濃い霧雨",
|
||||
56: "軽い凍雨",
|
||||
57: "濃い凍雨",
|
||||
61: "弱い雨",
|
||||
63: "穏やかな雨",
|
||||
65: "激しい雨",
|
||||
66: "軽い着氷性の雨",
|
||||
67: "激しい着氷性の雨",
|
||||
71: "弱い雪",
|
||||
73: "穏やかな雪",
|
||||
75: "激しい雪",
|
||||
77: "雪の粒",
|
||||
80: "弱いにわか雨",
|
||||
81: "穏やかなにわか雨",
|
||||
82: "激しいにわか雨",
|
||||
85: "弱いにわか雪",
|
||||
86: "激しいにわか雪",
|
||||
95: "雷雨",
|
||||
96: "軽い雹を伴う雷雨",
|
||||
99: "激しい雹を伴う雷雨"
|
||||
},
|
||||
ru: {
|
||||
0: "Ясно",
|
||||
1: "В основном ясно",
|
||||
2: "Частично облачно",
|
||||
3: "Пасмурно",
|
||||
51: "Морось слабая интенсивность",
|
||||
53: "Морось умеренная интенсивность",
|
||||
55: "Морось плотная интенсивность",
|
||||
56: "Ледяной дождь слабой интенсивности",
|
||||
57: "Ледяной дождь сильной интенсивности",
|
||||
61: "Дождь слабой интенсивности",
|
||||
63: "Дождь умеренной интенсивности",
|
||||
65: "Дождь сильной интенсивности",
|
||||
66: "Ледяной дождь слабой интенсивности",
|
||||
67: "Ледяной дождь сильной интенсивности",
|
||||
71: "Снег слабой интенсивности",
|
||||
73: "Снег умеренной интенсивности",
|
||||
75: "Снег сильной интенсивности",
|
||||
77: "Снежные зерна",
|
||||
80: "Дождь с прояснениями слабый",
|
||||
81: "Дождь с прояснениями умеренный",
|
||||
82: "Дождь с прояснениями сильный",
|
||||
85: "Снег с прояснениями слабый",
|
||||
86: "Снег с прояснениями сильный",
|
||||
95: "Гроза",
|
||||
96: "Гроза с небольшим градом",
|
||||
99: "Гроза с сильным градом"
|
||||
},
|
||||
zh: {
|
||||
0: "晴",
|
||||
1: "晴间多云",
|
||||
2: "局部多云",
|
||||
3: "阴天",
|
||||
51: "小雨",
|
||||
53: "中雨",
|
||||
55: "大雨",
|
||||
56: "小冻雨",
|
||||
57: "大冻雨",
|
||||
61: "小雨夹雪",
|
||||
63: "中雨夹雪",
|
||||
65: "大雨夹雪",
|
||||
66: "小冰雨",
|
||||
67: "大冰雨",
|
||||
71: "小雪",
|
||||
73: "中雪",
|
||||
75: "大雪",
|
||||
77: "雪粒",
|
||||
80: "小雨 showers",
|
||||
81: "中雨 showers",
|
||||
82: "大雨 showers",
|
||||
85: "小雪 showers",
|
||||
86: "大雪 showers",
|
||||
95: "雷暴",
|
||||
96: "雷暴并伴有小冰雹",
|
||||
99: "雷暴并伴有大冰雹"
|
||||
},
|
||||
|
||||
ko: {
|
||||
0: "맑음",
|
||||
1: "구름 조금",
|
||||
2: "부분적으로 흐림",
|
||||
3: "흐림",
|
||||
51: "약한 이슬비",
|
||||
53: "중간 강도의 이슬비",
|
||||
55: "짙은 이슬비",
|
||||
56: "약한 동결 이슬비",
|
||||
57: "강한 동결 이슬비",
|
||||
61: "약한 비",
|
||||
63: "중간 강도의 비",
|
||||
65: "강한 비",
|
||||
66: "약한 동결 비",
|
||||
67: "강한 동결 비",
|
||||
71: "약한 눈",
|
||||
73: "중간 강도의 눈",
|
||||
75: "강한 눈",
|
||||
77: "눈송이",
|
||||
80: "약한 비 샤워",
|
||||
81: "중간 강도의 비 샤워",
|
||||
82: "강한 비 샤워",
|
||||
85: "약한 눈 샤워",
|
||||
86: "강한 눈 샤워",
|
||||
95: "천둥 번개",
|
||||
96: "약한 우박을 동반한 천둥 번개",
|
||||
99: "강한 우박을 동반한 천둥 번개"
|
||||
},
|
||||
// Agrega más idiomas aquí según sea necesario
|
||||
};
|
||||
|
||||
if (descriptions[languageCode]) {
|
||||
return descriptions[languageCode][code] || "Unknown";
|
||||
} else {
|
||||
return "Language not supported";
|
||||
}
|
||||
}
|
||||
function rainProbabilityText(languageCode) {
|
||||
const translations = {
|
||||
es: "Probabilidad de lluvia", // Spanish
|
||||
"en": "Probability of rain", // English
|
||||
"hi": "बारिश की संभावना", // Hindi
|
||||
"fr": "Probabilité de pluie", // French
|
||||
"de": "Regenwahrscheinlichkeit", // German
|
||||
"it": "Probabilità di pioggia", // Italian
|
||||
"pt": "Probabilidade de chuva", // Portuguese
|
||||
"ru": "Вероятность дождя", // Russian
|
||||
"zh-cn": "降雨概率", // Simplified Chinese (Mainland China)
|
||||
"zh-tw": "降雨機率", // Traditional Chinese (Taiwan)
|
||||
"ja": "降雨確率", // Japanese
|
||||
"ko": "비 올 확률", // Korean
|
||||
"nl": "Regenkans", // Dutch
|
||||
"ny": "Mwayi wamagulu" // Chichewa
|
||||
};
|
||||
|
||||
// Return the translation for the language code or default to English if not found
|
||||
return translations[languageCode] || translations["en"];
|
||||
}
|
||||
|
||||
function lavelUV(languageCode, lavel) {
|
||||
const translations = {
|
||||
es: {
|
||||
0: "Bajo",
|
||||
1: "Moderado",
|
||||
2: "Alto",
|
||||
3: "Muy Alto",
|
||||
4: "Extremo"
|
||||
},
|
||||
en: {
|
||||
0: "Low",
|
||||
1: "Moderate",
|
||||
2: "High",
|
||||
3: "Very High",
|
||||
4: "Extreme"
|
||||
},
|
||||
hi: {
|
||||
0: "कम",
|
||||
1: "मध्यम",
|
||||
2: "उच्च",
|
||||
3: "बहुत उच्च",
|
||||
4: "अत्यधिक"
|
||||
},
|
||||
fr: {
|
||||
0: "Faible",
|
||||
1: "Modéré",
|
||||
2: "Élevé",
|
||||
3: "Très Élevé",
|
||||
4: "Extrême"
|
||||
},
|
||||
de: {
|
||||
0: "Niedrig",
|
||||
1: "Mäßig",
|
||||
2: "Hoch",
|
||||
3: "Sehr Hoch",
|
||||
4: "Extrem"
|
||||
},
|
||||
it: {
|
||||
0: "Basso",
|
||||
1: "Moderato",
|
||||
2: "Alto",
|
||||
3: "Molto Alto",
|
||||
4: "Estremo"
|
||||
},
|
||||
pt: {
|
||||
0: "Baixo",
|
||||
1: "Moderado",
|
||||
2: "Alto",
|
||||
3: "Muito Alto",
|
||||
4: "Extremo"
|
||||
},
|
||||
ru: {
|
||||
0: "Низкий",
|
||||
1: "Умеренный",
|
||||
2: "Высокий",
|
||||
3: "Очень Высокий",
|
||||
4: "Экстремальный"
|
||||
},
|
||||
"zh-cn": {
|
||||
0: "低",
|
||||
1: "中等",
|
||||
2: "高",
|
||||
3: "很高",
|
||||
4: "极高"
|
||||
},
|
||||
"zh-tw": {
|
||||
0: "低",
|
||||
1: "中等",
|
||||
2: "高",
|
||||
3: "很高",
|
||||
4: "極高"
|
||||
},
|
||||
ja: {
|
||||
0: "低い",
|
||||
1: "中程度",
|
||||
2: "高い",
|
||||
3: "非常に高い",
|
||||
4: "極端"
|
||||
},
|
||||
ko: {
|
||||
0: "낮음",
|
||||
1: "보통",
|
||||
2: "높음",
|
||||
3: "매우 높음",
|
||||
4: "극심함"
|
||||
},
|
||||
nl: {
|
||||
0: "Laag",
|
||||
1: "Matig",
|
||||
2: "Hoog",
|
||||
3: "Zeer Hoog",
|
||||
4: "Extreem"
|
||||
},
|
||||
ny: {
|
||||
0: "Zochepa",
|
||||
1: "Apakatikati",
|
||||
2: "Wapamwamba",
|
||||
3: "Wapamwamba Kwambiri",
|
||||
4: "Mowopsa"
|
||||
}
|
||||
};
|
||||
|
||||
// Return the translation for the language code or default to English if not found
|
||||
if (translations[languageCode]) {
|
||||
return translations[languageCode][lavel] || "Unknown";
|
||||
} else {
|
||||
return "Language not supported";
|
||||
}
|
||||
}
|
||||
|
||||
function windSpeedText(languageCode) {
|
||||
const translations = {
|
||||
"es": "Velocidad del viento",
|
||||
"en": "Wind Speed",
|
||||
"hi": "हवा की गति",
|
||||
"fr": "Vitesse du vent",
|
||||
"de": "Windgeschwindigkeit",
|
||||
"it": "Velocità del vento",
|
||||
"pt": "Velocidade do vento",
|
||||
"ru": "Скорость ветра",
|
||||
"zh-cn": "风速",
|
||||
"zh-tw": "風速",
|
||||
"ja": "風速",
|
||||
"ko": "풍속",
|
||||
"nl": "Windsnelheid",
|
||||
"ny": "Zachitentha"
|
||||
};
|
||||
|
||||
const shortTranslations = {
|
||||
"es": "Viento",
|
||||
"en": "Wind",
|
||||
"hi": "हवा",
|
||||
"fr": "Vent",
|
||||
"de": "Wind",
|
||||
"it": "Vento",
|
||||
"pt": "Vento",
|
||||
"ru": "Ветер",
|
||||
"zh-cn": "风",
|
||||
"zh-tw": "風",
|
||||
"ja": "風",
|
||||
"ko": "바람",
|
||||
"nl": "Wind",
|
||||
"ny": "Mphepo"
|
||||
};
|
||||
|
||||
// Get the full translation or default to English if not found
|
||||
const fullTranslation = translations[languageCode] || translations["en"];
|
||||
|
||||
// Return the short translation if the full one is longer than 15 characters
|
||||
if (fullTranslation.length > 15) {
|
||||
return shortTranslations[languageCode] || shortTranslations["en"];
|
||||
}
|
||||
|
||||
return fullTranslation;
|
||||
}
|
||||
|
||||
function uvRadiationText(languageCode) {
|
||||
const translations = {
|
||||
"es": "UV",
|
||||
"en": "UV",
|
||||
"hi": "यूवी विकिरण",
|
||||
"fr": "UV",
|
||||
"de": "UV",
|
||||
"it": "UV",
|
||||
"pt": "UV",
|
||||
"ru": "УФ-излучение",
|
||||
"zh-cn": "紫外线辐射",
|
||||
"zh-tw": "紫外線輻射",
|
||||
"ja": "UV",
|
||||
"ko": "자외선 방사",
|
||||
"nl": "UV",
|
||||
"ny": "UV"
|
||||
};
|
||||
|
||||
// Return the translation for the language code or default to "UV" if not found
|
||||
return translations[languageCode] || "UV";
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
function capitalizeFirstLetter(string) {
|
||||
return string.charAt(0).toUpperCase() + string.slice(1);
|
||||
}
|
||||
|
||||
function getTranslateInJs(language, word) {
|
||||
const translatesUi = {
|
||||
cs: ["síť", "bluetooth", "offline", "nastavení", "nastavení systému", "vypnuto", "nerušit", "hlasitost", "předpověď počasí"],
|
||||
da: ["netværk", "bluetooth", "offline", "indstillinger", "systemindstillinger", "fra", "forstyr ikke", "lydstyrke", "vejrudsigten"],
|
||||
de: ["Netzwerk", "Bluetooth", "offline", "Einstellungen", "Systemeinstellungen", "aus", "nicht stören", "Lautstärke", "Wettervorhersage"],
|
||||
en: ["network", "bluetooth", "offline", "settings", "system settings", "off", "don't disturb", "volume", "weather forecast"],
|
||||
es: ["red", "bluetooth", "sin conexión", "configuración", "configuración del sistema", "apagado", "no molestar", "volumen", "pronóstico del tiempo"],
|
||||
et: ["võrk", "bluetooth", "ühenduseta", "seaded", "süsteemi seaded", "väljas", "mitte segada", "helitugevus", "ilmaprognoos"],
|
||||
fi: ["verkko", "bluetooth", "offline", "asetukset", "järjestelmäasetukset", "pois", "älä häiritse", "äänenvoimakkuus", "sääennuste"],
|
||||
fr: ["réseau", "bluetooth", "hors ligne", "paramètres", "paramètres du système", "éteindre", "ne pas déranger", "volume", "prévisions météorologiques"],
|
||||
hr: ["mreža", "bluetooth", "offline", "postavke", "postavke sustava", "isključeno", "ne ometaj", "glasnoća", "vremenska prognoza"],
|
||||
hu: ["hálózat", "bluetooth", "offline", "beállítások", "rendszerbeállítások", "kikapcsolva", "ne zavarjanak", "hangerő", "időjárás előrejelzés"],
|
||||
is: ["net", "bluetooth", "ótengdur", "stillingar", "kerfisstillingar", "af", "trufla ekki", "hljóðstyrkur", "veðurspá"],
|
||||
it: ["rete", "bluetooth", "offline", "impostazioni", "impostazioni di sistema", "spento", "non disturbare", "volume", "previsioni del tempo"],
|
||||
lt: ["tinklas", "bluetooth", "neprisijungęs", "nustatymai", "sistemos nustatymai", "išjungta", "netrukdyti", "garsas", "orų prognozė"],
|
||||
lv: ["tīkls", "bluetooth", "bezsaistē", "iestatījumi", "sistēmas iestatījumi", "izslēgts", "netraucēt", "skaļums", "laika prognoze"],
|
||||
nl: ["netwerk", "bluetooth", "offline", "instellingen", "systeeminstellingen", "uit", "niet storen", "volume", "weersvoorspelling"],
|
||||
no: ["nettverk", "bluetooth", "offline", "innstillinger", "systeminnstillinger", "av", "ikke forstyrr", "volum", "værmelding"],
|
||||
pl: ["sieć", "bluetooth", "offline", "ustawienia", "ustawienia systemowe", "wyłączony", "nie przeszkadzać", "głośność", "prognoza pogody"],
|
||||
pt: ["rede", "bluetooth", "offline", "configurações", "configurações do sistema", "desligado", "não incomodar", "volume", "previsão do tempo"],
|
||||
ro: ["rețea", "bluetooth", "offline", "setări", "setări de sistem", "oprit", "nu deranjați", "volum", "prognoza meteo"],
|
||||
sk: ["sieť", "bluetooth", "offline", "nastavenia", "nastavenia systému", "vypnuté", "nerušiť", "hlasitosť", "predpoveď počasia"],
|
||||
sl: ["omrežje", "bluetooth", "offline", "nastavitve", "sistemske nastavitve", "izklopljeno", "ne moti", "glasnost", "vremenska napoved"],
|
||||
sq: ["rrjet", "bluetooth", "offline", "cilësimet", "cilësimet e sistemit", "fikur", "mos shqetësoni", "vëllimi", "parashikimi i motit"],
|
||||
sv: ["nätverk", "bluetooth", "offline", "inställningar", "systeminställningar", "av", "stör ej", "volym", "väderprognos"]
|
||||
};
|
||||
|
||||
const index = translatesUi['en'].indexOf(word.toLowerCase());
|
||||
if (index !== -1) {
|
||||
const translatedWord = translatesUi[language] ? translatesUi[language][index] : translatesUi["en"][index];
|
||||
return capitalizeFirstLetter(translatedWord);
|
||||
} else {
|
||||
return capitalizeFirstLetter(word);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue