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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
57 changes: 22 additions & 35 deletions packages/keystatic/scripts/l10n.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,44 +5,31 @@ import { compileString } from '@internationalized/string-compiler';
const localesDir = 'src/app/l10n';
(async () => {
const locales: Record<string, Record<string, string>> = {};
await Promise.all(
(await fs.readdir(localesDir, { withFileTypes: true })).map(
async localeEntry => {
if (!localeEntry.isDirectory()) return;
const localeDir = path.join(localesDir, localeEntry.name);
const entries: Record<string, string> = {};
await Promise.all(
(await fs.readdir(localeDir, { withFileTypes: true })).map(
async entry => {
if (!entry.isDirectory()) return;
let json;
try {
json = JSON.parse(
await fs.readFile(
path.join(localeDir, entry.name, 'index.json'),
'utf-8'
)
);
} catch (err) {
if ((err as any).code === 'ENOENT') {
return;
}
throw err;
}
entries[entry.name] = json.value;
}
)
);
if (Object.keys(entries).length) {
locales[localeEntry.name] = entries;
}
}
)
);
for (const entry of (
await fs.readdir(localesDir, { withFileTypes: true })
).sort((a, b) => a.name.localeCompare(b.name))) {
if (!entry.isFile() || !entry.name.endsWith('.json')) continue;
const locale = path.basename(entry.name, '.json');
const translations = JSON.parse(
await fs.readFile(path.join(localesDir, entry.name), 'utf-8')
);
if (
!translations ||
typeof translations !== 'object' ||
Array.isArray(translations)
) {
throw new Error(
`${entry.name} must contain an object of translation values`
);
}
locales[locale] = translations;
}
let out = 'const strings = {\n';
for (const [lang, translations] of Object.entries(locales)) {
out += ` ${JSON.stringify(lang)}: {\n`;
for (const [key, value] of Object.entries(translations)) {
for (const [key, value] of Object.entries(translations).sort(([a], [b]) =>
a.localeCompare(b)
)) {
out += ` ${JSON.stringify(key)}: ${compileString(value)},\n`;
}
out += ' },\n';
Expand Down
29 changes: 29 additions & 0 deletions packages/keystatic/src/app/l10n/ar-AE.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"add": "يضيف",
"basedOn": "مرتكز على",
"branchName": "اسم الفرع",
"branches": "الفروع",
"cancel": "يلغي",
"clear": "مسح",
"collection": "مجموعة",
"collections": "المجموعات",
"create": "يخلق",
"createPullRequest": "إنشاء طلب سحب",
"currentBranch": "الفرع الحالي",
"dashboard": "لوحة القيادة",
"defaultBranch": "الفرع الافتراضي",
"delete": "يمسح",
"deleteBranch": "حذف الفرع",
"edit": "يحرر",
"loading": "جارٍ التحميل",
"newBranch": "فرع جديد",
"otherBranches": "الفروع الأخرى",
"pullRequests": "طلبات السحب",
"save": "يحفظ",
"search": "بحث",
"singleton": "سينجلتون",
"singletons": "الفردي",
"theCurrentlyCheckedOutBranch": "الفرع المعاد حاليا. اختر هذا إذا كنت بحاجة إلى البناء على العمل الحالي من الفرع الحالي.",
"theDefaultBranchInYourRepository": "الفرع الافتراضي في المستودع الخاص بك. اختر هذا لبدء شيء جديد لا يعتمد على فرعك الحالي.",
"viewPullRequests": "عرض طلبات السحب"
}
6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/ar-AE/add/index.json

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/ar-AE/basedOn/index.json

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/ar-AE/branchName/index.json

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/ar-AE/branches/index.json

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/ar-AE/cancel/index.json

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/ar-AE/clear/index.json

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/ar-AE/collection/index.json

This file was deleted.

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/ar-AE/create/index.json

This file was deleted.

This file was deleted.

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/ar-AE/dashboard/index.json

This file was deleted.

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/ar-AE/delete/index.json

This file was deleted.

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/ar-AE/edit/index.json

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/ar-AE/loading/index.json

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/ar-AE/newBranch/index.json

This file was deleted.

This file was deleted.

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/ar-AE/save/index.json

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/ar-AE/search/index.json

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/ar-AE/singleton/index.json

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/ar-AE/singletons/index.json

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

29 changes: 29 additions & 0 deletions packages/keystatic/src/app/l10n/bg-BG.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"add": "Добавете",
"basedOn": "Базиран на",
"branchName": "Име на клон",
"branches": "Клонове",
"cancel": "Отказ",
"clear": "Изчисти",
"collection": "колекция",
"collections": "Колекции",
"create": "Създавайте",
"createPullRequest": "Създайте заявка за изтегляне",
"currentBranch": "Текущ клон",
"dashboard": "Табло",
"defaultBranch": "Клон по подразбиране",
"delete": "Изтрий",
"deleteBranch": "Изтриване на клон",
"edit": "редактиране",
"loading": "Зареждане",
"newBranch": "Нов клон",
"otherBranches": "Други клонове",
"pullRequests": "Заявки за изтегляне",
"save": "Запазване",
"search": "Търсене",
"singleton": "Сингълтън",
"singletons": "Единични",
"theCurrentlyCheckedOutBranch": "Текущо провереният клон. Изберете това, ако трябва да надграждате върху съществуваща работа от текущия клон.",
"theDefaultBranchInYourRepository": "Клонът по подразбиране във вашето хранилище. Изберете това, за да започнете с нещо ново, което не зависи от текущия ви клон.",
"viewPullRequests": "Преглед на заявките за изтегляне"
}
6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/bg-BG/add/index.json

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/bg-BG/basedOn/index.json

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/bg-BG/branchName/index.json

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/bg-BG/branches/index.json

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/bg-BG/cancel/index.json

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/bg-BG/clear/index.json

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/bg-BG/collection/index.json

This file was deleted.

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/bg-BG/create/index.json

This file was deleted.

This file was deleted.

This file was deleted.

6 changes: 0 additions & 6 deletions packages/keystatic/src/app/l10n/bg-BG/dashboard/index.json

This file was deleted.

Loading
Loading