mirror of
https://github.com/bulwarkmail/native.git
synced 2026-11-01 16:05:39 +00:00
chore: drop translations of app strings the calendar agenda no longer uses
This commit is contained in:
@@ -6,10 +6,6 @@
|
||||
"not_starred": "غير مميزة بنجمة"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "لا أحداث في الأيام الـ{count} القادمة.",
|
||||
"no_upcoming": "لا توجد أحداث قادمة"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "دقائق بعد"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "No destacat"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "Els propers {count} dies són lliures.",
|
||||
"no_upcoming": "Cap esdeveniment proper"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "minuts després"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "Bez hvězdičky"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "Příštích {count} dní je volných.",
|
||||
"no_upcoming": "Žádné nadcházející události"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "min po"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "Ikke stjernemarkerede"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "De næste {count} dage er ledige.",
|
||||
"no_upcoming": "Ingen kommende begivenheder"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "minutter efter"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "Nicht markiert"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "Die nächsten {count} Tage sind frei.",
|
||||
"no_upcoming": "Keine bevorstehenden Termine"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "Minuten danach"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "No destacado"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "Los próximos {count} días están libres.",
|
||||
"no_upcoming": "No hay eventos próximos"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "minutos después"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "بدون ستاره"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "در {count} روز آینده رویدادی نیست.",
|
||||
"no_upcoming": "رویداد پیشرویی وجود ندارد"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "دقیقه بعد"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "Non suivis"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "Les {count} prochains jours sont libres.",
|
||||
"no_upcoming": "Aucun événement à venir"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "minutes après"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "ללא כוכב"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "אין אירועים ב-{count} הימים הקרובים.",
|
||||
"no_upcoming": "אין אירועים קרובים"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "דקות אחרי"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "Nem csillagozott"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "A következő {count} nap szabad.",
|
||||
"no_upcoming": "Nincsenek közelgő események"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "perccel utána"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "Non speciale"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "I prossimi {count} giorni sono liberi.",
|
||||
"no_upcoming": "Nessun evento in programma"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "minuti dopo"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "スターなし"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "今後{count}日間は予定がありません。",
|
||||
"no_upcoming": "今後の予定はありません"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "分後"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "별표 없음"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "앞으로 {count}일 동안 일정이 없어요.",
|
||||
"no_upcoming": "다가오는 일정이 없어요"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "분 후"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "Bez zvaigznītes"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "Nākamās {count} dienas ir brīvas.",
|
||||
"no_upcoming": "Nav gaidāmo notikumu"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "min pēc sākuma"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "Одгүй"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "Дараагийн {count} өдөр үйл явдал байхгүй.",
|
||||
"no_upcoming": "Удахгүй болох үйл явдал байхгүй"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "минутын дараа"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "Ikke stjernemerket"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "De neste {count} dagene er ledige.",
|
||||
"no_upcoming": "Ingen kommende hendelser"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "minutter etter"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "Zonder ster"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "De komende {count} dagen zijn vrij.",
|
||||
"no_upcoming": "Geen komende afspraken"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "minuten erna"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "Bez gwiazdki"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "Najbliższe {count} dni są wolne.",
|
||||
"no_upcoming": "Brak nadchodzących wydarzeń"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "min po"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "Sem estrela"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "Os próximos {count} dias estão livres.",
|
||||
"no_upcoming": "Nenhum evento próximo"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "minutos depois"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "Fără stea"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "Următoarele {count} de zile sunt libere.",
|
||||
"no_upcoming": "Nu există evenimente viitoare"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "minute după"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "Без пометки"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "В ближайшие {count} дн. событий нет.",
|
||||
"no_upcoming": "Нет предстоящих событий"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "минут после"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "Bez hviezdičky"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "Nasledujúcich {count} dní je voľných.",
|
||||
"no_upcoming": "Žiadne nadchádzajúce udalosti"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "min po"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "Yıldızsız"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "Önümüzdeki {count} gün boş.",
|
||||
"no_upcoming": "Yaklaşan etkinlik yok"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "dakika sonra"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "Без зірочки"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "У найближчі {count} дн. подій немає.",
|
||||
"no_upcoming": "Немає майбутніх подій"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "хвилин після"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "未加星號"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "未來 {count} 天沒有活動。",
|
||||
"no_upcoming": "沒有即將開始的活動"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "分鐘後"
|
||||
},
|
||||
|
||||
@@ -6,10 +6,6 @@
|
||||
"not_starred": "无星标"
|
||||
},
|
||||
"calendar": {
|
||||
"agenda": {
|
||||
"days_clear": "未来 {count} 天没有活动。",
|
||||
"no_upcoming": "没有即将举行的活动"
|
||||
},
|
||||
"alerts": {
|
||||
"unit_minutes_after": "分钟后"
|
||||
},
|
||||
|
||||
@@ -4,10 +4,13 @@
|
||||
// node scripts/rn-missing-translations.mjs count per language
|
||||
// node scripts/rn-missing-translations.mjs de the missing keys with their
|
||||
// English text, as nested JSON
|
||||
// node scripts/rn-missing-translations.mjs --prune
|
||||
// drop translated keys English
|
||||
// no longer has
|
||||
//
|
||||
// Keys the vendored webmail catalog of that language already carries are not
|
||||
// listed: they are translated there.
|
||||
import { readFileSync, readdirSync } from 'node:fs';
|
||||
import { readFileSync, readdirSync, writeFileSync } from 'node:fs';
|
||||
import { join, dirname } from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
|
||||
@@ -40,12 +43,26 @@ function missingFor(lang, en) {
|
||||
|
||||
const en = flatten(readJson(join(RN, 'en.json')));
|
||||
const lang = process.argv[2];
|
||||
const langs = readdirSync(RN).filter((f) => f.endsWith('.json') && f !== 'en.json').map((f) => f.slice(0, -5));
|
||||
|
||||
if (lang) {
|
||||
if (lang === '--prune') {
|
||||
for (const l of langs.sort()) {
|
||||
const path = join(RN, `${l}.json`);
|
||||
const kept = {};
|
||||
let dropped = 0;
|
||||
for (const [key, value] of flatten(readJson(path))) {
|
||||
if (en.has(key)) setDeep(kept, key, value);
|
||||
else dropped++;
|
||||
}
|
||||
if (dropped) {
|
||||
writeFileSync(path, `${JSON.stringify(kept, null, 2)}\n`);
|
||||
console.log(`${l.padEnd(6)} dropped ${dropped}`);
|
||||
}
|
||||
}
|
||||
} else if (lang) {
|
||||
const out = {};
|
||||
for (const [key, value] of missingFor(lang, en)) setDeep(out, key, value);
|
||||
console.log(JSON.stringify(out, null, 2));
|
||||
} else {
|
||||
const langs = readdirSync(RN).filter((f) => f.endsWith('.json') && f !== 'en.json').map((f) => f.slice(0, -5));
|
||||
for (const l of langs.sort()) console.log(`${l.padEnd(6)} ${missingFor(l, en).length} of ${en.size} missing`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user