Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 25 additions & 3 deletions build-scripts/gulp/download_translations.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,14 @@
const del = require("del");
const gulp = require("gulp");
const fs = require("fs");
const mapStream = require("map-stream");

const inDir = "translations/frontend";
const downloadDir = inDir + "/downloads";
const inDirFrontend = "translations/frontend";
const inDirBackend = "translations/backend";
const downloadDir = "translations/downloads";
const srcMeta = "src/translations/translationMetadata.json";

const encoding = "utf8";

const tasks = [];

Expand Down Expand Up @@ -53,9 +58,25 @@ gulp.task(taskName, function () {
});
tasks.push(taskName);

taskName = "check-all-files-exist";
gulp.task(taskName, function () {
const file = fs.readFileSync(srcMeta, { encoding });
const meta = JSON.parse(file);
Object.keys(meta).forEach((lang) => {
if (!fs.existsSync(`${inDirFrontend}/${lang}.json`)) {
fs.writeFileSync(`${inDirFrontend}/${lang}.json`, JSON.stringify({}));
}
if (!fs.existsSync(`${inDirBackend}/${lang}.json`)) {
fs.writeFileSync(`${inDirBackend}/${lang}.json`, JSON.stringify({}));
}
});
return Promise.resolve();
});
tasks.push(taskName);

taskName = "move-downloaded-translations";
gulp.task(taskName, function () {
return gulp.src(`${downloadDir}/*.json`).pipe(gulp.dest(inDir));
return gulp.src(`${downloadDir}/*.json`).pipe(gulp.dest(inDirFrontend));
});
tasks.push(taskName);

