i18n: framework catalogs for the 51 languages X offers, and tests

Kit and shell-model words (18 keys) per locale, machine-drafted except English. Tests cover
locale normalization, fallback chains, direction, ICU-lite formatting and quoting, the runtime,
catalog rules (plural-only arguments, missing forms, allowEmpty), plugin strings, and that every
framework catalog passes the checks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
CRTkafa 2026-09-29 09:53:49 +07:00
parent 5f62b471f0
commit d36e2d8709
52 changed files with 1620 additions and 0 deletions

View file

@ -0,0 +1,224 @@
import { test } from 'node:test';
import assert from 'node:assert/strict';
import { readFileSync, readdirSync } from 'node:fs';
import { dirname, join } from 'node:path';
import { fileURLToPath } from 'node:url';
import {
argumentShapes, createI18n, direction, fallbackChain, formatMessage, matchLocale, normalizeLocale,
parseMessage, placeholders, pluralCategories, relativeParts, type Catalog,
} from '../src/i18n.ts';
import { checkCatalog, checkMessageSafety, checkShape, checkSource, coverage, generateKeyTypes, type CatalogIssue } from '../src/i18nCheck.ts';
import { createPluginI18n, pluginNamespace } from '../src/pluginI18n.ts';
import { KIT_MESSAGES } from '../src/ui.ts';
import { SHELL_MESSAGES, shellText } from '../../shell/src/messages.ts';
const here = dirname(fileURLToPath(import.meta.url));
test('locale tags are normalized, including X and legacy codes', () => {
assert.equal(normalizeLocale('en_gb'), 'en-GB');
assert.equal(normalizeLocale('zh-cn'), 'zh-Hans');
assert.equal(normalizeLocale('zh-TW'), 'zh-Hant');
assert.equal(normalizeLocale('zh-Hant-HK'), 'zh-Hant');
assert.equal(normalizeLocale('zh'), 'zh-Hans');
assert.equal(normalizeLocale('msa'), 'ms');
assert.equal(normalizeLocale('no'), 'nb');
assert.equal(normalizeLocale('iw'), 'he');
assert.equal(normalizeLocale('ar-x-fm'), 'ar-x-fm');
assert.equal(normalizeLocale('pt-br'), 'pt-BR');
for (const bad of ['', 'x', 'english!', '<script>', 'a'.repeat(40), null, 42]) assert.equal(normalizeLocale(bad), null, String(bad));
});
test('fallback chains end in the source and never cross scripts', () => {
assert.deepEqual(fallbackChain('pt-BR'), ['pt-BR', 'pt', 'en']);
assert.deepEqual(fallbackChain('zh-Hant'), ['zh-Hant', 'en']);
assert.deepEqual(fallbackChain('ar-x-fm'), ['ar-x-fm', 'ar', 'en']);
assert.deepEqual(fallbackChain('en-GB', 'en', { 'en-GB': 'en' }), ['en-GB', 'en']);
assert.equal(matchLocale(['pt-PT', 'en'], ['en', 'pt', 'tr']), 'pt');
assert.equal(matchLocale(['xx', 'tr-TR'], ['en', 'tr']), 'tr');
assert.equal(matchLocale(['ja'], ['en', 'tr']), 'en');
});
test('direction follows the script', () => {
for (const rtl of ['ar', 'ar-x-fm', 'fa', 'he', 'ur']) assert.equal(direction(rtl), 'rtl', rtl);
for (const ltr of ['en', 'tr', 'ja', 'zh-Hant', 'ha']) assert.equal(direction(ltr), 'ltr', ltr);
});
test('ICU-lite: placeholders, plurals with exact forms, select, quoting', () => {
assert.equal(formatMessage('Hello, {name}!', { name: '<b>x</b>' }), 'Hello, <b>x</b>!', 'values are text');
const drafts = '{count, plural, =0 {No drafts} one {# draft} other {# drafts}}';
assert.equal(formatMessage(drafts, { count: 0 }), 'No drafts');
assert.equal(formatMessage(drafts, { count: 1 }), '1 draft');
assert.equal(formatMessage(drafts, { count: 1234 }), '1,234 drafts');
assert.equal(formatMessage(drafts, { count: 1234 }, 'de'), '1.234 drafts');
// Arabic has six forms; "few" for 3.
assert.equal(formatMessage('{n, plural, zero {z} one {o} two {t} few {f} many {m} other {x}}', { n: 3 }, 'ar'), 'f');
assert.equal(formatMessage('{kind, select, post {Post} reply {Reply} other {Item}}', { kind: 'reply' }), 'Reply');
assert.equal(formatMessage('{kind, select, post {Post} other {Item}}', { kind: 'nope' }), 'Item');
assert.equal(formatMessage("Use '{braces}' and it''s fine"), "Use {braces} and it's fine");
assert.equal(formatMessage('{n, selectordinal, one {#st} two {#nd} few {#rd} other {#th}}', { n: 22 }), '22nd');
assert.equal(formatMessage('{n, number, percent}', { n: 0.5 }), '50%');
assert.equal(formatMessage('Missing {x}'), 'Missing {x}');
assert.equal(formatMessage('Broken {x'), 'Broken {x', 'malformed messages render raw');
assert.throws(() => parseMessage('{n, plural, one {x}}'), /other/);
assert.throws(() => parseMessage('{a-b}'), /placeholder/);
assert.deepEqual(placeholders('{a} {n, plural, one {# {b}} other {{c}}}'), ['a', 'b', 'c', 'n']);
assert.deepEqual(argumentShapes(drafts), { count: { kind: 'plural', options: ['=0', 'one', 'other'] } });
assert.deepEqual(pluralCategories('tr').sort(), ['one', 'other']);
assert.deepEqual(pluralCategories('ja'), ['other']);
});
test('createI18n: lazy catalogs, fallback, missing reports, resolved subsets', async () => {
const missing: string[] = [];
const loads: string[] = [];
const i18n = createI18n({
source: { 'a.hello': 'Hello, {name}', 'a.only': 'English only', 'x.nav': 'Nav' },
available: ['en', 'pt', 'pt-BR', 'tr'],
load: tag => {
loads.push(tag);
return ({ pt: { 'a.hello': 'Olá, {name}' }, 'pt-BR': { 'x.nav': 'Navegação' }, tr: { 'a.hello': 'Merhaba {name}' } } as Record<string, Record<string, string>>)[tag];
},
onMissing: (key, locale, reason) => missing.push(`${reason}:${locale}:${key}`),
});
const seen: string[] = [];
i18n.onChange(locale => seen.push(locale));
assert.equal(await i18n.setLocale('pt-BR'), 'pt-BR');
assert.deepEqual(i18n.chain, ['pt-BR', 'pt', 'en']);
assert.deepEqual(loads.sort(), ['pt', 'pt-BR']);
assert.equal(i18n.t('a.hello', { name: 'Ana' }), 'Olá, Ana');
assert.equal(i18n.t('x.nav'), 'Navegação');
assert.equal(i18n.t('a.only'), 'English only');
assert.equal(i18n.t('nope'), 'nope');
assert.ok(missing.includes('key:pt-BR:a.only') && missing.includes('key:pt-BR:nope'));
assert.deepEqual(i18n.resolved(['x.']), { 'x.nav': 'Navegação' });
assert.equal(await i18n.setLocale('fr-FR'), 'en', 'no catalog: the source');
assert.equal(await i18n.setLocale('tr-TR'), 'tr');
assert.deepEqual(seen, ['pt-BR', 'en', 'tr']);
assert.equal(i18n.number(1234.5), '1.234,5');
assert.equal(i18n.dir, 'ltr');
i18n.add('tr', { 'a.only': 'Sadece' });
assert.equal(i18n.t('a.only'), 'Sadece');
assert.equal(i18n.tx('dynamic.key', {}, 'fallback'), 'fallback');
assert.equal(typeof i18n.relative(-3, 'minute'), 'string');
assert.deepEqual(relativeParts(Date.now() - 5 * 60_000), { value: -5, unit: 'minute' });
});
test('catalog checks: placeholders, plurals, markup, extra keys, lengths', () => {
const source = {
'a.hello': 'Hello, {name}',
'a.count': '{n, plural, one {# item} other {# items}}',
'a.kind': '{k, select, post {Post} other {Other}}',
'a.short': 'Save',
};
const catalog: Catalog = {
locale: 'ar', name: 'العربية', englishName: 'Arabic', dir: 'rtl', status: 'machine',
messages: {
'a.hello': 'مرحبا {nom}',
'a.count': '{n, plural, one {عنصر} other {# عناصر}}',
'a.kind': '{k, select, other {آخر}}',
'a.short': 'x'.repeat(80),
'a.gone': 'قديم',
},
};
const issues = checkCatalog(catalog, source);
const text = issues.map(issue => `${issue.level}:${issue.key}:${issue.message}`).join('\n');
assert.match(text, /error:a\.hello:missing placeholder\(s\) \{name\}/);
assert.match(text, /error:a\.hello:unknown placeholder\(s\) \{nom\}/);
assert.match(text, /warning:a\.count:.*no "zero" form \(ar uses it/);
assert.match(text, /error:a\.kind:.*lacks the "post" option/);
assert.match(text, /warning:a\.short:translation is 80 characters/);
assert.match(text, /error:a\.gone:key is not in the source/);
assert.equal(checkMessageSafety('tr', 'k', 'Merhaba <img src=x onerror=alert(1)>')[0]?.level, 'error');
assert.equal(checkMessageSafety('tr', 'k', 'a‮b')[0]?.level, 'error');
assert.equal(checkMessageSafety('tr', 'k', 'Boyut < 8 MB').length, 0);
assert.equal(checkShape({ locale: 'tr', name: 'Türkçe', englishName: 'Turkish', status: 'reviewed', messages: {} }).length, 1, 'reviewed needs reviewers');
assert.equal(checkShape({ locale: 'ar', name: 'x', englishName: 'y', status: 'machine', dir: 'ltr', messages: {} }).length, 1, 'wrong dir');
assert.equal(checkShape({ locale: 'zh-cn', name: 'x', englishName: 'y', status: 'machine', messages: {} }).length, 1, 'non-canonical tag');
assert.equal(checkSource({ locale: 'en', name: 'English', englishName: 'English', status: 'source', messages: { a: 'x' } }, { b: 'desc' }).length, 1);
assert.equal(coverage(catalog, source), 1);
assert.match(generateKeyTypes(source), /"a\.hello": \{ name: string \| number \| Date \}/);
});
test('apostrophes are literal unless they quote { } # or another apostrophe', () => {
assert.equal(formatMessage("Don't lose the developer's {name}", { name: 'draft' }), "Don't lose the developer's draft");
assert.equal(formatMessage("It's {n, plural, one {# post} other {# posts}}", { n: 2 }), "It's 2 posts");
assert.equal(formatMessage("'#'1 and '{'x'}' and it''s"), '#1 and {x} and it\'s');
assert.equal(formatMessage("{n, plural, other {'#' is #}}", { n: 3 }), '# is 3');
assert.deepEqual(placeholders("don't {a} 'n' {b}"), ['a', 'b']);
assert.deepEqual(checkMessageSafety('en', 'k', "Don't show the developer's notes"), []);
});
test('catalog checks: plural-only arguments may be dropped, other placeholders may not', () => {
const source = {
'a.fonts': 'Download {count, plural, one {it} other {them}} now?',
'a.saved': 'Download {fonts} to see {count, plural, one {it} other {them}}.',
'a.drafts': '{count, plural, one {# draft} other {# drafts}}',
'a.kind': 'Open {kind, select, post {the post} other {it}}',
'a.frames': 'New {ext}{frames, plural, =0 {} =1 {} other { · # frames}}',
'a.before': 'In',
};
const catalog: Catalog = {
locale: 'ms', name: 'Bahasa Melayu', englishName: 'Malay', status: 'machine',
messages: {
'a.fonts': 'Muat turun sekarang?',
'a.saved': 'Muat turun {fonts} untuk melihatnya.',
'a.drafts': 'draf',
'a.kind': 'Buka',
'a.frames': '{ext} baharu{frames, plural, other { · # bingkai}}',
'a.before': '',
},
};
const errors = checkCatalog(catalog, source, { 'a.before': { description: 'fragment', allowEmpty: true } }).filter(issue => issue.level === 'error');
assert.deepEqual(errors.map(issue => `${issue.key}:${issue.message}`), [
'a.drafts:missing placeholder(s) {count}',
'a.kind:missing placeholder(s) {kind}',
]);
assert.equal(checkCatalog({ ...catalog, messages: { 'a.before': '' } }, source).filter(issue => issue.level === 'error').length, 1, 'empty needs allowEmpty');
// Only `other` where the language has only `other` (ms, vi, th, yo): no warning either.
for (const locale of ['ms', 'vi', 'th', 'yo']) {
const only = checkCatalog({ ...catalog, locale, messages: { 'a.drafts': '{count, plural, other {# x}}' } }, source);
assert.deepEqual(only.filter(issue => issue.key === 'a.drafts'), [], locale);
}
const sk = checkCatalog({ ...catalog, locale: 'sk', messages: { 'a.frames': 'Nový {ext}{frames, plural, =0 {} =1 {} other { · # sn.}}' } }, source);
assert.ok(sk.every(issue => issue.level === 'warning'), 'missing plural forms are warnings');
});
test('plugin strings: own translations, then the app catalog, then own English', () => {
let locale = 'tr';
const listeners = new Set<() => void>();
const host = { 'plugin.reading-time.label': '{minutes} dk okuma', 'kit.ok': 'Tamam' } as Record<string, string>;
const source = { locale: () => locale, message: (key: string) => host[key], onChange: (fn: () => void) => { listeners.add(fn); return () => listeners.delete(fn); } };
const root = createPluginI18n(source);
const bundled = root.namespace(pluginNamespace('reading-time.plugin.js'));
bundled.register({ en: { label: '{minutes} min read', other: 'Other' } });
assert.equal(bundled.t('label', { minutes: 3 }), '3 dk okuma');
assert.equal(bundled.t('other'), 'Other');
const third = root.namespace('notes');
third.register({ en: { saved: 'Saved' }, 'tr-TR': { saved: 'Kaydedildi' } });
assert.equal(third.t('saved'), 'Saved', 'tr-TR does not serve tr');
third.register({ tr: { saved: 'Kaydedildi' } });
assert.equal(third.t('saved'), 'Kaydedildi');
let heard = '';
third.onChange(next => { heard = next; });
locale = 'en';
for (const fn of listeners) fn();
assert.equal(heard, 'en');
assert.equal(third.t('saved'), 'Saved');
assert.equal(third.t('missing'), 'missing');
assert.throws(() => root.namespace('../x'), /invalid/);
});
test('framework catalogs: kit words for every locale pass the checks', () => {
const dir = join(here, '../../waybetter/locales');
const en = JSON.parse(readFileSync(join(dir, 'en.json'), 'utf8')) as Catalog;
assert.deepEqual(en.messages, { ...KIT_MESSAGES, ...SHELL_MESSAGES }, 'en.json is the kit and shell-model source');
assert.equal(shellText('wb.account.signedOut', { handle: '@a' }), '@a · signed out');
assert.equal(shellText('wb.account.signedOut', { handle: '@a' }, () => '{handle} · oturum kapalı'), '@a · oturum kapalı');
const files = readdirSync(dir).filter(file => file.endsWith('.json'));
assert.ok(files.length >= 50, `${files.length} locales`);
for (const file of files) {
const catalog = JSON.parse(readFileSync(join(dir, file), 'utf8')) as Catalog;
assert.equal(`${catalog.locale}.json`, file);
const errors: CatalogIssue[] = [...checkShape(catalog, file), ...(file === 'en.json' ? checkSource(catalog) : checkCatalog(catalog, en.messages))].filter(issue => issue.level === 'error');
assert.deepEqual(errors, [], file);
}
});

View file

@ -0,0 +1,11 @@
{
"$schema": "../i18n.schema.json",
"locale": "ar-x-fm",
"name": "العربية (بصيغة المؤنث)",
"englishName": "Arabic (Feminine)",
"dir": "rtl",
"status": "machine",
"reviewers": [],
"fallback": "ar",
"messages": {}
}

View file

@ -0,0 +1,29 @@
{
"$schema": "../i18n.schema.json",
"locale": "ar",
"name": "العربية",
"englishName": "Arabic",
"dir": "rtl",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "حسنًا",
"kit.cancel": "إلغاء",
"kit.delete": "حذف",
"kit.close": "إغلاق",
"kit.dismiss": "تجاهل",
"kit.dialog": "مربع حوار",
"kit.value": "القيمة",
"kit.checkValue": "يُرجى التحقق من هذه القيمة.",
"kit.failed": "حدث خطأ ما.",
"wb.account.notSignedIn": "لم يتم تسجيل الدخول بعد",
"wb.account.signedOut": "{handle} · تم تسجيل الخروج",
"wb.account.newName": "حساب جديد",
"wb.update.readyLabel": "التحديث جاهز · أعد التشغيل",
"wb.update.readyTitle": "أعد التشغيل للتحديث إلى {product} {version}. ستُستعاد علاماتك.",
"wb.update.installingLabel": "جارٍ التحديث…",
"wb.update.installingTitle": "جارٍ تثبيت {product} {version}",
"wb.update.problemLabel": "مشكلة في التحديث",
"wb.update.problemTitle": "لم يبدأ التحديث الأخير بشكل صحيح. نزّل الإصدار الحالي."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "bg",
"name": "Български",
"englishName": "Bulgarian",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Отказ",
"kit.delete": "Изтриване",
"kit.close": "Затваряне",
"kit.dismiss": "Отхвърляне",
"kit.dialog": "Диалогов прозорец",
"kit.value": "Стойност",
"kit.checkValue": "Моля, проверете тази стойност.",
"kit.failed": "Нещо се обърка.",
"wb.account.notSignedIn": "Все още не сте влезли",
"wb.account.signedOut": "{handle} · излязъл",
"wb.account.newName": "Нов акаунт",
"wb.update.readyLabel": "Актуализацията е готова · рестартиране",
"wb.update.readyTitle": "Рестартирайте, за да обновите до {product} {version}. Разделите се възстановяват.",
"wb.update.installingLabel": "Актуализиране…",
"wb.update.installingTitle": "Инсталиране на {product} {version}",
"wb.update.problemLabel": "Проблем с актуализацията",
"wb.update.problemTitle": "Последната актуализация не се стартира правилно. Изтеглете текущата версия."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "bn",
"name": "বাংলা",
"englishName": "Bangla",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "ঠিক আছে",
"kit.cancel": "বাতিল",
"kit.delete": "মুছুন",
"kit.close": "বন্ধ করুন",
"kit.dismiss": "খারিজ করুন",
"kit.dialog": "ডায়ালগ",
"kit.value": "মান",
"kit.checkValue": "অনুগ্রহ করে এই মানটি যাচাই করুন।",
"kit.failed": "কিছু একটা ভুল হয়েছে।",
"wb.account.notSignedIn": "এখনও সাইন ইন করা হয়নি",
"wb.account.signedOut": "{handle} · সাইন আউট",
"wb.account.newName": "নতুন অ্যাকাউন্ট",
"wb.update.readyLabel": "আপডেট প্রস্তুত · রিস্টার্ট করুন",
"wb.update.readyTitle": "{product} {version}-এ আপডেট করতে রিস্টার্ট করুন। ট্যাবগুলি ফিরে আসবে।",
"wb.update.installingLabel": "আপডেট হচ্ছে…",
"wb.update.installingTitle": "{product} {version} ইনস্টল হচ্ছে",
"wb.update.problemLabel": "আপডেটে সমস্যা",
"wb.update.problemTitle": "শেষ আপডেটটি ঠিকভাবে শুরু হয়নি। বর্তমান সংস্করণটি ডাউনলোড করুন।"
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "ca",
"name": "Català",
"englishName": "Catalan",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "D'acord",
"kit.cancel": "Cancel·la",
"kit.delete": "Suprimeix",
"kit.close": "Tanca",
"kit.dismiss": "Descarta",
"kit.dialog": "Diàleg",
"kit.value": "Valor",
"kit.checkValue": "Comprova aquest valor.",
"kit.failed": "Alguna cosa ha fallat.",
"wb.account.notSignedIn": "Encara no has iniciat la sessió",
"wb.account.signedOut": "{handle} · sessió tancada",
"wb.account.newName": "Compte nou",
"wb.update.readyLabel": "Actualització a punt · reinicia",
"wb.update.readyTitle": "Reinicia per actualitzar a {product} {version}. Les pestanyes es restauren.",
"wb.update.installingLabel": "S'està actualitzant…",
"wb.update.installingTitle": "S'està instal·lant {product} {version}",
"wb.update.problemLabel": "Problema d'actualització",
"wb.update.problemTitle": "L'última actualització no s'ha iniciat correctament. Baixa la versió actual."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "cs",
"name": "Čeština",
"englishName": "Czech",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Zrušit",
"kit.delete": "Smazat",
"kit.close": "Zavřít",
"kit.dismiss": "Zavřít oznámení",
"kit.dialog": "Dialog",
"kit.value": "Hodnota",
"kit.checkValue": "Zkontrolujte prosím tuto hodnotu.",
"kit.failed": "Něco se pokazilo.",
"wb.account.notSignedIn": "Zatím nepřihlášeno",
"wb.account.signedOut": "{handle} · odhlášeno",
"wb.account.newName": "Nový účet",
"wb.update.readyLabel": "Aktualizace připravena · restartovat",
"wb.update.readyTitle": "Restartujte a aktualizujte na {product} {version}. Karty se obnoví.",
"wb.update.installingLabel": "Aktualizace…",
"wb.update.installingTitle": "Instaluje se {product} {version}",
"wb.update.problemLabel": "Problém s aktualizací",
"wb.update.problemTitle": "Poslední aktualizace se nespustila správně. Stáhněte si aktuální verzi."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "da",
"name": "Dansk",
"englishName": "Danish",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Annuller",
"kit.delete": "Slet",
"kit.close": "Luk",
"kit.dismiss": "Afvis",
"kit.dialog": "Dialog",
"kit.value": "Værdi",
"kit.checkValue": "Kontrollér denne værdi.",
"kit.failed": "Noget gik galt.",
"wb.account.notSignedIn": "Ikke logget ind endnu",
"wb.account.signedOut": "{handle} · logget ud",
"wb.account.newName": "Ny konto",
"wb.update.readyLabel": "Opdatering klar · genstart",
"wb.update.readyTitle": "Genstart for at opdatere til {product} {version}. Fanerne gendannes.",
"wb.update.installingLabel": "Opdaterer…",
"wb.update.installingTitle": "Installerer {product} {version}",
"wb.update.problemLabel": "Problem med opdatering",
"wb.update.problemTitle": "Den seneste opdatering startede ikke korrekt. Hent den aktuelle version."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "de",
"name": "Deutsch",
"englishName": "German",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Abbrechen",
"kit.delete": "Löschen",
"kit.close": "Schließen",
"kit.dismiss": "Ausblenden",
"kit.dialog": "Dialog",
"kit.value": "Wert",
"kit.checkValue": "Bitte prüfe diesen Wert.",
"kit.failed": "Etwas ist schiefgelaufen.",
"wb.account.notSignedIn": "Noch nicht angemeldet",
"wb.account.signedOut": "{handle} · abgemeldet",
"wb.account.newName": "Neues Konto",
"wb.update.readyLabel": "Update bereit · neu starten",
"wb.update.readyTitle": "Neu starten, um auf {product} {version} zu aktualisieren. Tabs werden wiederhergestellt.",
"wb.update.installingLabel": "Wird aktualisiert…",
"wb.update.installingTitle": "{product} {version} wird installiert",
"wb.update.problemLabel": "Update-Problem",
"wb.update.problemTitle": "Das letzte Update ist nicht richtig gestartet. Lade die aktuelle Version herunter."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "el",
"name": "Ελληνικά",
"englishName": "Greek",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Ακύρωση",
"kit.delete": "Διαγραφή",
"kit.close": "Κλείσιμο",
"kit.dismiss": "Απόρριψη",
"kit.dialog": "Παράθυρο διαλόγου",
"kit.value": "Τιμή",
"kit.checkValue": "Ελέγξτε αυτήν την τιμή.",
"kit.failed": "Κάτι πήγε στραβά.",
"wb.account.notSignedIn": "Δεν έχετε συνδεθεί ακόμα",
"wb.account.signedOut": "{handle} · αποσυνδεδεμένος",
"wb.account.newName": "Νέος λογαριασμός",
"wb.update.readyLabel": "Ενημέρωση έτοιμη · επανεκκίνηση",
"wb.update.readyTitle": "Επανεκκινήστε για ενημέρωση στο {product} {version}. Οι καρτέλες επανέρχονται.",
"wb.update.installingLabel": "Ενημέρωση…",
"wb.update.installingTitle": "Εγκατάσταση {product} {version}",
"wb.update.problemLabel": "Πρόβλημα ενημέρωσης",
"wb.update.problemTitle": "Η τελευταία ενημέρωση δεν ξεκίνησε σωστά. Κατεβάστε την τρέχουσα έκδοση."
}
}

