1448 lines
56 KiB
JavaScript
1448 lines
56 KiB
JavaScript
import { readFileSync, writeFileSync, readdirSync } from 'node:fs';
|
||
import { join, dirname } from 'node:path';
|
||
import { fileURLToPath } from 'node:url';
|
||
|
||
const __dirname = dirname(fileURLToPath(import.meta.url));
|
||
const messagesDir = join(__dirname, '..', 'public', 'intl', 'messages');
|
||
|
||
// Keys same in all languages (acronyms / technical terms)
|
||
const universal = {
|
||
label: {
|
||
aov: 'AOV',
|
||
arpu: 'ARPU',
|
||
cls: 'CLS',
|
||
fcp: 'FCP',
|
||
inp: 'INP',
|
||
lcp: 'LCP',
|
||
'replay-id': 'Replay ID',
|
||
slug: 'Slug',
|
||
ttfb: 'TTFB',
|
||
},
|
||
};
|
||
|
||
// Per-locale translations for the remaining 20 keys
|
||
const translations = {
|
||
'ar-SA': {
|
||
label: {
|
||
'block-selector': 'محدد الكتلة',
|
||
duration: 'المدة',
|
||
good: 'جيد',
|
||
'mask-level': 'مستوى القناع',
|
||
'max-duration': 'الحد الأقصى للمدة',
|
||
'needs-improvement': 'يحتاج إلى تحسين',
|
||
performance: 'الأداء',
|
||
play: 'تشغيل',
|
||
poor: 'ضعيف',
|
||
'recorded-at': 'سُجِّل في',
|
||
replay: 'إعادة التشغيل',
|
||
'replay-enabled': 'إعادة التشغيل مفعلة',
|
||
replays: 'إعادات التشغيل',
|
||
'retention-days': 'أيام الاحتفاظ',
|
||
'sample-rate': 'معدل أخذ العينات',
|
||
'sample-size': 'حجم العينة',
|
||
'select-component': 'اختر مكونًا',
|
||
},
|
||
message: {
|
||
'empty-dashboard': 'لوحة التحكم الخاصة بك فارغة. انقر فوق تحرير لإضافة مكونك الأول.',
|
||
'select-component-preview': 'اختر مكونًا للمعاينة',
|
||
'select-website-first': 'اختر موقعًا أولاً',
|
||
},
|
||
},
|
||
'be-BY': {
|
||
label: {
|
||
'block-selector': 'Выбар блока',
|
||
duration: 'Працягласць',
|
||
good: 'Добра',
|
||
'mask-level': 'Узровень маскіравання',
|
||
'max-duration': 'Максімальная працягласць',
|
||
'needs-improvement': 'Патрэбна паляпшэнне',
|
||
performance: 'Прадукцыйнасць',
|
||
play: 'Прайграць',
|
||
poor: 'Дрэнна',
|
||
'recorded-at': 'Запісана ў',
|
||
replay: 'Паўтор',
|
||
'replay-enabled': 'Паўтор уключаны',
|
||
replays: 'Паўторы',
|
||
'retention-days': 'Дні захоўвання',
|
||
'sample-rate': 'Частата выбаркі',
|
||
'sample-size': "Аб'ём выбаркі",
|
||
'select-component': 'Выберыце кампанент',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Ваша панэль кіравання пустая. Націсніце Рэдагаваць, каб дадаць першы кампанент.',
|
||
'select-component-preview': 'Выберыце кампанент для прагляду',
|
||
'select-website-first': 'Спачатку выберыце сайт',
|
||
},
|
||
},
|
||
'bg-BG': {
|
||
label: {
|
||
'block-selector': 'Избор на блок',
|
||
duration: 'Продължителност',
|
||
good: 'Добро',
|
||
'mask-level': 'Ниво на маскиране',
|
||
'max-duration': 'Максимална продължителност',
|
||
'needs-improvement': 'Нуждае се от подобрение',
|
||
performance: 'Производителност',
|
||
play: 'Пусни',
|
||
poor: 'Слабо',
|
||
'recorded-at': 'Записано на',
|
||
replay: 'Повторение',
|
||
'replay-enabled': 'Повторението е активирано',
|
||
replays: 'Повторения',
|
||
'retention-days': 'Дни на съхранение',
|
||
'sample-rate': 'Честота на извадката',
|
||
'sample-size': 'Размер на извадката',
|
||
'select-component': 'Изберете компонент',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Вашето табло е празно. Щракнете Редактиране, за да добавите първия си компонент.',
|
||
'select-component-preview': 'Изберете компонент за преглед',
|
||
'select-website-first': 'Първо изберете уебсайт',
|
||
},
|
||
},
|
||
'bn-BD': {
|
||
label: {
|
||
'block-selector': 'ব্লক নির্বাচক',
|
||
duration: 'সময়কাল',
|
||
good: 'ভালো',
|
||
'mask-level': 'মাস্ক স্তর',
|
||
'max-duration': 'সর্বোচ্চ সময়কাল',
|
||
'needs-improvement': 'উন্নতি প্রয়োজন',
|
||
performance: 'পারফরম্যান্স',
|
||
play: 'চালান',
|
||
poor: 'খারাপ',
|
||
'recorded-at': 'রেকর্ড করা হয়েছে',
|
||
replay: 'রিপ্লে',
|
||
'replay-enabled': 'রিপ্লে সক্রিয়',
|
||
replays: 'রিপ্লেসমূহ',
|
||
'retention-days': 'ধারণ দিন',
|
||
'sample-rate': 'নমুনার হার',
|
||
'sample-size': 'নমুনার আকার',
|
||
'select-component': 'উপাদান নির্বাচন করুন',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'আপনার ড্যাশবোর্ড খালি। প্রথম উপাদান যোগ করতে সম্পাদনা ক্লিক করুন।',
|
||
'select-component-preview': 'প্রিভিউয়ের জন্য একটি উপাদান নির্বাচন করুন',
|
||
'select-website-first': 'প্রথমে একটি ওয়েবসাইট নির্বাচন করুন',
|
||
},
|
||
},
|
||
'bs-BA': {
|
||
label: {
|
||
'block-selector': 'Odabir bloka',
|
||
duration: 'Trajanje',
|
||
good: 'Dobro',
|
||
'mask-level': 'Nivo maske',
|
||
'max-duration': 'Maksimalno trajanje',
|
||
'needs-improvement': 'Treba poboljšanje',
|
||
performance: 'Performanse',
|
||
play: 'Reprodukuj',
|
||
poor: 'Loše',
|
||
'recorded-at': 'Snimljeno u',
|
||
replay: 'Ponovna reprodukcija',
|
||
'replay-enabled': 'Ponovna reprodukcija omogućena',
|
||
replays: 'Ponovne reprodukcije',
|
||
'retention-days': 'Dani zadržavanja',
|
||
'sample-rate': 'Stopa uzorkovanja',
|
||
'sample-size': 'Veličina uzorka',
|
||
'select-component': 'Odaberite komponentu',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Vaša kontrolna tabla je prazna. Kliknite Uredi da dodate prvu komponentu.',
|
||
'select-component-preview': 'Odaberite komponentu za pregled',
|
||
'select-website-first': 'Prvo odaberite web stranicu',
|
||
},
|
||
},
|
||
'ca-ES': {
|
||
label: {
|
||
'block-selector': 'Selector de bloc',
|
||
duration: 'Durada',
|
||
good: 'Bo',
|
||
'mask-level': 'Nivell de màscara',
|
||
'max-duration': 'Durada màxima',
|
||
'needs-improvement': 'Necessita millora',
|
||
performance: 'Rendiment',
|
||
play: 'Reprodueix',
|
||
poor: 'Deficient',
|
||
'recorded-at': 'Registrat a',
|
||
replay: 'Repetició',
|
||
'replay-enabled': 'Repetició activada',
|
||
replays: 'Repeticions',
|
||
'retention-days': 'Dies de retenció',
|
||
'sample-rate': 'Taxa de mostreig',
|
||
'sample-size': 'Mida de la mostra',
|
||
'select-component': 'Selecciona un component',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
"El teu tauler és buit. Fes clic a Edita per afegir el teu primer component.",
|
||
'select-component-preview': 'Selecciona un component per previsualitzar',
|
||
'select-website-first': 'Primer selecciona un lloc web',
|
||
},
|
||
},
|
||
'cs-CZ': {
|
||
label: {
|
||
'block-selector': 'Výběr bloku',
|
||
duration: 'Trvání',
|
||
good: 'Dobré',
|
||
'mask-level': 'Úroveň masky',
|
||
'max-duration': 'Maximální trvání',
|
||
'needs-improvement': 'Potřebuje zlepšení',
|
||
performance: 'Výkon',
|
||
play: 'Přehrát',
|
||
poor: 'Špatné',
|
||
'recorded-at': 'Zaznamenáno v',
|
||
replay: 'Přehrávání',
|
||
'replay-enabled': 'Přehrávání povoleno',
|
||
replays: 'Přehrávání',
|
||
'retention-days': 'Dny uchování',
|
||
'sample-rate': 'Frekvence vzorkování',
|
||
'sample-size': 'Velikost vzorku',
|
||
'select-component': 'Vyberte komponentu',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Váš řídicí panel je prázdný. Klikněte na Upravit a přidejte první komponentu.',
|
||
'select-component-preview': 'Vyberte komponentu pro náhled',
|
||
'select-website-first': 'Nejprve vyberte web',
|
||
},
|
||
},
|
||
'da-DK': {
|
||
label: {
|
||
'block-selector': 'Blokvælger',
|
||
duration: 'Varighed',
|
||
good: 'God',
|
||
'mask-level': 'Maskeniveau',
|
||
'max-duration': 'Maksimal varighed',
|
||
'needs-improvement': 'Behøver forbedring',
|
||
performance: 'Ydeevne',
|
||
play: 'Afspil',
|
||
poor: 'Dårlig',
|
||
'recorded-at': 'Optaget den',
|
||
replay: 'Afspilning',
|
||
'replay-enabled': 'Afspilning aktiveret',
|
||
replays: 'Afspilninger',
|
||
'retention-days': 'Opbevaringsdage',
|
||
'sample-rate': 'Samplingshastighed',
|
||
'sample-size': 'Stikprøvestørrelse',
|
||
'select-component': 'Vælg komponent',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Dit dashboard er tomt. Klik på Rediger for at tilføje din første komponent.',
|
||
'select-component-preview': 'Vælg en komponent for at se forhåndsvisning',
|
||
'select-website-first': 'Vælg et websted først',
|
||
},
|
||
},
|
||
'de-CH': {
|
||
label: {
|
||
'block-selector': 'Blockauswahl',
|
||
duration: 'Dauer',
|
||
good: 'Gut',
|
||
'mask-level': 'Maskierungsstufe',
|
||
'max-duration': 'Maximale Dauer',
|
||
'needs-improvement': 'Verbesserungsbedarf',
|
||
performance: 'Leistung',
|
||
play: 'Abspielen',
|
||
poor: 'Schlecht',
|
||
'recorded-at': 'Aufgezeichnet am',
|
||
replay: 'Wiedergabe',
|
||
'replay-enabled': 'Wiedergabe aktiviert',
|
||
replays: 'Wiedergaben',
|
||
'retention-days': 'Aufbewahrungstage',
|
||
'sample-rate': 'Abtastrate',
|
||
'sample-size': 'Stichprobengrösse',
|
||
'select-component': 'Komponente auswählen',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Ihr Dashboard ist leer. Klicken Sie auf Bearbeiten, um Ihre erste Komponente hinzuzufügen.',
|
||
'select-component-preview': 'Wählen Sie eine Komponente für die Vorschau',
|
||
'select-website-first': 'Wählen Sie zuerst eine Website',
|
||
},
|
||
},
|
||
'de-DE': {
|
||
label: {
|
||
'block-selector': 'Blockauswahl',
|
||
duration: 'Dauer',
|
||
good: 'Gut',
|
||
'mask-level': 'Maskierungsstufe',
|
||
'max-duration': 'Maximale Dauer',
|
||
'needs-improvement': 'Verbesserungsbedarf',
|
||
performance: 'Leistung',
|
||
play: 'Abspielen',
|
||
poor: 'Schlecht',
|
||
'recorded-at': 'Aufgezeichnet am',
|
||
replay: 'Wiedergabe',
|
||
'replay-enabled': 'Wiedergabe aktiviert',
|
||
replays: 'Wiedergaben',
|
||
'retention-days': 'Aufbewahrungstage',
|
||
'sample-rate': 'Abtastrate',
|
||
'sample-size': 'Stichprobengröße',
|
||
'select-component': 'Komponente auswählen',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Ihr Dashboard ist leer. Klicken Sie auf Bearbeiten, um Ihre erste Komponente hinzuzufügen.',
|
||
'select-component-preview': 'Wählen Sie eine Komponente für die Vorschau',
|
||
'select-website-first': 'Wählen Sie zuerst eine Website',
|
||
},
|
||
},
|
||
'el-GR': {
|
||
label: {
|
||
'block-selector': 'Επιλογέας μπλοκ',
|
||
duration: 'Διάρκεια',
|
||
good: 'Καλό',
|
||
'mask-level': 'Επίπεδο μάσκας',
|
||
'max-duration': 'Μέγιστη διάρκεια',
|
||
'needs-improvement': 'Χρειάζεται βελτίωση',
|
||
performance: 'Απόδοση',
|
||
play: 'Αναπαραγωγή',
|
||
poor: 'Κακό',
|
||
'recorded-at': 'Καταγράφηκε στις',
|
||
replay: 'Επανάληψη',
|
||
'replay-enabled': 'Επανάληψη ενεργοποιημένη',
|
||
replays: 'Επαναλήψεις',
|
||
'retention-days': 'Ημέρες διατήρησης',
|
||
'sample-rate': 'Ρυθμός δειγματοληψίας',
|
||
'sample-size': 'Μέγεθος δείγματος',
|
||
'select-component': 'Επιλέξτε στοιχείο',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Ο πίνακας ελέγχου σας είναι κενός. Κάντε κλικ στην Επεξεργασία για να προσθέσετε το πρώτο σας στοιχείο.',
|
||
'select-component-preview': 'Επιλέξτε ένα στοιχείο για προεπισκόπηση',
|
||
'select-website-first': 'Επιλέξτε πρώτα έναν ιστότοπο',
|
||
},
|
||
},
|
||
'en-GB': {
|
||
label: {
|
||
'block-selector': 'Block selector',
|
||
duration: 'Duration',
|
||
good: 'Good',
|
||
'mask-level': 'Mask level',
|
||
'max-duration': 'Max duration',
|
||
'needs-improvement': 'Needs improvement',
|
||
performance: 'Performance',
|
||
play: 'Play',
|
||
poor: 'Poor',
|
||
'recorded-at': 'Recorded at',
|
||
replay: 'Replay',
|
||
'replay-enabled': 'Replay enabled',
|
||
replays: 'Replays',
|
||
'retention-days': 'Retention days',
|
||
'sample-rate': 'Sample rate',
|
||
'sample-size': 'Sample size',
|
||
'select-component': 'Select component',
|
||
},
|
||
message: {
|
||
'empty-dashboard': 'Your dashboard is empty. Click Edit to add your first component.',
|
||
'select-component-preview': 'Select a component to preview',
|
||
'select-website-first': 'Select a website first',
|
||
},
|
||
},
|
||
'es-ES': {
|
||
label: {
|
||
'block-selector': 'Selector de bloque',
|
||
duration: 'Duración',
|
||
good: 'Bueno',
|
||
'mask-level': 'Nivel de máscara',
|
||
'max-duration': 'Duración máxima',
|
||
'needs-improvement': 'Necesita mejora',
|
||
performance: 'Rendimiento',
|
||
play: 'Reproducir',
|
||
poor: 'Deficiente',
|
||
'recorded-at': 'Registrado el',
|
||
replay: 'Repetición',
|
||
'replay-enabled': 'Repetición activada',
|
||
replays: 'Repeticiones',
|
||
'retention-days': 'Días de retención',
|
||
'sample-rate': 'Tasa de muestreo',
|
||
'sample-size': 'Tamaño de muestra',
|
||
'select-component': 'Seleccionar componente',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Tu panel está vacío. Haz clic en Editar para añadir tu primer componente.',
|
||
'select-component-preview': 'Selecciona un componente para previsualizar',
|
||
'select-website-first': 'Selecciona un sitio web primero',
|
||
},
|
||
},
|
||
'fa-IR': {
|
||
label: {
|
||
'block-selector': 'انتخابگر بلوک',
|
||
duration: 'مدت',
|
||
good: 'خوب',
|
||
'mask-level': 'سطح ماسک',
|
||
'max-duration': 'حداکثر مدت',
|
||
'needs-improvement': 'نیاز به بهبود',
|
||
performance: 'عملکرد',
|
||
play: 'پخش',
|
||
poor: 'ضعیف',
|
||
'recorded-at': 'ثبت شده در',
|
||
replay: 'پخش مجدد',
|
||
'replay-enabled': 'پخش مجدد فعال',
|
||
replays: 'پخشهای مجدد',
|
||
'retention-days': 'روزهای نگهداری',
|
||
'sample-rate': 'نرخ نمونهگیری',
|
||
'sample-size': 'اندازه نمونه',
|
||
'select-component': 'یک کامپوننت انتخاب کنید',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'داشبورد شما خالی است. روی ویرایش کلیک کنید تا اولین کامپوننت خود را اضافه کنید.',
|
||
'select-component-preview': 'یک کامپوننت برای پیشنمایش انتخاب کنید',
|
||
'select-website-first': 'ابتدا یک وبسایت انتخاب کنید',
|
||
},
|
||
},
|
||
'fi-FI': {
|
||
label: {
|
||
'block-selector': 'Lohkovalitsin',
|
||
duration: 'Kesto',
|
||
good: 'Hyvä',
|
||
'mask-level': 'Maskitaso',
|
||
'max-duration': 'Enimmäiskesto',
|
||
'needs-improvement': 'Tarvitsee parannusta',
|
||
performance: 'Suorituskyky',
|
||
play: 'Toista',
|
||
poor: 'Huono',
|
||
'recorded-at': 'Tallennettu',
|
||
replay: 'Toisto',
|
||
'replay-enabled': 'Toisto käytössä',
|
||
replays: 'Toistot',
|
||
'retention-days': 'Säilytyspäivät',
|
||
'sample-rate': 'Näytteenottotaajuus',
|
||
'sample-size': 'Otoskoko',
|
||
'select-component': 'Valitse komponentti',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Koontinäyttösi on tyhjä. Napsauta Muokkaa lisätäksesi ensimmäisen komponentin.',
|
||
'select-component-preview': 'Valitse komponentti esikatselua varten',
|
||
'select-website-first': 'Valitse ensin verkkosivusto',
|
||
},
|
||
},
|
||
'fo-FO': {
|
||
label: {
|
||
'block-selector': 'Blokkveljari',
|
||
duration: 'Tíðarlongd',
|
||
good: 'Gott',
|
||
'mask-level': 'Maskustig',
|
||
'max-duration': 'Mesta tíðarlongd',
|
||
'needs-improvement': 'Tørvar at bætast',
|
||
performance: 'Effektivni',
|
||
play: 'Spæla',
|
||
poor: 'Dårligt',
|
||
'recorded-at': 'Upptikið tann',
|
||
replay: 'Uppspæling',
|
||
'replay-enabled': 'Uppspæling virkjað',
|
||
replays: 'Uppspælingar',
|
||
'retention-days': 'Geymingardagar',
|
||
'sample-rate': 'Samplingartiðindi',
|
||
'sample-size': 'Samplingarstødd',
|
||
'select-component': 'Vel eina íhlut',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Stjórnarborðið títt er tómt. Trýst á Rætta fyri at leggja afturat fyrstu íhlut.',
|
||
'select-component-preview': 'Vel eina íhlut at forskoða',
|
||
'select-website-first': 'Vel fyrst eina heimasíðu',
|
||
},
|
||
},
|
||
'fr-FR': {
|
||
label: {
|
||
'block-selector': 'Sélecteur de bloc',
|
||
duration: 'Durée',
|
||
good: 'Bon',
|
||
'mask-level': 'Niveau de masque',
|
||
'max-duration': 'Durée maximale',
|
||
'needs-improvement': 'Doit être amélioré',
|
||
performance: 'Performance',
|
||
play: 'Lire',
|
||
poor: 'Mauvais',
|
||
'recorded-at': 'Enregistré le',
|
||
replay: 'Relecture',
|
||
'replay-enabled': 'Relecture activée',
|
||
replays: 'Relectures',
|
||
'retention-days': 'Jours de rétention',
|
||
'sample-rate': "Taux d'échantillonnage",
|
||
'sample-size': "Taille de l'échantillon",
|
||
'select-component': 'Sélectionner un composant',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Votre tableau de bord est vide. Cliquez sur Modifier pour ajouter votre premier composant.',
|
||
'select-component-preview': 'Sélectionnez un composant pour le prévisualiser',
|
||
'select-website-first': "Sélectionnez d'abord un site web",
|
||
},
|
||
},
|
||
'ga-ES': {
|
||
label: {
|
||
'block-selector': 'Selector de bloque',
|
||
duration: 'Duración',
|
||
good: 'Bo',
|
||
'mask-level': 'Nivel de máscara',
|
||
'max-duration': 'Duración máxima',
|
||
'needs-improvement': 'Necesita mellora',
|
||
performance: 'Rendemento',
|
||
play: 'Reproducir',
|
||
poor: 'Deficiente',
|
||
'recorded-at': 'Rexistrado en',
|
||
replay: 'Reprodución',
|
||
'replay-enabled': 'Reprodución activada',
|
||
replays: 'Reproducións',
|
||
'retention-days': 'Días de retención',
|
||
'sample-rate': 'Taxa de mostraxe',
|
||
'sample-size': 'Tamaño da mostra',
|
||
'select-component': 'Seleccionar compoñente',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'O teu panel está baleiro. Fai clic en Editar para engadir o teu primeiro compoñente.',
|
||
'select-component-preview': 'Selecciona un compoñente para previsualizar',
|
||
'select-website-first': 'Selecciona primeiro un sitio web',
|
||
},
|
||
},
|
||
'he-IL': {
|
||
label: {
|
||
'block-selector': 'בוחר בלוק',
|
||
duration: 'משך',
|
||
good: 'טוב',
|
||
'mask-level': 'רמת מסיכה',
|
||
'max-duration': 'משך מקסימלי',
|
||
'needs-improvement': 'דרוש שיפור',
|
||
performance: 'ביצועים',
|
||
play: 'הפעל',
|
||
poor: 'גרוע',
|
||
'recorded-at': 'הוקלט ב',
|
||
replay: 'הקלטה חוזרת',
|
||
'replay-enabled': 'הקלטה חוזרת מופעלת',
|
||
replays: 'הקלטות חוזרות',
|
||
'retention-days': 'ימי שמירה',
|
||
'sample-rate': 'קצב דגימה',
|
||
'sample-size': 'גודל מדגם',
|
||
'select-component': 'בחר רכיב',
|
||
},
|
||
message: {
|
||
'empty-dashboard': 'לוח המחוונים שלך ריק. לחץ על עריכה כדי להוסיף את הרכיב הראשון שלך.',
|
||
'select-component-preview': 'בחר רכיב לתצוגה מקדימה',
|
||
'select-website-first': 'בחר תחילה אתר אינטרנט',
|
||
},
|
||
},
|
||
'hi-IN': {
|
||
label: {
|
||
'block-selector': 'ब्लॉक चयनकर्ता',
|
||
duration: 'अवधि',
|
||
good: 'अच्छा',
|
||
'mask-level': 'मास्क स्तर',
|
||
'max-duration': 'अधिकतम अवधि',
|
||
'needs-improvement': 'सुधार की आवश्यकता है',
|
||
performance: 'प्रदर्शन',
|
||
play: 'चलाएं',
|
||
poor: 'खराब',
|
||
'recorded-at': 'रिकॉर्ड किया गया',
|
||
replay: 'रीप्ले',
|
||
'replay-enabled': 'रीप्ले सक्षम',
|
||
replays: 'रीप्ले',
|
||
'retention-days': 'प्रतिधारण दिन',
|
||
'sample-rate': 'नमूना दर',
|
||
'sample-size': 'नमूना आकार',
|
||
'select-component': 'घटक चुनें',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'आपका डैशबोर्ड खाली है। अपना पहला घटक जोड़ने के लिए संपादित करें पर क्लिक करें।',
|
||
'select-component-preview': 'पूर्वावलोकन के लिए एक घटक चुनें',
|
||
'select-website-first': 'पहले एक वेबसाइट चुनें',
|
||
},
|
||
},
|
||
'hr-HR': {
|
||
label: {
|
||
'block-selector': 'Odabir bloka',
|
||
duration: 'Trajanje',
|
||
good: 'Dobro',
|
||
'mask-level': 'Razina maske',
|
||
'max-duration': 'Maksimalno trajanje',
|
||
'needs-improvement': 'Treba poboljšanje',
|
||
performance: 'Performanse',
|
||
play: 'Reproduciraj',
|
||
poor: 'Loše',
|
||
'recorded-at': 'Snimljeno u',
|
||
replay: 'Ponovna reprodukcija',
|
||
'replay-enabled': 'Ponovna reprodukcija omogućena',
|
||
replays: 'Ponovne reprodukcije',
|
||
'retention-days': 'Dani zadržavanja',
|
||
'sample-rate': 'Stopa uzorkovanja',
|
||
'sample-size': 'Veličina uzorka',
|
||
'select-component': 'Odaberite komponentu',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Vaša nadzorna ploča je prazna. Kliknite Uredi da dodate prvu komponentu.',
|
||
'select-component-preview': 'Odaberite komponentu za pregled',
|
||
'select-website-first': 'Prvo odaberite web stranicu',
|
||
},
|
||
},
|
||
'hu-HU': {
|
||
label: {
|
||
'block-selector': 'Blokk kiválasztó',
|
||
duration: 'Időtartam',
|
||
good: 'Jó',
|
||
'mask-level': 'Maszkolási szint',
|
||
'max-duration': 'Maximális időtartam',
|
||
'needs-improvement': 'Fejlesztésre szorul',
|
||
performance: 'Teljesítmény',
|
||
play: 'Lejátszás',
|
||
poor: 'Gyenge',
|
||
'recorded-at': 'Rögzítve',
|
||
replay: 'Visszajátszás',
|
||
'replay-enabled': 'Visszajátszás engedélyezve',
|
||
replays: 'Visszajátszások',
|
||
'retention-days': 'Megőrzési napok',
|
||
'sample-rate': 'Mintavételi arány',
|
||
'sample-size': 'Mintaméret',
|
||
'select-component': 'Válasszon komponenst',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Az irányítópult üres. Kattintson a Szerkesztés gombra az első komponens hozzáadásához.',
|
||
'select-component-preview': 'Válasszon egy komponenst az előnézethez',
|
||
'select-website-first': 'Először válasszon egy webhelyet',
|
||
},
|
||
},
|
||
'id-ID': {
|
||
label: {
|
||
'block-selector': 'Pemilih blok',
|
||
duration: 'Durasi',
|
||
good: 'Baik',
|
||
'mask-level': 'Tingkat masker',
|
||
'max-duration': 'Durasi maksimal',
|
||
'needs-improvement': 'Perlu perbaikan',
|
||
performance: 'Kinerja',
|
||
play: 'Putar',
|
||
poor: 'Buruk',
|
||
'recorded-at': 'Direkam pada',
|
||
replay: 'Pemutaran ulang',
|
||
'replay-enabled': 'Pemutaran ulang diaktifkan',
|
||
replays: 'Pemutaran ulang',
|
||
'retention-days': 'Hari penyimpanan',
|
||
'sample-rate': 'Laju sampel',
|
||
'sample-size': 'Ukuran sampel',
|
||
'select-component': 'Pilih komponen',
|
||
},
|
||
message: {
|
||
'empty-dashboard': 'Dasbor Anda kosong. Klik Edit untuk menambahkan komponen pertama Anda.',
|
||
'select-component-preview': 'Pilih komponen untuk pratinjau',
|
||
'select-website-first': 'Pilih situs web terlebih dahulu',
|
||
},
|
||
},
|
||
'it-IT': {
|
||
label: {
|
||
'block-selector': 'Selettore di blocco',
|
||
duration: 'Durata',
|
||
good: 'Buono',
|
||
'mask-level': 'Livello di maschera',
|
||
'max-duration': 'Durata massima',
|
||
'needs-improvement': 'Necessita miglioramento',
|
||
performance: 'Prestazioni',
|
||
play: 'Riproduci',
|
||
poor: 'Scarso',
|
||
'recorded-at': 'Registrato il',
|
||
replay: 'Replay',
|
||
'replay-enabled': 'Replay abilitato',
|
||
replays: 'Replay',
|
||
'retention-days': 'Giorni di conservazione',
|
||
'sample-rate': 'Frequenza di campionamento',
|
||
'sample-size': 'Dimensione del campione',
|
||
'select-component': 'Seleziona componente',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'La tua dashboard è vuota. Fai clic su Modifica per aggiungere il tuo primo componente.',
|
||
'select-component-preview': "Seleziona un componente per l'anteprima",
|
||
'select-website-first': 'Seleziona prima un sito web',
|
||
},
|
||
},
|
||
'ja-JP': {
|
||
label: {
|
||
'block-selector': 'ブロックセレクター',
|
||
duration: '継続時間',
|
||
good: '良好',
|
||
'mask-level': 'マスクレベル',
|
||
'max-duration': '最大継続時間',
|
||
'needs-improvement': '改善が必要',
|
||
performance: 'パフォーマンス',
|
||
play: '再生',
|
||
poor: '不良',
|
||
'recorded-at': '記録日時',
|
||
replay: 'リプレイ',
|
||
'replay-enabled': 'リプレイを有効化',
|
||
replays: 'リプレイ',
|
||
'retention-days': '保存期間',
|
||
'sample-rate': 'サンプリングレート',
|
||
'sample-size': 'サンプルサイズ',
|
||
'select-component': 'コンポーネントを選択',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'ダッシュボードは空です。編集をクリックして最初のコンポーネントを追加してください。',
|
||
'select-component-preview': 'プレビューするコンポーネントを選択してください',
|
||
'select-website-first': '最初にウェブサイトを選択してください',
|
||
},
|
||
},
|
||
'km-KH': {
|
||
label: {
|
||
'block-selector': 'ឧបករណ៍ជ្រើសរើសប្លុក',
|
||
duration: 'រយៈពេល',
|
||
good: 'ល្អ',
|
||
'mask-level': 'កម្រិតម៉ាស',
|
||
'max-duration': 'រយៈពេលអតិបរមា',
|
||
'needs-improvement': 'ត្រូវការកែប្រែ',
|
||
performance: 'ប្រសិទ្ធភាព',
|
||
play: 'លេង',
|
||
poor: 'ខ្សោយ',
|
||
'recorded-at': 'ថតនៅ',
|
||
replay: 'ចាក់ឡើងវិញ',
|
||
'replay-enabled': 'បើកការចាក់ឡើងវិញ',
|
||
replays: 'ការចាក់ឡើងវិញ',
|
||
'retention-days': 'ថ្ងៃរក្សាទុក',
|
||
'sample-rate': 'អត្រាគំរូ',
|
||
'sample-size': 'ទំហំគំរូ',
|
||
'select-component': 'ជ្រើសរើសធាតុ',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'ផ្ទាំងគ្រប់គ្រងរបស់អ្នកទទេ។ ចុចកែសម្រួលដើម្បីបន្ថែមធាតុដំបូងរបស់អ្នក។',
|
||
'select-component-preview': 'ជ្រើសរើសធាតុមួយដើម្បីមើលជាមុន',
|
||
'select-website-first': 'ជ្រើសរើសគេហទំព័រជាមុន',
|
||
},
|
||
},
|
||
'ko-KR': {
|
||
label: {
|
||
'block-selector': '블록 선택기',
|
||
duration: '재생 시간',
|
||
good: '좋음',
|
||
'mask-level': '마스크 수준',
|
||
'max-duration': '최대 재생 시간',
|
||
'needs-improvement': '개선 필요',
|
||
performance: '성능',
|
||
play: '재생',
|
||
poor: '나쁨',
|
||
'recorded-at': '기록 시간',
|
||
replay: '다시보기',
|
||
'replay-enabled': '다시보기 활성화',
|
||
replays: '다시보기',
|
||
'retention-days': '보존 기간',
|
||
'sample-rate': '샘플링 비율',
|
||
'sample-size': '샘플 크기',
|
||
'select-component': '컴포넌트 선택',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'대시보드가 비어 있습니다. 편집을 클릭하여 첫 번째 구성 요소를 추가하세요.',
|
||
'select-component-preview': '미리 볼 컴포넌트를 선택하세요',
|
||
'select-website-first': '먼저 웹사이트를 선택하세요',
|
||
},
|
||
},
|
||
'lt-LT': {
|
||
label: {
|
||
'block-selector': 'Bloko pasirinkiklis',
|
||
duration: 'Trukmė',
|
||
good: 'Gerai',
|
||
'mask-level': 'Maskavimo lygis',
|
||
'max-duration': 'Maksimali trukmė',
|
||
'needs-improvement': 'Reikia tobulinti',
|
||
performance: 'Veikimas',
|
||
play: 'Leisti',
|
||
poor: 'Blogai',
|
||
'recorded-at': 'Įrašyta',
|
||
replay: 'Pakartojimas',
|
||
'replay-enabled': 'Pakartojimas įjungtas',
|
||
replays: 'Pakartojimai',
|
||
'retention-days': 'Saugojimo dienos',
|
||
'sample-rate': 'Imties dažnis',
|
||
'sample-size': 'Imties dydis',
|
||
'select-component': 'Pasirinkite komponentą',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Jūsų prietaisų skydelis tuščias. Spustelėkite Redaguoti, kad pridėtumėte pirmąjį komponentą.',
|
||
'select-component-preview': 'Pasirinkite komponentą peržiūrai',
|
||
'select-website-first': 'Pirmiausia pasirinkite svetainę',
|
||
},
|
||
},
|
||
'mn-MN': {
|
||
label: {
|
||
'block-selector': 'Блок сонгогч',
|
||
duration: 'Хугацаа',
|
||
good: 'Сайн',
|
||
'mask-level': 'Маскийн түвшин',
|
||
'max-duration': 'Хамгийн их хугацаа',
|
||
'needs-improvement': 'Сайжруулалт шаардлагатай',
|
||
performance: 'Гүйцэтгэл',
|
||
play: 'Тоглуулах',
|
||
poor: 'Муу',
|
||
'recorded-at': 'Бичигдсэн огноо',
|
||
replay: 'Дахин тоглуулах',
|
||
'replay-enabled': 'Дахин тоглуулах идэвхжүүлсэн',
|
||
replays: 'Дахин тоглуулах',
|
||
'retention-days': 'Хадгалалтын өдрүүд',
|
||
'sample-rate': 'Дээжлэлтийн хурд',
|
||
'sample-size': 'Дээжний хэмжээ',
|
||
'select-component': 'Бүрэлдэхүүн хэсэг сонгох',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Таны хяналтын самбар хоосон байна. Эхний бүрэлдэхүүн хэсгийг нэмэхийн тулд Засах дарна уу.',
|
||
'select-component-preview': 'Урьдчилан харахын тулд бүрэлдэхүүн хэсэг сонгоно уу',
|
||
'select-website-first': 'Эхлээд вэб сайт сонгоно уу',
|
||
},
|
||
},
|
||
'ms-MY': {
|
||
label: {
|
||
'block-selector': 'Pemilih blok',
|
||
duration: 'Tempoh',
|
||
good: 'Baik',
|
||
'mask-level': 'Tahap pelindung',
|
||
'max-duration': 'Tempoh maksimum',
|
||
'needs-improvement': 'Perlu penambahbaikan',
|
||
performance: 'Prestasi',
|
||
play: 'Main',
|
||
poor: 'Lemah',
|
||
'recorded-at': 'Direkodkan pada',
|
||
replay: 'Main semula',
|
||
'replay-enabled': 'Main semula diaktifkan',
|
||
replays: 'Main semula',
|
||
'retention-days': 'Hari penyimpanan',
|
||
'sample-rate': 'Kadar pensampelan',
|
||
'sample-size': 'Saiz sampel',
|
||
'select-component': 'Pilih komponen',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Papan pemuka anda kosong. Klik Edit untuk menambah komponen pertama anda.',
|
||
'select-component-preview': 'Pilih komponen untuk pratonton',
|
||
'select-website-first': 'Pilih laman web dahulu',
|
||
},
|
||
},
|
||
'my-MM': {
|
||
label: {
|
||
'block-selector': 'ဘလောက် ရွေးချယ်မှု',
|
||
duration: 'ကြာချိန်',
|
||
good: 'ကောင်း',
|
||
'mask-level': 'နှုတ်ဖုံးအဆင့်',
|
||
'max-duration': 'အများဆုံး ကြာချိန်',
|
||
'needs-improvement': 'တိုးတက်မှု လိုအပ်',
|
||
performance: 'စွမ်းဆောင်ရည်',
|
||
play: 'ဖွင့်မည်',
|
||
poor: 'ညံ့',
|
||
'recorded-at': 'မှတ်တမ်းတင်ချိန်',
|
||
replay: 'ပြန်ဖွင့်ခြင်း',
|
||
'replay-enabled': 'ပြန်ဖွင့်ခြင်း ဖွင့်ထားသည်',
|
||
replays: 'ပြန်ဖွင့်ခြင်းများ',
|
||
'retention-days': 'သိမ်းဆည်းရက်',
|
||
'sample-rate': 'နမူနာနှုန်း',
|
||
'sample-size': 'နမူနာအရွယ်အစား',
|
||
'select-component': 'အစိတ်အပိုင်း ရွေးချယ်ပါ',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'သင်၏ ဒက်ရ်ဘုတ် ဗလာဖြစ်နေသည်။ ပထမဆုံး အစိတ်အပိုင်း ထည့်ရန် တည်းဖြတ်ကို နှိပ်ပါ။',
|
||
'select-component-preview': 'အစိတ်အပိုင်းတစ်ခု ရွေးချယ်၍ ကြိုကြည့်ပါ',
|
||
'select-website-first': 'ဦးစွာ ဝဘ်ဆိုက်တစ်ခု ရွေးချယ်ပါ',
|
||
},
|
||
},
|
||
'nb-NO': {
|
||
label: {
|
||
'block-selector': 'Blokkvelger',
|
||
duration: 'Varighet',
|
||
good: 'God',
|
||
'mask-level': 'Maskenivå',
|
||
'max-duration': 'Maksimal varighet',
|
||
'needs-improvement': 'Trenger forbedring',
|
||
performance: 'Ytelse',
|
||
play: 'Spill av',
|
||
poor: 'Dårlig',
|
||
'recorded-at': 'Registrert den',
|
||
replay: 'Avspilling',
|
||
'replay-enabled': 'Avspilling aktivert',
|
||
replays: 'Avspillinger',
|
||
'retention-days': 'Oppbevaringsdager',
|
||
'sample-rate': 'Samplingsfrekvens',
|
||
'sample-size': 'Utvalgsstørrelse',
|
||
'select-component': 'Velg komponent',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Dashbordet ditt er tomt. Klikk Rediger for å legge til din første komponent.',
|
||
'select-component-preview': 'Velg en komponent for forhåndsvisning',
|
||
'select-website-first': 'Velg et nettsted først',
|
||
},
|
||
},
|
||
'nl-NL': {
|
||
label: {
|
||
'block-selector': 'Blokselectie',
|
||
duration: 'Duur',
|
||
good: 'Goed',
|
||
'mask-level': 'Maskeerniveau',
|
||
'max-duration': 'Maximale duur',
|
||
'needs-improvement': 'Verbetering nodig',
|
||
performance: 'Prestaties',
|
||
play: 'Afspelen',
|
||
poor: 'Slecht',
|
||
'recorded-at': 'Opgenomen op',
|
||
replay: 'Herhaling',
|
||
'replay-enabled': 'Herhaling ingeschakeld',
|
||
replays: 'Herhalingen',
|
||
'retention-days': 'Bewaardagen',
|
||
'sample-rate': 'Bemonsteringsfrequentie',
|
||
'sample-size': 'Steekproefgrootte',
|
||
'select-component': 'Component selecteren',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Uw dashboard is leeg. Klik op Bewerken om uw eerste component toe te voegen.',
|
||
'select-component-preview': 'Selecteer een component voor een voorvertoning',
|
||
'select-website-first': 'Selecteer eerst een website',
|
||
},
|
||
},
|
||
'pl-PL': {
|
||
label: {
|
||
'block-selector': 'Selektor bloków',
|
||
duration: 'Czas trwania',
|
||
good: 'Dobrze',
|
||
'mask-level': 'Poziom maski',
|
||
'max-duration': 'Maksymalny czas trwania',
|
||
'needs-improvement': 'Wymaga poprawy',
|
||
performance: 'Wydajność',
|
||
play: 'Odtwórz',
|
||
poor: 'Słabo',
|
||
'recorded-at': 'Nagrano o',
|
||
replay: 'Odtwarzanie',
|
||
'replay-enabled': 'Odtwarzanie włączone',
|
||
replays: 'Odtwarzania',
|
||
'retention-days': 'Dni przechowywania',
|
||
'sample-rate': 'Częstotliwość próbkowania',
|
||
'sample-size': 'Rozmiar próbki',
|
||
'select-component': 'Wybierz komponent',
|
||
},
|
||
message: {
|
||
'empty-dashboard': 'Twój pulpit jest pusty. Kliknij Edytuj, aby dodać pierwszy komponent.',
|
||
'select-component-preview': 'Wybierz komponent do podglądu',
|
||
'select-website-first': 'Najpierw wybierz stronę internetową',
|
||
},
|
||
},
|
||
'pt-BR': {
|
||
label: {
|
||
'block-selector': 'Seletor de bloco',
|
||
duration: 'Duração',
|
||
good: 'Bom',
|
||
'mask-level': 'Nível de máscara',
|
||
'max-duration': 'Duração máxima',
|
||
'needs-improvement': 'Precisa melhorar',
|
||
performance: 'Desempenho',
|
||
play: 'Reproduzir',
|
||
poor: 'Ruim',
|
||
'recorded-at': 'Registrado em',
|
||
replay: 'Reprodução',
|
||
'replay-enabled': 'Reprodução habilitada',
|
||
replays: 'Reproduções',
|
||
'retention-days': 'Dias de retenção',
|
||
'sample-rate': 'Taxa de amostragem',
|
||
'sample-size': 'Tamanho da amostra',
|
||
'select-component': 'Selecionar componente',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Seu painel está vazio. Clique em Editar para adicionar seu primeiro componente.',
|
||
'select-component-preview': 'Selecione um componente para visualizar',
|
||
'select-website-first': 'Selecione um site primeiro',
|
||
},
|
||
},
|
||
'pt-PT': {
|
||
label: {
|
||
'block-selector': 'Seletor de bloco',
|
||
duration: 'Duração',
|
||
good: 'Bom',
|
||
'mask-level': 'Nível de máscara',
|
||
'max-duration': 'Duração máxima',
|
||
'needs-improvement': 'Precisa de melhoria',
|
||
performance: 'Desempenho',
|
||
play: 'Reproduzir',
|
||
poor: 'Mau',
|
||
'recorded-at': 'Registado em',
|
||
replay: 'Reprodução',
|
||
'replay-enabled': 'Reprodução ativada',
|
||
replays: 'Reproduções',
|
||
'retention-days': 'Dias de retenção',
|
||
'sample-rate': 'Taxa de amostragem',
|
||
'sample-size': 'Tamanho da amostra',
|
||
'select-component': 'Selecionar componente',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'O seu painel está vazio. Clique em Editar para adicionar o seu primeiro componente.',
|
||
'select-component-preview': 'Selecione um componente para pré-visualizar',
|
||
'select-website-first': 'Selecione primeiro um site',
|
||
},
|
||
},
|
||
'ro-RO': {
|
||
label: {
|
||
'block-selector': 'Selector de bloc',
|
||
duration: 'Durată',
|
||
good: 'Bun',
|
||
'mask-level': 'Nivel mască',
|
||
'max-duration': 'Durată maximă',
|
||
'needs-improvement': 'Are nevoie de îmbunătățiri',
|
||
performance: 'Performanță',
|
||
play: 'Redă',
|
||
poor: 'Slab',
|
||
'recorded-at': 'Înregistrat la',
|
||
replay: 'Reluare',
|
||
'replay-enabled': 'Reluare activată',
|
||
replays: 'Reluări',
|
||
'retention-days': 'Zile de păstrare',
|
||
'sample-rate': 'Rată de eșantionare',
|
||
'sample-size': 'Dimensiunea eșantionului',
|
||
'select-component': 'Selectați componenta',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Tabloul de bord este gol. Faceți clic pe Editare pentru a adăuga primul component.',
|
||
'select-component-preview': 'Selectați o componentă pentru previzualizare',
|
||
'select-website-first': 'Selectați mai întâi un site web',
|
||
},
|
||
},
|
||
'ru-RU': {
|
||
label: {
|
||
'block-selector': 'Выбор блока',
|
||
duration: 'Длительность',
|
||
good: 'Хорошо',
|
||
'mask-level': 'Уровень маскировки',
|
||
'max-duration': 'Максимальная длительность',
|
||
'needs-improvement': 'Требует улучшения',
|
||
performance: 'Производительность',
|
||
play: 'Воспроизвести',
|
||
poor: 'Плохо',
|
||
'recorded-at': 'Записано',
|
||
replay: 'Запись сессии',
|
||
'replay-enabled': 'Запись сессий включена',
|
||
replays: 'Записи сессий',
|
||
'retention-days': 'Дни хранения',
|
||
'sample-rate': 'Частота выборки',
|
||
'sample-size': 'Размер выборки',
|
||
'select-component': 'Выберите компонент',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Ваша панель управления пуста. Нажмите Изменить, чтобы добавить первый компонент.',
|
||
'select-component-preview': 'Выберите компонент для предпросмотра',
|
||
'select-website-first': 'Сначала выберите сайт',
|
||
},
|
||
},
|
||
'si-LK': {
|
||
label: {
|
||
'block-selector': 'කොටස් තෝරනය',
|
||
duration: 'කාලය',
|
||
good: 'හොඳ',
|
||
'mask-level': 'මාස් මට්ටම',
|
||
'max-duration': 'උපරිම කාලය',
|
||
'needs-improvement': 'වැඩිදියුණු කිරීම අවශ්ය',
|
||
performance: 'කාර්යක්ෂමතාව',
|
||
play: 'ධාවනය කරන්න',
|
||
poor: 'දුර්වල',
|
||
'recorded-at': 'පටිගත කළේ',
|
||
replay: 'නැවත ධාවනය',
|
||
'replay-enabled': 'නැවත ධාවනය සක්රිය',
|
||
replays: 'නැවත ධාවනයන්',
|
||
'retention-days': 'රඳවා ගැනීමේ දින',
|
||
'sample-rate': 'සාම්පල් අනුපාතය',
|
||
'sample-size': 'සාම්පල් ප්රමාණය',
|
||
'select-component': 'කොටසක් තෝරන්න',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'ඔබේ ඩැෂ්බෝඩ් හිස් ය. ඔබේ පළමු කොටස එක් කිරීමට සංස්කරණය ක්ලික් කරන්න.',
|
||
'select-component-preview': 'පෙරදසුනක් සඳහා කොටසක් තෝරන්න',
|
||
'select-website-first': 'පළමුව වෙබ් අඩවියක් තෝරන්න',
|
||
},
|
||
},
|
||
'sk-SK': {
|
||
label: {
|
||
'block-selector': 'Výber bloku',
|
||
duration: 'Trvanie',
|
||
good: 'Dobré',
|
||
'mask-level': 'Úroveň masky',
|
||
'max-duration': 'Maximálne trvanie',
|
||
'needs-improvement': 'Vyžaduje zlepšenie',
|
||
performance: 'Výkon',
|
||
play: 'Prehrať',
|
||
poor: 'Zlé',
|
||
'recorded-at': 'Zaznamenané',
|
||
replay: 'Prehrávanie',
|
||
'replay-enabled': 'Prehrávanie povolené',
|
||
replays: 'Prehrávanie',
|
||
'retention-days': 'Dni uchovávania',
|
||
'sample-rate': 'Frekvencia vzorkovania',
|
||
'sample-size': 'Veľkosť vzorky',
|
||
'select-component': 'Vyberte komponent',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Váš dashboard je prázdny. Kliknite na Upraviť a pridajte prvý komponent.',
|
||
'select-component-preview': 'Vyberte komponent na náhľad',
|
||
'select-website-first': 'Najprv vyberte webovú stránku',
|
||
},
|
||
},
|
||
'sl-SI': {
|
||
label: {
|
||
'block-selector': 'Izbirnik blokov',
|
||
duration: 'Trajanje',
|
||
good: 'Dobro',
|
||
'mask-level': 'Raven maske',
|
||
'max-duration': 'Največje trajanje',
|
||
'needs-improvement': 'Potrebuje izboljšave',
|
||
performance: 'Zmogljivost',
|
||
play: 'Predvajaj',
|
||
poor: 'Slabo',
|
||
'recorded-at': 'Zabeleženo ob',
|
||
replay: 'Predvajanje',
|
||
'replay-enabled': 'Predvajanje omogočeno',
|
||
replays: 'Predvajanja',
|
||
'retention-days': 'Dni hrambe',
|
||
'sample-rate': 'Hitrost vzorčenja',
|
||
'sample-size': 'Velikost vzorca',
|
||
'select-component': 'Izberite komponento',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Vaša nadzorna plošča je prazna. Kliknite Uredi, da dodate svojo prvo komponento.',
|
||
'select-component-preview': 'Izberite komponento za predogled',
|
||
'select-website-first': 'Najprej izberite spletno mesto',
|
||
},
|
||
},
|
||
'sv-SE': {
|
||
label: {
|
||
'block-selector': 'Blockväljare',
|
||
duration: 'Varaktighet',
|
||
good: 'Bra',
|
||
'mask-level': 'Masknivå',
|
||
'max-duration': 'Maximal varaktighet',
|
||
'needs-improvement': 'Behöver förbättring',
|
||
performance: 'Prestanda',
|
||
play: 'Spela upp',
|
||
poor: 'Dålig',
|
||
'recorded-at': 'Registrerad den',
|
||
replay: 'Uppspelning',
|
||
'replay-enabled': 'Uppspelning aktiverad',
|
||
replays: 'Uppspelningar',
|
||
'retention-days': 'Lagringsdagar',
|
||
'sample-rate': 'Samplingshastighet',
|
||
'sample-size': 'Urvalsstorlek',
|
||
'select-component': 'Välj komponent',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Din instrumentpanel är tom. Klicka på Redigera för att lägga till din första komponent.',
|
||
'select-component-preview': 'Välj en komponent för att förhandsgranska',
|
||
'select-website-first': 'Välj en webbplats först',
|
||
},
|
||
},
|
||
'ta-IN': {
|
||
label: {
|
||
'block-selector': 'தொகுதி தேர்வி',
|
||
duration: 'கால அளவு',
|
||
good: 'நல்லது',
|
||
'mask-level': 'முகமூடி நிலை',
|
||
'max-duration': 'அதிகபட்ச கால அளவு',
|
||
'needs-improvement': 'மேம்பாடு தேவை',
|
||
performance: 'செயல்திறன்',
|
||
play: 'இயக்கு',
|
||
poor: 'மோசம்',
|
||
'recorded-at': 'பதிவுசெய்த நேரம்',
|
||
replay: 'மறுபடியும் இயக்கு',
|
||
'replay-enabled': 'மறுபடியும் இயக்கு இயக்கப்பட்டது',
|
||
replays: 'மறுபடியும் இயக்குதல்கள்',
|
||
'retention-days': 'தக்கவைப்பு நாட்கள்',
|
||
'sample-rate': 'மாதிரி விகிதம்',
|
||
'sample-size': 'மாதிரி அளவு',
|
||
'select-component': 'ஒரு கூறு தேர்ந்தெடுக்கவும்',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'உங்கள் டாஷ்போர்டு காலியாக உள்ளது. உங்கள் முதல் கூறை சேர்க்க திருத்து கிளிக் செய்யுங்கள்.',
|
||
'select-component-preview': 'முன்னோட்டம் பார்க்க ஒரு கூறு தேர்ந்தெடுக்கவும்',
|
||
'select-website-first': 'முதலில் ஒரு வலைத்தளம் தேர்ந்தெடுக்கவும்',
|
||
},
|
||
},
|
||
'th-TH': {
|
||
label: {
|
||
'block-selector': 'ตัวเลือกบล็อก',
|
||
duration: 'ระยะเวลา',
|
||
good: 'ดี',
|
||
'mask-level': 'ระดับมาสก์',
|
||
'max-duration': 'ระยะเวลาสูงสุด',
|
||
'needs-improvement': 'ต้องปรับปรุง',
|
||
performance: 'ประสิทธิภาพ',
|
||
play: 'เล่น',
|
||
poor: 'แย่',
|
||
'recorded-at': 'บันทึกเมื่อ',
|
||
replay: 'เล่นซ้ำ',
|
||
'replay-enabled': 'เปิดใช้งานการเล่นซ้ำ',
|
||
replays: 'การเล่นซ้ำ',
|
||
'retention-days': 'วันที่เก็บข้อมูล',
|
||
'sample-rate': 'อัตราการสุ่มตัวอย่าง',
|
||
'sample-size': 'ขนาดตัวอย่าง',
|
||
'select-component': 'เลือกส่วนประกอบ',
|
||
},
|
||
message: {
|
||
'empty-dashboard': 'แดชบอร์ดของคุณว่างเปล่า คลิกแก้ไขเพื่อเพิ่มส่วนประกอบแรก',
|
||
'select-component-preview': 'เลือกส่วนประกอบเพื่อดูตัวอย่าง',
|
||
'select-website-first': 'เลือกเว็บไซต์ก่อน',
|
||
},
|
||
},
|
||
'tr-TR': {
|
||
label: {
|
||
'block-selector': 'Blok seçici',
|
||
duration: 'Süre',
|
||
good: 'İyi',
|
||
'mask-level': 'Maske seviyesi',
|
||
'max-duration': 'Maksimum süre',
|
||
'needs-improvement': 'İyileştirme gerekiyor',
|
||
performance: 'Performans',
|
||
play: 'Oynat',
|
||
poor: 'Kötü',
|
||
'recorded-at': 'Kaydedildi',
|
||
replay: 'Tekrar oynatma',
|
||
'replay-enabled': 'Tekrar oynatma etkin',
|
||
replays: 'Tekrar oynatmalar',
|
||
'retention-days': 'Saklama günleri',
|
||
'sample-rate': 'Örnekleme hızı',
|
||
'sample-size': 'Örneklem boyutu',
|
||
'select-component': 'Bileşen seçin',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
"Gösterge paneliniz boş. İlk bileşeninizi eklemek için Düzenle'ye tıklayın.",
|
||
'select-component-preview': 'Önizleme için bir bileşen seçin',
|
||
'select-website-first': 'Önce bir web sitesi seçin',
|
||
},
|
||
},
|
||
'uk-UA': {
|
||
label: {
|
||
'block-selector': 'Вибір блоку',
|
||
duration: 'Тривалість',
|
||
good: 'Добре',
|
||
'mask-level': 'Рівень маскування',
|
||
'max-duration': 'Максимальна тривалість',
|
||
'needs-improvement': 'Потребує покращення',
|
||
performance: 'Продуктивність',
|
||
play: 'Відтворити',
|
||
poor: 'Погано',
|
||
'recorded-at': 'Записано о',
|
||
replay: 'Відтворення',
|
||
'replay-enabled': 'Відтворення увімкнено',
|
||
replays: 'Відтворення',
|
||
'retention-days': 'Дні зберігання',
|
||
'sample-rate': 'Частота вибірки',
|
||
'sample-size': 'Розмір вибірки',
|
||
'select-component': 'Виберіть компонент',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Ваша панель інструментів порожня. Натисніть Редагувати, щоб додати перший компонент.',
|
||
'select-component-preview': 'Виберіть компонент для попереднього перегляду',
|
||
'select-website-first': 'Спочатку виберіть веб-сайт',
|
||
},
|
||
},
|
||
'ur-PK': {
|
||
label: {
|
||
'block-selector': 'بلاک منتخب کنندہ',
|
||
duration: 'مدت',
|
||
good: 'اچھا',
|
||
'mask-level': 'ماسک کی سطح',
|
||
'max-duration': 'زیادہ سے زیادہ مدت',
|
||
'needs-improvement': 'بہتری کی ضرورت ہے',
|
||
performance: 'کارکردگی',
|
||
play: 'چلائیں',
|
||
poor: 'خراب',
|
||
'recorded-at': 'ریکارڈ کیا گیا',
|
||
replay: 'دوبارہ چلائیں',
|
||
'replay-enabled': 'دوبارہ چلانا فعال',
|
||
replays: 'دوبارہ چلانے',
|
||
'retention-days': 'برقراری کے دن',
|
||
'sample-rate': 'نمونہ کی شرح',
|
||
'sample-size': 'نمونے کا حجم',
|
||
'select-component': 'اجزاء منتخب کریں',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'آپ کا ڈیش بورڈ خالی ہے۔ اپنا پہلا جزو شامل کرنے کے لیے ترمیم پر کلک کریں۔',
|
||
'select-component-preview': 'پیش نظارہ کے لیے ایک جزو منتخب کریں',
|
||
'select-website-first': 'پہلے ایک ویب سائٹ منتخب کریں',
|
||
},
|
||
},
|
||
'uz-UZ': {
|
||
label: {
|
||
'block-selector': 'Blok tanlash',
|
||
duration: 'Davomiylik',
|
||
good: 'Yaxshi',
|
||
'mask-level': 'Niqob darajasi',
|
||
'max-duration': 'Maksimal davomiylik',
|
||
'needs-improvement': 'Yaxshilash kerak',
|
||
performance: 'Ishlash',
|
||
play: 'Ijro etish',
|
||
poor: 'Yomon',
|
||
'recorded-at': 'Yozib olingan',
|
||
replay: 'Qayta ijro',
|
||
'replay-enabled': 'Qayta ijro yoqilgan',
|
||
replays: 'Qayta ijrolar',
|
||
'retention-days': 'Saqlash kunlari',
|
||
'sample-rate': 'Namuna olish tezligi',
|
||
'sample-size': 'Namuna hajmi',
|
||
'select-component': 'Komponent tanlash',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
"Sizning boshqaruv panelingiz bo'sh. Birinchi komponentni qo'shish uchun Tahrirlash tugmasini bosing.",
|
||
'select-component-preview': "Ko'rib chiqish uchun komponent tanlang",
|
||
'select-website-first': 'Avval veb-sayt tanlang',
|
||
},
|
||
},
|
||
'vi-VN': {
|
||
label: {
|
||
'block-selector': 'Bộ chọn khối',
|
||
duration: 'Thời lượng',
|
||
good: 'Tốt',
|
||
'mask-level': 'Mức che',
|
||
'max-duration': 'Thời lượng tối đa',
|
||
'needs-improvement': 'Cần cải thiện',
|
||
performance: 'Hiệu suất',
|
||
play: 'Phát',
|
||
poor: 'Kém',
|
||
'recorded-at': 'Được ghi vào',
|
||
replay: 'Phát lại',
|
||
'replay-enabled': 'Phát lại được bật',
|
||
replays: 'Phát lại',
|
||
'retention-days': 'Ngày lưu trữ',
|
||
'sample-rate': 'Tỷ lệ mẫu',
|
||
'sample-size': 'Kích thước mẫu',
|
||
'select-component': 'Chọn thành phần',
|
||
},
|
||
message: {
|
||
'empty-dashboard':
|
||
'Bảng điều khiển của bạn đang trống. Nhấp Chỉnh sửa để thêm thành phần đầu tiên.',
|
||
'select-component-preview': 'Chọn một thành phần để xem trước',
|
||
'select-website-first': 'Chọn một trang web trước',
|
||
},
|
||
},
|
||
'zh-CN': {
|
||
label: {
|
||
'block-selector': '块选择器',
|
||
duration: '持续时间',
|
||
good: '良好',
|
||
'mask-level': '遮罩级别',
|
||
'max-duration': '最大持续时间',
|
||
'needs-improvement': '需要改进',
|
||
performance: '性能',
|
||
play: '播放',
|
||
poor: '较差',
|
||
'recorded-at': '录制于',
|
||
replay: '回放',
|
||
'replay-enabled': '回放已启用',
|
||
replays: '回放',
|
||
'retention-days': '保留天数',
|
||
'sample-rate': '采样率',
|
||
'sample-size': '样本量',
|
||
'select-component': '选择组件',
|
||
},
|
||
message: {
|
||
'empty-dashboard': '您的仪表板为空。点击编辑以添加您的第一个组件。',
|
||
'select-component-preview': '选择一个组件进行预览',
|
||
'select-website-first': '请先选择一个网站',
|
||
},
|
||
},
|
||
'zh-TW': {
|
||
label: {
|
||
'block-selector': '區塊選擇器',
|
||
duration: '持續時間',
|
||
good: '良好',
|
||
'mask-level': '遮罩層級',
|
||
'max-duration': '最大持續時間',
|
||
'needs-improvement': '需要改善',
|
||
performance: '效能',
|
||
play: '播放',
|
||
poor: '較差',
|
||
'recorded-at': '錄製於',
|
||
replay: '回放',
|
||
'replay-enabled': '回放已啟用',
|
||
replays: '回放',
|
||
'retention-days': '保留天數',
|
||
'sample-rate': '取樣率',
|
||
'sample-size': '樣本量',
|
||
'select-component': '選擇元件',
|
||
},
|
||
message: {
|
||
'empty-dashboard': '您的儀表板為空。點擊編輯以新增您的第一個元件。',
|
||
'select-component-preview': '選擇一個元件進行預覽',
|
||
'select-website-first': '請先選擇一個網站',
|
||
},
|
||
},
|
||
};
|
||
|
||
function insertAlphabetically(obj, newEntries) {
|
||
const merged = { ...obj, ...newEntries };
|
||
return Object.fromEntries(Object.entries(merged).sort(([a], [b]) => a.localeCompare(b)));
|
||
}
|
||
|
||
const files = readdirSync(messagesDir).filter(
|
||
f => f.endsWith('.json') && f !== 'en-US.json',
|
||
);
|
||
|
||
let updated = 0;
|
||
|
||
for (const fname of files) {
|
||
const locale = fname.replace('.json', '');
|
||
const filePath = join(messagesDir, fname);
|
||
const data = JSON.parse(readFileSync(filePath, 'utf8'));
|
||
|
||
const localeTranslations = translations[locale] || {};
|
||
|
||
// Merge universal + locale-specific label entries
|
||
const newLabelEntries = {
|
||
...universal.label,
|
||
...(localeTranslations.label || {}),
|
||
};
|
||
|
||
// Merge message entries
|
||
const newMessageEntries = localeTranslations.message || {};
|
||
|
||
// Only add keys that are actually missing
|
||
const missingLabels = Object.fromEntries(
|
||
Object.entries(newLabelEntries).filter(([k]) => !(k in (data.label || {}))),
|
||
);
|
||
const missingMessages = Object.fromEntries(
|
||
Object.entries(newMessageEntries).filter(([k]) => !(k in (data.message || {}))),
|
||
);
|
||
|
||
if (Object.keys(missingLabels).length === 0 && Object.keys(missingMessages).length === 0) {
|
||
continue;
|
||
}
|
||
|
||
if (Object.keys(missingLabels).length > 0) {
|
||
data.label = insertAlphabetically(data.label || {}, missingLabels);
|
||
}
|
||
if (Object.keys(missingMessages).length > 0) {
|
||
data.message = insertAlphabetically(data.message || {}, missingMessages);
|
||
}
|
||
|
||
writeFileSync(filePath, JSON.stringify(data, null, 2) + '\n', 'utf8');
|
||
console.log(`✓ ${fname}: added ${Object.keys(missingLabels).length} labels, ${Object.keys(missingMessages).length} messages`);
|
||
updated++;
|
||
}
|
||
|
||
console.log(`\nDone. Updated ${updated} files.`);
|