Expand All @@ -65,6 +86,7 @@ gulp.task(
gulp.series(
"check-translations-html",
"move-downloaded-translations",
"check-all-files-exist",
"clean-downloaded-translations"
)
);
Expand Down
1 change: 1 addition & 0 deletions translations/backend/en-GB.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions translations/backend/fy.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
1 change: 1 addition & 0 deletions translations/backend/gl.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{}
19 changes: 16 additions & 3 deletions translations/frontend/af.json
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,8 @@
"stopped": "Gestop"
},
"default": {
"off": "Af",
"on": "Aan",
"unavailable": "Nie beskikbaar nie",
"unknown": "Onbekend"
},
Expand Down Expand Up @@ -1010,8 +1012,10 @@
}
},
"integrations": {
"add_integration": "Stel 'n nuwe integrasie op",
"caption": "Integrasies",
"config_entry": {
"delete": "Verwyder",
"delete_confirm": "Is u seker u wil hierdie integrasie skrap?",
"device_unavailable": "toestel nie beskikbaar nie",
"entity_unavailable": "entiteit nie beskikbaar nie",
Expand All @@ -1021,7 +1025,10 @@
"no_area": "Geen Gebied",
"no_device": "Entiteite sonder toestelle",
"no_devices": "Hierdie integrasie het geen toestelle nie.",
"restart_confirm": "Herbegin Home Assistant om hierdie integrasie te voltooi"
"options": "Opsies",
"rename": "Hernoem",
"restart_confirm": "Herbegin Home Assistant om hierdie integrasie te voltooi",
"system_options": "Stelselopsies"
},
"config_flow": {
"aborted": "Gestaak",
Expand Down Expand Up @@ -1055,7 +1062,12 @@
},
"integration_not_found": "Integrasie nie gevind nie.",
"new": "Stel 'n nuwe integrasie op",
"none": "Nog niks is opgestel nie"
"no_integrations": "Lyk asof jy nog nie enige integations gekonfigureer het nie. Klik op die knoppie hieronder om jou eerste integrasie te voeg!",
"none": "Nog niks is opgestel nie",
"none_found": "Geen integrasies gevind nie",
"none_found_detail": "Verstel jou soekkriteria.",
"rename_dialog": "Redigeer die naam van hierdie config-inskrywing",
"rename_input_label": "Inskrywingsnaam"
},
"introduction": "Hier is dit moontlik om u komponente en Home Assistant op te stel. Tans kan alles in verband met die gebruikerskoppelvlak nog nie hier opgestel word nie, maar ons werk daaraan.",
"lovelace": {
Expand Down Expand Up @@ -1515,7 +1527,8 @@
},
"warning": {
"entity_non_numeric": "Entiteit is nie-numeriese: {entity}",
"entity_not_found": "Entiteit nie beskikbaar nie: {entity}"
"entity_not_found": "Entiteit nie beskikbaar nie: {entity}",
"entity_unavailable": "{entity} is nie tans beskikbaar nie."
}
},
"mailbox": {
Expand Down
74 changes: 68 additions & 6 deletions translations/frontend/ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,8 @@
"stopped": "موقف"
},
"default": {
"off": "مطفئ",
"on": "مشغل",
"unavailable": "غير متوفر",
"unknown": "غير معروف"
},
Expand Down Expand Up @@ -267,9 +269,19 @@
"returning": "العودة"
},
"weather": {
"clear-night": "صافي، ليلا",
"cloudy": "Bewolkt",
"fog": "Mist",
"sunny": "مشمس"
"lightning": "برق",
"lightning-rainy": "برق ، ممطر",
"partlycloudy": "غائم جزئيا",
"pouring": "أمطار غزيرة",
"rainy": "ماطر",
"snowy": "ثلوج",
"snowy-rainy": "ثلوج، ماطر",
"sunny": "مشمس",
"windy": "عاصف",
"windy-variant": "عاصف"
},
"zwave": {
"default": {
Expand All @@ -292,7 +304,16 @@
},
"card": {
"alarm_control_panel": {
"arm_custom_bypass": "تجاوز مخصص"
"arm_away": "تفعيل خارج المنزل",
"arm_custom_bypass": "تجاوز مخصص",
"arm_home": "تفعيل في المنزل",
"clear_code": "مسح",
"code": "الرمز",
"disarm": "تعطيل"
},
"automation": {
"last_triggered": "آخر تشغيل",
"trigger": "تشغيل"
},
"camera": {
"not_available": "الصورة غير متاحة"
Expand Down Expand Up @@ -326,6 +347,12 @@
"persistent_notification": {
"dismiss": "رفض"
},
"scene": {
"activate": "تفعيل"
},
"script": {
"execute": "نفذ"
},
"vacuum": {
"actions": {
"resume_cleaning": "استئناف التنظيف",
Expand All @@ -344,8 +371,14 @@
},
"weather": {
"attributes": {
"precipitation": "ترسب"
"air_pressure": "الضغط الجوي",
"humidity": "الرطوبة",
"precipitation": "ترسب",
"temperature": "الحرارة",
"visibility": "الرؤية",
"wind_speed": "سرعة الرياح"
},
"forecast": "التوقعات",
"high": "عالي",
"low": "منخفض"
}
Expand All @@ -354,6 +387,9 @@
"cancel": "إلغاء",
"delete": "حذف",
"loading": "جار التحميل",
"next": "التالى",
"previous": "السابق",
"refresh": "تحديث",
"successfully_deleted": "تم الحذف بنجاح",
"undo": "تراجع"
},
Expand All @@ -363,6 +399,10 @@
"entity": "الجهاز"
}
},
"history_charts": {
"loading_history": "جارٍ تحميل سجل الحالات ...",
"no_history_found": "لم يتم العثور على سجل الحالات."
},
"relative_time": {
"never": "Nooit"
},
Expand Down Expand Up @@ -415,7 +455,19 @@
"password": "كلمه السر",
"remember": "تذكر"
},
"notification_drawer": {
"click_to_configure": "انقر هنا لتعديل {entity}",
"empty": "لا إشعارات",
"title": "إشعارات"
},
"notification_toast": {
"connection_lost": "انقطع الاتصال. جارٍ إعادة الاتصال ..."
},
"panel": {
"calendar": {
"my_calendars": "تقاويمي",
"today": "اليوم"
},
"config": {
"areas": {
"data_table": {
Expand Down Expand Up @@ -476,6 +528,9 @@
"learn_more": "معرفة المزيد عن الشروط",
"type_select": "نوع الشرط",
"type": {
"not": {
"label": "ليس"
},
"numeric_state": {
"above": "فوق",
"below": "تحت",
Expand Down Expand Up @@ -682,6 +737,7 @@
"new": "إعداد تكامل جديد",
"no_integrations": "يبدوأن ليس هناك أي integations بعد. انقر على الزر أدناه لإضافة واحدة!",
"none": "لم يتم الإعداد بعد",
"none_found_detail": "اضبط معايير البحث.",
"rename_dialog": "تعديل الاسم",
"rename_input_label": "الاسم"
},
Expand Down Expand Up @@ -924,6 +980,7 @@
},
"save_config": {
"cancel": "لا يهم",
"close": "إغلاق",
"empty_config": "ابدأ بلوحة معلومات فارغة"
},
"view": {
Expand Down Expand Up @@ -957,6 +1014,7 @@
"playback_title": "تشغيل الرسالة"
},
"page-authorize": {
"abort_intro": "إلغاء الدخول",
"form": {
"providers": {
"command_line": {
Expand All @@ -969,13 +1027,17 @@
}
}
}
}
}
},
"working": "الرجاء الانتظار"
},
"initializing": "جار التهيئة"
},
"page-onboarding": {
"user": {
"data": {
"password_confirm": "تأكيد كلمة السر"
"password": "كلمه السر",
"password_confirm": "تأكيد كلمة السر",
"username": "المستخدم"
},
"error": {
"password_not_match": "كلمة السر غير مطابقة",
Expand Down
Loading