View file

@ -0,0 +1,10 @@
{
"$schema": "../i18n.schema.json",
"locale": "en-GB",
"name": "English (UK)",
"englishName": "British English",
"status": "machine",
"reviewers": [],
"fallback": "en",
"messages": {}
}

View file

@ -0,0 +1,27 @@
{
"$schema": "../i18n.schema.json",
"locale": "en",
"name": "English",
"englishName": "English",
"status": "source",
"messages": {
"kit.ok": "OK",
"kit.cancel": "Cancel",
"kit.delete": "Delete",
"kit.close": "Close",
"kit.dismiss": "Dismiss",
"kit.dialog": "Dialog",
"kit.value": "Value",
"kit.checkValue": "Please check this value.",
"kit.failed": "Something went wrong.",
"wb.account.notSignedIn": "Not signed in yet",
"wb.account.signedOut": "{handle} · signed out",
"wb.account.newName": "New account",
"wb.update.readyLabel": "Update ready · restart",
"wb.update.readyTitle": "Restart to update to {product} {version}. Tabs are restored.",
"wb.update.installingLabel": "Updating…",
"wb.update.installingTitle": "Installing {product} {version}",
"wb.update.problemLabel": "Update problem",
"wb.update.problemTitle": "The last update did not start correctly. Download the current version."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "es",
"name": "Español",
"englishName": "Spanish",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "Aceptar",
"kit.cancel": "Cancelar",
"kit.delete": "Eliminar",
"kit.close": "Cerrar",
"kit.dismiss": "Descartar",
"kit.dialog": "Cuadro de diálogo",
"kit.value": "Valor",
"kit.checkValue": "Revisa este valor.",
"kit.failed": "Algo salió mal.",
"wb.account.notSignedIn": "Todavía no has iniciado sesión",
"wb.account.signedOut": "{handle} · sesión cerrada",
"wb.account.newName": "Cuenta nueva",
"wb.update.readyLabel": "Actualización lista · reiniciar",
"wb.update.readyTitle": "Reinicia para actualizar a {product} {version}. Las pestañas se restauran.",
"wb.update.installingLabel": "Actualizando…",
"wb.update.installingTitle": "Instalando {product} {version}",
"wb.update.problemLabel": "Problema de actualización",
"wb.update.problemTitle": "La última actualización no se inició correctamente. Descarga la versión actual."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "eu",
"name": "Euskara",
"englishName": "Basque",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "Ados",
"kit.cancel": "Utzi",
"kit.delete": "Ezabatu",
"kit.close": "Itxi",
"kit.dismiss": "Baztertu",
"kit.dialog": "Elkarrizketa-koadroa",
"kit.value": "Balioa",
"kit.checkValue": "Egiaztatu balio hau.",
"kit.failed": "Zerbaitek huts egin du.",
"wb.account.notSignedIn": "Oraindik ez duzu saioa hasi",
"wb.account.signedOut": "{handle} · saioa itxita",
"wb.account.newName": "Kontu berria",
"wb.update.readyLabel": "Eguneratzea prest · berrabiarazi",
"wb.update.readyTitle": "Berrabiarazi {product} {version} bertsiora eguneratzeko. Fitxak berreskuratzen dira.",
"wb.update.installingLabel": "Eguneratzen…",
"wb.update.installingTitle": "{product} {version} instalatzen",
"wb.update.problemLabel": "Eguneratze-arazoa",
"wb.update.problemTitle": "Azken eguneratzea ez da ondo abiarazi. Deskargatu uneko bertsioa."
}
}

View file

@ -0,0 +1,29 @@
{
"$schema": "../i18n.schema.json",
"locale": "fa",
"name": "فارسی",
"englishName": "Persian",
"dir": "rtl",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "تأیید",
"kit.cancel": "لغو",
"kit.delete": "حذف",
"kit.close": "بستن",
"kit.dismiss": "رد کردن",
"kit.dialog": "کادر گفتگو",
"kit.value": "مقدار",
"kit.checkValue": "لطفاً این مقدار را بررسی کنید.",
"kit.failed": "مشکلی پیش آمد.",
"wb.account.notSignedIn": "هنوز وارد نشده‌اید",
"wb.account.signedOut": "{handle} · خارج شده",
"wb.account.newName": "حساب جدید",
"wb.update.readyLabel": "به‌روزرسانی آماده است · راه‌اندازی مجدد",
"wb.update.readyTitle": "برای به‌روزرسانی به {product} {version} دوباره راه‌اندازی کنید. زبانه‌ها بازیابی می‌شوند.",
"wb.update.installingLabel": "در حال به‌روزرسانی…",
"wb.update.installingTitle": "در حال نصب {product} {version}",
"wb.update.problemLabel": "مشکل به‌روزرسانی",
"wb.update.problemTitle": "آخرین به‌روزرسانی درست شروع نشد. نسخهٔ فعلی را بارگیری کنید."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "fi",
"name": "Suomi",
"englishName": "Finnish",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Peruuta",
"kit.delete": "Poista",
"kit.close": "Sulje",
"kit.dismiss": "Hylkää",
"kit.dialog": "Valintaikkuna",
"kit.value": "Arvo",
"kit.checkValue": "Tarkista tämä arvo.",
"kit.failed": "Jokin meni vikaan.",
"wb.account.notSignedIn": "Et ole vielä kirjautunut",
"wb.account.signedOut": "{handle} · kirjautunut ulos",
"wb.account.newName": "Uusi tili",
"wb.update.readyLabel": "Päivitys valmis · käynnistä uudelleen",
"wb.update.readyTitle": "Käynnistä uudelleen päivittääksesi versioon {product} {version}. Välilehdet palautetaan.",
"wb.update.installingLabel": "Päivitetään…",
"wb.update.installingTitle": "Asennetaan {product} {version}",
"wb.update.problemLabel": "Päivitysongelma",
"wb.update.problemTitle": "Viimeisin päivitys ei käynnistynyt oikein. Lataa nykyinen versio."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "fil",
"name": "Filipino",
"englishName": "Filipino",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Kanselahin",
"kit.delete": "Burahin",
"kit.close": "Isara",
"kit.dismiss": "I-dismiss",
"kit.dialog": "Dialog",
"kit.value": "Halaga",
"kit.checkValue": "Pakisuri ang halagang ito.",
"kit.failed": "Nagkaproblema.",
"wb.account.notSignedIn": "Hindi pa naka-sign in",
"wb.account.signedOut": "{handle} · naka-sign out",
"wb.account.newName": "Bagong account",
"wb.update.readyLabel": "Handa na ang update · i-restart",
"wb.update.readyTitle": "I-restart para ma-update sa {product} {version}. Maibabalik ang mga tab.",
"wb.update.installingLabel": "Nag-a-update…",
"wb.update.installingTitle": "Ini-install ang {product} {version}",
"wb.update.problemLabel": "Problema sa update",
"wb.update.problemTitle": "Hindi nagsimula nang maayos ang huling update. I-download ang kasalukuyang bersyon."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "fr",
"name": "Français",
"englishName": "French",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Annuler",
"kit.delete": "Supprimer",
"kit.close": "Fermer",
"kit.dismiss": "Ignorer",
"kit.dialog": "Boîte de dialogue",
"kit.value": "Valeur",
"kit.checkValue": "Veuillez vérifier cette valeur.",
"kit.failed": "Un problème est survenu.",
"wb.account.notSignedIn": "Pas encore connecté",
"wb.account.signedOut": "{handle} · déconnecté",
"wb.account.newName": "Nouveau compte",
"wb.update.readyLabel": "Mise à jour prête · redémarrer",
"wb.update.readyTitle": "Redémarrez pour passer à {product} {version}. Les onglets sont restaurés.",
"wb.update.installingLabel": "Mise à jour…",
"wb.update.installingTitle": "Installation de {product} {version}",
"wb.update.problemLabel": "Problème de mise à jour",
"wb.update.problemTitle": "La dernière mise à jour n'a pas démarré correctement. Téléchargez la version actuelle."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "ga",
"name": "Gaeilge",
"englishName": "Irish",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Cealaigh",
"kit.delete": "Scrios",
"kit.close": "Dún",
"kit.dismiss": "Díbir",
"kit.dialog": "Dialóg",
"kit.value": "Luach",
"kit.checkValue": "Seiceáil an luach seo, le do thoil.",
"kit.failed": "Tharla earráid.",
"wb.account.notSignedIn": "Níl tú sínithe isteach fós",
"wb.account.signedOut": "{handle} · sínithe amach",
"wb.account.newName": "Cuntas nua",
"wb.update.readyLabel": "Nuashonrú réidh · atosaigh",
"wb.update.readyTitle": "Atosaigh chun nuashonrú go {product} {version}. Athchóireofar na cluaisíní.",
"wb.update.installingLabel": "Á nuashonrú…",
"wb.update.installingTitle": "{product} {version} á shuiteáil",
"wb.update.problemLabel": "Fadhb le nuashonrú",
"wb.update.problemTitle": "Níor thosaigh an nuashonrú deireanach i gceart. Íoslódáil an leagan reatha."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "gl",
"name": "Galego",
"englishName": "Galician",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "Aceptar",
"kit.cancel": "Cancelar",
"kit.delete": "Eliminar",
"kit.close": "Pechar",
"kit.dismiss": "Descartar",
"kit.dialog": "Diálogo",
"kit.value": "Valor",
"kit.checkValue": "Comproba este valor.",
"kit.failed": "Algo saíu mal.",
"wb.account.notSignedIn": "Aínda non iniciaches sesión",
"wb.account.signedOut": "{handle} · sesión pechada",
"wb.account.newName": "Conta nova",
"wb.update.readyLabel": "Actualización lista · reiniciar",
"wb.update.readyTitle": "Reinicia para actualizar a {product} {version}. As lapelas restáuranse.",
"wb.update.installingLabel": "Actualizando…",
"wb.update.installingTitle": "Instalando {product} {version}",
"wb.update.problemLabel": "Problema de actualización",
"wb.update.problemTitle": "A última actualización non se iniciou correctamente. Descarga a versión actual."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "gu",
"name": "ગુજરાતી",
"englishName": "Gujarati",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "ઠીક છે",
"kit.cancel": "રદ કરો",
"kit.delete": "કાઢી નાખો",
"kit.close": "બંધ કરો",
"kit.dismiss": "રદ કરો",
"kit.dialog": "સંવાદ",
"kit.value": "મૂલ્ય",
"kit.checkValue": "કૃપા કરીને આ મૂલ્ય તપાસો.",
"kit.failed": "કંઈક ખોટું થયું.",
"wb.account.notSignedIn": "હજી સાઇન ઇન કર્યું નથી",
"wb.account.signedOut": "{handle} · સાઇન આઉટ",
"wb.account.newName": "નવું એકાઉન્ટ",
"wb.update.readyLabel": "અપડેટ તૈયાર · રીસ્ટાર્ટ કરો",
"wb.update.readyTitle": "{product} {version} પર અપડેટ કરવા રીસ્ટાર્ટ કરો. ટૅબ્સ પાછા આવશે.",
"wb.update.installingLabel": "અપડેટ થઈ રહ્યું છે…",
"wb.update.installingTitle": "{product} {version} ઇન્સ્ટોલ થઈ રહ્યું છે",
"wb.update.problemLabel": "અપડેટમાં સમસ્યા",
"wb.update.problemTitle": "છેલ્લું અપડેટ યોગ્ય રીતે શરૂ થયું નથી. વર્તમાન સંસ્કરણ ડાઉનલોડ કરો."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "ha",
"name": "Hausa",
"englishName": "Hausa",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "To",
"kit.cancel": "Soke",
"kit.delete": "Share",
"kit.close": "Rufe",
"kit.dismiss": "Watsar",
"kit.dialog": "Akwatin tattaunawa",
"kit.value": "Ƙima",
"kit.checkValue": "Da fatan za a duba wannan ƙimar.",
"kit.failed": "Wani abu ya faru ba daidai ba.",
"wb.account.notSignedIn": "Ba a shiga ba tukuna",
"wb.account.signedOut": "{handle} · an fita",
"wb.account.newName": "Sabon asusu",
"wb.update.readyLabel": "Sabuntawa a shirye · sake farawa",
"wb.update.readyTitle": "Sake farawa don sabuntawa zuwa {product} {version}. Za a dawo da shafuka.",
"wb.update.installingLabel": "Ana sabuntawa…",
"wb.update.installingTitle": "Ana shigar da {product} {version}",
"wb.update.problemLabel": "Matsalar sabuntawa",
"wb.update.problemTitle": "Sabuntawa ta ƙarshe ba ta fara daidai ba. Sauke sigar yanzu."
}
}

View file

@ -0,0 +1,29 @@
{
"$schema": "../i18n.schema.json",
"locale": "he",
"name": "עברית",
"englishName": "Hebrew",
"dir": "rtl",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "אישור",
"kit.cancel": "ביטול",
"kit.delete": "מחיקה",
"kit.close": "סגירה",
"kit.dismiss": "התעלמות",
"kit.dialog": "תיבת דו-שיח",
"kit.value": "ערך",
"kit.checkValue": "יש לבדוק את הערך הזה.",
"kit.failed": "משהו השתבש.",
"wb.account.notSignedIn": "עדיין לא בוצעה התחברות",
"wb.account.signedOut": "{handle} · מנותק",
"wb.account.newName": "חשבון חדש",
"wb.update.readyLabel": "העדכון מוכן · הפעלה מחדש",
"wb.update.readyTitle": "יש להפעיל מחדש כדי לעדכן ל-{product} {version}. הכרטיסיות ישוחזרו.",
"wb.update.installingLabel": "מתבצע עדכון…",
"wb.update.installingTitle": "מתקין את {product} {version}",
"wb.update.problemLabel": "בעיה בעדכון",
"wb.update.problemTitle": "העדכון האחרון לא התחיל כראוי. יש להוריד את הגרסה הנוכחית."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "hi",
"name": "हिन्दी",
"englishName": "Hindi",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "ठीक है",
"kit.cancel": "रद्द करें",
"kit.delete": "हटाएं",
"kit.close": "बंद करें",
"kit.dismiss": "खारिज करें",
"kit.dialog": "संवाद",
"kit.value": "मान",
"kit.checkValue": "कृपया यह मान जांचें।",
"kit.failed": "कुछ गलत हो गया।",
"wb.account.notSignedIn": "अभी साइन इन नहीं किया है",
"wb.account.signedOut": "{handle} · साइन आउट",
"wb.account.newName": "नया खाता",
"wb.update.readyLabel": "अपडेट तैयार · रीस्टार्ट करें",
"wb.update.readyTitle": "{product} {version} पर अपडेट करने के लिए रीस्टार्ट करें। टैब वापस आ जाएंगे।",
"wb.update.installingLabel": "अपडेट हो रहा है…",
"wb.update.installingTitle": "{product} {version} इंस्टॉल हो रहा है",
"wb.update.problemLabel": "अपडेट में समस्या",
"wb.update.problemTitle": "पिछला अपडेट ठीक से शुरू नहीं हुआ। मौजूदा संस्करण डाउनलोड करें।"
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "hr",
"name": "Hrvatski",
"englishName": "Croatian",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "U redu",
"kit.cancel": "Odustani",
"kit.delete": "Izbriši",
"kit.close": "Zatvori",
"kit.dismiss": "Odbaci",
"kit.dialog": "Dijalog",
"kit.value": "Vrijednost",
"kit.checkValue": "Provjerite ovu vrijednost.",
"kit.failed": "Nešto nije u redu.",
"wb.account.notSignedIn": "Još niste prijavljeni",
"wb.account.signedOut": "{handle} · odjavljen",
"wb.account.newName": "Novi račun",
"wb.update.readyLabel": "Ažuriranje spremno · ponovno pokreni",
"wb.update.readyTitle": "Ponovno pokrenite za ažuriranje na {product} {version}. Kartice se vraćaju.",
"wb.update.installingLabel": "Ažuriranje…",
"wb.update.installingTitle": "Instaliranje {product} {version}",
"wb.update.problemLabel": "Problem s ažuriranjem",
"wb.update.problemTitle": "Zadnje ažuriranje nije se ispravno pokrenulo. Preuzmite trenutačnu verziju."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "hu",
"name": "Magyar",
"englishName": "Hungarian",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Mégse",
"kit.delete": "Törlés",
"kit.close": "Bezárás",
"kit.dismiss": "Elvetés",
"kit.dialog": "Párbeszédablak",
"kit.value": "Érték",
"kit.checkValue": "Ellenőrizd ezt az értéket.",
"kit.failed": "Valami hiba történt.",
"wb.account.notSignedIn": "Még nincs bejelentkezve",
"wb.account.signedOut": "{handle} · kijelentkezett",
"wb.account.newName": "Új fiók",
"wb.update.readyLabel": "Frissítés kész · újraindítás",
"wb.update.readyTitle": "Indítsd újra a(z) {product} {version} verzióra frissítéshez. A lapok visszaállnak.",
"wb.update.installingLabel": "Frissítés…",
"wb.update.installingTitle": "{product} {version} telepítése",
"wb.update.problemLabel": "Frissítési hiba",
"wb.update.problemTitle": "Az utolsó frissítés nem indult el megfelelően. Töltsd le a jelenlegi verziót."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "id",
"name": "Bahasa Indonesia",
"englishName": "Indonesian",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Batal",
"kit.delete": "Hapus",
"kit.close": "Tutup",
"kit.dismiss": "Abaikan",
"kit.dialog": "Dialog",
"kit.value": "Nilai",
"kit.checkValue": "Periksa nilai ini.",
"kit.failed": "Terjadi kesalahan.",
"wb.account.notSignedIn": "Belum masuk",
"wb.account.signedOut": "{handle} · keluar",
"wb.account.newName": "Akun baru",
"wb.update.readyLabel": "Pembaruan siap · mulai ulang",
"wb.update.readyTitle": "Mulai ulang untuk memperbarui ke {product} {version}. Tab dipulihkan.",
"wb.update.installingLabel": "Memperbarui…",
"wb.update.installingTitle": "Menginstal {product} {version}",
"wb.update.problemLabel": "Masalah pembaruan",
"wb.update.problemTitle": "Pembaruan terakhir tidak berjalan dengan benar. Unduh versi terbaru."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "ig",
"name": "Igbo",
"englishName": "Igbo",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "Ọ dị mma",
"kit.cancel": "Kagbuo",
"kit.delete": "Hichapụ",
"kit.close": "Mechie",
"kit.dismiss": "Wepụ",
"kit.dialog": "Igbe mkparịta ụka",
"kit.value": "Uru",
"kit.checkValue": "Biko lelee uru a.",
"kit.failed": "Ihe adịghị mma mere.",
"wb.account.notSignedIn": "Ị banyebeghị",
"wb.account.signedOut": "{handle} · apụọla",
"wb.account.newName": "Akaụntụ ọhụrụ",
"wb.update.readyLabel": "Mmelite dị njikere · malitegharịa",
"wb.update.readyTitle": "Malitegharịa ka imelite gaa na {product} {version}. A ga-eweghachi taabụ.",
"wb.update.installingLabel": "Na-emelite…",
"wb.update.installingTitle": "Na-etinye {product} {version}",
"wb.update.problemLabel": "Nsogbu mmelite",
"wb.update.problemTitle": "Mmelite ikpeazụ amaliteghị nke ọma. Budata ụdị dị ugbu a."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "it",
"name": "Italiano",
"englishName": "Italian",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Annulla",
"kit.delete": "Elimina",
"kit.close": "Chiudi",
"kit.dismiss": "Ignora",
"kit.dialog": "Finestra di dialogo",
"kit.value": "Valore",
"kit.checkValue": "Controlla questo valore.",
"kit.failed": "Si è verificato un problema.",
"wb.account.notSignedIn": "Accesso non ancora effettuato",
"wb.account.signedOut": "{handle} · disconnesso",
"wb.account.newName": "Nuovo account",
"wb.update.readyLabel": "Aggiornamento pronto · riavvia",
"wb.update.readyTitle": "Riavvia per aggiornare a {product} {version}. Le schede vengono ripristinate.",
"wb.update.installingLabel": "Aggiornamento…",
"wb.update.installingTitle": "Installazione di {product} {version}",
"wb.update.problemLabel": "Problema di aggiornamento",
"wb.update.problemTitle": "L'ultimo aggiornamento non si è avviato correttamente. Scarica la versione attuale."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "ja",
"name": "日本語",
"englishName": "Japanese",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "キャンセル",
"kit.delete": "削除",
"kit.close": "閉じる",
"kit.dismiss": "閉じる",
"kit.dialog": "ダイアログ",
"kit.value": "値",
"kit.checkValue": "この値を確認してください。",
"kit.failed": "問題が発生しました。",
"wb.account.notSignedIn": "まだログインしていません",
"wb.account.signedOut": "{handle} · ログアウト済み",
"wb.account.newName": "新しいアカウント",
"wb.update.readyLabel": "アップデートの準備完了 · 再起動",
"wb.update.readyTitle": "再起動すると {product} {version} に更新されます。タブは復元されます。",
"wb.update.installingLabel": "アップデート中…",
"wb.update.installingTitle": "{product} {version} をインストール中",
"wb.update.problemLabel": "アップデートの問題",
"wb.update.problemTitle": "前回のアップデートが正しく開始されませんでした。最新版をダウンロードしてください。"
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "kn",
"name": "ಕನ್ನಡ",
"englishName": "Kannada",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "ಸರಿ",
"kit.cancel": "ರದ್ದುಮಾಡಿ",
"kit.delete": "ಅಳಿಸಿ",
"kit.close": "ಮುಚ್ಚಿ",
"kit.dismiss": "ವಜಾಗೊಳಿಸಿ",
"kit.dialog": "ಸಂವಾದ",
"kit.value": "ಮೌಲ್ಯ",
"kit.checkValue": "ದಯವಿಟ್ಟು ಈ ಮೌಲ್ಯವನ್ನು ಪರಿಶೀಲಿಸಿ.",
"kit.failed": "ಏನೋ ತಪ್ಪಾಗಿದೆ.",
"wb.account.notSignedIn": "ಇನ್ನೂ ಸೈನ್ ಇನ್ ಆಗಿಲ್ಲ",
"wb.account.signedOut": "{handle} · ಸೈನ್ ಔಟ್",
"wb.account.newName": "ಹೊಸ ಖಾತೆ",
"wb.update.readyLabel": "ಅಪ್‌ಡೇಟ್ ಸಿದ್ಧ · ಮರುಪ್ರಾರಂಭಿಸಿ",
"wb.update.readyTitle": "{product} {version}ಗೆ ಅಪ್‌ಡೇಟ್ ಮಾಡಲು ಮರುಪ್ರಾರಂಭಿಸಿ. ಟ್ಯಾಬ್‌ಗಳು ಮರಳುತ್ತವೆ.",
"wb.update.installingLabel": "ಅಪ್‌ಡೇಟ್ ಆಗುತ್ತಿದೆ…",
"wb.update.installingTitle": "{product} {version} ಇನ್‌ಸ್ಟಾಲ್ ಆಗುತ್ತಿದೆ",
"wb.update.problemLabel": "ಅಪ್‌ಡೇಟ್ ಸಮಸ್ಯೆ",
"wb.update.problemTitle": "ಕೊನೆಯ ಅಪ್‌ಡೇಟ್ ಸರಿಯಾಗಿ ಆರಂಭವಾಗಲಿಲ್ಲ. ಪ್ರಸ್ತುತ ಆವೃತ್ತಿಯನ್ನು ಡೌನ್‌ಲೋಡ್ ಮಾಡಿ."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "ko",
"name": "한국어",
"englishName": "Korean",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "확인",
"kit.cancel": "취소",
"kit.delete": "삭제",
"kit.close": "닫기",
"kit.dismiss": "닫기",
"kit.dialog": "대화 상자",
"kit.value": "값",
"kit.checkValue": "이 값을 확인해 주세요.",
"kit.failed": "문제가 발생했습니다.",
"wb.account.notSignedIn": "아직 로그인하지 않음",
"wb.account.signedOut": "{handle} · 로그아웃됨",
"wb.account.newName": "새 계정",
"wb.update.readyLabel": "업데이트 준비됨 · 다시 시작",
"wb.update.readyTitle": "다시 시작하면 {product} {version}(으)로 업데이트됩니다. 탭은 복원됩니다.",
"wb.update.installingLabel": "업데이트 중…",
"wb.update.installingTitle": "{product} {version} 설치 중",
"wb.update.problemLabel": "업데이트 문제",
"wb.update.problemTitle": "마지막 업데이트가 제대로 시작되지 않았습니다. 최신 버전을 다운로드하세요."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "mr",
"name": "मराठी",
"englishName": "Marathi",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "ठीक आहे",
"kit.cancel": "रद्द करा",
"kit.delete": "हटवा",
"kit.close": "बंद करा",
"kit.dismiss": "डिसमिस करा",
"kit.dialog": "संवाद",
"kit.value": "मूल्य",
"kit.checkValue": "कृपया हे मूल्य तपासा.",
"kit.failed": "काहीतरी चूक झाली.",
"wb.account.notSignedIn": "अद्याप साइन इन केलेले नाही",
"wb.account.signedOut": "{handle} · साइन आउट",
"wb.account.newName": "नवीन खाते",
"wb.update.readyLabel": "अपडेट तयार · रीस्टार्ट करा",
"wb.update.readyTitle": "{product} {version} वर अपडेट करण्यासाठी रीस्टार्ट करा. टॅब परत येतील.",
"wb.update.installingLabel": "अपडेट होत आहे…",
"wb.update.installingTitle": "{product} {version} इंस्टॉल होत आहे",
"wb.update.problemLabel": "अपडेटमध्ये अडचण",
"wb.update.problemTitle": "मागील अपडेट नीट सुरू झाले नाही. सध्याची आवृत्ती डाउनलोड करा."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "ms",
"name": "Bahasa Melayu",
"englishName": "Malay",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Batal",
"kit.delete": "Padam",
"kit.close": "Tutup",
"kit.dismiss": "Abaikan",
"kit.dialog": "Dialog",
"kit.value": "Nilai",
"kit.checkValue": "Sila semak nilai ini.",
"kit.failed": "Sesuatu telah berlaku.",
"wb.account.notSignedIn": "Belum log masuk",
"wb.account.signedOut": "{handle} · log keluar",
"wb.account.newName": "Akaun baharu",
"wb.update.readyLabel": "Kemas kini sedia · mulakan semula",
"wb.update.readyTitle": "Mulakan semula untuk mengemas kini ke {product} {version}. Tab akan dipulihkan.",
"wb.update.installingLabel": "Mengemas kini…",
"wb.update.installingTitle": "Memasang {product} {version}",
"wb.update.problemLabel": "Masalah kemas kini",
"wb.update.problemTitle": "Kemas kini terakhir tidak bermula dengan betul. Muat turun versi semasa."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "nb",
"name": "Norsk bokmål",
"englishName": "Norwegian",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Avbryt",
"kit.delete": "Slett",
"kit.close": "Lukk",
"kit.dismiss": "Avvis",
"kit.dialog": "Dialogboks",
"kit.value": "Verdi",
"kit.checkValue": "Sjekk denne verdien.",
"kit.failed": "Noe gikk galt.",
"wb.account.notSignedIn": "Ikke logget inn ennå",
"wb.account.signedOut": "{handle} · logget ut",
"wb.account.newName": "Ny konto",
"wb.update.readyLabel": "Oppdatering klar · start på nytt",
"wb.update.readyTitle": "Start på nytt for å oppdatere til {product} {version}. Fanene gjenopprettes.",
"wb.update.installingLabel": "Oppdaterer…",
"wb.update.installingTitle": "Installerer {product} {version}",
"wb.update.problemLabel": "Oppdateringsproblem",
"wb.update.problemTitle": "Forrige oppdatering startet ikke riktig. Last ned den gjeldende versjonen."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "nl",
"name": "Nederlands",
"englishName": "Dutch",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Annuleren",
"kit.delete": "Verwijderen",
"kit.close": "Sluiten",
"kit.dismiss": "Negeren",
"kit.dialog": "Dialoogvenster",
"kit.value": "Waarde",
"kit.checkValue": "Controleer deze waarde.",
"kit.failed": "Er is iets misgegaan.",
"wb.account.notSignedIn": "Nog niet ingelogd",
"wb.account.signedOut": "{handle} · uitgelogd",
"wb.account.newName": "Nieuw account",
"wb.update.readyLabel": "Update klaar · herstarten",
"wb.update.readyTitle": "Herstart om bij te werken naar {product} {version}. Tabbladen worden hersteld.",
"wb.update.installingLabel": "Bijwerken…",
"wb.update.installingTitle": "{product} {version} installeren",
"wb.update.problemLabel": "Updateprobleem",
"wb.update.problemTitle": "De laatste update is niet goed gestart. Download de huidige versie."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "pl",
"name": "Polski",
"englishName": "Polish",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Anuluj",
"kit.delete": "Usuń",
"kit.close": "Zamknij",
"kit.dismiss": "Odrzuć",
"kit.dialog": "Okno dialogowe",
"kit.value": "Wartość",
"kit.checkValue": "Sprawdź tę wartość.",
"kit.failed": "Coś poszło nie tak.",
"wb.account.notSignedIn": "Jeszcze nie zalogowano",
"wb.account.signedOut": "{handle} · wylogowano",
"wb.account.newName": "Nowe konto",
"wb.update.readyLabel": "Aktualizacja gotowa · uruchom ponownie",
"wb.update.readyTitle": "Uruchom ponownie, aby zaktualizować do {product} {version}. Karty zostaną przywrócone.",
"wb.update.installingLabel": "Aktualizowanie…",
"wb.update.installingTitle": "Instalowanie {product} {version}",
"wb.update.problemLabel": "Problem z aktualizacją",
"wb.update.problemTitle": "Ostatnia aktualizacja nie uruchomiła się poprawnie. Pobierz bieżącą wersję."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "pt",
"name": "Português",
"englishName": "Portuguese",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Cancelar",
"kit.delete": "Excluir",
"kit.close": "Fechar",
"kit.dismiss": "Dispensar",
"kit.dialog": "Caixa de diálogo",
"kit.value": "Valor",
"kit.checkValue": "Verifique este valor.",
"kit.failed": "Algo deu errado.",
"wb.account.notSignedIn": "Ainda não conectado",
"wb.account.signedOut": "{handle} · desconectado",
"wb.account.newName": "Nova conta",
"wb.update.readyLabel": "Atualização pronta · reiniciar",
"wb.update.readyTitle": "Reinicie para atualizar para {product} {version}. As abas são restauradas.",
"wb.update.installingLabel": "Atualizando…",
"wb.update.installingTitle": "Instalando {product} {version}",
"wb.update.problemLabel": "Problema na atualização",
"wb.update.problemTitle": "A última atualização não iniciou corretamente. Baixe a versão atual."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "ro",
"name": "Română",
"englishName": "Romanian",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Anulează",
"kit.delete": "Șterge",
"kit.close": "Închide",
"kit.dismiss": "Respinge",
"kit.dialog": "Casetă de dialog",
"kit.value": "Valoare",
"kit.checkValue": "Verifică această valoare.",
"kit.failed": "Ceva nu a funcționat.",
"wb.account.notSignedIn": "Încă neconectat",
"wb.account.signedOut": "{handle} · deconectat",
"wb.account.newName": "Cont nou",
"wb.update.readyLabel": "Actualizare pregătită · repornește",
"wb.update.readyTitle": "Repornește pentru a actualiza la {product} {version}. Filele sunt restaurate.",
"wb.update.installingLabel": "Se actualizează…",
"wb.update.installingTitle": "Se instalează {product} {version}",
"wb.update.problemLabel": "Problemă de actualizare",
"wb.update.problemTitle": "Ultima actualizare nu a pornit corect. Descarcă versiunea curentă."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "ru",
"name": "Русский",
"englishName": "Russian",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "ОК",
"kit.cancel": "Отмена",
"kit.delete": "Удалить",
"kit.close": "Закрыть",
"kit.dismiss": "Скрыть",
"kit.dialog": "Диалоговое окно",
"kit.value": "Значение",
"kit.checkValue": "Проверьте это значение.",
"kit.failed": "Что-то пошло не так.",
"wb.account.notSignedIn": "Вход ещё не выполнен",
"wb.account.signedOut": "{handle} · выход выполнен",
"wb.account.newName": "Новый аккаунт",
"wb.update.readyLabel": "Обновление готово · перезапустить",
"wb.update.readyTitle": "Перезапустите, чтобы обновиться до {product} {version}. Вкладки восстановятся.",
"wb.update.installingLabel": "Обновление…",
"wb.update.installingTitle": "Установка {product} {version}",
"wb.update.problemLabel": "Проблема с обновлением",
"wb.update.problemTitle": "Последнее обновление не запустилось правильно. Скачайте текущую версию."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "sk",
"name": "Slovenčina",
"englishName": "Slovak",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Zrušiť",
"kit.delete": "Odstrániť",
"kit.close": "Zavrieť",
"kit.dismiss": "Zavrieť oznámenie",
"kit.dialog": "Dialógové okno",
"kit.value": "Hodnota",
"kit.checkValue": "Skontrolujte túto hodnotu.",
"kit.failed": "Niečo sa pokazilo.",
"wb.account.notSignedIn": "Zatiaľ neprihlásený",
"wb.account.signedOut": "{handle} · odhlásený",
"wb.account.newName": "Nový účet",
"wb.update.readyLabel": "Aktualizácia pripravená · reštartovať",
"wb.update.readyTitle": "Reštartujte a aktualizujte na {product} {version}. Karty sa obnovia.",
"wb.update.installingLabel": "Aktualizuje sa…",
"wb.update.installingTitle": "Inštaluje sa {product} {version}",
"wb.update.problemLabel": "Problém s aktualizáciou",
"wb.update.problemTitle": "Posledná aktualizácia sa nespustila správne. Stiahnite si aktuálnu verziu."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "sr",
"name": "Српски",
"englishName": "Serbian",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "У реду",
"kit.cancel": "Откажи",
"kit.delete": "Избриши",
"kit.close": "Затвори",
"kit.dismiss": "Одбаци",
"kit.dialog": "Дијалог",
"kit.value": "Вредност",
"kit.checkValue": "Проверите ову вредност.",
"kit.failed": "Нешто није у реду.",
"wb.account.notSignedIn": "Још нисте пријављени",
"wb.account.signedOut": "{handle} · одјављен",
"wb.account.newName": "Нови налог",
"wb.update.readyLabel": "Ажурирање спремно · поново покрени",
"wb.update.readyTitle": "Поново покрените да бисте ажурирали на {product} {version}. Картице се враћају.",
"wb.update.installingLabel": "Ажурирање…",
"wb.update.installingTitle": "Инсталира се {product} {version}",
"wb.update.problemLabel": "Проблем са ажурирањем",
"wb.update.problemTitle": "Последње ажурирање се није исправно покренуло. Преузмите тренутну верзију."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "sv",
"name": "Svenska",
"englishName": "Swedish",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Avbryt",
"kit.delete": "Radera",
"kit.close": "Stäng",
"kit.dismiss": "Avvisa",
"kit.dialog": "Dialogruta",
"kit.value": "Värde",
"kit.checkValue": "Kontrollera det här värdet.",
"kit.failed": "Något gick fel.",
"wb.account.notSignedIn": "Inte inloggad än",
"wb.account.signedOut": "{handle} · utloggad",
"wb.account.newName": "Nytt konto",
"wb.update.readyLabel": "Uppdatering klar · starta om",
"wb.update.readyTitle": "Starta om för att uppdatera till {product} {version}. Flikarna återställs.",
"wb.update.installingLabel": "Uppdaterar…",
"wb.update.installingTitle": "Installerar {product} {version}",
"wb.update.problemLabel": "Uppdateringsproblem",
"wb.update.problemTitle": "Den senaste uppdateringen startade inte korrekt. Ladda ned den aktuella versionen."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "ta",
"name": "தமிழ்",
"englishName": "Tamil",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "சரி",
"kit.cancel": "ரத்துசெய்",
"kit.delete": "நீக்கு",
"kit.close": "மூடு",
"kit.dismiss": "நிராகரி",
"kit.dialog": "உரையாடல்",
"kit.value": "மதிப்பு",
"kit.checkValue": "இந்த மதிப்பைச் சரிபார்க்கவும்.",
"kit.failed": "ஏதோ தவறு நடந்தது.",
"wb.account.notSignedIn": "இன்னும் உள்நுழையவில்லை",
"wb.account.signedOut": "{handle} · வெளியேறியது",
"wb.account.newName": "புதிய கணக்கு",
"wb.update.readyLabel": "புதுப்பிப்பு தயார் · மறுதொடக்கம்",
"wb.update.readyTitle": "{product} {version}க்குப் புதுப்பிக்க மறுதொடக்கம் செய்யவும். தாவல்கள் மீட்கப்படும்.",
"wb.update.installingLabel": "புதுப்பிக்கிறது…",
"wb.update.installingTitle": "{product} {version} நிறுவப்படுகிறது",
"wb.update.problemLabel": "புதுப்பிப்புச் சிக்கல்",
"wb.update.problemTitle": "கடைசி புதுப்பிப்பு சரியாகத் தொடங்கவில்லை. தற்போதைய பதிப்பைப் பதிவிறக்கவும்."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "th",
"name": "ไทย",
"englishName": "Thai",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "ตกลง",
"kit.cancel": "ยกเลิก",
"kit.delete": "ลบ",
"kit.close": "ปิด",
"kit.dismiss": "ปิด",
"kit.dialog": "กล่องโต้ตอบ",
"kit.value": "ค่า",
"kit.checkValue": "โปรดตรวจสอบค่านี้",
"kit.failed": "เกิดข้อผิดพลาดบางอย่าง",
"wb.account.notSignedIn": "ยังไม่ได้เข้าสู่ระบบ",
"wb.account.signedOut": "{handle} · ออกจากระบบแล้ว",
"wb.account.newName": "บัญชีใหม่",
"wb.update.readyLabel": "อัปเดตพร้อมแล้ว · รีสตาร์ท",
"wb.update.readyTitle": "รีสตาร์ทเพื่ออัปเดตเป็น {product} {version} แท็บจะกลับมาเหมือนเดิม",
"wb.update.installingLabel": "กำลังอัปเดต…",
"wb.update.installingTitle": "กำลังติดตั้ง {product} {version}",
"wb.update.problemLabel": "ปัญหาการอัปเดต",
"wb.update.problemTitle": "การอัปเดตครั้งล่าสุดเริ่มต้นไม่ถูกต้อง ดาวน์โหลดเวอร์ชันปัจจุบัน"
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "tr",
"name": "Türkçe",
"englishName": "Turkish",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "Tamam",
"kit.cancel": "İptal",
"kit.delete": "Sil",
"kit.close": "Kapat",
"kit.dismiss": "Kapat",
"kit.dialog": "İletişim kutusu",
"kit.value": "Değer",
"kit.checkValue": "Lütfen bu değeri kontrol et.",
"kit.failed": "Bir şeyler ters gitti.",
"wb.account.notSignedIn": "Henüz giriş yapılmadı",
"wb.account.signedOut": "{handle} · oturum kapalı",
"wb.account.newName": "Yeni hesap",
"wb.update.readyLabel": "Güncelleme hazır · yeniden başlat",
"wb.update.readyTitle": "{product} {version} sürümüne güncellemek için yeniden başlat. Sekmeler geri gelir.",
"wb.update.installingLabel": "Güncelleniyor…",
"wb.update.installingTitle": "{product} {version} yükleniyor",
"wb.update.problemLabel": "Güncelleme sorunu",
"wb.update.problemTitle": "Son güncelleme düzgün başlamadı. Güncel sürümü indir."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "uk",
"name": "Українська",
"englishName": "Ukrainian",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Скасувати",
"kit.delete": "Видалити",
"kit.close": "Закрити",
"kit.dismiss": "Приховати",
"kit.dialog": "Діалогове вікно",
"kit.value": "Значення",
"kit.checkValue": "Перевірте це значення.",
"kit.failed": "Щось пішло не так.",
"wb.account.notSignedIn": "Ще не ввійшли",
"wb.account.signedOut": "{handle} · вийшли",
"wb.account.newName": "Новий обліковий запис",
"wb.update.readyLabel": "Оновлення готове · перезапустити",
"wb.update.readyTitle": "Перезапустіть, щоб оновитися до {product} {version}. Вкладки відновляться.",
"wb.update.installingLabel": "Оновлення…",
"wb.update.installingTitle": "Встановлення {product} {version}",
"wb.update.problemLabel": "Проблема з оновленням",
"wb.update.problemTitle": "Останнє оновлення не запустилося правильно. Завантажте поточну версію."
}
}

View file

@ -0,0 +1,29 @@
{
"$schema": "../i18n.schema.json",
"locale": "ur",
"name": "اردو",
"englishName": "Urdu",
"dir": "rtl",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "ٹھیک ہے",
"kit.cancel": "منسوخ کریں",
"kit.delete": "حذف کریں",
"kit.close": "بند کریں",
"kit.dismiss": "مسترد کریں",
"kit.dialog": "ڈائیلاگ",
"kit.value": "قدر",
"kit.checkValue": "براہ کرم یہ قدر چیک کریں۔",
"kit.failed": "کچھ غلط ہو گیا۔",
"wb.account.notSignedIn": "ابھی سائن ان نہیں کیا",
"wb.account.signedOut": "{handle} · سائن آؤٹ",
"wb.account.newName": "نیا اکاؤنٹ",
"wb.update.readyLabel": "اپ ڈیٹ تیار ہے · دوبارہ شروع کریں",
"wb.update.readyTitle": "{product} {version} پر اپ ڈیٹ کرنے کے لیے دوبارہ شروع کریں۔ ٹیبز بحال ہو جائیں گے۔",
"wb.update.installingLabel": "اپ ڈیٹ ہو رہا ہے…",
"wb.update.installingTitle": "{product} {version} انسٹال ہو رہا ہے",
"wb.update.problemLabel": "اپ ڈیٹ میں مسئلہ",
"wb.update.problemTitle": "پچھلی اپ ڈیٹ ٹھیک سے شروع نہیں ہوئی۔ موجودہ ورژن ڈاؤن لوڈ کریں۔"
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "vi",
"name": "Tiếng Việt",
"englishName": "Vietnamese",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "OK",
"kit.cancel": "Hủy",
"kit.delete": "Xóa",
"kit.close": "Đóng",
"kit.dismiss": "Bỏ qua",
"kit.dialog": "Hộp thoại",
"kit.value": "Giá trị",
"kit.checkValue": "Vui lòng kiểm tra giá trị này.",
"kit.failed": "Đã xảy ra lỗi.",
"wb.account.notSignedIn": "Chưa đăng nhập",
"wb.account.signedOut": "{handle} · đã đăng xuất",
"wb.account.newName": "Tài khoản mới",
"wb.update.readyLabel": "Bản cập nhật đã sẵn sàng · khởi động lại",
"wb.update.readyTitle": "Khởi động lại để cập nhật lên {product} {version}. Các thẻ sẽ được khôi phục.",
"wb.update.installingLabel": "Đang cập nhật…",
"wb.update.installingTitle": "Đang cài đặt {product} {version}",
"wb.update.problemLabel": "Sự cố cập nhật",
"wb.update.problemTitle": "Bản cập nhật gần nhất không khởi chạy đúng. Hãy tải phiên bản hiện tại."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "yo",
"name": "Yorùbá",
"englishName": "Yoruba",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "Ó dáa",
"kit.cancel": "Fagilé",
"kit.delete": "Paarẹ́",
"kit.close": "Pa á dé",
"kit.dismiss": "Kọ̀ ọ́",
"kit.dialog": "Àpótí ìbánisọ̀rọ̀",
"kit.value": "Iye",
"kit.checkValue": "Jọ̀wọ́ ṣàyẹ̀wò iye yìí.",
"kit.failed": "Nǹkan kan ṣàṣìṣe.",
"wb.account.notSignedIn": "O kò tíì wọlé",
"wb.account.signedOut": "{handle} · ti jáde",
"wb.account.newName": "Àkọọ́lẹ̀ tuntun",
"wb.update.readyLabel": "Àtúnṣe ti ṣetán · tún bẹ̀rẹ̀",
"wb.update.readyTitle": "Tún bẹ̀rẹ̀ láti ṣàtúnṣe sí {product} {version}. Àwọn táàbù yóò padà.",
"wb.update.installingLabel": "Ń ṣàtúnṣe…",
"wb.update.installingTitle": "Ń fi {product} {version} sílẹ̀",
"wb.update.problemLabel": "Ìṣòro àtúnṣe",
"wb.update.problemTitle": "Àtúnṣe tó kẹ́yìn kò bẹ̀rẹ̀ dáadáa. Ṣe ìgbàsílẹ̀ ẹ̀yà tí ó wà báyìí."
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "zh-Hans",
"name": "简体中文",
"englishName": "Chinese (Simplified)",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "确定",
"kit.cancel": "取消",
"kit.delete": "删除",
"kit.close": "关闭",
"kit.dismiss": "忽略",
"kit.dialog": "对话框",
"kit.value": "值",
"kit.checkValue": "请检查此值。",
"kit.failed": "出了点问题。",
"wb.account.notSignedIn": "尚未登录",
"wb.account.signedOut": "{handle} · 已退出登录",
"wb.account.newName": "新账号",
"wb.update.readyLabel": "更新已就绪 · 重启",
"wb.update.readyTitle": "重启以更新到 {product} {version}。标签页会恢复。",
"wb.update.installingLabel": "正在更新…",
"wb.update.installingTitle": "正在安装 {product} {version}",
"wb.update.problemLabel": "更新问题",
"wb.update.problemTitle": "上次更新未正确启动。请下载当前版本。"
}
}

View file

@ -0,0 +1,28 @@
{
"$schema": "../i18n.schema.json",
"locale": "zh-Hant",
"name": "繁體中文",
"englishName": "Chinese (Traditional)",
"status": "machine",
"reviewers": [],
"messages": {
"kit.ok": "確定",
"kit.cancel": "取消",
"kit.delete": "刪除",
"kit.close": "關閉",
"kit.dismiss": "忽略",
"kit.dialog": "對話方塊",
"kit.value": "值",
"kit.checkValue": "請檢查此值。",
"kit.failed": "發生錯誤。",
"wb.account.notSignedIn": "尚未登入",
"wb.account.signedOut": "{handle} · 已登出",
"wb.account.newName": "新帳號",
"wb.update.readyLabel": "更新已就緒 · 重新啟動",
"wb.update.readyTitle": "重新啟動以更新至 {product} {version}。分頁會還原。",
"wb.update.installingLabel": "正在更新…",
"wb.update.installingTitle": "正在安裝 {product} {version}",
"wb.update.problemLabel": "更新問題",
"wb.update.problemTitle": "上次更新未正確啟動。請下載目前版本。"
}
}