🔂 Merge master into branch
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"home": {
|
||||
"no-results": "لا نتائج للبحث",
|
||||
"no-data": "لم يتم تكوين بيانات"
|
||||
"no-data": "لا يوجد بيانات"
|
||||
},
|
||||
"search": {
|
||||
"search-label": "بحث",
|
||||
@@ -33,11 +33,11 @@
|
||||
},
|
||||
"config": {
|
||||
"main-tab": "القائمة الرئيسية",
|
||||
"view-config-tab": "مشاهدة ملف Config",
|
||||
"edit-config-tab": "تحرير التكوين",
|
||||
"view-config-tab": "مشاهده ملف الإعدادات",
|
||||
"edit-config-tab": "تغير ملف الاع",
|
||||
"custom-css-tab": "الأنماط المخصصة",
|
||||
"heading": "خيارات الإعداد",
|
||||
"download-config-button": "تنزيل Config",
|
||||
"download-config-button": "تنزيل ملف الإعدادات",
|
||||
"edit-config-button": "تحرير التكوين",
|
||||
"edit-css-button": "تحرير CSS مخصص",
|
||||
"cloud-sync-button": "قم بتمكين Cloud Sync",
|
||||
@@ -84,7 +84,7 @@
|
||||
"sign-in-welcome": "مرحبًا {username}!"
|
||||
},
|
||||
"updates": {
|
||||
"app-version-note": "نسخة متهورة",
|
||||
"app-version-note": "ملاحظة نسخة التطبيق",
|
||||
"up-to-date": "حتى الآن",
|
||||
"out-of-date": "التحديث متاح",
|
||||
"unsupported-version-l1": "أنت تستخدم إصدارًا غير مدعوم من Dashy",
|
||||
|
||||
@@ -1,421 +1,448 @@
|
||||
{
|
||||
"home":
|
||||
{
|
||||
"no-results": "keine Suchergebnisse",
|
||||
"no-data": "keine Daten konfiguriert",
|
||||
"no-items-section": "Noch keine Elemente zum Anzeigen"
|
||||
},
|
||||
"search":
|
||||
{
|
||||
"search-label": "Suche",
|
||||
"search-placeholder": "Tippen um zu filtern",
|
||||
"clear-search-tooltip": "Suchfeld leeren",
|
||||
"enter-to-search-web": "Drücke Enter um das Internet zu durchsuchen"
|
||||
},
|
||||
"login":
|
||||
{
|
||||
"title": "Dashy",
|
||||
"username-label": "Benutzername",
|
||||
"password-label": "Passwort",
|
||||
"login-button": "Anmelden",
|
||||
"remember-me-label": "Angemeldet bleiben für",
|
||||
"remember-me-never": "Niemals",
|
||||
"remember-me-hour": "4 Stunden",
|
||||
"remember-me-day": "1 Tag",
|
||||
"remember-me-week": "1 Woche",
|
||||
"remember-me-long-time": "Eine lange Zeit",
|
||||
"error-missing-username": "Benutzername fehlt",
|
||||
"error-missing-password": "Passwort fehlt",
|
||||
"error-incorrect-username": "Benutzer nicht gefunden",
|
||||
"error-incorrect-password": "Falsches Passwort",
|
||||
"success-message": "Anmeldung läuft...",
|
||||
"logout-message": "Abgemeldet",
|
||||
"already-logged-in-title": "Bereits angemeldet",
|
||||
"already-logged-in-text": "Angemeldet als",
|
||||
"proceed-to-dashboard": "Zum Dashboard fortfahren",
|
||||
"log-out-button": "Abmelden",
|
||||
"proceed-guest-button": "Als Gast fortfahren"
|
||||
},
|
||||
"config":
|
||||
{
|
||||
"main-tab": "Hauptmenü",
|
||||
"view-config-tab": "Konfiguration",
|
||||
"edit-config-tab": "Konfiguration bearbeiten",
|
||||
"custom-css-tab": "eigene CSS",
|
||||
"heading": "Konfigurationseinstellungen",
|
||||
"download-config-button": "Konfigurationsdownload",
|
||||
"edit-config-button": "Konfiguration bearbeiten",
|
||||
"edit-css-button": "CSS bearbeiten",
|
||||
"cloud-sync-button": "Cloud-Synchronisation aktivieren",
|
||||
"edit-cloud-sync-button": "Cloud-Synchronisation bearbeiten",
|
||||
"rebuild-app-button": "Anwendung neu kompilieren",
|
||||
"change-language-button": "App-Sprache ändern",
|
||||
"reset-settings-button": "lokale Einstellungen zurücksetzen",
|
||||
"app-info-button": "App Informationen",
|
||||
"backup-note": "Es wird empfohlen ein Backup der Konfiguration zu erstellen bevor Änderungen durchgeführt werden.",
|
||||
"reset-config-msg-l1": "Dadurch werden alle Benutzereinstellungen aus dem lokalen Speicher entfernt, dies hat jedoch keine Auswirkungen auf Ihre Datei 'conf.yml'.",
|
||||
"reset-config-msg-l2": "Sie sollten zuerst alle Änderungen, die Sie lokal vorgenommen haben, sichern, wenn Sie sie in Zukunft wiederverwenden möchten.",
|
||||
"reset-config-msg-l3": "Sind Sie sicher, dass Sie fortfahren möchten?",
|
||||
"data-cleared-msg": "Daten erfolgreich gelöscht",
|
||||
"actions-label": "Aktionen",
|
||||
"copy-config-label": "Konfiguration kopieren",
|
||||
"data-copied-msg": "Konfiguration wurde in die Zwischenablage kopiert",
|
||||
"reset-config-label": "Konfiguration zurücksetzen",
|
||||
"css-save-btn": "Änderungen speichern",
|
||||
"css-note-label": "Bemerkung",
|
||||
"css-note-l1": "Sie müssen die Seite aktualisieren, damit Ihre Änderungen wirksam werden.",
|
||||
"css-note-l2": "Stilüberschreibungen werden nur lokal gespeichert, daher wird empfohlen vorher eine Kopie Ihres CSS zu erstellen.",
|
||||
"css-note-l3": "Um alle benutzerdefinierten Stile zu entfernen löschen Sie den Inhalt und klicken Sie auf Änderungen speichern."
|
||||
},
|
||||
"alternate-views": {
|
||||
"alternate-view-heading": "Ansicht wechseln",
|
||||
"default": "Standard",
|
||||
"workspace": "Arbeitsplatz",
|
||||
"minimal": "Minimal"
|
||||
},
|
||||
"settings":
|
||||
{
|
||||
"theme-label": "Design",
|
||||
"layout-label": "Layout",
|
||||
"layout-auto": "Auto",
|
||||
"layout-horizontal": "Horizontal",
|
||||
"layout-vertical": "Vertikal",
|
||||
"item-size-label": "Itemgröße",
|
||||
"item-size-small": "klein",
|
||||
"item-size-medium": "mittel",
|
||||
"item-size-large": "groß",
|
||||
"config-launcher-label": "Konfiguration",
|
||||
"config-launcher-tooltip": "Konfiguration aktualisieren",
|
||||
"sign-out-tooltip": "Abmelden",
|
||||
"sign-in-tooltip": "Anmelden",
|
||||
"sign-in-welcome": "Hallo {username}!"
|
||||
},
|
||||
"updates":
|
||||
{
|
||||
"app-version-note": "Dashy Version",
|
||||
"up-to-date": "Aktuell",
|
||||
"out-of-date": "Update verfügbar",
|
||||
"unsupported-version-l1": "Sie verwenden eine nicht unterstützte Version von Dashy",
|
||||
"unsupported-version-l2": "Für die beste Erfahrung und aktuelle Sicherheitspatches aktualisieren Sie bitte auf"
|
||||
},
|
||||
"language-switcher":
|
||||
{
|
||||
"title": "Applikationssprache ändern",
|
||||
"dropdown-label": "Sprache auswählen",
|
||||
"save-button": "Speichern",
|
||||
"success-msg": "Sprache geändert auf"
|
||||
},
|
||||
"theme-maker":
|
||||
{
|
||||
"title": "Design Konfigurator",
|
||||
"export-button": "Benutzerdefinierte Variablen exportieren",
|
||||
"reset-button": "CSS zurücksetzen für",
|
||||
"show-all-button": "Alle Variablen anzeigen",
|
||||
"change-fonts-button": "Schriftart ändern",
|
||||
"save-button": "Speichern",
|
||||
"cancel-button": "Abbrechen",
|
||||
"saved-toast": "{theme} wurde erfolgreich aktualisiert",
|
||||
"copied-toast": "Designdaten für {theme} wurden in die Zwischenablage kopiert.",
|
||||
"reset-toast": "Benutzerdefinierte Farben für {theme} wurden entfernt"
|
||||
},
|
||||
"config-editor":
|
||||
{
|
||||
"save-location-label": "Speicherort",
|
||||
"location-local-label": "Lokal anwenden",
|
||||
"location-disk-label": "Änderungen in die Konfigurationsdatei schreiben",
|
||||
"save-button": "Änderungen speichern",
|
||||
"preview-button": "Vorschau der Änderungen",
|
||||
"valid-label": "Syntax ist gültig",
|
||||
"status-success-msg": "Aufgabe abgeschlossen",
|
||||
"status-fail-msg": "Aufgabe fehlgeschlagen",
|
||||
"success-msg-disk": "Konfigurationsdatei wurde erfolgreich auf die Festplatte geschrieben",
|
||||
"success-msg-local": "Lokale Änderungen wurden erfolgreich gespeichert",
|
||||
"success-note-l1": "Die Applikation sollte automatisch re-kompiliert werden.",
|
||||
"success-note-l2": "Dies kann bis zu einer Minute dauern.",
|
||||
"success-note-l3": "Sie müssen die Seite aktualisieren damit die Änderungen wirksam werden.",
|
||||
"error-msg-save-mode": "Bitte wählen Sie einen Speichermodus: Lokal oder Datei",
|
||||
"error-msg-cannot-save": "Beim Speichern der Konfiguration ist ein Fehler aufgetreten",
|
||||
"error-msg-bad-json": "Fehler in JSON-Daten, möglicherweise fehlerhafter Syntax",
|
||||
"warning-msg-validation": "Validierungswarnung",
|
||||
"not-admin-note": "Änderungen können nicht auf die Festplatte gespeichert werden, da Sie nicht als Administrator angemeldet sind"
|
||||
},
|
||||
"app-rebuild":
|
||||
{
|
||||
"title": "Applikation re-kompilieren",
|
||||
"rebuild-note-l1": "Damit die in die Datei conf.yml geschriebenen Änderungen wirksam werden ist ein re-kompilieren erforderlich.",
|
||||
"rebuild-note-l2": "Dies sollte automatisch passieren, aber falls nicht können Sie es hier manuell starten.",
|
||||
"rebuild-note-l3": "Dies ist bei lokal gespeicherten Änderungen nicht erforderlich.",
|
||||
"rebuild-button": "Start Kompilierung",
|
||||
"rebuilding-status-1": "Baue...",
|
||||
"rebuilding-status-2": "Das kann ein paar Minuten dauern",
|
||||
"error-permission": "Sie sind nicht berechtigt diese Aktion auszulösen",
|
||||
"success-msg": "Kompilierung erfolgreich abgeschlossen",
|
||||
"fail-msg": "Kompilierung fehlgeschlagen",
|
||||
"reload-note": "Ein neu Laden der Seite ist erforderlich, damit die Änderungen wirksam werden.",
|
||||
"reload-button": "Seite neu laden"
|
||||
},
|
||||
"cloud-sync":
|
||||
{
|
||||
"title": "Cloud Backup & Wiederherstellung",
|
||||
"intro-l1": "Cloud-Backup und Wiederherstellung ist eine optionale Funktion mit der Sie Ihre Konfiguration in das Internet hochladen und dann auf einem anderen Gerät oder einer anderen Dashy-Instanz wiederherstellen können.",
|
||||
"intro-l2": "Alle Daten sind vollständig Ende-zu-Ende mit AES verschlüsselt. Ihr Passwort wird als Schlüssel verwendet.",
|
||||
"intro-l3": "Weitere Informationen finden Sie im",
|
||||
"backup-title-setup": "Backup erstellen",
|
||||
"backup-title-update": "Backup aktualisieren",
|
||||
"password-label-setup": "Passwort auswählen",
|
||||
"password-label-update": "Passwort eingeben",
|
||||
"backup-button-setup": "Backup",
|
||||
"backup-button-update": "Backup aktualisieren",
|
||||
"backup-id-label": "Ihre Backup ID",
|
||||
"backup-id-note": "Diese wird zusammen mit dem Passwort benötigt um Ihr Backup wiederherzustellen. Bewahren Sie sie zusammen mit Ihrem Passwort an einem sicheren Ort auf.",
|
||||
"restore-title": "Backup wiederherstellen",
|
||||
"restore-id-label": "ID wiederherstellen",
|
||||
"restore-password-label": "Passwort",
|
||||
"restore-button": "Wiederherstellen",
|
||||
"backup-error-unknown": "Anfrage kann nicht verarbeitet werden",
|
||||
"backup-error-password": "Falsches Passwort. Bitte geben Sie Ihr aktuelles Passwort ein.",
|
||||
"backup-success-msg": "Erfolgreich abgeschlossen",
|
||||
"restore-success-msg": "Konfiguration erfolgreich wiederhergestellt"
|
||||
},
|
||||
"menu":
|
||||
{
|
||||
"open-section-title": "Öffnen in",
|
||||
"sametab": "Aktueller Tab",
|
||||
"newtab": "Neuer Tab",
|
||||
"modal": "Popup Modal",
|
||||
"workspace": "Arbeitsflächenansicht",
|
||||
"options-section-title": "Optionen",
|
||||
"edit-item": "Bearbeiten",
|
||||
"move-item": "Kopieren oder Verschieben",
|
||||
"remove-item": "Entfernen"
|
||||
},
|
||||
"context-menus":
|
||||
{
|
||||
"item":
|
||||
{
|
||||
"open-section-title": "Öffnen in",
|
||||
"sametab": "Aktueller Tab",
|
||||
"newtab": "Neuer Tab",
|
||||
"modal": "Popup Modal",
|
||||
"workspace": "Arbeitsflächenansicht",
|
||||
"clipboard": "In Zwischenablage kopieren",
|
||||
"options-section-title": "Optionen",
|
||||
"edit-item": "Bearbeiten",
|
||||
"move-item": "Kopieren oder Verschieben",
|
||||
"remove-item": "Entfernen",
|
||||
"copied-toast": "URL wurde in die Zwischenablage kopiert"
|
||||
},
|
||||
"section":
|
||||
{
|
||||
"open-section": "Sektion öffnen",
|
||||
"edit-section": "Bearbeiten",
|
||||
"expand-collapse": "Aus- / Einklappen",
|
||||
"move-section": "Verschieben nach",
|
||||
"remove-section": "Entfernen"
|
||||
}
|
||||
},
|
||||
"interactive-editor":
|
||||
{
|
||||
"menu":
|
||||
{
|
||||
"start-editing-tooltip": "Interaktiven Editor starten",
|
||||
"edit-site-data-subheading": "Seiteninformationen bearbeiten",
|
||||
"edit-page-info-btn": "Seiteninformationen bearbeiten",
|
||||
"edit-page-info-tooltip": "Applikationstitel, Beschreibung, Nav. links, Fußzeile, etc.",
|
||||
"edit-app-config-btn": "Applikationskonfiguration bearbeiten",
|
||||
"edit-app-config-tooltip": "Alle anderen Konfigurationsoptionen",
|
||||
"edit-pages-btn": "Seiten bearbeiten",
|
||||
"edit-pages-tooltip": "Hinzufügen oder entfernen von zusätzlichen Ansichten",
|
||||
"config-save-methods-subheading": "Speicheroptionen der Konfiguration",
|
||||
"save-locally-btn": "Lokal speichern",
|
||||
"save-locally-tooltip": "Konfiguration lokal im Browser speichern. Dies hat keinen Einfluss auf die Konfigurationsdatei, aber Änderungen werden nur in diesem Browser gespeichert",
|
||||
"save-disk-btn": "Auf Festplatte speichern",
|
||||
"save-disk-tooltip": "Konfigurationsdatei conf.yml speichern. Dies erzeugt ein Backup und überschreibt dann die existierende Konfigurationsdatei",
|
||||
"export-config-btn": "Konfiguration exportieren",
|
||||
"export-config-tooltip": "Konfiguration anzeigen und exportieren, entweder in eine Datei oder in die Zwischenablage",
|
||||
"cloud-backup-btn": "Cloud-Backup starten",
|
||||
"cloud-backup-tooltip": "Speichert ein verrschlüsseltes Backup in die Cloud",
|
||||
"edit-raw-config-btn": "Konfiguration als Rohdaten bearbeiten",
|
||||
"edit-raw-config-tooltip": "Anzeigen und bearbeiten der Konfiguration als Rohdaten im JSON-Editor",
|
||||
"cancel-changes-btn": "Verwerfen",
|
||||
"cancel-changes-tooltip": "Modifikationen zurücksetzen und Bearbeitungsmodus schließen. Dies hat keinen Einfluss auf die Konfigurationsdatei",
|
||||
"edit-mode-name": "Bearbeitung",
|
||||
"edit-mode-subtitle": "Sie sind im Bearbeitungsmodus",
|
||||
"edit-mode-description": "Das bedeutet, dass Änderungen an der Konfigurationsdatei vorgenommen werden können. Änderungen können vor dem Speichern betrachtet werden.",
|
||||
"save-stage-btn": "Speichern",
|
||||
"cancel-stage-btn": "Abbrechen",
|
||||
"save-locally-warning": "Wenn Sie fortfahren werden die Änderungen nur in Ihrem Browser gespeichert. Um die Konfiguration auf anderen Geräten zu nutzen sollten Sie sie exportieren. Möchten Sie fortfahren?"
|
||||
},
|
||||
"edit-item":
|
||||
{
|
||||
"missing-title-err": "Ein Titel is zwingend notwendig"
|
||||
},
|
||||
"edit-section":
|
||||
{
|
||||
"edit-section-title": "Sektion bearbeiten",
|
||||
"add-section-title": "Neue Sektion hinzufügen",
|
||||
"edit-tooltip": "Klicken zum Bearbeiten oder Rechtsklick für weitere Optionen",
|
||||
"remove-confirm": "Sind Sie sicher, dass sie diese Sektion entfernen möchten? Diese Aktion kann nicht rückgänging gemacht werden."
|
||||
},
|
||||
"edit-app-config":
|
||||
{
|
||||
"warning-msg-title": "Ab hier ist Vorsicht geboten",
|
||||
"warning-msg-l1": "Die folgenden Optionen sind für fortgeschrittene Konfigurationen.",
|
||||
"warning-msg-l2": "Sollten Felder unklar sein, konsultieren Sie die",
|
||||
"warning-msg-docs": "Dokumentation",
|
||||
"warning-msg-l3": "um unbeabsichtigte Folgen zu vermeiden."
|
||||
},
|
||||
"export":
|
||||
{
|
||||
"export-title": "Konfiguration exportieren",
|
||||
"copy-clipboard-btn": "In Zwischenablage kopieren",
|
||||
"copy-clipboard-tooltip": "Applikationskonfiguration als YAML in Zwischenablage kopieren",
|
||||
"download-file-btn": "Datei herunterladen",
|
||||
"download-file-tooltip": "Applikationskonfiguration auf Ihr Gerät herunterladen",
|
||||
"view-title": "Konfiguration anzeigen"
|
||||
}
|
||||
},
|
||||
"widgets":
|
||||
{
|
||||
"general":
|
||||
{
|
||||
"loading": "Lade...",
|
||||
"show-more": "Details",
|
||||
"show-less": "Weniger anzeigen",
|
||||
"open-link": "Weiterlesen"
|
||||
},
|
||||
"pi-hole":
|
||||
{
|
||||
"status-heading": "Status"
|
||||
},
|
||||
"stat-ping":
|
||||
{
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"net-data":
|
||||
{
|
||||
"cpu-chart-title": "CPU Historie",
|
||||
"mem-chart-title": "Speichernutzung",
|
||||
"mem-breakdown-title": "Speichernutzung",
|
||||
"load-chart-title": "Systemlast"
|
||||
},
|
||||
"glances":
|
||||
{
|
||||
"disk-space-free": "Frei",
|
||||
"disk-space-used": "Genutzt",
|
||||
"disk-mount-point": "Mount Punkt",
|
||||
"disk-file-system": "Dateisystem,",
|
||||
"disk-io-read": "Lesen",
|
||||
"disk-io-write": "Schreiben",
|
||||
"system-load-desc": "Prozesse in Warteschlange. (Durchschnitt aller Kerne)"
|
||||
},
|
||||
"system-info":
|
||||
{
|
||||
"uptime": "Uptime"
|
||||
},
|
||||
"flight-data":
|
||||
{
|
||||
"arrivals": "Ankünfte",
|
||||
"departures": "Abflüge"
|
||||
},
|
||||
"tfl-status":
|
||||
{
|
||||
"good-service-all": "Guter Service auf allen Leitungen",
|
||||
"good-service-rest": "Guter Service auf allen anderen Leitungen"
|
||||
},
|
||||
"synology-download":
|
||||
{
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"downloaded": "Heruntergeladen",
|
||||
"uploaded": "Hochgeladen",
|
||||
"remaining": "Verbleibend",
|
||||
"up": "Hoch",
|
||||
"down": "Runter"
|
||||
},
|
||||
"gluetun-status":
|
||||
{
|
||||
"vpn-ip": "VPN IP",
|
||||
"country": "Land",
|
||||
"region": "Bundesland",
|
||||
"city": "Stadt",
|
||||
"post-code": "Postleitzahl",
|
||||
"location": "Standort",
|
||||
"timezone": "Zeitzone",
|
||||
"organization": "Organisation"
|
||||
},
|
||||
"nextcloud":
|
||||
{
|
||||
"active": "Aktiv",
|
||||
"and": "und",
|
||||
"applications": "Anwendungen",
|
||||
"available": "Verfügbar",
|
||||
"away": "Abwesend",
|
||||
"cache-full": "CACHE VOLL",
|
||||
"chat-room": "Chatraum",
|
||||
"delete-all": "Alle löschen",
|
||||
"delete-notification": "Benachrichtigung löschen",
|
||||
"disabled": "Deaktivert",
|
||||
"disk-quota": "Disk Quota",
|
||||
"disk-space": "Disk Speicherplatz",
|
||||
"dnd": "Nicht stören",
|
||||
"email": "EMail",
|
||||
"enabled": "Aktiviert",
|
||||
"federated-shares-ucfirst": "Verbundsfreigaben",
|
||||
"federated-shares": "Verbundsfreigaben",
|
||||
"files": "Dateien{plural}",
|
||||
"free": "Frei",
|
||||
"groups": "Gruppen",
|
||||
"hit-rate": "Trefferrate",
|
||||
"hits": "Treffer",
|
||||
"home": "Zuhause",
|
||||
"in": "in",
|
||||
"keys": "Schlüssel",
|
||||
"last-24-hours": "Letzte 24 Stunden",
|
||||
"last-5-minutes": "in den letzten 5 Minuten",
|
||||
"last-hour": "in der letzten Stunde",
|
||||
"last-login": "Letzte Anmeldung",
|
||||
"last-restart": "Letzter Neustart",
|
||||
"load-averages": "Systemlast aller CPU-Kerne",
|
||||
"local-shares": "Lokale Freigaben",
|
||||
"local": "Lokal",
|
||||
"max-keys": "Maximale Schlüssel",
|
||||
"memory-used": "Speuchernutzung",
|
||||
"memory-utilisation": "Speuchernutzung",
|
||||
"memory": "Speicher",
|
||||
"misses": "Fehlschläge",
|
||||
"no-notifications": "Keine Benachrichtigungen",
|
||||
"no-pending-updates": "Keine ausstehenden Aktualisierungen",
|
||||
"nothing-to-show": "Momentan gibt es hier nichts zu zeigen",
|
||||
"of-which": "welche",
|
||||
"of": "von",
|
||||
"offline": "Offline",
|
||||
"online": "Online",
|
||||
"other": "Andere",
|
||||
"overall": "Insgesamt",
|
||||
"private-link": "privater Link",
|
||||
"public-link": "öffentlicher Link",
|
||||
"quota-enabled": "Disk Quota ist {nicht}aktiviert für diesen Benutzer",
|
||||
"received": "Empfangen",
|
||||
"scripts": "Skripte",
|
||||
"sent": "Gesendet",
|
||||
"started": "Gestartet",
|
||||
"storages-by-type": "Speicher nach Typ",
|
||||
"storages": "Speicher{plural}",
|
||||
"strings-use": "Strings benutzen",
|
||||
"tasks": "Aufgaben",
|
||||
"total-files": "Dateien gesamt",
|
||||
"total-users": "Benutzer gesamt",
|
||||
"total": "Insgesamt",
|
||||
"until": "Bis",
|
||||
"updates-available-for": "Aktualisierungen sind verfügbar für",
|
||||
"updates-available": "Aktualisierungen{plural} verfügbar",
|
||||
"used": "benutzt",
|
||||
"user": "Benutzer",
|
||||
"using": "nutzt",
|
||||
"version": "Version",
|
||||
"wasted": "verschwendet"
|
||||
}
|
||||
"home": {
|
||||
"no-results": "keine Suchergebnisse",
|
||||
"no-data": "keine Daten konfiguriert",
|
||||
"no-items-section": "Noch keine Elemente zum Anzeigen"
|
||||
},
|
||||
"search": {
|
||||
"search-label": "Suche",
|
||||
"search-placeholder": "Tippe um zu filtern",
|
||||
"clear-search-tooltip": "Suchfeld leeren",
|
||||
"enter-to-search-web": "Drücke Enter um das Internet zu durchsuchen"
|
||||
},
|
||||
"splash-screen": {
|
||||
"loading": "Lädt"
|
||||
},
|
||||
"login": {
|
||||
"title": "Dashy",
|
||||
"guest-label": "Gastzugriff",
|
||||
"username-label": "Benutzername",
|
||||
"password-label": "Passwort",
|
||||
"login-button": "Anmelden",
|
||||
"remember-me-label": "Angemeldet bleiben für",
|
||||
"remember-me-never": "Niemals",
|
||||
"remember-me-hour": "4 Stunden",
|
||||
"remember-me-day": "1 Tag",
|
||||
"remember-me-week": "1 Woche",
|
||||
"remember-me-long-time": "Eine lange Zeit",
|
||||
"error-missing-username": "Benutzername fehlt",
|
||||
"error-missing-password": "Passwort fehlt",
|
||||
"error-incorrect-username": "Benutzer nicht gefunden",
|
||||
"error-incorrect-password": "Falsches Passwort",
|
||||
"success-message": "Anmeldung läuft...",
|
||||
"logout-message": "Abgemeldet",
|
||||
"already-logged-in-title": "Bereits angemeldet",
|
||||
"already-logged-in-text": "Angemeldet als",
|
||||
"proceed-to-dashboard": "Zum Dashboard fortfahren",
|
||||
"log-out-button": "Abmelden",
|
||||
"proceed-guest-button": "Als Gast fortfahren",
|
||||
"guest-intro-1": "Diese Instanz hat Gastzugriffe aktiviert",
|
||||
"guest-intro-2": "Gäste haben lesenden Zugriff auf Dashboards, können also keine Veränderungen auf die Festplatte schreiben.",
|
||||
"error": "Error",
|
||||
"error-no-user-configured": "Authentifizierung ist nicht aktiviert, oder es sind keine Benutzer konfiguriert",
|
||||
"error-go-home-button": "Geh nach Hause",
|
||||
"logged-in-guest": "Als Gast eingeloggt, Umleitung...",
|
||||
"error-guest-access": "Gastzugriff nicht erlaubt"
|
||||
},
|
||||
"app-info": {
|
||||
"title": "App Info",
|
||||
"error-log": "Fehlerprotokoll",
|
||||
"no-errors": "Keine kürzlichen Fehler erkannt",
|
||||
"help-support": "Hilfe & Support",
|
||||
"help-support-description": "Um beim Betrieb oder der Konfiguration von Dashy Hilfe zu bekommen, siehe die",
|
||||
"help-support-discussions": "Diskussionen",
|
||||
"support-dashy": "Dashy unterstützen",
|
||||
"support-dashy-description": "Für Wege, sich zu beteiligen, besuchen Sie die",
|
||||
"support-dashy-link": "Contributions Seite",
|
||||
"report-bug": "Melde einen Fehler",
|
||||
"report-bug-description": "Wenn Sie glauben, einen Fehler gefunden zu haben, dann bitte",
|
||||
"report-bug-link": "öffne ein Issue",
|
||||
"more-info": "Mehr Informationen",
|
||||
"source": "Quellcode",
|
||||
"documentation": "Dokumentation",
|
||||
"privacy-and-security": "Datenschutz & Sicherheit",
|
||||
"privacy-and-security-l1": "Für eine Übersicht, wie Dashy mit Ihren Daten umgeht, siehe die",
|
||||
"privacy-and-security-privacy-policy": "Datenschutzerklärung",
|
||||
"privacy-and-security-advice": "Für Anleitung, um Ihr Dashboard zu sichern, konsultieren Sie die",
|
||||
"privacy-and-security-advice-link": "Management Dokumentation",
|
||||
"privacy-and-security-security-issue": "Wenn Sie glauben, eine mögliche Sicherheitslücke gefunden zu haben, melde sie wie beschrieben in unserer",
|
||||
"privacy-and-security-security-policy": "Security Policy",
|
||||
"license": "Lizenz",
|
||||
"license-under": "Lizensiert unter",
|
||||
"licence-third-party": "Für Lizenzen von Drittanbietermodulen, siehe",
|
||||
"licence-third-party-link": "Legal",
|
||||
"list-contributors": "Für eine vollstandige Liste aller Beteiligten und Dank, siehe",
|
||||
"list-contributors-link": "Credits",
|
||||
"version": "Version"
|
||||
},
|
||||
"config": {
|
||||
"main-tab": "Hauptmenü",
|
||||
"view-config-tab": "Konfiguration",
|
||||
"edit-config-tab": "Konfiguration bearbeiten",
|
||||
"custom-css-tab": "eigene CSS",
|
||||
"heading": "Konfigurationseinstellungen",
|
||||
"download-config-button": "Konfigurationsdownload",
|
||||
"edit-config-button": "Konfiguration bearbeiten",
|
||||
"edit-css-button": "CSS bearbeiten",
|
||||
"cloud-sync-button": "Cloud-Synchronisation aktivieren",
|
||||
"edit-cloud-sync-button": "Cloud-Synchronisation bearbeiten",
|
||||
"rebuild-app-button": "Anwendung neu kompilieren",
|
||||
"change-language-button": "App-Sprache ändern",
|
||||
"reset-settings-button": "lokale Einstellungen zurücksetzen",
|
||||
"disabled-note": "Einige Konfigurationsoptionen wurden vom Administrator deaktivert",
|
||||
"small-screen-note": "Sie benutzen einen sehr kleinen Bildschirm. Einige Seiten in diesem Menü sind dafür möglicherweise nicht ideal.",
|
||||
"app-info-button": "App Informationen",
|
||||
"backup-note": "Es wird empfohlen ein Backup der Konfiguration zu erstellen bevor Änderungen durchgeführt werden.",
|
||||
"reset-config-msg-l1": "Dadurch werden alle Benutzereinstellungen aus dem lokalen Speicher entfernt, dies hat jedoch keine Auswirkungen auf Ihre Datei 'conf.yml'.",
|
||||
"reset-config-msg-l2": "Sie sollten zuerst alle Änderungen, die Sie lokal vorgenommen haben, sichern, wenn Sie sie in Zukunft wiederverwenden möchten.",
|
||||
"reset-config-msg-l3": "Sind Sie sicher, dass Sie fortfahren möchten?",
|
||||
"data-cleared-msg": "Daten erfolgreich gelöscht",
|
||||
"actions-label": "Aktionen",
|
||||
"copy-config-label": "Konfiguration kopieren",
|
||||
"data-copied-msg": "Konfiguration wurde in die Zwischenablage kopiert",
|
||||
"reset-config-label": "Konfiguration zurücksetzen",
|
||||
"css-save-btn": "Änderungen speichern",
|
||||
"css-note-label": "Bemerkung",
|
||||
"css-note-l1": "Sie müssen die Seite aktualisieren, damit Ihre Änderungen wirksam werden.",
|
||||
"css-note-l2": "Stilüberschreibungen werden nur lokal gespeichert, daher wird empfohlen vorher eine Kopie Ihres CSS zu erstellen.",
|
||||
"css-note-l3": "Um alle benutzerdefinierten Stile zu entfernen löschen Sie den Inhalt und klicken Sie auf Änderungen speichern.",
|
||||
"custom-css": {
|
||||
"title": "Eigenes CSS",
|
||||
"base-theme": "Basisdesign"
|
||||
}
|
||||
},
|
||||
"alternate-views": {
|
||||
"alternate-view-heading": "Ansicht wechseln",
|
||||
"default": "Standard",
|
||||
"workspace": "Arbeitsplatz",
|
||||
"minimal": "Minimal"
|
||||
},
|
||||
"settings": {
|
||||
"theme-label": "Design",
|
||||
"layout-label": "Layout",
|
||||
"layout-auto": "Auto",
|
||||
"layout-horizontal": "Horizontal",
|
||||
"layout-vertical": "Vertikal",
|
||||
"item-size-label": "Itemgröße",
|
||||
"item-size-small": "klein",
|
||||
"item-size-medium": "mittel",
|
||||
"item-size-large": "groß",
|
||||
"config-launcher-label": "Konfiguration",
|
||||
"config-launcher-tooltip": "Konfiguration aktualisieren",
|
||||
"sign-out-tooltip": "Abmelden",
|
||||
"sign-in-tooltip": "Anmelden",
|
||||
"sign-in-welcome": "Hallo {username}!",
|
||||
"hide": "Verstecke",
|
||||
"open": "Öffne"
|
||||
},
|
||||
"updates": {
|
||||
"app-version-note": "Dashy Version",
|
||||
"up-to-date": "Aktuell",
|
||||
"out-of-date": "Update verfügbar",
|
||||
"unsupported-version-l1": "Sie verwenden eine nicht unterstützte Version von Dashy",
|
||||
"unsupported-version-l2": "Für die beste Erfahrung und aktuelle Sicherheitspatches aktualisieren Sie bitte auf"
|
||||
},
|
||||
"language-switcher": {
|
||||
"title": "Applikationssprache ändern",
|
||||
"dropdown-label": "Sprache auswählen",
|
||||
"save-button": "Speichern",
|
||||
"success-msg": "Sprache geändert auf"
|
||||
},
|
||||
"theme-maker": {
|
||||
"title": "Design Konfigurator",
|
||||
"export-button": "Benutzerdefinierte Variablen exportieren",
|
||||
"reset-button": "CSS zurücksetzen für",
|
||||
"show-all-button": "Alle Variablen anzeigen",
|
||||
"change-fonts-button": "Schriftart ändern",
|
||||
"save-button": "Speichern",
|
||||
"cancel-button": "Abbrechen",
|
||||
"saved-toast": "{theme} wurde erfolgreich aktualisiert",
|
||||
"copied-toast": "Designdaten für {theme} wurden in die Zwischenablage kopiert.",
|
||||
"reset-toast": "Benutzerdefinierte Farben für {theme} wurden entfernt"
|
||||
},
|
||||
"config-editor": {
|
||||
"save-location-label": "Speicherort",
|
||||
"location-local-label": "Lokal anwenden",
|
||||
"location-disk-label": "Änderungen in die Konfigurationsdatei schreiben",
|
||||
"save-button": "Änderungen speichern",
|
||||
"preview-button": "Vorschau der Änderungen",
|
||||
"valid-label": "Syntax ist gültig",
|
||||
"status-success-msg": "Aufgabe abgeschlossen",
|
||||
"status-fail-msg": "Aufgabe fehlgeschlagen",
|
||||
"success-msg-disk": "Konfigurationsdatei wurde erfolgreich auf die Festplatte geschrieben",
|
||||
"success-msg-local": "Lokale Änderungen wurden erfolgreich gespeichert",
|
||||
"success-note-l1": "Die Applikation sollte automatisch re-kompiliert werden.",
|
||||
"success-note-l2": "Dies kann bis zu einer Minute dauern.",
|
||||
"success-note-l3": "Sie müssen die Seite aktualisieren damit die Änderungen wirksam werden.",
|
||||
"error-msg-save-mode": "Bitte wählen Sie einen Speichermodus: Lokal oder Datei",
|
||||
"error-msg-cannot-save": "Beim Speichern der Konfiguration ist ein Fehler aufgetreten",
|
||||
"error-msg-bad-json": "Fehler in JSON-Daten, möglicherweise fehlerhafter Syntax",
|
||||
"warning-msg-validation": "Validierungswarnung",
|
||||
"not-admin-note": "Änderungen können nicht auf die Festplatte gespeichert werden, da Sie nicht als Administrator angemeldet sind"
|
||||
},
|
||||
"app-rebuild": {
|
||||
"title": "Applikation neu kompilieren",
|
||||
"rebuild-note-l1": "Damit die in die Datei conf.yml geschriebenen Änderungen wirksam werden ist ein Neukompilieren erforderlich.",
|
||||
"rebuild-note-l2": "Dies sollte automatisch passieren, aber falls nicht können Sie es hier manuell starten.",
|
||||
"rebuild-note-l3": "Dies ist bei lokal gespeicherten Änderungen nicht erforderlich.",
|
||||
"rebuild-button": "Starte Kompilierung",
|
||||
"rebuilding-status-1": "Baue...",
|
||||
"rebuilding-status-2": "Das kann ein paar Minuten dauern",
|
||||
"error-permission": "Sie sind nicht berechtigt diese Aktion auszulösen",
|
||||
"success-msg": "Kompilierung erfolgreich abgeschlossen",
|
||||
"fail-msg": "Kompilierung fehlgeschlagen",
|
||||
"reload-note": "Ein neu Laden der Seite ist erforderlich, damit die Änderungen wirksam werden.",
|
||||
"reload-button": "Seite neu laden"
|
||||
},
|
||||
"cloud-sync": {
|
||||
"title": "Cloud Backup & Wiederherstellung",
|
||||
"intro-l1": "Cloud-Backup und Wiederherstellung ist eine optionale Funktion mit der Sie Ihre Konfiguration in das Internet hochladen und dann auf einem anderen Gerät oder einer anderen Dashy-Instanz wiederherstellen können.",
|
||||
"intro-l2": "Alle Daten sind vollständig Ende-zu-Ende mit AES verschlüsselt. Ihr Passwort wird als Schlüssel verwendet.",
|
||||
"intro-l3": "Weitere Informationen finden Sie in der",
|
||||
"intro-docs": "Dokumentation",
|
||||
"backup-title-setup": "Backup erstellen",
|
||||
"backup-title-update": "Backup aktualisieren",
|
||||
"password-label-setup": "Passwort auswählen",
|
||||
"password-label-update": "Passwort eingeben",
|
||||
"backup-button-setup": "Backup",
|
||||
"backup-button-update": "Backup aktualisieren",
|
||||
"backup-id-label": "Ihre Backup ID",
|
||||
"backup-id-note": "Diese wird zusammen mit dem Passwort benötigt um Ihr Backup wiederherzustellen. Bewahren Sie sie zusammen mit Ihrem Passwort an einem sicheren Ort auf.",
|
||||
"restore-title": "Backup wiederherstellen",
|
||||
"restore-id-label": "ID wiederherstellen",
|
||||
"restore-password-label": "Passwort",
|
||||
"restore-button": "Wiederherstellen",
|
||||
"backup-missing-password": "Passwort fehlt",
|
||||
"backup-error-unknown": "Anfrage kann nicht verarbeitet werden",
|
||||
"backup-error-password": "Falsches Passwort. Bitte geben Sie Ihr aktuelles Passwort ein.",
|
||||
"backup-success-msg": "Erfolgreich abgeschlossen",
|
||||
"restore-success-msg": "Konfiguration erfolgreich wiederhergestellt"
|
||||
},
|
||||
"menu": {
|
||||
"open-section-title": "Öffne in",
|
||||
"sametab": "Aktueller Tab",
|
||||
"newtab": "Neuer Tab",
|
||||
"modal": "Popup Modal",
|
||||
"workspace": "Arbeitsflächenansicht",
|
||||
"options-section-title": "Optionen",
|
||||
"edit-item": "Bearbeiten",
|
||||
"move-item": "Kopieren oder Verschieben",
|
||||
"remove-item": "Entfernen"
|
||||
},
|
||||
"context-menus": {
|
||||
"item": {
|
||||
"open-section-title": "Öffnen in",
|
||||
"sametab": "Aktueller Tab",
|
||||
"newtab": "Neuer Tab",
|
||||
"modal": "Popup Modal",
|
||||
"workspace": "Arbeitsflächenansicht",
|
||||
"clipboard": "In Zwischenablage kopieren",
|
||||
"options-section-title": "Optionen",
|
||||
"edit-item": "Bearbeiten",
|
||||
"move-item": "Kopieren oder Verschieben",
|
||||
"remove-item": "Entfernen",
|
||||
"copied-toast": "URL wurde in die Zwischenablage kopiert"
|
||||
},
|
||||
"section": {
|
||||
"open-section": "Sektion öffnen",
|
||||
"edit-section": "Bearbeiten",
|
||||
"expand-collapse": "Aus- / Einklappen",
|
||||
"move-section": "Verschieben nach",
|
||||
"remove-section": "Entfernen"
|
||||
}
|
||||
},
|
||||
"footer": {
|
||||
"dev-by": "Entwickelt von",
|
||||
"licensed-under": "Lizensiert unter",
|
||||
"get-the": "Hole dir den",
|
||||
"source-code": "Quellcode"
|
||||
},
|
||||
"interactive-editor": {
|
||||
"menu": {
|
||||
"start-editing-tooltip": "Interaktiven Editor starten",
|
||||
"edit-site-data-subheading": "Seiteninformationen bearbeiten",
|
||||
"edit-page-info-btn": "Seiteninformationen bearbeiten",
|
||||
"edit-page-info-tooltip": "Applikationstitel, Beschreibung, Nav. links, Fußzeile, etc.",
|
||||
"edit-app-config-btn": "Applikationskonfiguration bearbeiten",
|
||||
"edit-app-config-tooltip": "Alle anderen Konfigurationsoptionen",
|
||||
"edit-pages-btn": "Seiten bearbeiten",
|
||||
"edit-pages-tooltip": "Hinzufügen oder entfernen von zusätzlichen Ansichten",
|
||||
"config-save-methods-subheading": "Speicheroptionen der Konfiguration",
|
||||
"save-locally-btn": "Lokal speichern",
|
||||
"save-locally-tooltip": "Konfiguration lokal im Browser speichern. Dies hat keinen Einfluss auf die Konfigurationsdatei, aber Änderungen werden nur in diesem Browser gespeichert",
|
||||
"save-disk-btn": "Auf Festplatte speichern",
|
||||
"save-disk-tooltip": "Konfigurationsdatei conf.yml speichern. Dies erzeugt ein Backup und überschreibt dann die existierende Konfigurationsdatei",
|
||||
"export-config-btn": "Konfiguration exportieren",
|
||||
"export-config-tooltip": "Konfiguration anzeigen und exportieren, entweder in eine Datei oder in die Zwischenablage",
|
||||
"cloud-backup-btn": "Cloud-Backup starten",
|
||||
"cloud-backup-tooltip": "Speichert ein verrschlüsseltes Backup in die Cloud",
|
||||
"edit-raw-config-btn": "Konfiguration als Rohdaten bearbeiten",
|
||||
"edit-raw-config-tooltip": "Anzeigen und bearbeiten der Konfiguration als Rohdaten im JSON-Editor",
|
||||
"cancel-changes-btn": "Verwerfen",
|
||||
"cancel-changes-tooltip": "Modifikationen zurücksetzen und Bearbeitungsmodus schließen. Dies hat keinen Einfluss auf die Konfigurationsdatei",
|
||||
"edit-mode-name": "Bearbeitung",
|
||||
"edit-mode-subtitle": "Sie sind im Bearbeitungsmodus",
|
||||
"edit-mode-description": "Das bedeutet, dass Änderungen an der Konfigurationsdatei vorgenommen werden können. Änderungen können vor dem Speichern betrachtet werden.",
|
||||
"save-stage-btn": "Speichern",
|
||||
"cancel-stage-btn": "Abbrechen",
|
||||
"save-locally-warning": "Wenn Sie fortfahren werden die Änderungen nur in Ihrem Browser gespeichert. Um die Konfiguration auf anderen Geräten zu nutzen sollten Sie sie exportieren. Möchten Sie fortfahren?"
|
||||
},
|
||||
"edit-item": {
|
||||
"missing-title-err": "Ein Titel is zwingend notwendig"
|
||||
},
|
||||
"edit-section": {
|
||||
"edit-section-title": "Sektion bearbeiten",
|
||||
"add-section-title": "Neue Sektion hinzufügen",
|
||||
"edit-tooltip": "Klicken zum Bearbeiten oder Rechtsklick für weitere Optionen",
|
||||
"remove-confirm": "Sind Sie sicher, dass sie diese Sektion entfernen möchten? Diese Aktion kann nicht rückgänging gemacht werden."
|
||||
},
|
||||
"edit-app-config": {
|
||||
"warning-msg-title": "Ab hier ist Vorsicht geboten",
|
||||
"warning-msg-l1": "Die folgenden Optionen sind für fortgeschrittene Konfigurationen.",
|
||||
"warning-msg-l2": "Sollten Felder unklar sein, konsultieren Sie die",
|
||||
"warning-msg-docs": "Dokumentation",
|
||||
"warning-msg-l3": "um unbeabsichtigte Folgen zu vermeiden."
|
||||
},
|
||||
"export": {
|
||||
"export-title": "Konfiguration exportieren",
|
||||
"copy-clipboard-btn": "In Zwischenablage kopieren",
|
||||
"copy-clipboard-tooltip": "Applikationskonfiguration als YAML in Zwischenablage kopieren",
|
||||
"download-file-btn": "Datei herunterladen",
|
||||
"download-file-tooltip": "Applikationskonfiguration auf Ihr Gerät herunterladen",
|
||||
"view-title": "Konfiguration anzeigen"
|
||||
}
|
||||
},
|
||||
"widgets": {
|
||||
"general": {
|
||||
"loading": "Lade...",
|
||||
"show-more": "Details",
|
||||
"cpu-details": "Details CPU",
|
||||
"mem-details": "Details Arbeitsspeicher",
|
||||
"show-less": "Weniger anzeigen",
|
||||
"open-link": "Weiterlesen"
|
||||
},
|
||||
"pi-hole": {
|
||||
"status-heading": "Status"
|
||||
},
|
||||
"stat-ping": {
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"net-data": {
|
||||
"cpu-chart-title": "CPU Historie",
|
||||
"mem-chart-title": "Speichernutzung",
|
||||
"mem-breakdown-title": "Speichernutzung",
|
||||
"load-chart-title": "Systemlast"
|
||||
},
|
||||
"glances": {
|
||||
"disk-space-free": "Frei",
|
||||
"disk-space-used": "Genutzt",
|
||||
"disk-mount-point": "Mountpunkt",
|
||||
"disk-file-system": "Dateisystem,",
|
||||
"disk-io-read": "Lesen",
|
||||
"disk-io-write": "Schreiben",
|
||||
"system-load-desc": "Prozesse in der Warteschlange, Durchschnitt aller Kerne"
|
||||
},
|
||||
"system-info": {
|
||||
"uptime": "Uptime"
|
||||
},
|
||||
"flight-data": {
|
||||
"arrivals": "Ankünfte",
|
||||
"departures": "Abflüge"
|
||||
},
|
||||
"tfl-status": {
|
||||
"good-service-all": "Guter Service auf allen Leitungen",
|
||||
"good-service-rest": "Guter Service auf allen anderen Leitungen"
|
||||
},
|
||||
"synology-download": {
|
||||
"download": "Download",
|
||||
"upload": "Upload",
|
||||
"downloaded": "Heruntergeladen",
|
||||
"uploaded": "Hochgeladen",
|
||||
"remaining": "Verbleibend",
|
||||
"up": "Hoch",
|
||||
"down": "Runter"
|
||||
},
|
||||
"gluetun-status": {
|
||||
"vpn-ip": "VPN IP",
|
||||
"country": "Land",
|
||||
"region": "Bundesland",
|
||||
"city": "Stadt",
|
||||
"post-code": "Postleitzahl",
|
||||
"location": "Standort",
|
||||
"timezone": "Zeitzone",
|
||||
"organization": "Organisation"
|
||||
},
|
||||
"nextcloud": {
|
||||
"active": "Aktiv",
|
||||
"and": "und",
|
||||
"applications": "Anwendungen",
|
||||
"available": "Verfügbar",
|
||||
"away": "Abwesend",
|
||||
"cache-full": "CACHE VOLL",
|
||||
"chat-room": "Chatraum",
|
||||
"delete-all": "Alle löschen",
|
||||
"delete-notification": "Benachrichtigung löschen",
|
||||
"disabled": "deaktivert",
|
||||
"disk-quota": "Disk Quota",
|
||||
"disk-space": "Disk Speicherplatz",
|
||||
"dnd": "Nicht stören",
|
||||
"email": "E-Mail",
|
||||
"enabled": "aktiviert",
|
||||
"federated-shares-ucfirst": "Föderierte Freigaben",
|
||||
"federated-shares": "föderierte Freigaben",
|
||||
"files": "Dateien",
|
||||
"free": "frei",
|
||||
"groups": "Gruppen",
|
||||
"hit-rate": "Trefferrate",
|
||||
"hits": "Treffer",
|
||||
"home": "Zuhause",
|
||||
"in": "in",
|
||||
"keys": "Schlüssel",
|
||||
"last-24-hours": "letzte 24 Stunden",
|
||||
"last-5-minutes": "in den letzten 5 Minuten",
|
||||
"last-hour": "in der letzten Stunde",
|
||||
"last-login": "Letzte Anmeldung",
|
||||
"last-restart": "Letzter Neustart",
|
||||
"load-averages": "Systemlast aller CPU-Kerne",
|
||||
"local-shares": "Lokale Freigaben",
|
||||
"local": "lokal",
|
||||
"max-keys": "Maximale Schlüssel",
|
||||
"memory-used": "Speichernutzung",
|
||||
"memory-utilisation": "Speichernutzung",
|
||||
"memory": "Speicher",
|
||||
"misses": "Fehlschläge",
|
||||
"no-notifications": "Keine Benachrichtigungen",
|
||||
"no-pending-updates": "keine ausstehenden Aktualisierungen",
|
||||
"nothing-to-show": "Momentan gibt es hier nichts zu zeigen",
|
||||
"of-which": "welche",
|
||||
"of": "von",
|
||||
"offline": "Offline",
|
||||
"online": "Online",
|
||||
"other": "andere",
|
||||
"overall": "Insgesamt",
|
||||
"private-link": "privater Link",
|
||||
"public-link": "öffentlicher Link",
|
||||
"quota-enabled": "Disk Quota ist {nicht}aktiviert für diesen Benutzer",
|
||||
"received": "empfangen",
|
||||
"scripts": "Skripte",
|
||||
"sent": "gesendet",
|
||||
"started": "gestartet",
|
||||
"storages-by-type": "Speicher nach Typ",
|
||||
"storages": "Speicher",
|
||||
"strings-use": "Strings benutzen",
|
||||
"tasks": "Aufgaben",
|
||||
"total-files": "Dateien gesamt",
|
||||
"total-users": "Benutzer gesamt",
|
||||
"total": "insgesamt",
|
||||
"until": "Bis",
|
||||
"updates-available-for": "Aktualisierungen sind verfügbar für",
|
||||
"updates-available": "Aktualisierungen verfügbar",
|
||||
"used": "benutzt",
|
||||
"user": "Benutzer",
|
||||
"using": "nutzt",
|
||||
"version": "Version",
|
||||
"wasted": "verschwendet"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,8 +63,8 @@
|
||||
"privacy-and-security": "Privacy & Security",
|
||||
"privacy-and-security-l1": "For a break-down of how your data is managed by Dashy, see the",
|
||||
"privacy-and-security-privacy-policy": "Privacy Policy",
|
||||
"app-info.privacy-and-security-advice": "For advise in securing your dashboard, you can reference the",
|
||||
"app-info.privacy-and-security-advice-link": "Management Docs",
|
||||
"privacy-and-security-advice": "For advise in securing your dashboard, you can reference the",
|
||||
"privacy-and-security-advice-link": "Management Docs",
|
||||
"privacy-and-security-security-issue": "If you've found a potential security issue, report it following our",
|
||||
"privacy-and-security-security-policy": "Security Policy",
|
||||
"license": "License",
|
||||
@@ -316,6 +316,8 @@
|
||||
"general": {
|
||||
"loading": "Loading...",
|
||||
"show-more": "Expand Details",
|
||||
"cpu-details": "CPU Details",
|
||||
"mem-details": "Memory Details",
|
||||
"show-less": "Show Less",
|
||||
"open-link": "Continue Reading"
|
||||
},
|
||||
|
||||
446
src/assets/locales/gl.json
Normal file
446
src/assets/locales/gl.json
Normal file
@@ -0,0 +1,446 @@
|
||||
{
|
||||
"home": {
|
||||
"no-results": "Sen resultados de busca",
|
||||
"no-data": "Sen datos configurados",
|
||||
"no-items-section": "Aínda non hai elementos para mostrar"
|
||||
},
|
||||
"search": {
|
||||
"search-label": "Buscar",
|
||||
"search-placeholder": "Comeza a escribir para filtrar",
|
||||
"clear-search-tooltip": "Limpar busca",
|
||||
"enter-to-search-web": "Preme Enter para buscar na web"
|
||||
},
|
||||
"splash-screen": {
|
||||
"loading": "Cargando"
|
||||
},
|
||||
"login": {
|
||||
"title": "Dashy",
|
||||
"guest-label": "Acceso de convidado",
|
||||
"username-label": "Nome de usuario",
|
||||
"password-label": "Contrasinal",
|
||||
"login-button": "Iniciar sesión",
|
||||
"remember-me-label": "Lembrar durante",
|
||||
"remember-me-never": "Nunca",
|
||||
"remember-me-hour": "4 horas",
|
||||
"remember-me-day": "1 día",
|
||||
"remember-me-week": "1 semana",
|
||||
"remember-me-long-time": "Moito tempo",
|
||||
"error-missing-username": "Falta o nome de usuario",
|
||||
"error-missing-password": "Falta o contrasinal",
|
||||
"error-incorrect-username": "Usuario non encontrado",
|
||||
"error-incorrect-password": "Contrasinal incorrecto",
|
||||
"success-message": "Iniciando sesión...",
|
||||
"logout-message": "Sesión pechada",
|
||||
"already-logged-in-title": "Sesión xa iniciada",
|
||||
"already-logged-in-text": "Estás identificado como",
|
||||
"proceed-to-dashboard": "Ir ao panel",
|
||||
"log-out-button": "Pechar sesión",
|
||||
"proceed-guest-button": "Continuar como convidado",
|
||||
"guest-intro-1": "Esta instancia ten o acceso de convidado habilitado.",
|
||||
"guest-intro-2": "Os convidados só teñen acceso de visualización aos paneis e non poden facer cambios no disco.",
|
||||
"error": "Erro",
|
||||
"error-no-user-configured": "A autenticación non está habilitada ou non se configuraron usuarios",
|
||||
"error-go-home-button": "Ir á páxina principal",
|
||||
"logged-in-guest": "Identificado como convidado, redirixindo...",
|
||||
"error-guest-access": "Acceso de convidado non permitido"
|
||||
},
|
||||
"app-info": {
|
||||
"title": "Información da aplicación",
|
||||
"error-log": "Rexistro de erros",
|
||||
"no-errors": "Non se detectaron erros recentes",
|
||||
"help-support": "Axuda e soporte",
|
||||
"help-support-description": "Para obter axuda sobre a execución ou configuración de Dashy, consulta as",
|
||||
"help-support-discussions": "Discusións",
|
||||
"support-dashy": "Apoia Dashy",
|
||||
"support-dashy-description": "Para saber como participar, consulta a páxina de",
|
||||
"support-dashy-link": "Contribucións",
|
||||
"report-bug": "Informar dun erro",
|
||||
"report-bug-description": "Se atopaches un erro, por favor",
|
||||
"report-bug-link": "abre unha incidencia",
|
||||
"more-info": "Máis información",
|
||||
"source": "Código fonte",
|
||||
"documentation": "Documentación",
|
||||
"privacy-and-security": "Privacidade e seguridade",
|
||||
"privacy-and-security-l1": "Para obter detalles sobre como os teus datos son xestionados por Dashy, consulta a",
|
||||
"privacy-and-security-privacy-policy": "Política de privacidade",
|
||||
"privacy-and-security-advice": "Para consellos sobre como asegurar o teu panel de control, consulta os",
|
||||
"privacy-and-security-advice-link": "Documentos de xestión",
|
||||
"privacy-and-security-security-issue": "Se atopaches un problema de seguridade potencial, informa seguindo a nosa",
|
||||
"privacy-and-security-security-policy": "Política de seguridade",
|
||||
"license": "Licenza",
|
||||
"license-under": "Licenciado baixo",
|
||||
"licence-third-party": "Para licenzas de módulos de terceiros, consulta",
|
||||
"licence-third-party-link": "Legal",
|
||||
"list-contributors": "Para a lista completa de contribuíntes e agradecementos, consulta",
|
||||
"list-contributors-link": "Créditos",
|
||||
"version": "Versión"
|
||||
},
|
||||
"config": {
|
||||
"main-tab": "Menú principal",
|
||||
"view-config-tab": "Ver configuración",
|
||||
"edit-config-tab": "Editar configuración",
|
||||
"custom-css-tab": "Estilos personalizados",
|
||||
"heading": "Opcións de configuración",
|
||||
"download-config-button": "Ver / Exportar configuración",
|
||||
"edit-config-button": "Editar configuración",
|
||||
"edit-css-button": "Editar CSS personalizado",
|
||||
"cloud-sync-button": "Habilitar sincronización en nube",
|
||||
"edit-cloud-sync-button": "Editar sincronización en nube",
|
||||
"rebuild-app-button": "Reconstruír aplicación",
|
||||
"change-language-button": "Cambiar idioma da aplicación",
|
||||
"reset-settings-button": "Restablecer configuración local",
|
||||
"disabled-note": "Algúns recursos de configuración foron desactivados polo administrador",
|
||||
"small-screen-note": "Estás a usar unha pantalla moi pequena e algúns elementos deste menú poden non ser óptimos",
|
||||
"app-info-button": "Información da aplicación",
|
||||
"backup-note": "Recoméndase facer unha copia de seguridade da túa configuración antes de facer cambios.",
|
||||
"reset-config-msg-l1": "Isto eliminará todas as configuracións de usuario do almacenamento local, pero non afectará ao ficheiro 'conf.yml'.",
|
||||
"reset-config-msg-l2": "Deberías facer unha copia de seguridade de calquera cambio que fixeches localmente, se queres usalos no futuro.",
|
||||
"reset-config-msg-l3": "Seguro que queres continuar?",
|
||||
"data-cleared-msg": "Datos eliminados correctamente",
|
||||
"actions-label": "Accións",
|
||||
"copy-config-label": "Copiar configuración",
|
||||
"data-copied-msg": "A configuración foi copiada ao portapapeis",
|
||||
"reset-config-label": "Restablecer configuración",
|
||||
"css-save-btn": "Gardar cambios",
|
||||
"css-note-label": "Nota",
|
||||
"css-note-l1": "Terás que actualizar a páxina para que se apliquen os cambios.",
|
||||
"css-note-l2": "As substitucións de estilos só se almacenan localmente, así que é recomendable facer unha copia do teu CSS.",
|
||||
"css-note-l3": "Para eliminar todos os estilos personalizados, borra o contido e preme Gardar cambios",
|
||||
"custom-css": {
|
||||
"title": "CSS personalizado",
|
||||
"base-theme": "Tema base"
|
||||
}
|
||||
},
|
||||
"alternate-views": {
|
||||
"alternate-view-heading": "Cambiar vista",
|
||||
"default": "Predeterminado",
|
||||
"workspace": "Área de traballo",
|
||||
"minimal": "Minimalista"
|
||||
},
|
||||
"settings": {
|
||||
"theme-label": "Tema",
|
||||
"layout-label": "Deseño",
|
||||
"layout-auto": "Automático",
|
||||
"layout-horizontal": "Horizontal",
|
||||
"layout-vertical": "Vertical",
|
||||
"item-size-label": "Tamaño do elemento",
|
||||
"item-size-small": "Pequeno",
|
||||
"item-size-medium": "Mediano",
|
||||
"item-size-large": "Grande",
|
||||
"config-launcher-label": "Configuración",
|
||||
"config-launcher-tooltip": "Actualizar configuración",
|
||||
"sign-out-tooltip": "Pechar sesión",
|
||||
"sign-in-tooltip": "Iniciar sesión",
|
||||
"sign-in-welcome": "Ola {username}!",
|
||||
"hide": "Ocultar",
|
||||
"open": "Abrir"
|
||||
},
|
||||
"updates": {
|
||||
"app-version-note": "Versión de Dashy",
|
||||
"up-to-date": "Actualizado",
|
||||
"out-of-date": "Actualización dispoñible",
|
||||
"unsupported-version-l1": "Estás a usar unha versión non soportada de Dashy",
|
||||
"unsupported-version-l2": "Para a mellor experiencia e actualizacións de seguridade recentes, por favor, actualiza a"
|
||||
},
|
||||
"language-switcher": {
|
||||
"title": "Cambiar idioma da aplicación",
|
||||
"dropdown-label": "Selecciona un idioma",
|
||||
"save-button": "Gardar",
|
||||
"success-msg": "Idioma actualizado a"
|
||||
},
|
||||
"theme-maker": {
|
||||
"title": "Configurador de tema",
|
||||
"export-button": "Exportar variables personalizadas",
|
||||
"reset-button": "Restablecer estilos para",
|
||||
"show-all-button": "Amosar todas as variables",
|
||||
"change-fonts-button": "Cambiar fontes",
|
||||
"save-button": "Gardar",
|
||||
"cancel-button": "Cancelar",
|
||||
"saved-toast": "{theme} actualizado correctamente",
|
||||
"copied-toast": "Datos do tema para {theme} copiados ao portapapeis",
|
||||
"reset-toast": "Eliminadas as cores personalizadas de {theme}"
|
||||
},
|
||||
"config-editor": {
|
||||
"save-location-label": "Localización de gardado",
|
||||
"location-local-label": "Aplicar localmente",
|
||||
"location-disk-label": "Gardar cambios no ficheiro de configuración",
|
||||
"save-button": "Gardar cambios",
|
||||
"preview-button": "Previsualizar cambios",
|
||||
"valid-label": "A configuración é válida",
|
||||
"status-success-msg": "Tarefa completada",
|
||||
"status-fail-msg": "Fallou a tarefa",
|
||||
"success-msg-disk": "Ficheiro de configuración gardado no disco correctamente",
|
||||
"success-msg-local": "Cambios locais gardados correctamente",
|
||||
"success-note-l1": "A aplicación debe reconstruírse automaticamente.",
|
||||
"success-note-l2": "Isto pode levar ata un minuto.",
|
||||
"success-note-l3": "Terás que actualizar a páxina para que se apliquen os cambios.",
|
||||
"error-msg-save-mode": "Selecciona un modo de gardado: Local ou Ficheiro",
|
||||
"error-msg-cannot-save": "Produciuse un erro ao gardar a configuración",
|
||||
"error-msg-bad-json": "Erro en JSON, posiblemente malformado",
|
||||
"warning-msg-validation": "Aviso de validación",
|
||||
"not-admin-note": "Non podes gardar cambios no disco porque non iniciaches sesión como administrador"
|
||||
},
|
||||
"app-rebuild": {
|
||||
"title": "Reconstruír aplicación",
|
||||
"rebuild-note-l1": "É necesaria unha reconstrución para que se apliquen os cambios escritos no ficheiro 'conf.yml'.",
|
||||
"rebuild-note-l2": "Isto debería ocorrer automaticamente, pero se non ocorre, podes activar manualmente aquí.",
|
||||
"rebuild-note-l3": "Esto non é necesario para as modificacións almacenadas localmente.",
|
||||
"rebuild-button": "Iniciar construción",
|
||||
"rebuilding-status-1": "Construíndo...",
|
||||
"rebuilding-status-2": "Isto pode levar uns minutos",
|
||||
"error-permission": "Non tes permisos para iniciar esta acción",
|
||||
"success-msg": "Construción completada con éxito",
|
||||
"fail-msg": "A operación de construción fallou",
|
||||
"reload-note": "Agora é necesario recargar a páxina para que se apliquen os cambios",
|
||||
"reload-button": "Recargar páxina"
|
||||
},
|
||||
"cloud-sync": {
|
||||
"title": "Copia de seguridade e restauración en nube",
|
||||
"intro-l1": "A copia de seguridade e restauración en nube é unha característica opcional que che permite cargar a túa configuración á internet e restaurala en calquera outro dispositivo ou instancia de Dashy.",
|
||||
"intro-l2": "Todos os datos están totalmente cifrados de extremo a extremo con AES, usando o teu contrasinal como clave.",
|
||||
"intro-l3": "Para obter máis información, consulta a",
|
||||
"intro-docs": "documentación",
|
||||
"backup-title-setup": "Facer unha copia de seguridade",
|
||||
"backup-title-update": "Actualizar copia de seguridade",
|
||||
"password-label-setup": "Escolle un contrasinal",
|
||||
"password-label-update": "Introduce o teu contrasinal",
|
||||
"backup-button-setup": "Copia de seguridade",
|
||||
"backup-button-update": "Actualizar copia de seguridade",
|
||||
"backup-id-label": "ID da túa copia de seguridade",
|
||||
"backup-id-note": "Esto úsase para restaurar desde copias de seguridade máis tarde. Así que guárdao, xunto co teu contrasinal, nun lugar seguro.",
|
||||
"restore-title": "Restaurar unha copia de seguridade",
|
||||
"restore-id-label": "ID de restauración",
|
||||
"restore-password-label": "Contrasinal",
|
||||
"restore-button": "Restaurar",
|
||||
"backup-missing-password": "Falta o contrasinal",
|
||||
"backup-error-unknown": "Non se puido procesar a solicitude",
|
||||
"backup-error-password": "Contrasinal incorrecto. Introduce o teu contrasinal actual.",
|
||||
"backup-success-msg": "Completado con éxito",
|
||||
"restore-success-msg": "Configuración restaurada con éxito"
|
||||
},
|
||||
"menu": {
|
||||
"open-section-title": "Abrir en",
|
||||
"sametab": "Lapela actual",
|
||||
"newtab": "Nova lapela",
|
||||
"modal": "Diálogo emerxente",
|
||||
"workspace": "Vista do espazo de traballo",
|
||||
"options-section-title": "Opcións",
|
||||
"edit-item": "Editar",
|
||||
"move-item": "Copiar ou mover",
|
||||
"remove-item": "Eliminar"
|
||||
},
|
||||
"context-menus": {
|
||||
"item": {
|
||||
"open-section-title": "Abrir en",
|
||||
"sametab": "Lapela actual",
|
||||
"newtab": "Nova lapela",
|
||||
"modal": "Diálogo emerxente",
|
||||
"workspace": "Vista do espazo de traballo",
|
||||
"clipboard": "Copiar ao portapapeis",
|
||||
"options-section-title": "Opcións",
|
||||
"edit-item": "Editar",
|
||||
"move-item": "Copiar ou mover",
|
||||
"remove-item": "Eliminar",
|
||||
"copied-toast": "A URL foi copiada ao portapapeis"
|
||||
},
|
||||
"section": {
|
||||
"open-section": "Abrir sección",
|
||||
"edit-section": "Editar",
|
||||
"expand-collapse": "Expandir / Colapsar",
|
||||
"move-section": "Mover a",
|
||||
"remove-section": "Eliminar"
|
||||
}
|
||||
},
|
||||
"footer": {
|
||||
"dev-by": "Desenvolto por",
|
||||
"licensed-under": "Licenciado baixo",
|
||||
"get-the": "Obter o",
|
||||
"source-code": "Código fonte"
|
||||
},
|
||||
"interactive-editor": {
|
||||
"menu": {
|
||||
"start-editing-tooltip": "Entrar no Editor Interactivo",
|
||||
"edit-site-data-subheading": "Editar datos do sitio",
|
||||
"edit-page-info-btn": "Editar información da páxina",
|
||||
"edit-page-info-tooltip": "Título da aplicación, descrición, ligazóns de navegación, texto do pé de páxina, etc.",
|
||||
"edit-app-config-btn": "Editar configuración da aplicación",
|
||||
"edit-app-config-tooltip": "Todas as outras opcións de configuración da aplicación",
|
||||
"edit-pages-btn": "Editar páxinas",
|
||||
"edit-pages-tooltip": "Engadir ou eliminar vistas adicionais",
|
||||
"config-save-methods-subheading": "Opcións de gardado de configuración",
|
||||
"save-locally-btn": "Gardar localmente",
|
||||
"save-locally-tooltip": "Gardar a configuración localmente, no almacenamento do navegador. Iso non afectará ao ficheiro de configuración, pero os cambios só se gardarán neste dispositivo",
|
||||
"save-disk-btn": "Gardar no disco",
|
||||
"save-disk-tooltip": "Gardar a configuración no ficheiro conf.yml no disco. Isto fará unha copia de seguridade e despois sobrescribirá a túa configuración existente",
|
||||
"export-config-btn": "Exportar configuración",
|
||||
"export-config-tooltip": "Ver e exportar a nova configuración, ben a un ficheiro ou ao portapapeis",
|
||||
"cloud-backup-btn": "Copia de seguridade na nube",
|
||||
"cloud-backup-tooltip": "Gardar unha copia de seguridade cifrada da configuración na nube",
|
||||
"edit-raw-config-btn": "Editar configuración en bruto",
|
||||
"edit-raw-config-tooltip": "Ver e modificar a configuración en bruto a través do editor JSON",
|
||||
"cancel-changes-btn": "Cancelar edición",
|
||||
"cancel-changes-tooltip": "Restablecer as modificacións actuais e saír do modo de edición. Iso non afectará á túa configuración gardada",
|
||||
"edit-mode-name": "Modo de edición",
|
||||
"edit-mode-subtitle": "Estás no modo de edición",
|
||||
"edit-mode-description": "Isto significa que podes facer modificacións á túa configuración e prever os resultados, pero ata que non a gardes, ningunha das túas modificacións será preservada.",
|
||||
"save-stage-btn": "Gardar",
|
||||
"cancel-stage-btn": "Cancelar",
|
||||
"save-locally-warning": "Se continúas, os cambios só se gardarán no teu navegador. Deberías exportar unha copia da túa configuración para usar noutros equipos. Queres continuar?"
|
||||
},
|
||||
"edit-item": {
|
||||
"missing-title-err": "É necesario un título para o elemento"
|
||||
},
|
||||
"edit-section": {
|
||||
"edit-section-title": "Editar sección",
|
||||
"add-section-title": "Engadir nova sección",
|
||||
"edit-tooltip": "Fai clic para editar ou fai clic co botón dereito para obter máis opcións",
|
||||
"remove-confirm": "Estás seguro de querer eliminar esta sección? Esta acción pódese desfacer máis tarde."
|
||||
},
|
||||
"edit-app-config": {
|
||||
"warning-msg-title": "Procede con cautela",
|
||||
"warning-msg-l1": "As seguintes opcións son para a configuración avanzada da aplicación.",
|
||||
"warning-msg-l2": "Se non estás seguro de ningún dos campos, consulta a",
|
||||
"warning-msg-docs": "documentación",
|
||||
"warning-msg-l3": "para evitar consecuencias non desexadas."
|
||||
},
|
||||
"export": {
|
||||
"export-title": "Exportar configuración",
|
||||
"copy-clipboard-btn": "Copiar ao portapapeis",
|
||||
"copy-clipboard-tooltip": "Copiar toda a configuración da aplicación ao portapapeis do sistema, en formato YAML",
|
||||
"download-file-btn": "Descargar como ficheiro",
|
||||
"download-file-tooltip": "Descargar toda a configuración da aplicación no teu dispositivo, nun ficheiro YAML",
|
||||
"view-title": "Ver configuración"
|
||||
}
|
||||
},
|
||||
"widgets": {
|
||||
"general": {
|
||||
"loading": "Cargando...",
|
||||
"show-more": "Expandir detalles",
|
||||
"show-less": "Amosar menos",
|
||||
"open-link": "Continuar lendo"
|
||||
},
|
||||
"pi-hole": {
|
||||
"status-heading": "Estado"
|
||||
},
|
||||
"stat-ping": {
|
||||
"up": "En liña",
|
||||
"down": "Fóra de liña"
|
||||
},
|
||||
"net-data": {
|
||||
"cpu-chart-title": "Historial da CPU",
|
||||
"mem-chart-title": "Uso da memoria",
|
||||
"mem-breakdown-title": "Desglose da memoria",
|
||||
"load-chart-title": "Carga do sistema"
|
||||
},
|
||||
"glances": {
|
||||
"disk-space-free": "Libre",
|
||||
"disk-space-used": "Usado",
|
||||
"disk-mount-point": "Punto de montaxe",
|
||||
"disk-file-system": "Sistema de ficheiros",
|
||||
"disk-io-read": "Ler",
|
||||
"disk-io-write": "Escribir",
|
||||
"system-load-desc": "Número de procesos á espera na cola de execución, promediado entre todos os núcleos"
|
||||
},
|
||||
"system-info": {
|
||||
"uptime": "Tempo de actividade"
|
||||
},
|
||||
"flight-data": {
|
||||
"arrivals": "Chegadas",
|
||||
"departures": "Saídas"
|
||||
},
|
||||
"tfl-status": {
|
||||
"good-service-all": "Bos servizos en todas as liñas",
|
||||
"good-service-rest": "Bos servizos en todas as outras liñas"
|
||||
},
|
||||
"synology-download": {
|
||||
"download": "Descargar",
|
||||
"upload": "Subir",
|
||||
"downloaded": "Descargado",
|
||||
"uploaded": "Subido",
|
||||
"remaining": "Restante",
|
||||
"up": "Arriba",
|
||||
"down": "Abaixo"
|
||||
},
|
||||
"gluetun-status": {
|
||||
"vpn-ip": "IP da VPN",
|
||||
"country": "País",
|
||||
"region": "Rexión",
|
||||
"city": "Cidade",
|
||||
"post-code": "Código postal",
|
||||
"location": "Localización",
|
||||
"timezone": "Fuso horario",
|
||||
"organization": "Organización"
|
||||
},
|
||||
"nextcloud": {
|
||||
"active": "activo",
|
||||
"and": "e",
|
||||
"applications": "aplicacións",
|
||||
"available": "dispoñible",
|
||||
"away": "Ausente",
|
||||
"cache-full": "CACHE CHEO",
|
||||
"chat-room": "sala de chat",
|
||||
"delete-all": "Eliminar todo",
|
||||
"delete-notification": "Eliminar notificación",
|
||||
"disabled": "desactivado",
|
||||
"disk-quota": "Cota de disco",
|
||||
"disk-space": "Espazo en disco",
|
||||
"dnd": "Non molestar",
|
||||
"email": "correo electrónico",
|
||||
"enabled": "activado",
|
||||
"federated-shares-ucfirst": "Comparticións federadas",
|
||||
"federated-shares": "comparticións federadas",
|
||||
"files": "ficheiro{plural}",
|
||||
"free": "libre",
|
||||
"groups": "grupos",
|
||||
"hit-rate": "taxa de acerto",
|
||||
"hits": "acertos",
|
||||
"home": "inicio",
|
||||
"in": "en",
|
||||
"keys": "chaves",
|
||||
"last-24-hours": "últimas 24 horas",
|
||||
"last-5-minutes": "nos últimas 5 minutos",
|
||||
"last-hour": "na última hora",
|
||||
"last-login": "Último acceso",
|
||||
"last-restart": "Último reinicio",
|
||||
"load-averages": "Cargas medias en todos os núcleos da CPU",
|
||||
"local-shares": "Comparticións locais",
|
||||
"local": "local",
|
||||
"max-keys": "máximas chaves",
|
||||
"memory-used": "memoria usada",
|
||||
"memory-utilisation": "utilización de memoria",
|
||||
"memory": "memoria",
|
||||
"misses": "faltas",
|
||||
"no-notifications": "Sen notificacións",
|
||||
"no-pending-updates": "sen actualizacións pendentes",
|
||||
"nothing-to-show": "Nada que amosar neste momento",
|
||||
"of-which": "dos cales",
|
||||
"of": "de",
|
||||
"offline": "Fóra de liña",
|
||||
"online": "En liña",
|
||||
"other": "outro",
|
||||
"overall": "Resumo",
|
||||
"private-link": "ligazón privada",
|
||||
"public-link": "ligazón pública",
|
||||
"quota-enabled": "A cota de disco está {not}activada para este usuario",
|
||||
"received": "recibido",
|
||||
"scripts": "scripts",
|
||||
"sent": "enviado",
|
||||
"started": "Iniciado",
|
||||
"storages-by-type": "Almacenamentos por tipo",
|
||||
"storages": "almacenamento{plural}",
|
||||
"strings-use": "cadenas usadas",
|
||||
"tasks": "Tarefas",
|
||||
"total-files": "total de ficheiros",
|
||||
"total-users": "total de usuarios",
|
||||
"total": "total",
|
||||
"until": "Ata",
|
||||
"updates-available-for": "Hai actualizacións dispoñibles para",
|
||||
"updates-available": "actualización{plural} dispoñible",
|
||||
"used": "usado",
|
||||
"user": "usuario",
|
||||
"using": "usando",
|
||||
"version": "versión",
|
||||
"wasted": "desperdiciado"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,172 +1,323 @@
|
||||
{
|
||||
"home": {
|
||||
"no-results": "検索結果がありません",
|
||||
"no-data": "データが構成されていません"
|
||||
"no-data": "データが構成されていません",
|
||||
"no-items-section": "表示する項目はまだありません"
|
||||
},
|
||||
"search": {
|
||||
"search-label": "検索",
|
||||
"search-placeholder": "フィルタリングするために入力を開始します",
|
||||
"clear-search-tooltip": "クリア検索",
|
||||
"enter-to-search-web": "Enterキーを押して、Webを検索します"
|
||||
"search-placeholder": "入力して絞り込み",
|
||||
"clear-search-tooltip": "検索をクリア",
|
||||
"enter-to-search-web": "Enterキーを押すとWebで検索します"
|
||||
},
|
||||
"splash-screen": {
|
||||
"loading": "読み込み中"
|
||||
},
|
||||
"login": {
|
||||
"title": "ダシー",
|
||||
"title": "Dashy",
|
||||
"guest-label": "ゲストアクセス",
|
||||
"username-label": "ユーザー名",
|
||||
"password-label": "パスワード",
|
||||
"login-button": "ログイン",
|
||||
"remember-me-label": "私を覚えておいてください",
|
||||
"remember-me-never": "一度もない",
|
||||
"remember-me-label": "ログイン状態を記憶する",
|
||||
"remember-me-never": "記憶しない",
|
||||
"remember-me-hour": "4時間",
|
||||
"remember-me-day": "1日",
|
||||
"remember-me-week": "1週間",
|
||||
"error-missing-username": "ユーザー名がありません",
|
||||
"error-missing-password": "パスワードがありません",
|
||||
"remember-me-long-time": "ずっと",
|
||||
"error-missing-username": "ユーザー名が入力されていません",
|
||||
"error-missing-password": "パスワードが入力されていません",
|
||||
"error-incorrect-username": "ユーザーが見つかりません",
|
||||
"error-incorrect-password": "パスワードが正しくありません",
|
||||
"success-message": "ログインしています...",
|
||||
"logout-message": "ログアウトしました",
|
||||
"already-logged-in-title": "ログイン済み",
|
||||
"already-logged-in-text": "としてログインしています",
|
||||
"already-logged-in-text": "ログインしています: ",
|
||||
"proceed-to-dashboard": "ダッシュボードに進みます",
|
||||
"log-out-button": "ログアウト",
|
||||
"proceed-guest-button": "ゲストとして続行"
|
||||
"proceed-guest-button": "ゲストとして続行",
|
||||
"guest-intro-1": "このインスタンスではゲストアクセスが有効になっています。",
|
||||
"guest-intro-2": "ゲストは読み込み専用でダッシュボードにアクセスでき、変更をディスクに書き込むことはできません。",
|
||||
"error": "エラー",
|
||||
"error-no-user-configured": "認証が有効になっていないか、ユーザーが登録されていません",
|
||||
"error-go-home-button": "ホームに戻る",
|
||||
"logged-in-guest": "ゲストとしてログインしました。リダイレクトしています...",
|
||||
"error-guest-access": "ゲストによるアクセスは許可されていません"
|
||||
},
|
||||
"app-info": {
|
||||
"title": "アプリ情報",
|
||||
"error-log": "エラーログ",
|
||||
"no-errors": "エラーはありません",
|
||||
"help-support": "ヘルプとサポート",
|
||||
"help-support-description": "Dashyの実行や設定についてサポートが必要な場合は、こちらをご覧ください: ",
|
||||
"help-support-discussions": "Discussions",
|
||||
"support-dashy": "Dashyを支援",
|
||||
"support-dashy-description": "参加する方法を知るには、こちらをご覧ください: ",
|
||||
"support-dashy-link": "コントリビューションページ",
|
||||
"report-bug": "バグの報告",
|
||||
"report-bug-description": "バグを発見したと思われる場合は、Issueを立ててください: ",
|
||||
"report-bug-link": "Issueを立てる",
|
||||
"more-info": "その他の情報",
|
||||
"source": "ソース",
|
||||
"documentation": "ドキュメント",
|
||||
"privacy-and-security": "プライバシーとセキュリティー",
|
||||
"privacy-and-security-l1": "Daisyがどのようにあなたのデータを管理するかについての概要は、こちらをご覧ください: ",
|
||||
"privacy-and-security-privacy-policy": "プライバシーポリシー",
|
||||
"privacy-and-security-advice": "ダッシュボードを安全に保つためのアドバイスは、こちらを参照してください: ",
|
||||
"privacy-and-security-advice-link": "管理ドキュメント",
|
||||
"privacy-and-security-security-issue": "セキュリティー問題の可能性のある事象を見つけた場合、セキュリティーポリシーに従ってください: ",
|
||||
"privacy-and-security-security-policy": "セキュリティーポリシー",
|
||||
"license": "ライセンス",
|
||||
"license-under": "Licensed under",
|
||||
"licence-third-party": "サードパーティーモジュールのライセンスは、こちらをご覧ください: ",
|
||||
"licence-third-party-link": "リーガル",
|
||||
"list-contributors": "すべてのコントリビューターのリストは、こちらをご覧ください: ",
|
||||
"list-contributors-link": "クレジット",
|
||||
"version": "バージョン"
|
||||
},
|
||||
"config": {
|
||||
"main-tab": "メインメニュー",
|
||||
"view-config-tab": "構成の表示",
|
||||
"edit-config-tab": "構成の編集",
|
||||
"view-config-tab": "設定の表示",
|
||||
"edit-config-tab": "設定の編集",
|
||||
"custom-css-tab": "カスタムスタイル",
|
||||
"heading": "構成オプション",
|
||||
"download-config-button": "構成のダウンロード",
|
||||
"edit-config-button": "構成の編集",
|
||||
"edit-css-button": "カスタムCSSを編集する",
|
||||
"cloud-sync-button": "クラウド同期を有効にする",
|
||||
"edit-cloud-sync-button": "CloudSyncを編集する",
|
||||
"rebuild-app-button": "アプリケーションを再構築する",
|
||||
"change-language-button": "アプリの言語を変更する",
|
||||
"reset-settings-button": "ローカル設定をリセット",
|
||||
"heading": "設定",
|
||||
"download-config-button": "設定の確認・ダウンロード",
|
||||
"edit-config-button": "設定の編集",
|
||||
"edit-css-button": "カスタムCSSの編集",
|
||||
"cloud-sync-button": "クラウド同期の有効化",
|
||||
"edit-cloud-sync-button": "クラウド同期の編集",
|
||||
"rebuild-app-button": "アプリケーションの再ビルド",
|
||||
"change-language-button": "アプリ言語の変更",
|
||||
"reset-settings-button": "ローカルの設定をリセット",
|
||||
"disabled-note": "いくつかの設定は管理者によって無効化されています",
|
||||
"small-screen-note": "小さい画面を使っているため、このメニューの中のいくつかの画面が最適化されていないことがあります",
|
||||
"app-info-button": "アプリ情報",
|
||||
"backup-note": "変更を加える前に、構成のバックアップを作成することをお勧めします。",
|
||||
"reset-config-msg-l1": "これにより、ローカルストレージからすべてのユーザー設定が削除されますが、「conf.yml」ファイルには影響しません。",
|
||||
"reset-config-msg-l2": "将来使用する場合は、最初にローカルで行った変更をバックアップする必要があります。",
|
||||
"reset-config-msg-l3": "続行してもよろしいですか?",
|
||||
"reset-config-msg-l1": "これにより、ローカルストレージからすべてのユーザー設定が削除されます。「conf.yml」ファイルには影響しません。",
|
||||
"reset-config-msg-l2": "後でローカルで行った変更を使用したい場合は、先にバックアップしてください。",
|
||||
"reset-config-msg-l3": "続行しますか?",
|
||||
"data-cleared-msg": "データは正常にクリアされました",
|
||||
"actions-label": "行動",
|
||||
"copy-config-label": "構成のコピー",
|
||||
"data-copied-msg": "構成がクリップボードにコピーされました",
|
||||
"reset-config-label": "構成のリセット",
|
||||
"actions-label": "アクション",
|
||||
"copy-config-label": "設定のコピー",
|
||||
"data-copied-msg": "設定がクリップボードにコピーされました",
|
||||
"reset-config-label": "設定のリセット",
|
||||
"css-save-btn": "変更内容を保存",
|
||||
"css-note-label": "ノート",
|
||||
"css-note-l1": "変更を有効にするには、ページを更新する必要があります。",
|
||||
"css-note-l2": "スタイルのオーバーライドはローカルにのみ保存されるため、CSSのコピーを作成することをお勧めします。",
|
||||
"css-note-l3": "すべてのカスタムスタイルを削除するには、コンテンツを削除して[変更を保存]をクリックします"
|
||||
"css-note-label": "注意",
|
||||
"css-note-l1": "変更を適用するには、再読み込みが必要です。",
|
||||
"css-note-l2": "スタイルはローカルにのみ保存されるため、CSSをコピーしておくことをおすすめします。",
|
||||
"css-note-l3": "すべてのカスタムスタイルを消去するには、中身を削除してから「変更内容を保存」を押してください",
|
||||
"custom-css": {
|
||||
"title": "カスタムCSS",
|
||||
"base-theme": "元テーマ"
|
||||
}
|
||||
},
|
||||
"alternate-views": {
|
||||
"alternate-view-heading": "ビューの切り替え",
|
||||
"default": "ディフォルト",
|
||||
"alternate-view-heading": "表示の切り替え",
|
||||
"default": "デフォルト",
|
||||
"workspace": "ワークスペース",
|
||||
"minimal": "最小限"
|
||||
"minimal": "ミニマル"
|
||||
},
|
||||
"settings": {
|
||||
"theme-label": "テーマ",
|
||||
"layout-label": "レイアウト",
|
||||
"layout-auto": "自動",
|
||||
"layout-horizontal": "水平",
|
||||
"layout-vertical": "垂直",
|
||||
"item-size-label": "アイテムサイズ",
|
||||
"item-size-small": "小さな",
|
||||
"item-size-medium": "中くらい",
|
||||
"item-size-large": "大きい",
|
||||
"config-launcher-label": "構成",
|
||||
"config-launcher-tooltip": "構成の更新",
|
||||
"layout-horizontal": "横",
|
||||
"layout-vertical": "縦",
|
||||
"item-size-label": "Item Size",
|
||||
"item-size-small": "小",
|
||||
"item-size-medium": "中",
|
||||
"item-size-large": "大",
|
||||
"config-launcher-label": "設定",
|
||||
"config-launcher-tooltip": "設定の更新",
|
||||
"sign-out-tooltip": "サインアウト",
|
||||
"sign-in-tooltip": "ログインする",
|
||||
"sign-in-welcome": "こんにちは{ユーザー名}!"
|
||||
"sign-in-tooltip": "ログイン",
|
||||
"sign-in-welcome": "{username}さん、こんにちは!",
|
||||
"hide": "閉じる",
|
||||
"open": "開く"
|
||||
},
|
||||
"updates": {
|
||||
"app-version-note": "Dashyバージョン",
|
||||
"up-to-date": "最新の",
|
||||
"out-of-date": "利用可能なアップデート",
|
||||
"app-version-note": "Dashyのバージョン",
|
||||
"up-to-date": "最新",
|
||||
"out-of-date": "アップデートがあります",
|
||||
"unsupported-version-l1": "サポートされていないバージョンのDashyを使用しています",
|
||||
"unsupported-version-l2": "最高のエクスペリエンスと最近のセキュリティパッチについては、に更新してください。"
|
||||
"unsupported-version-l2": "最高のエクスペリエンスと新しいセキュリティパッチのために、更新してください:"
|
||||
},
|
||||
"language-switcher": {
|
||||
"title": "アプリケーション言語の変更",
|
||||
"dropdown-label": "言語を選択してください",
|
||||
"save-button": "保存する",
|
||||
"save-button": "保存",
|
||||
"success-msg": "言語が更新されました"
|
||||
},
|
||||
"theme-maker": {
|
||||
"title": "テーマコンフィギュレーター",
|
||||
"title": "テーマの編集",
|
||||
"export-button": "カスタム変数のエクスポート",
|
||||
"reset-button": "のスタイルをリセット",
|
||||
"reset-button": "以下のスタイルをリセット: ",
|
||||
"show-all-button": "すべての変数を表示",
|
||||
"change-fonts-button": "フォントを変更",
|
||||
"save-button": "保存する",
|
||||
"cancel-button": "キャンセル",
|
||||
"saved-toast": "{テーマ}正常に更新されました",
|
||||
"copied-toast": "クリップボードにコピーされた{theme}のテーマデータ",
|
||||
"saved-toast": "{theme}が正常に更新されました",
|
||||
"copied-toast": "{theme}のテーマデータがクリップボードにコピーされました",
|
||||
"reset-toast": "{theme}のカスタムカラーが削除されました"
|
||||
},
|
||||
"config-editor": {
|
||||
"save-location-label": "位置を保存",
|
||||
"save-location-label": "保存する場所",
|
||||
"location-local-label": "ローカルで適用",
|
||||
"location-disk-label": "構成ファイルへの変更の書き込み",
|
||||
"location-disk-label": "設定ファイルに変更を書き込む",
|
||||
"save-button": "変更内容を保存",
|
||||
"valid-label": "構成は有効です",
|
||||
"status-success-msg": "タスク完了",
|
||||
"preview-button": "変更内容をプレビュー",
|
||||
"valid-label": "設定は有効です",
|
||||
"status-success-msg": "タスクが完了しました",
|
||||
"status-fail-msg": "タスクが失敗しました",
|
||||
"success-msg-disk": "構成ファイルがディスクに正常に書き込まれました",
|
||||
"success-msg-disk": "設定ファイルがディスクに正常に書き込まれました",
|
||||
"success-msg-local": "ローカルの変更が正常に保存されました",
|
||||
"success-note-l1": "アプリは自動的に再構築されます。",
|
||||
"success-note-l2": "これには最大1分かかる場合があります。",
|
||||
"success-note-l3": "変更を有効にするには、ページを更新する必要があります。",
|
||||
"error-msg-save-mode": "保存モードを選択してください:ローカルまたはファイル",
|
||||
"success-note-l3": "変更を適用にするには、ページを更新する必要があります。",
|
||||
"error-msg-save-mode": "保存モードを選択してください (ローカルまたはファイル)",
|
||||
"error-msg-cannot-save": "設定の保存中にエラーが発生しました",
|
||||
"error-msg-bad-json": "JSONのエラー、おそらく不正な形式",
|
||||
"warning-msg-validation": "検証の警告",
|
||||
"error-msg-bad-json": "JSONに間違いがあります。形式が間違っているかもしれません",
|
||||
"warning-msg-validation": "バリデーション警告",
|
||||
"not-admin-note": "管理者としてログインしていないため、変更をディスクに書き込むことはできません"
|
||||
},
|
||||
"app-rebuild": {
|
||||
"title": "アプリケーションを再構築する",
|
||||
"rebuild-note-l1": "conf.ymlファイルに書き込まれた変更を有効にするには、再構築が必要です。",
|
||||
"rebuild-note-l2": "これは自動的に発生するはずですが、発生していない場合は、ここで手動でトリガーできます。",
|
||||
"rebuild-note-l3": "これは、ローカルに保存された変更には必要ありません。",
|
||||
"rebuild-button": "ビルドを開始します",
|
||||
"rebuilding-status-1": "建物...",
|
||||
"title": "アプリケーションを再ビルド",
|
||||
"rebuild-note-l1": "conf.ymlファイルに書き込まれた変更を有効にするには、再ビルドが必要です。",
|
||||
"rebuild-note-l2": "再ビルドは自動的に行われますが、もし行われていない場合はここで手動で実行できます。",
|
||||
"rebuild-note-l3": "なお、ローカルに保存された変更には必要ありません。",
|
||||
"rebuild-button": "再ビルドを開始",
|
||||
"rebuilding-status-1": "ビルド...",
|
||||
"rebuilding-status-2": "これには数分かかる場合があります",
|
||||
"error-permission": "このアクションをトリガーする権限がありません",
|
||||
"error-permission": "この操作を実行する権限がありません",
|
||||
"success-msg": "ビルドが正常に完了しました",
|
||||
"fail-msg": "ビルド操作に失敗しました",
|
||||
"reload-note": "変更を有効にするには、ページの再読み込みが必要になりました",
|
||||
"reload-button": "ページをリロード"
|
||||
"fail-msg": "ビルドに失敗しました",
|
||||
"reload-note": "変更を適用するにはページの再読み込みが必要です",
|
||||
"reload-button": "ページを再読み込み"
|
||||
},
|
||||
"cloud-sync": {
|
||||
"title": "クラウドのバックアップと復元",
|
||||
"intro-l1": "クラウドのバックアップと復元はオプションの機能であり、構成をインターネットにアップロードしてから、他のデバイスまたはDashyのインスタンスに復元することができます。",
|
||||
"title": "クラウドバックアップと復元",
|
||||
"intro-l1": "クラウドバックアップと復元はオプションの機能です。設定をインターネットにアップロードし、他のデバイスまたはDashyのインスタンスに復元することができます。",
|
||||
"intro-l2": "すべてのデータは、パスワードをキーとして使用して、AESで完全にエンドツーエンドで暗号化されます。",
|
||||
"intro-l3": "詳細については、",
|
||||
"backup-title-setup": "バックアップを作成する",
|
||||
"intro-l3": "詳細については、以下をご覧ください: ",
|
||||
"intro-docs": "ドキュメント",
|
||||
"backup-title-setup": "バックアップの作成",
|
||||
"backup-title-update": "バックアップの更新",
|
||||
"password-label-setup": "パスワードを決めて下さい",
|
||||
"password-label-setup": "パスワード",
|
||||
"password-label-update": "パスワードを入力してください",
|
||||
"backup-button-setup": "バックアップ",
|
||||
"backup-button-update": "バックアップの更新",
|
||||
"backup-button-update": "バックアップを更新",
|
||||
"backup-id-label": "バックアップID",
|
||||
"backup-id-note": "これは、後でバックアップから復元するために使用されます。したがって、パスワードと一緒に安全な場所に保管してください。",
|
||||
"restore-title": "バックアップを復元する",
|
||||
"restore-id-label": "IDを復元",
|
||||
"backup-id-note": "バックアップから復元する際に使用します。パスワードと一緒に安全な場所に保管してください。",
|
||||
"restore-title": "バックアップから復元",
|
||||
"restore-id-label": "復元ID",
|
||||
"restore-password-label": "パスワード",
|
||||
"restore-button": "戻す",
|
||||
"restore-button": "復元",
|
||||
"backup-missing-password": "パスワードがありません",
|
||||
"backup-error-unknown": "リクエストを処理できません",
|
||||
"backup-error-password": "パスワードが正しくありません。現在のパスワードを入力してください。",
|
||||
"backup-success-msg": "正常に完了しました",
|
||||
"restore-success-msg": "構成が正常に復元されました"
|
||||
"restore-success-msg": "設定が正常に復元されました"
|
||||
},
|
||||
"menu": {
|
||||
"open-section-title": "開く",
|
||||
"sametab": "現在のタブで開く",
|
||||
"newtab": "新しいタブで開く",
|
||||
"modal": "ポップアップモーダルで開く",
|
||||
"workspace": "ワークスペースビューで開く"
|
||||
"workspace": "ワークスペース表示で開く",
|
||||
"options-section-title": "編集",
|
||||
"edit-item": "編集",
|
||||
"move-item": "コピー・移動",
|
||||
"remove-item": "削除"
|
||||
},
|
||||
"context-menus": {
|
||||
"item": {
|
||||
"open-section-title": "開く",
|
||||
"sametab": "現在のタブで開く",
|
||||
"newtab": "新しいタブで開く",
|
||||
"modal": "ポップアップモーダルで開く",
|
||||
"workspace": "ワークスペース表示で開く",
|
||||
"clipboard": "クリップボードにコピー",
|
||||
"options-section-title": "編集",
|
||||
"edit-item": "編集",
|
||||
"move-item": "コピー・移動",
|
||||
"remove-item": "削除",
|
||||
"copied-toast": "URLがクリップボードにコピーされました"
|
||||
},
|
||||
"section": {
|
||||
"open-section": "セクションを開く",
|
||||
"edit-section": "編集",
|
||||
"expand-collapse": "開く / 閉じる",
|
||||
"move-section": "移動",
|
||||
"remove-section": "削除"
|
||||
}
|
||||
},
|
||||
"footer": {
|
||||
"dev-by": "Developed by",
|
||||
"licensed-under": "Licensed under",
|
||||
"get-the": "Get the",
|
||||
"source-code": "Source Code"
|
||||
},
|
||||
"interactive-editor": {
|
||||
"menu": {
|
||||
"start-editing-tooltip": "インタラクティブに編集",
|
||||
"edit-site-data-subheading": "サイト情報の編集",
|
||||
"edit-page-info-btn": "ページ情報の編集",
|
||||
"edit-page-info-tooltip": "アプリ名、説明、ナビゲーション、フッターなど",
|
||||
"edit-app-config-btn": "アプリ設定の編集",
|
||||
"edit-app-config-tooltip": "その他のアプリ設定",
|
||||
"edit-pages-btn": "ページの編集",
|
||||
"edit-pages-tooltip": "ビューの追加と削除",
|
||||
"config-save-methods-subheading": "設定の保存",
|
||||
"save-locally-btn": "ローカルに保存",
|
||||
"save-locally-tooltip": "設定をローカル(ブラウザのストレージ)に保存します。設定ファイルには影響せず、このデバイスだけに変更が保存されます",
|
||||
"save-disk-btn": "ディスクに保存",
|
||||
"save-disk-tooltip": "設定をディスクの conf.yml ファイルに保存します。既にある設定ファイルを上書きし、設定が保持されるようにします",
|
||||
"export-config-btn": "設定をエクスポート",
|
||||
"export-config-tooltip": "変更した設定を表示し、ファイルかクリップボードにエクスポートします",
|
||||
"cloud-backup-btn": "クラウドにバックアップ",
|
||||
"cloud-backup-tooltip": "設定ファイルのバックアップを暗号化してクラウドに保存します",
|
||||
"edit-raw-config-btn": "生の設定を編集する",
|
||||
"edit-raw-config-tooltip": "JSONエディターで生の設定を表示・編集できます",
|
||||
"cancel-changes-btn": "編集の中止",
|
||||
"cancel-changes-tooltip": "現在の変更をリセットし、編集モードを抜けます。保存されている設定には影響しません",
|
||||
"edit-mode-name": "編集モード",
|
||||
"edit-mode-subtitle": "現在編集モードです",
|
||||
"edit-mode-description": "設定の編集と結果の確認ができますが、保存するまでは変更は残りません。",
|
||||
"save-stage-btn": "保存",
|
||||
"cancel-stage-btn": "キャンセル",
|
||||
"save-locally-warning": "変更はこのブラウザにだけ保存されます。他のデバイスでその設定を使用するにはエクスポートする必要があります。続行しますか?"
|
||||
},
|
||||
"edit-item": {
|
||||
"missing-title-err": "項目のタイトルが必要です"
|
||||
},
|
||||
"edit-section": {
|
||||
"edit-section-title": "セクションの編集",
|
||||
"add-section-title": "新しいセクションを追加",
|
||||
"edit-tooltip": "クリックして編集。右クリックでオプションを開く",
|
||||
"remove-confirm": "本当にこのセクションを削除しますか?なお、後で取り消すことはできます"
|
||||
},
|
||||
"edit-app-config": {
|
||||
"warning-msg-title": "注意",
|
||||
"warning-msg-l1": "これは高度なアプリ設定です。",
|
||||
"warning-msg-l2": "項目についてよく分からない場合は",
|
||||
"warning-msg-docs": "ドキュメント",
|
||||
"warning-msg-l3": "を参照し、意図しない結果にならないように注意してください。"
|
||||
},
|
||||
"export": {
|
||||
"export-title": "設定をエクスポート",
|
||||
"copy-clipboard-btn": "クリップボードにコピー",
|
||||
"copy-clipboard-tooltip": "すべてのアプリ設定をシステムのクリップボードにYAML形式でコピーします",
|
||||
"download-file-btn": "ファイルとしてダウンロード",
|
||||
"download-file-tooltip": "すべてのアプリ設定をYAMLファイルとしてダウンロードします",
|
||||
"view-title": "設定"
|
||||
}
|
||||
},
|
||||
"widgets": {
|
||||
"general": {
|
||||
"loading": "読み込み中...",
|
||||
"show-more": "詳細を開く",
|
||||
"show-less": "詳細を閉じる",
|
||||
"open-link": "続きを読む"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
448
src/assets/locales/ro.json
Normal file
448
src/assets/locales/ro.json
Normal file
@@ -0,0 +1,448 @@
|
||||
{
|
||||
"home": {
|
||||
"no-results": "Niciun rezultat găsit",
|
||||
"no-data": "Nicio dată configurată",
|
||||
"no-items-section": "Niciun element de afișat încă"
|
||||
},
|
||||
"search": {
|
||||
"search-label": "Caută",
|
||||
"search-placeholder": "Începeți să tastați pentru a filtra",
|
||||
"clear-search-tooltip": "Șterge căutarea",
|
||||
"enter-to-search-web": "Apasă enter pentru a căuta pe web"
|
||||
},
|
||||
"splash-screen": {
|
||||
"loading": "Încărcare"
|
||||
},
|
||||
"login": {
|
||||
"title": "Dashy",
|
||||
"guest-label": "Acces Vizitator",
|
||||
"username-label": "Nume utilizator",
|
||||
"password-label": "Parolă",
|
||||
"login-button": "Autentificare",
|
||||
"remember-me-label": "Ține-mă minte pentru",
|
||||
"remember-me-never": "Niciodată",
|
||||
"remember-me-hour": "4 Ore",
|
||||
"remember-me-day": "1 Zi",
|
||||
"remember-me-week": "1 Săptămână",
|
||||
"remember-me-long-time": "O perioadă lungă",
|
||||
"error-missing-username": "Lipsește numele de utilizator",
|
||||
"error-missing-password": "Lipsește parola",
|
||||
"error-incorrect-username": "Utilizator negăsit",
|
||||
"error-incorrect-password": "Parolă incorectă",
|
||||
"success-message": "Autentificare...",
|
||||
"logout-message": "Deconectat",
|
||||
"already-logged-in-title": "Deja autentificat",
|
||||
"already-logged-in-text": "Ești autentificat ca",
|
||||
"proceed-to-dashboard": "Continuă către Tabloul de bord",
|
||||
"log-out-button": "Deconectare",
|
||||
"proceed-guest-button": "Continuă ca Vizitator",
|
||||
"guest-intro-1": "Această instanță are acces pentru vizitatori activat.",
|
||||
"guest-intro-2": "Vizitatorii au acces doar pentru vizualizare la tablourile de bord, deci nu pot scrie modificări pe disc.",
|
||||
"error": "Eroare",
|
||||
"error-no-user-configured": "Autentificarea nu este activată, sau nu au fost configurați utilizatori",
|
||||
"error-go-home-button": "Mergi la Pagina Principală",
|
||||
"logged-in-guest": "Autentificat ca Vizitator, Redirecționare...",
|
||||
"error-guest-access": "Acces Vizitator Interzis"
|
||||
},
|
||||
"app-info": {
|
||||
"title": "Informații Aplicație",
|
||||
"error-log": "Jurnal Erori",
|
||||
"no-errors": "Nicio eroare recentă detectată",
|
||||
"help-support": "Ajutor & Suport",
|
||||
"help-support-description" : "Pentru suport în utilizarea sau configurarea Dashy, consultați",
|
||||
"help-support-discussions": "Discuțiile",
|
||||
"support-dashy": "Suport pentru Dashy",
|
||||
"support-dashy-description": "Pentru moduri în care poți contribui, verificați",
|
||||
"support-dashy-link": "Pagina de Contribuții",
|
||||
"report-bug": "Raportează o Eroare",
|
||||
"report-bug-description": "Dacă crezi că ai găsit o eroare, atunci te rog",
|
||||
"report-bug-link": "deschide o Problemă",
|
||||
"more-info": "Mai Multe Informații",
|
||||
"source": "Sursă",
|
||||
"documentation": "Documentație",
|
||||
"privacy-and-security": "Confidențialitate & Securitate",
|
||||
"privacy-and-security-l1": "Pentru o descompunere a modului în care datele tale sunt gestionate de Dashy, consultați",
|
||||
"privacy-and-security-privacy-policy": "Politica de Confidențialitate",
|
||||
"privacy-and-security-advice": "Pentru sfaturi în securizarea tabloului tău de bord, poți consulta",
|
||||
"privacy-and-security-advice-link": "Documentele de Management",
|
||||
"privacy-and-security-security-issue": "Dacă ați descoperit o potențială problemă de securitate, raportați-o urmând",
|
||||
"privacy-and-security-security-policy": "Politica de Securitate",
|
||||
"license": "Licență",
|
||||
"license-under": "Licențiat sub",
|
||||
"licence-third-party": "Pentru licențele modulelor terțe părți, vă rugăm să consultați",
|
||||
"licence-third-party-link": "Legal",
|
||||
"list-contributors": "Pentru lista completă a contribuitorilor și mulțumiri, vedeți",
|
||||
"list-contributors-link": "Credite",
|
||||
"version": "Versiune"
|
||||
},
|
||||
"config": {
|
||||
"main-tab": "Meniu Principal",
|
||||
"view-config-tab": "Vizualizare Configurație",
|
||||
"edit-config-tab": "Editare Configurație",
|
||||
"custom-css-tab": "Stiluri Personalizate",
|
||||
"heading": "Opțiuni de Configurare",
|
||||
"download-config-button": "Vizualizați / Exportați Configurația",
|
||||
"edit-config-button": "Editare Configurație",
|
||||
"edit-css-button": "Editare CSS Personalizat",
|
||||
"cloud-sync-button": "Activează Sincronizarea în Cloud",
|
||||
"edit-cloud-sync-button": "Editare Sincronizare în Cloud",
|
||||
"rebuild-app-button": "Reconstruire Aplicație",
|
||||
"change-language-button": "Schimbă Limba Aplicației",
|
||||
"reset-settings-button": "Resetează Setările Locale",
|
||||
"disabled-note": "Unele caracteristici de configurare au fost dezactivate de administratorul tău",
|
||||
"small-screen-note": "Utilizați un ecran foarte mic, și unele ecrane din acest meniu s-ar putea să nu fie optimale",
|
||||
"app-info-button": "Informații Aplicație",
|
||||
"backup-note": "Este recomandat să faceți o copie de siguranță a configurației înainte de a face modificări.",
|
||||
"reset-config-msg-l1": "Aceasta va elimina toate setările utilizatorilor din stocarea locală, dar nu va afecta fișierul 'conf.yml'.",
|
||||
"reset-config-msg-l2": "Ar trebui să faceți mai întâi o copie de siguranță a oricăror modificări pe care le-ați făcut local, dacă doriți să le utilizați în viitor.",
|
||||
"reset-config-msg-l3": "Sunteți sigur că doriți să continuați?",
|
||||
"data-cleared-msg": "Datele au fost șterse cu succes",
|
||||
"actions-label": "Acțiuni",
|
||||
"copy-config-label": "Copiază Configurația",
|
||||
"data-copied-msg": "Configurația a fost copiată în clipboard",
|
||||
"reset-config-label": "Resetează Configurația",
|
||||
"css-save-btn": "Salvează Modificările",
|
||||
"css-note-label": "Notă",
|
||||
"css-note-l1": "Va trebui să reîmprospătați pagina pentru ca modificările să aibă efect.",
|
||||
"css-note-l2": "Suprascrierile de stiluri sunt stocate doar local, deci este recomandat să faceți o copie a CSS-ului dvs.",
|
||||
"css-note-l3": "Pentru a elimina toate stilurile personalizate, ștergeți conținutul și apăsați 'Salvează Modificările'",
|
||||
"custom-css": {
|
||||
"title": "CSS Personalizat",
|
||||
"base-theme": "Tema de Bază"
|
||||
}
|
||||
},
|
||||
"alternate-views": {
|
||||
"alternate-view-heading": "Schimbă Vederea",
|
||||
"default": "Implicit",
|
||||
"workspace": "Spațiu de Lucru",
|
||||
"minimal": "Minimal"
|
||||
},
|
||||
"settings": {
|
||||
"theme-label": "Temă",
|
||||
"layout-label": "Aspect",
|
||||
"layout-auto": "Automat",
|
||||
"layout-horizontal": "Orizontal",
|
||||
"layout-vertical": "Vertical",
|
||||
"item-size-label": "Dimensiune Element",
|
||||
"item-size-small": "Mic",
|
||||
"item-size-medium": "Mediu",
|
||||
"item-size-large": "Mare",
|
||||
"config-launcher-label": "Config",
|
||||
"config-launcher-tooltip": "Actualizează Configurația",
|
||||
"sign-out-tooltip": "Deconectare",
|
||||
"sign-in-tooltip": "Conectare",
|
||||
"sign-in-welcome": "Bună {username}!",
|
||||
"hide": "Ascunde",
|
||||
"open": "Deschide"
|
||||
},
|
||||
"updates": {
|
||||
"app-version-note": "Versiune Dashy",
|
||||
"up-to-date": "Actualizat",
|
||||
"out-of-date": "Actualizare Disponibilă",
|
||||
"unsupported-version-l1": "Utilizați o versiune nesuportată de Dashy",
|
||||
"unsupported-version-l2": "Pentru cea mai bună experiență și patch-uri de securitate recente, vă rugăm să actualizați la"
|
||||
},
|
||||
"language-switcher": {
|
||||
"title": "Schimbă Limba Aplicației",
|
||||
"dropdown-label": "Selectați o Limbă",
|
||||
"save-button": "Salvează",
|
||||
"success-msg": "Limba Actualizată la"
|
||||
},
|
||||
"theme-maker": {
|
||||
"title": "Configurator de Temă",
|
||||
"export-button": "Exportă Variabile Personalizate",
|
||||
"reset-button": "Resetează Stilurile pentru",
|
||||
"show-all-button": "Arată Toate Variabilele",
|
||||
"change-fonts-button": "Schimbă Fonturile",
|
||||
"save-button": "Salvează",
|
||||
"cancel-button": "Anulează",
|
||||
"saved-toast": "{theme} Actualizat cu Succes",
|
||||
"copied-toast": "Datele temei pentru {theme} au fost copiate în clipboard",
|
||||
"reset-toast": "Culorile Personalizate pentru {theme} au fost Eliminate"
|
||||
},
|
||||
"config-editor": {
|
||||
"save-location-label": "Locația de Salvare",
|
||||
"location-local-label": "Aplică Local",
|
||||
"location-disk-label": "Scrie Modificările în Fișierul de Configurație",
|
||||
"save-button": "Salvează Modificările",
|
||||
"preview-button": "Previzualizează Modificările",
|
||||
"valid-label": "Configurația este Valabilă",
|
||||
"status-success-msg": "Sarcină Completată",
|
||||
"status-fail-msg": "Sarcină Eșuată",
|
||||
"success-msg-disk": "Fișierul de configurație a fost scris pe disc cu succes",
|
||||
"success-msg-local": "Modificările locale au fost salvate cu succes",
|
||||
"success-note-l1": "Aplicația ar trebui să se reconstruiască automat.",
|
||||
"success-note-l2": "Aceasta poate dura până la un minut.",
|
||||
"success-note-l3": "Va trebui să reîmprospătați pagina pentru ca modificările să aibă efect.",
|
||||
"error-msg-save-mode": "Vă rugăm să selectați un Mod de Salvare: Local sau Fișier",
|
||||
"error-msg-cannot-save": "A apărut o eroare la salvarea configurației",
|
||||
"error-msg-bad-json": "Eroare în JSON, posibil malformat",
|
||||
"warning-msg-validation": "Avertisment de Validare",
|
||||
"not-admin-note": "Nu puteți scrie modificările pe disc deoarece nu sunteți conectat ca administrator"
|
||||
},
|
||||
"app-rebuild": {
|
||||
"title": "Reconstruire Aplicație",
|
||||
"rebuild-note-l1": "O reconstruire este necesară pentru ca modificările scrise în fișierul conf.yml să aibă efect.",
|
||||
"rebuild-note-l2": "Aceasta ar trebui să se întâmple automat, dar dacă nu s-a întâmplat, o puteți declanșa manual aici.",
|
||||
"rebuild-note-l3": "Aceasta nu este necesară pentru modificările stocate local.",
|
||||
"rebuild-button": "Începeți Reconstruirea",
|
||||
"rebuilding-status-1": "Se reconstruiește...",
|
||||
"rebuilding-status-2": "Aceasta poate dura câteva minute",
|
||||
"error-permission": "Nu aveți permisiunea de a declanșa această acțiune",
|
||||
"success-msg": "Reconstruirea a fost completată cu succes",
|
||||
"fail-msg": "Operațiunea de reconstruire a eșuat",
|
||||
"reload-note": "Este necesară reîncărcarea paginii pentru ca modificările să aibă efect",
|
||||
"reload-button": "Reîncarcă Pagina"
|
||||
},
|
||||
"cloud-sync": {
|
||||
"title": "Backup și Restaurare în Cloud",
|
||||
"intro-l1": "Backup-ul și restaurarea în cloud este o caracteristică opțională, care vă permite să încărcați configurația pe internet și apoi să o restaurați pe orice alt dispozitiv sau instanță de Dashy.",
|
||||
"intro-l2": "Toate datele sunt criptate end-to-end cu AES, folosind parola dumneavoastră ca cheie.",
|
||||
"intro-l3": "Pentru mai multe informații, vă rugăm să consultați",
|
||||
"intro-docs": "documentația",
|
||||
"backup-title-setup": "Creați un Backup",
|
||||
"backup-title-update": "Actualizați Backup-ul",
|
||||
"password-label-setup": "Alegeți o Parolă",
|
||||
"password-label-update": "Introduceți Parola",
|
||||
"backup-button-setup": "Backup",
|
||||
"backup-button-update": "Actualizați Backup-ul",
|
||||
"backup-id-label": "ID-ul Dvs. de Backup",
|
||||
"backup-id-note": "Acesta este utilizat pentru a restaura din backup-uri mai târziu. Deci păstrați-l, împreună cu parola dvs., într-un loc sigur.",
|
||||
"restore-title": "Restaurare Backup",
|
||||
"restore-id-label": "ID de Restaurare",
|
||||
"restore-password-label": "Parola",
|
||||
"restore-button": "Restaurare",
|
||||
"backup-missing-password": "Lipsește Parola",
|
||||
"backup-error-unknown": "Imposibil de procesat solicitarea",
|
||||
"backup-error-password": "Parolă incorectă. Vă rugăm să introduceți parola actuală.",
|
||||
"backup-success-msg": "Finalizat cu Succes",
|
||||
"restore-success-msg": "Configurația a fost Restaurată cu Succes"
|
||||
},
|
||||
"menu": {
|
||||
"open-section-title": "Deschide În",
|
||||
"sametab": "Tab Curent",
|
||||
"newtab": "Tab Nou",
|
||||
"modal": "Modal Pop-Up",
|
||||
"workspace": "Vizualizare Spațiu de Lucru",
|
||||
"options-section-title": "Opțiuni",
|
||||
"edit-item": "Editare",
|
||||
"move-item": "Copiază sau Mută",
|
||||
"remove-item": "Șterge"
|
||||
},
|
||||
"context-menus": {
|
||||
"item": {
|
||||
"open-section-title": "Deschide În",
|
||||
"sametab": "Tab Curent",
|
||||
"newtab": "Tab Nou",
|
||||
"modal": "Modal Pop-Up",
|
||||
"workspace": "Vizualizare Spațiu de Lucru",
|
||||
"clipboard": "Copiază în Clipboard",
|
||||
"options-section-title": "Opțiuni",
|
||||
"edit-item": "Editare",
|
||||
"move-item": "Copiază sau Mută",
|
||||
"remove-item": "Șterge",
|
||||
"copied-toast": "URL-ul a fost copiat în clipboard"
|
||||
},
|
||||
"section": {
|
||||
"open-section": "Deschide Secțiunea",
|
||||
"edit-section": "Editare",
|
||||
"expand-collapse": "Extinde / Colapsează",
|
||||
"move-section": "Mută La",
|
||||
"remove-section": "Șterge"
|
||||
}
|
||||
},
|
||||
"footer": {
|
||||
"dev-by": "Dezvoltat de",
|
||||
"licensed-under": "Licențiat sub",
|
||||
"get-the": "Obțineți",
|
||||
"source-code": "Codul Sursă"
|
||||
},
|
||||
"interactive-editor": {
|
||||
"menu": {
|
||||
"start-editing-tooltip": "Intră în Editorul Interactiv",
|
||||
"edit-site-data-subheading": "Editează Datele Site-ului",
|
||||
"edit-page-info-btn": "Editează Informațiile Paginii",
|
||||
"edit-page-info-tooltip": "Titlul aplicației, descriere, link-uri de navigare, textul din footer, etc.",
|
||||
"edit-app-config-btn": "Editează Configurația Aplicației",
|
||||
"edit-app-config-tooltip": "Toate celelalte opțiuni de configurare a aplicației",
|
||||
"edit-pages-btn": "Editează Paginile",
|
||||
"edit-pages-tooltip": "Adaugă sau elimină vizualizări suplimentare",
|
||||
"config-save-methods-subheading": "Opțiuni de Salvare a Configurației",
|
||||
"save-locally-btn": "Salvează Local",
|
||||
"save-locally-tooltip": "Salvează configurația local, în stocarea browserului. Aceasta nu va afecta fișierul tău de configurare, dar schimbările vor fi salvate doar pe acest dispozitiv",
|
||||
"save-disk-btn": "Salvează pe Disc",
|
||||
"save-disk-tooltip": "Salvează configurația în fișierul conf.yml de pe disc. Aceasta va face un backup și apoi va suprascrie configurația existentă",
|
||||
"export-config-btn": "Exportă Configurația",
|
||||
"export-config-tooltip": "Vizualizează și exportă noua configurație, fie într-un fișier, fie în clipboard",
|
||||
"cloud-backup-btn": "Backup în Cloud",
|
||||
"cloud-backup-tooltip": "Salvează un backup criptat al configurației în cloud",
|
||||
"edit-raw-config-btn": "Editează Configurația Brută",
|
||||
"edit-raw-config-tooltip": "Vizualizează și modifică configurația brută prin editorul JSON",
|
||||
"cancel-changes-btn": "Anulează Modificările",
|
||||
"cancel-changes-tooltip": "Resetează modificările curente și ieși din Modul de Editare. Aceasta nu va afecta configurația salvată",
|
||||
"edit-mode-name": "Mod de Editare",
|
||||
"edit-mode-subtitle": "Ești în Modul de Editare",
|
||||
"edit-mode-description": "Aceasta înseamnă că poți face modificări la configurația ta și să previzualizezi rezultatele, dar până nu salvezi, niciuna dintre modificările tale nu va fi păstrată.",
|
||||
"save-stage-btn": "Salvează",
|
||||
"cancel-stage-btn": "Anulează",
|
||||
"save-locally-warning": "Dacă vei continua, modificările vor fi salvate doar în browserul tău. Ar trebui să exporți o copie a configurației tale pentru utilizare pe alte mașini. Dorești să continui?"
|
||||
},
|
||||
"edit-item": {
|
||||
"missing-title-err": "Este necesar un titlu pentru element"
|
||||
},
|
||||
"edit-section": {
|
||||
"edit-section-title": "Editează Secțiunea",
|
||||
"add-section-title": "Adaugă o Secțiune Nouă",
|
||||
"edit-tooltip": "Clic pentru a edita, sau clic dreapta pentru mai multe opțiuni",
|
||||
"remove-confirm": "Ești sigur că vrei să elimini această secțiune? Această acțiune poate fi anulată mai târziu."
|
||||
},
|
||||
"edit-app-config": {
|
||||
"warning-msg-title": "Procedează cu Atenție",
|
||||
"warning-msg-l1": "Următoarele opțiuni sunt pentru configurarea avansată a aplicației.",
|
||||
"warning-msg-l2": "Dacă nu ești sigur în legătură cu oricare dintre câmpuri, te rog să consulți",
|
||||
"warning-msg-docs": "documentația",
|
||||
"warning-msg-l3": "pentru a evita consecințele nedorite."
|
||||
},
|
||||
"export": {
|
||||
"export-title": "Exportă Configurația",
|
||||
"copy-clipboard-btn": "Copiază în Clipboard",
|
||||
"copy-clipboard-tooltip": "Copiază toată configurația aplicației în clipboard-ul sistemului, în format YAML",
|
||||
"download-file-btn": "Descarcă ca Fișier",
|
||||
"download-file-tooltip": "Descarcă toată configurația aplicației pe dispozitivul tău, într-un fișier YAML",
|
||||
"view-title": "Vizualizează Configurația"
|
||||
}
|
||||
},
|
||||
"widgets": {
|
||||
"general": {
|
||||
"loading": "Se încarcă...",
|
||||
"show-more": "Extinde Detaliile",
|
||||
"cpu-details": "Detalii CPU",
|
||||
"mem-details": "Detalii Memorie",
|
||||
"show-less": "Arată Mai Puțin",
|
||||
"open-link": "Continuă Citirea"
|
||||
},
|
||||
"pi-hole": {
|
||||
"status-heading": "Stare"
|
||||
},
|
||||
"stat-ping": {
|
||||
"up": "Online",
|
||||
"down": "Offline"
|
||||
},
|
||||
"net-data": {
|
||||
"cpu-chart-title": "Istoric CPU",
|
||||
"mem-chart-title": "Utilizare Memorie",
|
||||
"mem-breakdown-title": "Detalii Memorie",
|
||||
"load-chart-title": "Încărcare Sistem"
|
||||
},
|
||||
"glances": {
|
||||
"disk-space-free": "Liber",
|
||||
"disk-space-used": "Utilizat",
|
||||
"disk-mount-point": "Punct de Montare",
|
||||
"disk-file-system": "Sistem de Fișiere",
|
||||
"disk-io-read": "Citire",
|
||||
"disk-io-write": "Scriere",
|
||||
"system-load-desc": "Numărul de procese așteptând în coada de execuție, mediat pe toate nucleele"
|
||||
},
|
||||
"system-info": {
|
||||
"uptime": "Timp de Funcționare"
|
||||
},
|
||||
"flight-data": {
|
||||
"arrivals": "Sosiri",
|
||||
"departures": "Plecări"
|
||||
},
|
||||
"tfl-status": {
|
||||
"good-service-all": "Servicii Bune pe Toate Liniile",
|
||||
"good-service-rest": "Servicii Bune pe Celelalte Linii"
|
||||
},
|
||||
"synology-download": {
|
||||
"download": "Descărcare",
|
||||
"upload": "Încărcare",
|
||||
"downloaded": "Descărcat",
|
||||
"uploaded": "Încărcat",
|
||||
"remaining": "Rămas",
|
||||
"up": "Sus",
|
||||
"down": "Jos"
|
||||
},
|
||||
"gluetun-status": {
|
||||
"vpn-ip": "IP VPN",
|
||||
"country": "Țară",
|
||||
"region": "Regiune",
|
||||
"city": "Oraș",
|
||||
"post-code": "Cod Poștal",
|
||||
"location": "Locație",
|
||||
"timezone": "Fus Orar",
|
||||
"organization": "Organizație"
|
||||
},
|
||||
"nextcloud": {
|
||||
"active": "activ",
|
||||
"and": "și",
|
||||
"applications": "aplicații",
|
||||
"available": "disponibil",
|
||||
"away": "Plecat",
|
||||
"cache-full": "CACHE PLIN",
|
||||
"chat-room": "camera de chat",
|
||||
"delete-all": "Șterge tot",
|
||||
"delete-notification": "Șterge notificarea",
|
||||
"disabled": "dezactivat",
|
||||
"disk-quota": "Cotă de Disc",
|
||||
"disk-space": "Spațiu pe Disc",
|
||||
"dnd": "Nu Deranja",
|
||||
"email": "email",
|
||||
"enabled": "activat",
|
||||
"federated-shares-ucfirst": "Partajări Federate",
|
||||
"federated-shares": "partajări federate",
|
||||
"files": "fișier{plural}",
|
||||
"free": "liber",
|
||||
"groups": "grupuri",
|
||||
"hit-rate": "rata de accesare",
|
||||
"hits": "accesări",
|
||||
"home": "acasă",
|
||||
"in": "în",
|
||||
"keys": "chei",
|
||||
"last-24-hours": "ultimele 24 de ore",
|
||||
"last-5-minutes": "în ultimele 5 minute",
|
||||
"last-hour": "în ultima oră",
|
||||
"last-login": "Ultima autentificare",
|
||||
"last-restart": "Ultimul restart",
|
||||
"load-averages": "Mediile de Încărcare pe toate nucleele CPU",
|
||||
"local-shares": "Partajări Locale",
|
||||
"local": "local",
|
||||
"max-keys": "chei maxime",
|
||||
"memory-used": "memorie utilizată",
|
||||
"memory-utilisation": "utilizarea memoriei",
|
||||
"memory": "memorie",
|
||||
"misses": "rateuri",
|
||||
"no-notifications": "Fără notificări",
|
||||
"no-pending-updates": "fără actualizări în așteptare",
|
||||
"nothing-to-show": "Nimic de afișat aici în acest moment",
|
||||
"of-which": "din care",
|
||||
"of": "din",
|
||||
"offline": "Deconectat",
|
||||
"online": "Conectat",
|
||||
"other": "alt",
|
||||
"overall": "În total",
|
||||
"private-link": "link privat",
|
||||
"public-link": "link public",
|
||||
"quota-enabled": "Cota de Disc este {not}activată pentru acest utilizator",
|
||||
"received": "primit",
|
||||
"scripts": "scripturi",
|
||||
"sent": "trimis",
|
||||
"started": "Început",
|
||||
"storages-by-type": "Stocări pe tip",
|
||||
"storages": "stocare{plural}",
|
||||
"strings-use": "utilizare șiruri",
|
||||
"tasks": "Sarcini",
|
||||
"total-files": "total fișiere",
|
||||
"total-users": "total utilizatori",
|
||||
"total": "total",
|
||||
"until": "Până la",
|
||||
"updates-available-for": "Actualizări disponibile pentru",
|
||||
"updates-available": "actualizare{plural} disponibilă",
|
||||
"used": "utilizat",
|
||||
"user": "utilizator",
|
||||
"using": "utilizând",
|
||||
"version": "versiune",
|
||||
"wasted": "pierdut"
|
||||
}
|
||||
}
|
||||
}
|
||||
446
src/assets/locales/ua.json
Normal file
446
src/assets/locales/ua.json
Normal file
@@ -0,0 +1,446 @@
|
||||
{
|
||||
"home": {
|
||||
"no-results": "Немає результатів пошуку",
|
||||
"no-data": "Дані не налаштовано",
|
||||
"no-items-section": "Поки що немає елементів для показу"
|
||||
},
|
||||
"search": {
|
||||
"search-label": "Пошук",
|
||||
"search-placeholder": "Почніть друкувати для фільтрування",
|
||||
"clear-search-tooltip": "Очистити пошук",
|
||||
"enter-to-search-web": "Натисніть enter для пошуку в Інтернеті"
|
||||
},
|
||||
"splash-screen": {
|
||||
"loading": "Завантаження"
|
||||
},
|
||||
"login": {
|
||||
"title": "Dashy",
|
||||
"guest-label": "Гостьовий доступ",
|
||||
"username-label": "Ім'я користувача",
|
||||
"password-label": "Пароль",
|
||||
"login-button": "Увійти",
|
||||
"remember-me-label": "Запам'ятати мене для",
|
||||
"remember-me-never": "Ніколи не запамʼятовувати",
|
||||
"remember-me-hour": "4 години",
|
||||
"remember-me-day": "1 день",
|
||||
"remember-me-week": "1 тиждень",
|
||||
"remember-me-long-time": "Довгий час",
|
||||
"error-missing-username": "Відсутнє ім'я користувача",
|
||||
"error-missing-password": "Відсутній пароль",
|
||||
"error-incorrect-username": "Користувача не знайдено",
|
||||
"error-incorrect-password": "Неправильний пароль",
|
||||
"success-message": "Вхід...",
|
||||
"logout-message": "Вихід",
|
||||
"already-logged-in-title": "Вхід вже виконано",
|
||||
"already-logged-in-text": "Ви ввійшли як",
|
||||
"proceed-to-dashboard": "Перейти до інформаційної панелі",
|
||||
"log-out-button": "Вийти",
|
||||
"proceed-guest-button": "Продовжити як гість",
|
||||
"guest-intro-1": "Цей інстанс має гостьовий доступ.",
|
||||
"guest-intro-2": "Гості мають доступ лише для перегляду до інформаційних панелей, тому не можуть записати жодних змін на диск.",
|
||||
"error": "Помилка",
|
||||
"error-no-user-configured": "Автентифікацію не ввімкнено, або користувачі не налаштовані",
|
||||
"error-go-home-button": "Повернутися додому",
|
||||
"logged-in-guest": "Увійшли як гість, переспрямування...",
|
||||
"error-guest-access": "Гостьовий доступ заборонено"
|
||||
},
|
||||
"app-info": {
|
||||
"title": "Інформація про програму",
|
||||
"error-log": "Журнал помилок",
|
||||
"no-errors": "Останніх помилок не виявлено",
|
||||
"help-support": "Допомога та підтримка",
|
||||
"help-support-description": "Щоб отримати підтримку щодо запуску чи налаштування Dashy, див.",
|
||||
"help-support-discussions": "Обговорення",
|
||||
"support-dashy": "Підтримка Dashy",
|
||||
"support-dashy-description": "Щоб дізнатися, як ви можете взяти участь, перегляньте",
|
||||
"support-dashy-link": "Сторінка внесків",
|
||||
"report-bug": "Повідомити про помилку",
|
||||
"report-bug-description": "Якщо ви вважаєте, що знайшли помилку, будь ласка",
|
||||
"report-bug-link": "повідомте про проблему",
|
||||
"more-info": "Докладніше",
|
||||
"source": "Джерело",
|
||||
"documentation": "Документація",
|
||||
"privacy-and-security": "Конфіденційність та безпека",
|
||||
"privacy-and-security-l1": "Для детальної інформації про те, як Dashy керує вашими даними, див.",
|
||||
"privacy-and-security-privacy-policy": "Політика конфіденційності",
|
||||
"privacy-and-security-advice": "Щоб отримати поради щодо захисту вашої інформаційної панелі, ви можете звернутися до розділу",
|
||||
"privacy-and-security-advice-link": "Документи керування",
|
||||
"privacy-and-security-security-issue": "Якщо ви виявили потенційну проблему з безпекою, повідомте про це до розділу",
|
||||
"privacy-and-security-security-policy": "Політика безпеки",
|
||||
"license": "Ліцензія",
|
||||
"license-under": "Ліцензія згідно",
|
||||
"licence-third-party": "Ліцензії на сторонні модулі див.",
|
||||
"licence-third-party-link": "Юридична інформація",
|
||||
"list-contributors": "Повний список співавторів та подяки див.",
|
||||
"list-contributors-link": "Кредити",
|
||||
"version": "Версія"
|
||||
},
|
||||
"config": {
|
||||
"main-tab": "Головне меню",
|
||||
"view-config-tab": "Переглянути конфігурацію",
|
||||
"edit-config-tab": "Редагувати конфігурацію",
|
||||
"custom-css-tab": "Власні стилі",
|
||||
"heading": "Параметри конфігурації",
|
||||
"download-config-button": "Переглянути / Експортувати конфігурацію",
|
||||
"edit-config-button": "Редагувати конфігурацію",
|
||||
"edit-css-button": "Редагувати власний CSS",
|
||||
"cloud-sync-button": "Увімкнути хмарну синхронізацію",
|
||||
"edit-cloud-sync-button": "Редагувати хмарну синхронізацію",
|
||||
"rebuild-app-button": "Перебудувати програму",
|
||||
"change-language-button": "Змінити мову програми",
|
||||
"reset-settings-button": "Скинути локальні налаштування",
|
||||
"disabled-note": "Деякі функції конфігурації були відключені вашим адміністратором",
|
||||
"small-screen-note": "Ви використовуєте дуже маленький екран, і деякі екрани в цьому меню можуть бути не найкращими",
|
||||
"app-info-button": "Інформація про програму",
|
||||
"backup-note": "Рекомендовано зробити резервну копію конфігурації перед внесенням змін.",
|
||||
"reset-config-msg-l1": "Це видалить усі налаштування користувача з локального сховища, але не вплине на ваш файл 'conf.yml'.",
|
||||
"reset-config-msg-l2": "Ви повинні спочатку створити резервну копію будь-яких змін, які ви внесли локально, якщо ви хочете використовувати їх у майбутньому.",
|
||||
"reset-config-msg-l3": "Ви впевнені, що бажаєте продовжити?",
|
||||
"data-cleared-msg": "Дані успішно видалено",
|
||||
"actions-label": "Дії",
|
||||
"copy-config-label": "Копіювати конфігурацію",
|
||||
"data-copied-msg": "Конфігурацію скопійовано до буфера обміну",
|
||||
"reset-config-label": "Скинути конфігурацію",
|
||||
"css-save-btn": "Зберегти зміни",
|
||||
"css-note-label": "Примітка",
|
||||
"css-note-l1": "Вам потрібно буде оновити сторінку, щоб ваші зміни набули чинності.",
|
||||
"css-note-l2": "Заміни стилів зберігаються лише локально, тому рекомендується зробити копію вашого CSS.",
|
||||
"css-note-l3": "Щоб видалити всі спеціальні стилі, видаліть вміст та натисніть Зберегти зміни",
|
||||
"custom-css": {
|
||||
"title": "Власні стилі",
|
||||
"base-theme": "Базова тема"
|
||||
}
|
||||
},
|
||||
"alternate-views": {
|
||||
"alternate-view-heading": "Змінити перегляд",
|
||||
"default": "За замовчуванням",
|
||||
"workspace": "Робоча область",
|
||||
"minimal": "Мінімальний"
|
||||
},
|
||||
"settings": {
|
||||
"theme-label": "Тема",
|
||||
"layout-label": "Макет",
|
||||
"layout-auto": "Авто",
|
||||
"layout-horizontal": "Горизонтально",
|
||||
"layout-vertical": "Вертикально",
|
||||
"item-size-label": "Розмір",
|
||||
"item-size-small": "Маленький",
|
||||
"item-size-medium": "Середній",
|
||||
"item-size-large": "Великий",
|
||||
"config-launcher-label": "Конфіг",
|
||||
"config-launcher-tooltip": "Оновити конфігурацію",
|
||||
"sign-out-tooltip": "Вийти",
|
||||
"sign-in-tooltip": "Увійти",
|
||||
"sign-in-welcome": "Привіт {username}!",
|
||||
"hide": "Приховати",
|
||||
"open": "Відкрити"
|
||||
},
|
||||
"updates": {
|
||||
"app-version-note": "Версія Dashy",
|
||||
"up-to-date": "Оновити",
|
||||
"out-of-date": "Оновлення доступне",
|
||||
"unsupported-version-l1": "Ви використовуєте непідтримувану версію Dashy",
|
||||
"unsupported-version-l2": "Для найкращого досвіду та останніх виправлень безпеки, будь ласка, оновіться"
|
||||
},
|
||||
"language-switcher": {
|
||||
"title": "Змінити мову програми",
|
||||
"dropdown-label": "Оберіть мову",
|
||||
"save-button": "Зберегти",
|
||||
"success-msg": "Мову оновлено"
|
||||
},
|
||||
"theme-maker": {
|
||||
"title": "Конфігуратор теми",
|
||||
"export-button": "Експорт змінних користувача",
|
||||
"reset-button": "Скинути стилі",
|
||||
"show-all-button": "Показати всі змінні",
|
||||
"change-fonts-button": "Змінити шрифти",
|
||||
"save-button": "Зберегти",
|
||||
"cancel-button": "Скасувати",
|
||||
"saved-toast": "{theme} успішно оновлена",
|
||||
"copied-toast": "Дані теми для {theme} скопійовано в буфер обміну",
|
||||
"reset-toast": "Кольори користувача для {theme} видалено"
|
||||
},
|
||||
"config-editor": {
|
||||
"save-location-label": "Зберегти розташування",
|
||||
"location-local-label": "Застосувати локально",
|
||||
"location-disk-label": "Записати зміни до файлу конфігурації",
|
||||
"save-button": "Зберегти зміни",
|
||||
"preview-button": "Попередній перегляд змін",
|
||||
"valid-label": "Конфігурація дійсна",
|
||||
"status-success-msg": "Завдання виконано",
|
||||
"status-fail-msg": "Завдання не виконано",
|
||||
"success-msg-disk": "Файл конфігурації успішно записаний на диск",
|
||||
"success-msg-local": "Локальні зміни успішно збережено",
|
||||
"success-note-l1": "Програма повинна автоматично перебудуватися.",
|
||||
"success-note-l2": "Це може зайняти до хвилини.",
|
||||
"success-note-l3": "Вам потрібно буде оновити сторінку, щоб зміни набули чинності.",
|
||||
"error-msg-save-mode": "Будь ласка, виберіть режим збереження: локальний або файловий",
|
||||
"error-msg-cannot-save": "Під час збереження конфігурації сталася помилка",
|
||||
"error-msg-bad-json": "Помилка в JSON, можливо, неправильний формат",
|
||||
"warning-msg-validation": "Попередження про перевірку",
|
||||
"not-admin-note": "Ви не можете записати зміни на диск, оскільки ви не увійшли як адміністратор"
|
||||
},
|
||||
"app-rebuild": {
|
||||
"title": "Перебудувати програму",
|
||||
"rebuild-note-l1": "Перебудова потрібна, щоб зміни, записані у файл conf.yml, набули чинності.",
|
||||
"rebuild-note-l2": "Це має статися автоматично, але якщо цього не сталося, ви можете запустити це звідси вручну.",
|
||||
"rebuild-note-l3": "Це не потрібно для змін, які зберігаються локально.",
|
||||
"rebuild-button": "Почати збірку",
|
||||
"rebuilding-status-1": "Збираємо...",
|
||||
"rebuilding-status-2": "Це може зайняти кілька хвилин",
|
||||
"error-permission": "У вас немає дозволу ініціювати цю дію",
|
||||
"success-msg": "Збірку завершено успішно",
|
||||
"fail-msg": "Помилка операції збирання",
|
||||
"reload-note": "Тепер потрібно перезавантажити сторінку, щоб зміни набули чинності",
|
||||
"reload-button": "Перезавантажити сторінку"
|
||||
},
|
||||
"cloud-sync": {
|
||||
"title": "Резервне копіювання та відновлення в хмарі",
|
||||
"intro-l1": "Резервне копіювання та відновлення в хмарі є додатковою функцією, яка дає змогу завантажити вашу конфігурацію в Інтернет, а потім відновити її на будь-якому іншому пристрої чи екземплярі Dashy.",
|
||||
"intro-l2": "Усі дані повністю зашифровані за допомогою AES із використанням вашого пароля як ключа.",
|
||||
"intro-l3": "Для отримання додаткової інформації див.",
|
||||
"intro-docs": "документи",
|
||||
"backup-title-setup": "Створити резервну копію",
|
||||
"backup-title-update": "Оновити резервну копію",
|
||||
"password-label-setup": "Оберіть пароль",
|
||||
"password-label-update": "Введіть свій пароль",
|
||||
"backup-button-setup": "Резервна копія",
|
||||
"backup-button-update": "Оновити резервну копію",
|
||||
"backup-id-label": "Ваш ID резервної копії",
|
||||
"backup-id-note": "Це використовується для відновлення з резервних копій пізніше. Тож має зберігатися разом із паролем у безпечному місці.",
|
||||
"restore-title": "Відновити резервну копію",
|
||||
"restore-id-label": "Відновити ID",
|
||||
"restore-password-label": "Пароль",
|
||||
"restore-button": "Відновити",
|
||||
"backup-missing-password": "Відсутній пароль",
|
||||
"backup-error-unknown": "Неможливо обробити запит",
|
||||
"backup-error-password": "Неправильний пароль. Будь ласка введіть поточний пароль.",
|
||||
"backup-success-msg": "Успішно завершено",
|
||||
"restore-success-msg": "Конфігурацію успішно відновлено"
|
||||
},
|
||||
"menu": {
|
||||
"open-section-title": "Відкрити в",
|
||||
"sametab": "Поточна вкладка",
|
||||
"newtab": "Нова вкладка",
|
||||
"modal": "Модальне спливаюче вікно",
|
||||
"workspace": "Перегляд робочої області",
|
||||
"options-section-title": "Параметри",
|
||||
"edit-item": "Редагувати",
|
||||
"move-item": "Копіювати або перемістити",
|
||||
"remove-item": "Видалити"
|
||||
},
|
||||
"context-menus": {
|
||||
"item": {
|
||||
"open-section-title": "Відкрити в",
|
||||
"sametab": "Поточна вкладка",
|
||||
"newtab": "Нова вкладка",
|
||||
"modal": "Модальне спливаюче вікно",
|
||||
"workspace": "Перегляд робочої області",
|
||||
"clipboard": "Копіювати до буфера обміну",
|
||||
"options-section-title": "Параметри",
|
||||
"edit-item": "Редагувати",
|
||||
"move-item": "Копіювати або перемістити",
|
||||
"remove-item": "Видалити",
|
||||
"copied-toast": "URL скопійовано до буфера обміну"
|
||||
},
|
||||
"section": {
|
||||
"open-section": "Відкрити розділ",
|
||||
"edit-section": "Редагувати",
|
||||
"expand-collapse": "Розгорнути / Згорнути",
|
||||
"move-section": "Перемістити до",
|
||||
"remove-section": "Видалити"
|
||||
}
|
||||
},
|
||||
"footer": {
|
||||
"dev-by": "Розроблено",
|
||||
"licensed-under": "Ліцензія згідно",
|
||||
"get-the": "Отримати",
|
||||
"source-code": "вихідний код"
|
||||
},
|
||||
"interactive-editor": {
|
||||
"menu": {
|
||||
"start-editing-tooltip": "Увійти в інтерактивний редактор",
|
||||
"edit-site-data-subheading": "Редагувати дані сайту",
|
||||
"edit-page-info-btn": "Редагувати інформацію про сторінку",
|
||||
"edit-page-info-tooltip": "Назва програми, опис, навігаційні посилання, текст нижнього колонтитула тощо",
|
||||
"edit-app-config-btn": "Редагувати конфігурацію програми",
|
||||
"edit-app-config-tooltip": "Усі інші параметри конфігурації програми",
|
||||
"edit-pages-btn": "Редагувати сторінки",
|
||||
"edit-pages-tooltip": "Додати або видалити додаткові перегляди",
|
||||
"config-save-methods-subheading": "Параметри збереження конфігурації",
|
||||
"save-locally-btn": "Зберегти локально",
|
||||
"save-locally-tooltip": "Зберегти конфігурацію локально у сховище браузера. Це не вплине на файл конфігурації, але зміни буде збережено лише на цьому пристрої",
|
||||
"save-disk-btn": "Зберегти на диск",
|
||||
"save-disk-tooltip": "Збережіть конфігурацію у файл conf.yml на диску. Це створить резервну копію, а потім перезапише існуючу конфігурацію",
|
||||
"export-config-btn": "Експорт конфігурації",
|
||||
"export-config-tooltip": "Переглянути та експортувати нову конфігурацію у файл або в буфер обміну",
|
||||
"cloud-backup-btn": "Резервне копіювання у хмару",
|
||||
"cloud-backup-tooltip": "Зберегти зашифровану резервну копію конфігурації у хмару",
|
||||
"edit-raw-config-btn": "Редагувати необроблену конфігурацію",
|
||||
"edit-raw-config-tooltip": "Переглянути та змінити необроблену конфігурацію за допомогою редактора JSON",
|
||||
"cancel-changes-btn": "Скасувати редагування",
|
||||
"cancel-changes-tooltip": "Скинути поточні зміни та вийти з режиму редагування. Це не вплине на вашу збережену конфігурацію",
|
||||
"edit-mode-name": "Режим редагування",
|
||||
"edit-mode-subtitle": "Ви перебуваєте в режимі редагування",
|
||||
"edit-mode-description": "Це означає, що ви можете вносити зміни до конфігурації та переглядати результати, але поки ви не оберете збереження, жодні ваші зміни не будуть записані.",
|
||||
"save-stage-btn": "Зберегти",
|
||||
"cancel-stage-btn": "Скасувати",
|
||||
"save-locally-warning": "Якщо ви продовжите, зміни буде збережено лише у вашому браузері. Вам слід експортувати копію вашої конфігурації для використання на інших машинах. Бажаєте продовжити?"
|
||||
},
|
||||
"edit-item": {
|
||||
"missing-title-err": "Потрібна назва елемента"
|
||||
},
|
||||
"edit-section": {
|
||||
"edit-section-title": "Редагувати розділ",
|
||||
"add-section-title": "Додати новий розділ",
|
||||
"edit-tooltip": "Натисніть, щоб редагувати, або клацніть правою кнопкою миші, щоб отримати додаткові параметри",
|
||||
"remove-confirm": "Ви впевнені, що хочете видалити цей розділ? Цю дію можна скасувати пізніше."
|
||||
},
|
||||
"edit-app-config": {
|
||||
"warning-msg-title": "Дійте з обережністю",
|
||||
"warning-msg-l1": "Ці параметри призначені для розширеної конфігурації програми.",
|
||||
"warning-msg-l2": "Якщо ви не впевнені щодо будь-якого значення, зверніться до",
|
||||
"warning-msg-docs": "Документація",
|
||||
"warning-msg-l3": ", щоб уникнути небажаних наслідків."
|
||||
},
|
||||
"export": {
|
||||
"export-title": "Експорт конфігурації",
|
||||
"copy-clipboard-btn": "Копіювати до буфера обміну",
|
||||
"copy-clipboard-tooltip": "Скопіювати всі конфігурації програми до системного буфера обміну у форматі YAML",
|
||||
"download-file-btn": "Завантажити як файл",
|
||||
"download-file-tooltip": "Завантажте всю конфігурацію програми на свій пристрій у файлі YAML",
|
||||
"view-title": "Переглянути конфігурацію"
|
||||
}
|
||||
},
|
||||
"widgets": {
|
||||
"general": {
|
||||
"loading": "Завантаження...",
|
||||
"show-more": "Розгорнути детальніше",
|
||||
"show-less": "Показати менше",
|
||||
"open-link": "Продовжити читання"
|
||||
},
|
||||
"pi-hole": {
|
||||
"status-heading": "Статус"
|
||||
},
|
||||
"stat-ping": {
|
||||
"up": "Онлайн",
|
||||
"down": "Офлайн"
|
||||
},
|
||||
"net-data": {
|
||||
"cpu-chart-title": "Історія CPU",
|
||||
"mem-chart-title": "Використання пам'яті",
|
||||
"mem-breakdown-title": "Переривання пам'яті",
|
||||
"load-chart-title": "Завантаження системи"
|
||||
},
|
||||
"glances": {
|
||||
"disk-space-free": "Вільно",
|
||||
"disk-space-used": "Використано",
|
||||
"disk-mount-point": "Точка монтування",
|
||||
"disk-file-system": "Файлова система",
|
||||
"disk-io-read": "Читання",
|
||||
"disk-io-write": "Запис",
|
||||
"system-load-desc": "Середня кількість процесів, що очікують у черзі виконання, для всіх ядер"
|
||||
},
|
||||
"system-info": {
|
||||
"uptime": "Час роботи"
|
||||
},
|
||||
"flight-data": {
|
||||
"arrivals": "Прибуття",
|
||||
"departures": "Відправлення"
|
||||
},
|
||||
"tfl-status": {
|
||||
"good-service-all": "Якісний сервіс на всіх лініях",
|
||||
"good-service-rest": "Якісний сервіс на всіх інших лініях"
|
||||
},
|
||||
"synology-download": {
|
||||
"download": "Завантажити (Download)",
|
||||
"upload": "Вивантажити (Upload)",
|
||||
"downloaded": "Завантажено",
|
||||
"uploaded": "Вивантажено",
|
||||
"remaining": "Залишилося",
|
||||
"up": "Вгору",
|
||||
"down": "Вниз"
|
||||
},
|
||||
"gluetun-status": {
|
||||
"vpn-ip": "VPN IP",
|
||||
"country": "Країна",
|
||||
"region": "Регіон",
|
||||
"city": "Місто",
|
||||
"post-code": "Поштовий індекс",
|
||||
"location": "Розташування",
|
||||
"timezone": "Часовий пояс",
|
||||
"organization": "Організація"
|
||||
},
|
||||
"nextcloud": {
|
||||
"active": "активно",
|
||||
"and": "і",
|
||||
"applications": "програми",
|
||||
"available": "доступно",
|
||||
"away": "відсутнє",
|
||||
"cache-full": "КЕШ ЗАПОВНЕНИЙ",
|
||||
"chat-room": "кімната чату",
|
||||
"delete-all": "Видалити все",
|
||||
"delete-notification": "Видалити сповіщення",
|
||||
"disabled": "вимкнено",
|
||||
"disk-quota": "Дискова квота",
|
||||
"disk-space": "Простір на диску",
|
||||
"dnd": "Не турбувати",
|
||||
"email": "електронна пошта",
|
||||
"enabled": "увімкнено",
|
||||
"federated-shares-ucfirst": "Об'єднані спільні ресурси",
|
||||
"federated-shares": "об'єднані спільні ресурси",
|
||||
"files": "файл{множина}",
|
||||
"free": "вільний",
|
||||
"groups": "групи",
|
||||
"hit-rate": "швидкість процесів",
|
||||
"hits": "процеси",
|
||||
"home": "дім",
|
||||
"in": "у",
|
||||
"keys": "ключі",
|
||||
"last-24-hours": "за останні 24 години",
|
||||
"last-5-minutes": "останні 5 хвилин",
|
||||
"last-hour": "за останню годину",
|
||||
"last-login": "Останній вхід",
|
||||
"last-restart": "Останній перезапуск",
|
||||
"load-averages": "Завантажити середні значення для всіх ядер ЦПУ",
|
||||
"local-shares": "Локальні спільні ресурси",
|
||||
"local": "локальний",
|
||||
"max-keys": "макс. ключі",
|
||||
"memory-used": "використана пам'ять",
|
||||
"memory-utilisation": "використання пам'яті",
|
||||
"memory": "пам'ять",
|
||||
"misses": "пропуски",
|
||||
"no-notifications": "Немає сповіщень",
|
||||
"no-pending-updates": "Немає очікуваних оновлень",
|
||||
"nothing-to-show": "Зараз тут нічого показувати",
|
||||
"of-which": "з яких",
|
||||
"of": "з",
|
||||
"offline": "Офлайн",
|
||||
"online": "Онлайн",
|
||||
"other": "інше",
|
||||
"overall": "Загалом",
|
||||
"private-link": "приватне посилання",
|
||||
"public-link": "публічне посилання",
|
||||
"quota-enabled": "Дискова квота {не}ввімкнена для цього користувача",
|
||||
"received": "отримано",
|
||||
"scripts": "скрипти",
|
||||
"sent": "надіслано",
|
||||
"started": "Розпочато",
|
||||
"storages-by-type": "Сховища за типом",
|
||||
"storages": "сховище{множина}",
|
||||
"strings-use": "рядки використання",
|
||||
"tasks": "Завдання",
|
||||
"total-files": "загальна кількість файлів",
|
||||
"total-users": "загальна кількість користувачів",
|
||||
"total": "усього",
|
||||
"until": "Доки",
|
||||
"updates-available-for": "Оновлення доступні для",
|
||||
"updates-available": "доступне оновлення{множина}",
|
||||
"used": "використано",
|
||||
"user": "користувач",
|
||||
"using": "використовуючи",
|
||||
"version": "версія",
|
||||
"wasted": "витрачено"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10,6 +10,9 @@
|
||||
"clear-search-tooltip": "清空搜索",
|
||||
"enter-to-search-web": "点击回车搜索"
|
||||
},
|
||||
"splash-screen": {
|
||||
"loading": "加载中"
|
||||
},
|
||||
"login": {
|
||||
"title": "Dashy",
|
||||
"guest-label": "访客访问",
|
||||
@@ -41,6 +44,37 @@
|
||||
"logged-in-guest": "以访客身份登陆,正在跳转...",
|
||||
"error-guest-access": "不允许访客访问"
|
||||
},
|
||||
"app-info": {
|
||||
"title": "应用信息",
|
||||
"error-log": "错误日志",
|
||||
"no-errors": "未检测到最近的错误",
|
||||
"help-support": "帮助与支持",
|
||||
"help-support-description": "如需有关Dashy运行或配置的支持,请查看",
|
||||
"help-support-discussions": "讨论",
|
||||
"support-dashy": "支持Dashy",
|
||||
"support-dashy-description": "了解参与Dashy项目的方式,请查看",
|
||||
"support-dashy-link": "贡献页面",
|
||||
"report-bug": "报告漏洞",
|
||||
"report-bug-description": "如果您认为发现了漏洞,请",
|
||||
"report-bug-link": "提交问题",
|
||||
"more-info": "更多信息",
|
||||
"source": "源代码",
|
||||
"documentation": "文档",
|
||||
"privacy-and-security": "隐私与安全",
|
||||
"privacy-and-security-l1": "关于Dashy如何管理您的数据的详细信息,请参阅",
|
||||
"privacy-and-security-privacy-policy": "隐私政策",
|
||||
"privacy-and-security-advice": "如果您需要保护您的仪表盘,请参考",
|
||||
"privacy-and-security-advice-link": "管理文档",
|
||||
"privacy-and-security-security-issue": "如果您发现潜在的安全问题,请遵循我们的",
|
||||
"privacy-and-security-security-policy": "安全政策",
|
||||
"license": "许可证",
|
||||
"license-under": "根据许可证授权",
|
||||
"licence-third-party": "有关第三方模块的许可证,请参阅",
|
||||
"licence-third-party-link": "法律信息",
|
||||
"list-contributors": "查看所有贡献者和致谢的完整列表,请查看",
|
||||
"list-contributors-link": "致谢",
|
||||
"version": "版本"
|
||||
},
|
||||
"config": {
|
||||
"main-tab": "主菜单",
|
||||
"view-config-tab": "视图设置",
|
||||
@@ -55,6 +89,8 @@
|
||||
"rebuild-app-button": "重建应用",
|
||||
"change-language-button": "更改语言",
|
||||
"reset-settings-button": "恢复本地设置",
|
||||
"disabled-note": "您的管理员已禁用某些配置功能",
|
||||
"small-screen-note": "您正在使用非常小的屏幕,某些菜单屏幕可能不够优化",
|
||||
"app-info-button": "应用详情",
|
||||
"backup-note": "建议在进行更改之前备份你的配置。",
|
||||
"reset-config-msg-l1": "这将从本地存储中删除所有用户设置,但不会影响‘conf.yml’文件。",
|
||||
@@ -69,7 +105,11 @@
|
||||
"css-note-label": "注意",
|
||||
"css-note-l1": "你需要刷新页面才能使更改生效。",
|
||||
"css-note-l2": "样式覆盖仅存储在本地,因此建议复制你的 CSS。",
|
||||
"css-note-l3": "要删除所有自定义样式,请删除内容并点击保存更改"
|
||||
"css-note-l3": "要删除所有自定义样式,请删除内容并点击保存更改",
|
||||
"custom-css": {
|
||||
"title": "自定义 CSS",
|
||||
"base-theme": "基础主题"
|
||||
}
|
||||
},
|
||||
"alternate-views": {
|
||||
"alternate-view-heading": "切换视图",
|
||||
@@ -91,7 +131,9 @@
|
||||
"config-launcher-tooltip": "更新设置",
|
||||
"sign-out-tooltip": "注销",
|
||||
"sign-in-tooltip": "登陆",
|
||||
"sign-in-welcome": "你好 {username}!"
|
||||
"sign-in-welcome": "你好 {username}!",
|
||||
"hide": "Hide",
|
||||
"open": "Open"
|
||||
},
|
||||
"updates": {
|
||||
"app-version-note": "Dashy 版本",
|
||||
@@ -155,7 +197,7 @@
|
||||
"cloud-sync": {
|
||||
"title": "云备份 & 云恢复",
|
||||
"intro-l1": "云备份和云恢复是一项试验性功能,你将配置上传到网络,然后在其他设备或 Dashy 实例上恢复。",
|
||||
"intro-l2": "所有数据都使用 AES 端到端加密,使用你的密码作为密钥。",
|
||||
"intro-l2": "所有数据都使用AES端对端加密,使用你的密码作为密钥。",
|
||||
"intro-l3": "有关更多信息,请参阅",
|
||||
"backup-title-setup": "创建备份",
|
||||
"backup-title-update": "更新备份",
|
||||
@@ -207,7 +249,13 @@
|
||||
"move-section": "移动到",
|
||||
"remove-section": "删除"
|
||||
}
|
||||
},
|
||||
},
|
||||
"footer": {
|
||||
"dev-by": "开发者:",
|
||||
"licensed-under": "许可证授权:",
|
||||
"get-the": "获取",
|
||||
"source-code": "源代码"
|
||||
},
|
||||
"interactive-editor": {
|
||||
"menu": {
|
||||
"start-editing-tooltip": "进入交互编辑器",
|
||||
@@ -312,87 +360,86 @@
|
||||
"up": "上行",
|
||||
"down": "下行"
|
||||
},
|
||||
"gluetun-status": {
|
||||
"vpn-ip": "VPN IP",
|
||||
"country": "国家",
|
||||
"region": "地区",
|
||||
"city": "城市",
|
||||
"post-code": "邮编",
|
||||
"location": "位置",
|
||||
"timezone": "时区",
|
||||
"organization": "组织"
|
||||
},
|
||||
"nextcloud": {
|
||||
"active": "激活",
|
||||
"and": "和",
|
||||
"applications": "应用程序",
|
||||
"available": "存在",
|
||||
"away": "离开",
|
||||
"cache-full": "缓存已满",
|
||||
"chat-room": "聊天室",
|
||||
"delete-all": "全部删除",
|
||||
"delete-notification": "删除通知",
|
||||
"disabled": "已禁用",
|
||||
"disk-quota": "磁盘配额",
|
||||
"disk-space": "磁盘空间",
|
||||
"dnd": "请勿打扰",
|
||||
"email": "邮箱",
|
||||
"enabled": "已启用",
|
||||
"federated-shares-ucfirst": "Federated shares",
|
||||
"federated-shares": "federated shares",
|
||||
"files": "文件{plural}",
|
||||
"free": "可用",
|
||||
"groups": "组",
|
||||
"hit-rate": "命中率",
|
||||
"hits": "命中",
|
||||
"home": "home",
|
||||
"in": "in",
|
||||
"keys": "keys",
|
||||
"last-24-hours": "24 小时内",
|
||||
"last-5-minutes": "5 分钟内",
|
||||
"last-hour": "1 小时内",
|
||||
"last-login": "最后登陆",
|
||||
"last-restart": "最后重启",
|
||||
"load-averages": "所有CPU的平均负载",
|
||||
"local-shares": "本地分享",
|
||||
"local": "本地",
|
||||
"max-keys": "max keys",
|
||||
"memory-used": "已用内存",
|
||||
"memory-utilisation": "内存使用率",
|
||||
"memory": "内存",
|
||||
"misses": "misses",
|
||||
"no-notifications": "暂无通知",
|
||||
"no-pending-updates": "没有挂起的更新",
|
||||
"nothing-to-show": "当前没有可展示的内容",
|
||||
"of-which": "of which",
|
||||
"of": "of",
|
||||
"offline": "离线",
|
||||
"online": "在线",
|
||||
"other": "其他",
|
||||
"overall": "Overall",
|
||||
"private-link": "私有链接",
|
||||
"public-link": "公开链接",
|
||||
"quota-enabled": "这个用户{not}启用磁盘配额",
|
||||
"received": "已收到",
|
||||
"scripts": "脚本",
|
||||
"sent": "发送",
|
||||
"started": "已开始",
|
||||
"storages-by-type": "按类型存储",
|
||||
"storages": "存储{plural}",
|
||||
"strings-use": "使用的字符",
|
||||
"tasks": "任务",
|
||||
"total-files": "文件总数",
|
||||
"total-users": "用户总数",
|
||||
"total": "全部",
|
||||
"until": "直到",
|
||||
"updates-available-for": "有可用的更新",
|
||||
"updates-available": "{plural} 有可用更新",
|
||||
"used": "已使用",
|
||||
"user": "用户",
|
||||
"using": "使用中",
|
||||
"version": "版本",
|
||||
"wasted": "浪费"
|
||||
"gluetun-status": {
|
||||
"vpn-ip": "VPN IP",
|
||||
"country": "国家",
|
||||
"region": "地区",
|
||||
"city": "城市",
|
||||
"post-code": "邮编",
|
||||
"location": "位置",
|
||||
"timezone": "时区",
|
||||
"organization": "组织"
|
||||
},
|
||||
"nextcloud": {
|
||||
"active": "激活",
|
||||
"and": "和",
|
||||
"applications": "应用程序",
|
||||
"available": "存在",
|
||||
"away": "离开",
|
||||
"cache-full": "缓存已满",
|
||||
"chat-room": "聊天室",
|
||||
"delete-all": "全部删除",
|
||||
"delete-notification": "删除通知",
|
||||
"disabled": "已禁用",
|
||||
"disk-quota": "磁盘配额",
|
||||
"disk-space": "磁盘空间",
|
||||
"dnd": "请勿打扰",
|
||||
"email": "邮箱",
|
||||
"enabled": "已启用",
|
||||
"federated-shares-ucfirst": "联合分享",
|
||||
"federated-shares": "联合分享",
|
||||
"files": "文件{plural}",
|
||||
"free": "可用",
|
||||
"groups": "组",
|
||||
"hit-rate": "命中率",
|
||||
"hits": "命中",
|
||||
"home": "home",
|
||||
"in": "in",
|
||||
"keys": "keys",
|
||||
"last-24-hours": "24 小时内",
|
||||
"last-5-minutes": "5 分钟内",
|
||||
"last-hour": "1 小时内",
|
||||
"last-login": "最后登陆",
|
||||
"last-restart": "最后重启",
|
||||
"load-averages": "所有CPU的平均负载",
|
||||
"local-shares": "本地分享",
|
||||
"local": "本地",
|
||||
"max-keys": "max keys",
|
||||
"memory-used": "已用内存",
|
||||
"memory-utilisation": "内存使用率",
|
||||
"memory": "内存",
|
||||
"misses": "misses",
|
||||
"no-notifications": "暂无通知",
|
||||
"no-pending-updates": "没有挂起的更新",
|
||||
"nothing-to-show": "当前没有可展示的内容",
|
||||
"of-which": "of which",
|
||||
"of": "of",
|
||||
"offline": "离线",
|
||||
"online": "在线",
|
||||
"other": "其他",
|
||||
"overall": "Overall",
|
||||
"private-link": "私有链接",
|
||||
"public-link": "公开链接",
|
||||
"quota-enabled": "这个用户{not}启用磁盘配额",
|
||||
"received": "已收到",
|
||||
"scripts": "脚本",
|
||||
"sent": "发送",
|
||||
"started": "已开始",
|
||||
"storages-by-type": "按类型存储",
|
||||
"storages": "存储{plural}",
|
||||
"strings-use": "使用的字符",
|
||||
"tasks": "任务",
|
||||
"total-files": "文件总数",
|
||||
"total-users": "用户总数",
|
||||
"total": "全部",
|
||||
"until": "直到",
|
||||
"updates-available-for": "有可用的更新",
|
||||
"updates-available": "{plural} 有可用更新",
|
||||
"used": "已使用",
|
||||
"user": "用户",
|
||||
"using": "使用中",
|
||||
"version": "版本",
|
||||
"wasted": "浪费"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,212 +1,446 @@
|
||||
{
|
||||
"home": {
|
||||
"no-results": "沒有結果",
|
||||
"no-items-section": "無可顯示項目"
|
||||
},
|
||||
"search": {
|
||||
"search-label": "搜尋",
|
||||
"search-placeholder": "開始輸入以搜尋",
|
||||
"clear-search-tooltip": "清空搜尋",
|
||||
"enter-to-search-web": "按下enter來搜尋網際網路"
|
||||
},
|
||||
"login": {
|
||||
"title": "Dashy",
|
||||
"username-label": "使用者名稱",
|
||||
"password-label": "密碼",
|
||||
"login-button": "登入",
|
||||
"remember-me-label": "記住密碼",
|
||||
"remember-me-never": "永不",
|
||||
"remember-me-hour": "4小時",
|
||||
"remember-me-day": "1 天",
|
||||
"remember-me-week": "1 周",
|
||||
"remember-me-long-time": "很久很久...",
|
||||
"error-missing-username": "請輸入使用者名稱",
|
||||
"error-missing-password": "請輸入密碼",
|
||||
"error-incorrect-username": "使用者名稱不存在",
|
||||
"error-incorrect-password": "密碼錯誤",
|
||||
"success-message": "正在登入...",
|
||||
"logout-message": "以登出",
|
||||
"already-logged-in-title": "已成功登入",
|
||||
"already-logged-in-text": "正以此身分登入",
|
||||
"proceed-to-dashboard": "前往儀表板",
|
||||
"log-out-button": "登出",
|
||||
"proceed-guest-button": "以訪客模式繼續"
|
||||
},
|
||||
"config": {
|
||||
"main-tab": "主頁面",
|
||||
"view-config-tab": "視圖配置",
|
||||
"edit-config-tab": "編輯配置",
|
||||
"custom-css-tab": "自訂樣式",
|
||||
"heading": "配置選項",
|
||||
"download-config-button": "下載/輸出配置",
|
||||
"edit-config-button": "編輯配置",
|
||||
"edit-css-button": "編輯自訂 CSS",
|
||||
"cloud-sync-button": "啟用雲端同步",
|
||||
"edit-cloud-sync-button": "編輯雲端同步",
|
||||
"rebuild-app-button": "重新建置",
|
||||
"change-language-button": "更改語言",
|
||||
"reset-settings-button": "重設本地配置",
|
||||
"app-info-button": "App 詳情",
|
||||
"backup-note": "建議在對您的配置做出更動之前先進行備份。",
|
||||
"reset-config-msg-l1": "這會移除所有的本地配置,但不會影響‘conf.yml’文件。",
|
||||
"reset-config-msg-l2": "若您還想再使用您所做的本地更動,您應該要先備份他們。",
|
||||
"reset-config-msg-l3": "確定要執行?",
|
||||
"data-cleared-msg": "成功清空數據",
|
||||
"actions-label": "動作",
|
||||
"copy-config-label": "複製配置",
|
||||
"data-copied-msg": "配置已複製到剪貼板",
|
||||
"reset-config-label": "重置配置",
|
||||
"css-save-btn": "保存更動",
|
||||
"css-note-label": "注意",
|
||||
"css-note-l1": "您需要刷新頁面更動才會生效。",
|
||||
"css-note-l2": "樣式覆蓋只會儲存在本地,因此建議您複製您的 CSS。",
|
||||
"css-note-l3": "若要删除所有自訂樣式,請刪除內容並點擊保存更動"
|
||||
},
|
||||
"alternate-views": {
|
||||
"default": "預設",
|
||||
"workspace": "工作區",
|
||||
"minimal": "最小化"
|
||||
},
|
||||
"settings": {
|
||||
"theme-label": "主題",
|
||||
"layout-label": "布局",
|
||||
"layout-auto": "自動",
|
||||
"layout-horizontal": "水平",
|
||||
"layout-vertical": "垂直",
|
||||
"item-size-label": "尺寸",
|
||||
"item-size-small": "小",
|
||||
"item-size-medium": "中",
|
||||
"item-size-large": "大",
|
||||
"config-launcher-label": "配置",
|
||||
"config-launcher-tooltip": "更新配置",
|
||||
"sign-out-tooltip": "登出",
|
||||
"sign-in-tooltip": "登入",
|
||||
"sign-in-welcome": "您好 {username}!"
|
||||
},
|
||||
"updates": {
|
||||
"app-version-note": "Dashy 版本",
|
||||
"up-to-date": "已經是最新版了",
|
||||
"out-of-date": "有可用更新",
|
||||
"unsupported-version-l1": "您使用的是不受支援的 Dashy 版本",
|
||||
"unsupported-version-l2": "為獲得最佳體驗和最新的安全性更新,請更新至"
|
||||
},
|
||||
"language-switcher": {
|
||||
"title": "更改App語言",
|
||||
"dropdown-label": "選擇語言",
|
||||
"save-button": "保存",
|
||||
"success-msg": "切換語言至"
|
||||
},
|
||||
"theme-maker": {
|
||||
"title": "主題編輯器",
|
||||
"export-button": "輸出自訂變數",
|
||||
"reset-button": "重置樣式",
|
||||
"show-all-button": "顯示所有變數",
|
||||
"change-fonts-button": "更改字體",
|
||||
"save-button": "保存",
|
||||
"cancel-button": "取消",
|
||||
"saved-toast": "{theme} 更新成功",
|
||||
"copied-toast": "{theme} 的主题資料已複製到剪貼板",
|
||||
"reset-toast": "{theme} 的自訂顏色已移除"
|
||||
},
|
||||
"config-editor": {
|
||||
"save-location-label": "保存位置",
|
||||
"location-local-label": "本地保存",
|
||||
"location-disk-label": "將變更寫入至配置文件",
|
||||
"save-button": "保存變更",
|
||||
"preview-button": "預覽變更",
|
||||
"valid-label": "配置有效",
|
||||
"status-success-msg": "工作完成",
|
||||
"status-fail-msg": "工作失敗",
|
||||
"success-msg-disk": "配置文件寫入成功",
|
||||
"success-msg-local": "本地變更保存成功",
|
||||
"success-note-l1": "App應會自動重新建置",
|
||||
"success-note-l2": "可能會需要一分鐘",
|
||||
"success-note-l3": "您需要刷新頁面以讓變更生效",
|
||||
"error-msg-save-mode": "请選擇保存位置:本地或者文件",
|
||||
"error-msg-cannot-save": "保存配置時出錯",
|
||||
"error-msg-bad-json": "JSON 錯誤,可能是格式錯誤",
|
||||
"warning-msg-validation": "驗證警告",
|
||||
"not-admin-note": "您不能將變更寫入文件,因為您不是系統管理員"
|
||||
},
|
||||
"app-rebuild": {
|
||||
"title": "重新建置App",
|
||||
"rebuild-note-l1": "寫入 conf.yml 文件的更動需要重新建置App才會生效。",
|
||||
"rebuild-note-l2": "重新建置應該會自動發生。若没有,您可以在此手動執行。",
|
||||
"rebuild-note-l3": "本地儲存的變更不需要重新建置即會生效。",
|
||||
"rebuild-button": "開始重新建置",
|
||||
"rebuilding-status-1": "建置中...",
|
||||
"rebuilding-status-2": "這將持續一段時間",
|
||||
"error-permission": "您沒有權限執行此操作",
|
||||
"success-msg": "建置成功",
|
||||
"fail-msg": "建置失敗",
|
||||
"reload-note": "你需要刷新頁面以使變更生效",
|
||||
"reload-button": "刷新頁面"
|
||||
},
|
||||
"cloud-sync": {
|
||||
"title": "雲端備份 & 雲端恢復",
|
||||
"intro-l1": "雲端備份和雲端恢復是選用功能,這能讓您把配置上傳到網路,然後在其他設備或 Dashy 實例上恢復。",
|
||||
"intro-l2": "所有資料都使用 AES 端到端加密,並使用您的密碼作為密鑰。",
|
||||
"intro-l3": "若想了解更多訊息,請參考",
|
||||
"backup-title-setup": "創建備份",
|
||||
"backup-title-update": "更新備份",
|
||||
"password-label-setup": "選擇密碼",
|
||||
"password-label-update": "輸入密碼",
|
||||
"backup-button-setup": "備份",
|
||||
"backup-button-update": "更新備份",
|
||||
"backup-id-label": "您的備份 ID",
|
||||
"backup-id-note": "您將需要此ID來恢復備份,所以請與密碼一起妥善保存。",
|
||||
"restore-title": "恢復備份",
|
||||
"restore-id-label": "備份 ID",
|
||||
"restore-password-label": "密碼",
|
||||
"restore-button": "恢復",
|
||||
"backup-missing-password": "請輸入密碼",
|
||||
"backup-error-unknown": "無法處理請求",
|
||||
"backup-error-password": "密碼錯誤,請重新輸入",
|
||||
"backup-success-msg": "備份完成",
|
||||
"restore-success-msg": "恢復完成"
|
||||
},
|
||||
"menu": {
|
||||
"open-section-title": "以...開啟",
|
||||
"sametab": "目前分頁",
|
||||
"newtab": "新分頁",
|
||||
"workspace": "工作區",
|
||||
"options-section-title": "選項",
|
||||
"edit-item": "編輯",
|
||||
"move-item": "複製或移動",
|
||||
"remove-item": "移除"
|
||||
},
|
||||
"context-menus": {
|
||||
"item": {
|
||||
"open-section-title": "以...開啟",
|
||||
"sametab": "目前分頁",
|
||||
"newtab": "新分頁",
|
||||
"workspace": "工作區",
|
||||
"clipboard": "複製到剪貼板",
|
||||
"options-section-title": "選項",
|
||||
"edit-item": "編輯",
|
||||
"move-item": "複製或移動",
|
||||
"remove-item": "移除",
|
||||
"copied-toast": "已將URL複製到剪貼板"
|
||||
},
|
||||
"section": {
|
||||
"open-section": "開啟區域",
|
||||
"edit-section": "編輯",
|
||||
"move-section": "移動至",
|
||||
"remove-section": "移除"
|
||||
}
|
||||
},
|
||||
"interactive-editor": {
|
||||
"menu": {
|
||||
"start-editing-tooltip": "進入互動式編輯器",
|
||||
"save-locally-btn": "本地保存",
|
||||
"save-disk-btn": "儲存配置文件",
|
||||
"export-config-btn": "輸出配置",
|
||||
"cloud-backup-btn": "備份至雲端",
|
||||
"cancel-changes-btn": "取消編輯",
|
||||
"edit-mode-name": "編輯模式",
|
||||
"edit-mode-subtitle": "目前為編輯模式",
|
||||
"save-stage-btn": "保存",
|
||||
"cancel-stage-btn": "取消"
|
||||
}
|
||||
"home": {
|
||||
"no-results": "沒有結果",
|
||||
"no-data": "未設定資料",
|
||||
"no-items-section": "無可顯示項目"
|
||||
},
|
||||
"search": {
|
||||
"search-label": "搜尋",
|
||||
"search-placeholder": "開始輸入以篩選",
|
||||
"clear-search-tooltip": "清空搜尋",
|
||||
"enter-to-search-web": "按下 Enter 鍵來搜尋網際網路"
|
||||
},
|
||||
"splash-screen": {
|
||||
"loading": "正在載入"
|
||||
},
|
||||
"login": {
|
||||
"title": "Dashy",
|
||||
"guest-label": "訪客存取",
|
||||
"username-label": "使用者名稱",
|
||||
"password-label": "密碼",
|
||||
"login-button": "登入",
|
||||
"remember-me-label": "記住密碼",
|
||||
"remember-me-never": "永不",
|
||||
"remember-me-hour": "4 小時",
|
||||
"remember-me-day": "1 天",
|
||||
"remember-me-week": "1 周",
|
||||
"remember-me-long-time": "很久很久...",
|
||||
"error-missing-username": "請輸入使用者名稱",
|
||||
"error-missing-password": "請輸入密碼",
|
||||
"error-incorrect-username": "使用者名稱不存在",
|
||||
"error-incorrect-password": "密碼錯誤",
|
||||
"success-message": "正在登入...",
|
||||
"logout-message": "已登出",
|
||||
"already-logged-in-title": "已成功登入",
|
||||
"already-logged-in-text": "正以此身分登入",
|
||||
"proceed-to-dashboard": "前往儀表板",
|
||||
"log-out-button": "登出",
|
||||
"proceed-guest-button": "以訪客模式繼續",
|
||||
"guest-intro-1": "此實例啟用了訪客存取。",
|
||||
"guest-intro-2": "訪客僅能檢視儀表板,無法對硬碟寫入變更。",
|
||||
"error": "錯誤",
|
||||
"error-no-user-configured": "未啟用驗證,或未設定任何使用者",
|
||||
"error-go-home-button": "返回首頁",
|
||||
"logged-in-guest": "已以訪客身分登入,正在重新導向...",
|
||||
"error-guest-access": "不允許訪客存取"
|
||||
},
|
||||
"app-info": {
|
||||
"title": "應用程式資訊",
|
||||
"error-log": "錯誤紀錄",
|
||||
"no-errors": "近期未偵測到錯誤",
|
||||
"help-support": "幫助與支援",
|
||||
"help-support-description": "關於取得執行或設定 Dashy 的支援,請前往",
|
||||
"help-support-discussions": "討論區",
|
||||
"support-dashy": "支持 Dashy",
|
||||
"support-dashy-description": "您也能幫助 Dashy!請參閱",
|
||||
"support-dashy-link": "貢獻頁面",
|
||||
"report-bug": "回報錯誤",
|
||||
"report-bug-description": "若您認為您找到錯誤,請",
|
||||
"report-bug-link": "提出問題",
|
||||
"more-info": "更多資訊",
|
||||
"source": "原始碼",
|
||||
"documentation": "說明文件",
|
||||
"privacy-and-security": "隱私權和安全性",
|
||||
"privacy-and-security-l1": "若要了解 Dashy 是如何管理您的資料,請參閱",
|
||||
"privacy-and-security-privacy-policy": "隱私權政策",
|
||||
"privacy-and-security-advice": "關於提升儀錶板安全性的建議,請參閱",
|
||||
"privacy-and-security-advice-link": "管理文件",
|
||||
"privacy-and-security-security-issue": "若您找到潛在的安全問題,請回報,並遵照我們的",
|
||||
"privacy-and-security-security-policy": "安全政策",
|
||||
"license": "授權條款",
|
||||
"license-under": "授權條款為",
|
||||
"licence-third-party": "關於第三方模組的授權條款,請參閱",
|
||||
"licence-third-party-link": "法律聲明",
|
||||
"list-contributors": "關於貢獻和致謝者的完整名單,請參閱",
|
||||
"list-contributors-link": "致謝",
|
||||
"version": "版本"
|
||||
},
|
||||
"config": {
|
||||
"main-tab": "主頁面",
|
||||
"view-config-tab": "檢視設定",
|
||||
"edit-config-tab": "編輯設定",
|
||||
"custom-css-tab": "自訂樣式",
|
||||
"heading": "設定選項",
|
||||
"download-config-button": "檢視 / 匯出設定",
|
||||
"edit-config-button": "編輯設定",
|
||||
"edit-css-button": "編輯自訂 CSS",
|
||||
"cloud-sync-button": "啟用雲端同步",
|
||||
"edit-cloud-sync-button": "編輯雲端同步",
|
||||
"rebuild-app-button": "重新建置",
|
||||
"change-language-button": "更改語言",
|
||||
"reset-settings-button": "重設本機設定",
|
||||
"disabled-note": "某些設定功能被您的管理員停用",
|
||||
"small-screen-note": "您使用的裝置螢幕過小,此選單的某些畫面可能會跑版",
|
||||
"app-info-button": "App 詳細資訊",
|
||||
"backup-note": "建議在對您的設定做出變更之前先進行備份。",
|
||||
"reset-config-msg-l1": "這會移除所有的本機設定,但不會影響 ‘conf.yml’ 檔案。",
|
||||
"reset-config-msg-l2": "如果您未來還想使用您所做出的本機變更的話,請先備份。",
|
||||
"reset-config-msg-l3": "您確定要繼續嗎?",
|
||||
"data-cleared-msg": "已成功清空資料",
|
||||
"actions-label": "動作",
|
||||
"copy-config-label": "複製設定",
|
||||
"data-copied-msg": "設定已複製到剪貼簿",
|
||||
"reset-config-label": "重置設定",
|
||||
"css-save-btn": "儲存變更",
|
||||
"css-note-label": "注意",
|
||||
"css-note-l1": "您需要重新整理頁面才能套用變更。",
|
||||
"css-note-l2": "樣式覆寫只會儲存在本機,因此建議您複製您的 CSS。",
|
||||
"css-note-l3": "若要删除所有自訂樣式,請刪除內容並點擊儲存變更",
|
||||
"custom-css": {
|
||||
"title": "自訂 CSS",
|
||||
"base-theme": "基礎主題"
|
||||
}
|
||||
}
|
||||
},
|
||||
"alternate-views": {
|
||||
"alternate-view-heading": "切換檢視",
|
||||
"default": "預設",
|
||||
"workspace": "工作區",
|
||||
"minimal": "最小化"
|
||||
},
|
||||
"settings": {
|
||||
"theme-label": "主題",
|
||||
"layout-label": "版面配置",
|
||||
"layout-auto": "自動",
|
||||
"layout-horizontal": "水平",
|
||||
"layout-vertical": "垂直",
|
||||
"item-size-label": "尺寸",
|
||||
"item-size-small": "小",
|
||||
"item-size-medium": "中",
|
||||
"item-size-large": "大",
|
||||
"config-launcher-label": "設定",
|
||||
"config-launcher-tooltip": "更新設定",
|
||||
"sign-out-tooltip": "登出",
|
||||
"sign-in-tooltip": "登入",
|
||||
"sign-in-welcome": "您好 {username}!",
|
||||
"hide": "隱藏",
|
||||
"open": "開啟"
|
||||
},
|
||||
"updates": {
|
||||
"app-version-note": "Dashy 版本",
|
||||
"up-to-date": "已經是最新版本",
|
||||
"out-of-date": "有可用更新",
|
||||
"unsupported-version-l1": "您使用的是不受支援的 Dashy 版本",
|
||||
"unsupported-version-l2": "為獲得最佳體驗和最新的安全性更新,請更新至"
|
||||
},
|
||||
"language-switcher": {
|
||||
"title": "更改應用程式語言",
|
||||
"dropdown-label": "選擇語言",
|
||||
"save-button": "儲存",
|
||||
"success-msg": "語言已切換至"
|
||||
},
|
||||
"theme-maker": {
|
||||
"title": "主題編輯器",
|
||||
"export-button": "匯出自訂變數",
|
||||
"reset-button": "重置樣式",
|
||||
"show-all-button": "顯示所有變數",
|
||||
"change-fonts-button": "更改字體",
|
||||
"save-button": "儲存",
|
||||
"cancel-button": "取消",
|
||||
"saved-toast": "{theme} 更新成功",
|
||||
"copied-toast": "{theme} 的主題資料已複製到剪貼簿",
|
||||
"reset-toast": "{theme} 的自訂顏色已移除"
|
||||
},
|
||||
"config-editor": {
|
||||
"save-location-label": "儲存位置",
|
||||
"location-local-label": "套用到本機",
|
||||
"location-disk-label": "將變更寫入設定檔",
|
||||
"save-button": "儲存變更",
|
||||
"preview-button": "預覽變更",
|
||||
"valid-label": "設定有效",
|
||||
"status-success-msg": "工作完成",
|
||||
"status-fail-msg": "工作失敗",
|
||||
"success-msg-disk": "設定檔已成功寫入硬碟",
|
||||
"success-msg-local": "本機變更已儲存成功",
|
||||
"success-note-l1": "應用程式應會自動重新建置。",
|
||||
"success-note-l2": "可能會需要一分鐘",
|
||||
"success-note-l3": "您需要重新整理頁面以套用變更。",
|
||||
"error-msg-save-mode": "请選擇儲存位置:本機或者檔案",
|
||||
"error-msg-cannot-save": "儲存設定時發生錯誤",
|
||||
"error-msg-bad-json": "JSON 錯誤,可能是格式錯誤",
|
||||
"warning-msg-validation": "驗證警告",
|
||||
"not-admin-note": "您無法將變更寫入磁碟,因為您未以系統管理員身分登入"
|
||||
},
|
||||
"app-rebuild": {
|
||||
"title": "重新建置應用程式",
|
||||
"rebuild-note-l1": "寫入 conf.yml 檔案的變更需要重新建置應用程式才會生效。",
|
||||
"rebuild-note-l2": "重新建置應該會自動發生。否則您可以在此手動執行。",
|
||||
"rebuild-note-l3": "本機儲存的變更不需要重新建置即會生效。",
|
||||
"rebuild-button": "開始重新建置",
|
||||
"rebuilding-status-1": "建置中...",
|
||||
"rebuilding-status-2": "這將持續一段時間",
|
||||
"error-permission": "您沒有權限執行此操作",
|
||||
"success-msg": "建置成功",
|
||||
"fail-msg": "建置失敗",
|
||||
"reload-note": "你需要重新載入頁面以使變更生效",
|
||||
"reload-button": "重新載入頁面"
|
||||
},
|
||||
"cloud-sync": {
|
||||
"title": "雲端備份 & 復原",
|
||||
"intro-l1": "雲端備份和復原是選用功能,讓您能夠把設定上傳到網路,然後在其他裝置或 Dashy 實例上復原。",
|
||||
"intro-l2": "所有資料都使用 AES 端到端加密,並使用您的密碼作為金鑰。",
|
||||
"intro-l3": "若想了解更多資訊,請參考",
|
||||
"intro-docs": "說明文件",
|
||||
"backup-title-setup": "建立備份",
|
||||
"backup-title-update": "更新備份",
|
||||
"password-label-setup": "選擇密碼",
|
||||
"password-label-update": "輸入密碼",
|
||||
"backup-button-setup": "備份",
|
||||
"backup-button-update": "更新備份",
|
||||
"backup-id-label": "您的備份 ID",
|
||||
"backup-id-note": "您將需要此 ID 來從備份復原,所以請與密碼一起妥善儲存。",
|
||||
"restore-title": "復原備份",
|
||||
"restore-id-label": "復原 ID",
|
||||
"restore-password-label": "密碼",
|
||||
"restore-button": "復原",
|
||||
"backup-missing-password": "請輸入密碼",
|
||||
"backup-error-unknown": "無法處理請求",
|
||||
"backup-error-password": "密碼錯誤,請重新輸入。",
|
||||
"backup-success-msg": "備份成功",
|
||||
"restore-success-msg": "設定已成功復原"
|
||||
},
|
||||
"menu": {
|
||||
"open-section-title": "以...開啟",
|
||||
"sametab": "目前分頁",
|
||||
"newtab": "新分頁",
|
||||
"modal": "彈出視窗",
|
||||
"workspace": "工作區",
|
||||
"options-section-title": "選項",
|
||||
"edit-item": "編輯",
|
||||
"move-item": "複製或移動",
|
||||
"remove-item": "移除"
|
||||
},
|
||||
"context-menus": {
|
||||
"item": {
|
||||
"open-section-title": "以...開啟",
|
||||
"sametab": "目前分頁",
|
||||
"newtab": "新分頁",
|
||||
"modal": "彈出視窗",
|
||||
"workspace": "工作區",
|
||||
"clipboard": "複製到剪貼簿",
|
||||
"options-section-title": "選項",
|
||||
"edit-item": "編輯",
|
||||
"move-item": "複製或移動",
|
||||
"remove-item": "移除",
|
||||
"copied-toast": "已將網址複製到剪貼簿"
|
||||
},
|
||||
"section": {
|
||||
"open-section": "開啟區域",
|
||||
"edit-section": "編輯",
|
||||
"expand-collapse": "展開 / 收合",
|
||||
"move-section": "移動至",
|
||||
"remove-section": "移除"
|
||||
}
|
||||
},
|
||||
"footer": {
|
||||
"dev-by": "開發者",
|
||||
"licensed-under": "授權條款為",
|
||||
"get-the": "取得",
|
||||
"source-code": "原始碼"
|
||||
},
|
||||
"interactive-editor": {
|
||||
"menu": {
|
||||
"start-editing-tooltip": "進入互動式編輯器",
|
||||
"edit-site-data-subheading": "編輯網站資料",
|
||||
"edit-page-info-btn": "編輯頁面資訊",
|
||||
"edit-page-info-tooltip": "應用程式標題、說明、導航列連結、頁尾文字...等",
|
||||
"edit-app-config-btn": "編輯應用程式設定",
|
||||
"edit-app-config-tooltip": "其餘應用程式設定選項",
|
||||
"edit-pages-btn": "編輯頁面",
|
||||
"edit-pages-tooltip": "新增或移除額外檢視",
|
||||
"config-save-methods-subheading": "設定儲存選項",
|
||||
"save-locally-btn": "本機儲存",
|
||||
"save-locally-tooltip": "將設定儲存到瀏覽器儲存空間中。這不會影響到您的設定檔,但變更僅會儲存在此裝置",
|
||||
"save-disk-btn": "儲存設定檔",
|
||||
"save-disk-tooltip": "將設定儲存到硬碟上的 conf.yml 檔案。這將備份,然後覆寫您目前的設定",
|
||||
"export-config-btn": "匯出設定",
|
||||
"export-config-tooltip": "檢視並將新設定匯出到檔案或剪貼簿",
|
||||
"cloud-backup-btn": "備份至雲端",
|
||||
"cloud-backup-tooltip": "將加密後的備份設定檔儲存至雲端",
|
||||
"edit-raw-config-btn": "編輯原始設定",
|
||||
"edit-raw-config-tooltip": "透過 JSON 編輯器檢視或編輯原始設定",
|
||||
"cancel-changes-btn": "取消編輯",
|
||||
"cancel-changes-tooltip": "重設目前的更動,並退出編輯模式。這不會影響您已儲存的設定",
|
||||
"edit-mode-name": "編輯模式",
|
||||
"edit-mode-subtitle": "目前為編輯模式",
|
||||
"edit-mode-description": "這代表您可以編輯設定並預覽。但在您儲存前,變更將不被儲存。",
|
||||
"save-stage-btn": "儲存",
|
||||
"cancel-stage-btn": "取消",
|
||||
"save-locally-warning": "若繼續,變更將僅儲存在瀏覽器中。您應匯出設定檔以在其他裝置使用。您確定要繼續嗎?"
|
||||
},
|
||||
"edit-item": {
|
||||
"missing-title-err": "必須填寫項目標題"
|
||||
},
|
||||
"edit-section": {
|
||||
"edit-section-title": "編輯區塊",
|
||||
"add-section-title": "新增區塊",
|
||||
"edit-tooltip": "點擊以編輯,右鍵以查看更多選項",
|
||||
"remove-confirm": "您確定要移除此區塊嗎?此操作可復原。"
|
||||
},
|
||||
"edit-app-config": {
|
||||
"warning-msg-title": "謹慎操作",
|
||||
"warning-msg-l1": "下列選項用於進階應用程式設定。",
|
||||
"warning-msg-l2": "如果您對任何欄位有不確定的地方,請參閱",
|
||||
"warning-msg-docs": "說明文件",
|
||||
"warning-msg-l3": "以避免意外後果。"
|
||||
},
|
||||
"export": {
|
||||
"export-title": "匯出設定",
|
||||
"copy-clipboard-btn": "複製至剪貼簿",
|
||||
"copy-clipboard-tooltip": "將所有應用程式設定以 YAML 格式複製到系統剪貼簿。",
|
||||
"download-file-btn": "下載檔案",
|
||||
"download-file-tooltip": "將所有應用程式設定以 YAML 檔案下載到您的裝置。",
|
||||
"view-title": "檢視設定"
|
||||
}
|
||||
},
|
||||
"widgets": {
|
||||
"general": {
|
||||
"loading": "正在載入...",
|
||||
"show-more": "展開詳細資訊",
|
||||
"show-less": "顯示較少",
|
||||
"open-link": "繼續閱讀"
|
||||
},
|
||||
"pi-hole": {
|
||||
"status-heading": "狀態"
|
||||
},
|
||||
"stat-ping": {
|
||||
"up": "線上",
|
||||
"down": "離線"
|
||||
},
|
||||
"net-data": {
|
||||
"cpu-chart-title": "CPU 歷史紀錄",
|
||||
"mem-chart-title": "記憶體使用率",
|
||||
"mem-breakdown-title": "Memory Breakdown",
|
||||
"load-chart-title": "系統負載"
|
||||
},
|
||||
"glances": {
|
||||
"disk-space-free": "可用",
|
||||
"disk-space-used": "已使用",
|
||||
"disk-mount-point": "掛載點",
|
||||
"disk-file-system": "檔案系統",
|
||||
"disk-io-read": "讀取",
|
||||
"disk-io-write": "寫入",
|
||||
"system-load-desc": "正在執行隊列中等待的執行序數量,平均分配到所有核心"
|
||||
},
|
||||
"system-info": {
|
||||
"uptime": "開機時間"
|
||||
},
|
||||
"flight-data": {
|
||||
"arrivals": "抵達",
|
||||
"departures": "出發"
|
||||
},
|
||||
"tfl-status": {
|
||||
"good-service-all": "全線正常營運",
|
||||
"good-service-rest": "所有其他路線正常營運"
|
||||
},
|
||||
"synology-download": {
|
||||
"download": "下載",
|
||||
"upload": "上傳",
|
||||
"downloaded": "已下載",
|
||||
"uploaded": "已上傳",
|
||||
"remaining": "剩餘",
|
||||
"up": "上傳",
|
||||
"down": "下載"
|
||||
},
|
||||
"gluetun-status": {
|
||||
"vpn-ip": "VPN IP",
|
||||
"country": "國家",
|
||||
"region": "區域",
|
||||
"city": "城市",
|
||||
"post-code": "郵遞區號",
|
||||
"location": "地區",
|
||||
"timezone": "時區",
|
||||
"organization": "組織"
|
||||
},
|
||||
"nextcloud": {
|
||||
"active": "啟用",
|
||||
"and": "和",
|
||||
"applications": "應用程式",
|
||||
"available": "可用",
|
||||
"away": "離開",
|
||||
"cache-full": "快取已滿",
|
||||
"chat-room": "聊天室",
|
||||
"delete-all": "全部刪除",
|
||||
"delete-notification": "刪除通知",
|
||||
"disabled": "已停用",
|
||||
"disk-quota": "硬碟限額",
|
||||
"disk-space": "硬碟空間",
|
||||
"dnd": "勿擾",
|
||||
"email": "電子郵件",
|
||||
"enabled": "已啟用",
|
||||
"federated-shares-ucfirst": "聯盟共享",
|
||||
"federated-shares": "聯盟共享",
|
||||
"files": "檔案{plural}",
|
||||
"free": "可用",
|
||||
"groups": "群組",
|
||||
"hit-rate": "命中率",
|
||||
"hits": "命中",
|
||||
"home": "首頁",
|
||||
"in": "於",
|
||||
"keys": "金鑰",
|
||||
"last-24-hours": "過去 24 小時",
|
||||
"last-5-minutes": "過去 5 分鐘",
|
||||
"last-hour": "過去 1 小時",
|
||||
"last-login": "最後登入",
|
||||
"last-restart": "最後重新啟動",
|
||||
"load-averages": "所有 CPU 核心的負載平均值",
|
||||
"local-shares": "本機分享",
|
||||
"local": "本機",
|
||||
"max-keys": "最大金鑰",
|
||||
"memory-used": "已使用記憶體",
|
||||
"memory-utilisation": "記憶體使用率",
|
||||
"memory": "記憶體",
|
||||
"misses": "缺失",
|
||||
"no-notifications": "無通知",
|
||||
"no-pending-updates": "無待處理的更新",
|
||||
"nothing-to-show": "目前沒有可顯示的項目",
|
||||
"of-which": "of which",
|
||||
"of": "of",
|
||||
"offline": "離線",
|
||||
"online": "線上",
|
||||
"other": "其他",
|
||||
"overall": "總體",
|
||||
"private-link": "私人連結",
|
||||
"public-link": "公開連結",
|
||||
"quota-enabled": "硬碟限額 {not}未對此使用者啟用",
|
||||
"received": "已接收",
|
||||
"scripts": "腳本",
|
||||
"sent": "已送出",
|
||||
"started": "已啟動",
|
||||
"storages-by-type": "依類型分類的儲存空間",
|
||||
"storages": "儲存空間{plural}",
|
||||
"strings-use": "strings use",
|
||||
"tasks": "工作",
|
||||
"total-files": "總檔案",
|
||||
"total-users": "總使用者",
|
||||
"total": "總數",
|
||||
"until": "直到",
|
||||
"updates-available-for": "有可用更新:",
|
||||
"updates-available": "更新{plural} 可用",
|
||||
"used": "已使用",
|
||||
"user": "使用者",
|
||||
"using": "正在使用",
|
||||
"version": "版本",
|
||||
"wasted": "已浪費"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
<!-- License -->
|
||||
<h3>{{ $t('app-info.license') }}</h3>
|
||||
{{ $t('app-info.license-under') }} <a href="https://github.com/Lissy93/dashy/blob/master/LICENSE">MIT X11</a>.
|
||||
Copyright <a href="https://aliciasykes.com">Alicia Sykes</a> © 2021.<br>
|
||||
Copyright <a href="https://aliciasykes.com">Alicia Sykes</a> © {{new Date().getFullYear()}}.<br>
|
||||
{{ $t('app-info.licence-third-party') }} <a href="https://github.com/Lissy93/dashy/blob/master/.github/LEGAL.md">{{ $t('app-info.licence-third-party-link') }}</a>.<br>
|
||||
{{ $t('app-info.list-contributors') }} <a href="https://github.com/Lissy93/dashy/blob/master/docs/credits.md">{{ $t('app-info.list-contributors-link') }}</a>.
|
||||
<!-- App Version -->
|
||||
|
||||
@@ -115,7 +115,9 @@ export default {
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.jsonData = this.config;
|
||||
const jsonData = { ...this.config };
|
||||
jsonData.sections = jsonData.sections.map(({ filteredItems, ...section }) => section);
|
||||
this.jsonData = jsonData;
|
||||
if (!this.allowWriteToDisk) this.saveMode = 'local';
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -94,6 +94,7 @@ export default {
|
||||
const raw = rawAppConfig;
|
||||
const isEmptyObject = (obj) => (typeof obj === 'object' && Object.keys(obj).length === 0);
|
||||
const isEmpty = (value) => (value === undefined || isEmptyObject(value));
|
||||
|
||||
// Delete empty values
|
||||
Object.keys(raw).forEach(key => {
|
||||
if (isEmpty(raw[key])) delete raw[key];
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<div class="edit-multi-pages-inner" v-if="allowViewConfig">
|
||||
<h3>{{ $t('interactive-editor.menu.edit-page-info-btn') }}</h3>
|
||||
<FormSchema
|
||||
:schema="schema"
|
||||
:schema="customSchema"
|
||||
v-model="formData"
|
||||
@submit.prevent="saveToState"
|
||||
class="multi-page-form"
|
||||
@@ -49,6 +49,32 @@ export default {
|
||||
pages() {
|
||||
return this.$store.getters.pages;
|
||||
},
|
||||
/* Make a custom schema object, using fields from ConfigSchema */
|
||||
customSchema() {
|
||||
return {
|
||||
type: 'array',
|
||||
title: this.schema.title,
|
||||
description: this.schema.description,
|
||||
items: {
|
||||
title: this.schema.items.title,
|
||||
type: this.schema.items.type,
|
||||
additionalProperties: this.schema.items.additionalProperties,
|
||||
required: this.schema.items.required,
|
||||
properties: {
|
||||
name: this.schema.items.properties.name,
|
||||
path: this.schema.items.properties.path,
|
||||
displayData: {
|
||||
title: 'Display (see documentation for more options)',
|
||||
description: '',
|
||||
type: 'object',
|
||||
properties: {
|
||||
hideForGuests: this.schema.items.properties.displayData.properties.hideForGuests,
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
},
|
||||
allowViewConfig() {
|
||||
return this.$store.getters.permissions.allowViewConfig;
|
||||
},
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
:target="anchorTarget"
|
||||
:class="`item ${makeClassList}`"
|
||||
v-tooltip="getTooltipOptions()"
|
||||
rel="noopener noreferrer" tabindex="0"
|
||||
:rel="`${item.rel || 'noopener noreferrer'}`"
|
||||
tabindex="0"
|
||||
:id="`link-${item.id}`"
|
||||
:style="customStyle"
|
||||
>
|
||||
@@ -255,8 +256,12 @@ export default {
|
||||
-webkit-line-clamp: 3;
|
||||
-webkit-box-orient: vertical;
|
||||
word-break: keep-all;
|
||||
overflow: hidden;
|
||||
span.text {
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -385,6 +390,7 @@ p.description {
|
||||
font-size: .9em;
|
||||
line-height: 1rem;
|
||||
height: 2rem;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
<script>
|
||||
import IconBurger from '@/assets/interface-icons/burger-menu.svg';
|
||||
import { makePageSlug } from '@/utils/ConfigHelpers';
|
||||
import { checkPageVisibility } from '@/utils/CheckPageVisibility';
|
||||
|
||||
export default {
|
||||
name: 'Nav',
|
||||
@@ -45,10 +46,11 @@ export default {
|
||||
computed: {
|
||||
/* Get links to sub-pages, and combine with nav-links */
|
||||
allLinks() {
|
||||
const subPages = this.$store.getters.pages.map((subPage) => ({
|
||||
path: makePageSlug(subPage.name, 'home'),
|
||||
title: subPage.name,
|
||||
}));
|
||||
const subPages = this.$store.getters.pages.filter((page) => checkPageVisibility(page))
|
||||
.map((subPage) => ({
|
||||
path: makePageSlug(subPage.name, 'home'),
|
||||
title: subPage.name,
|
||||
}));
|
||||
const navLinks = this.links || [];
|
||||
return [...navLinks, ...subPages];
|
||||
},
|
||||
|
||||
@@ -319,6 +319,10 @@ div.action-buttons {
|
||||
min-width: 6rem;
|
||||
padding: 0.25rem 0.5rem;
|
||||
margin: 1rem 0.5rem 0.5rem;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -112,6 +112,7 @@ export default {
|
||||
cursor: pointer;
|
||||
font-size: 0.9rem;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
width: fit-content;
|
||||
margin: 0.25rem auto;
|
||||
padding: 0.1rem 0.25rem;
|
||||
|
||||
150
src/components/Widgets/GlCpuSpeedometer.vue
Normal file
150
src/components/Widgets/GlCpuSpeedometer.vue
Normal file
@@ -0,0 +1,150 @@
|
||||
<template>
|
||||
<div class="glances-cpu-gauge-wrapper">
|
||||
<GaugeChart class="gl-speedometer" :value="gaugeValue"
|
||||
:baseColor="baseColor" :shadowColor="shadowColor" :gaugeColor="gaugeColor"
|
||||
:startAngle="startAngle" :endAngle="endAngle" :innerRadius="innerRadius"
|
||||
:separatorThickness="separatorThickness">
|
||||
<p class="percentage">{{ gaugeValue }}%</p>
|
||||
</GaugeChart>
|
||||
<p class="show-more-btn" @click="toggleMoreInfo">
|
||||
{{ showMoreInfo ? $t('widgets.general.show-less') : $t('widgets.general.cpu-details') }}
|
||||
</p>
|
||||
<div class="more-info" v-if="moreInfo && showMoreInfo">
|
||||
<div class="more-info-row" v-for="(info, key) in moreInfo" :key="key">
|
||||
<p class="label">{{ info.label }}</p>
|
||||
<p class="value">{{ info.value }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import WidgetMixin from '@/mixins/WidgetMixin';
|
||||
import GlancesMixin from '@/mixins/GlancesMixin';
|
||||
import GaugeChart from '@/components/Charts/Gauge';
|
||||
import { capitalize } from '@/utils/MiscHelpers';
|
||||
|
||||
export default {
|
||||
mixins: [WidgetMixin, GlancesMixin],
|
||||
components: {
|
||||
GaugeChart,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
gaugeValue: 0,
|
||||
baseColor: '#101010ED',
|
||||
shadowColor: '#00000000',
|
||||
gaugeColor: [
|
||||
{ offset: 0, color: '#20e253' },
|
||||
{ offset: 35, color: '#f6f000' },
|
||||
{ offset: 65, color: '#fca016' },
|
||||
{ offset: 90, color: '#f80363' },
|
||||
],
|
||||
showMoreInfo: false,
|
||||
moreInfo: null,
|
||||
startAngle: -135,
|
||||
endAngle: 135,
|
||||
innerRadius: 80,
|
||||
separatorThickness: 0,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
endpoint() {
|
||||
return this.makeGlancesUrl('cpu');
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
processData(cpuData) {
|
||||
this.gaugeValue = cpuData.total;
|
||||
const moreInfo = [];
|
||||
const ignore = ['total', 'cpucore', 'time_since_update',
|
||||
'interrupts', 'soft_interrupts', 'ctx_switches', 'syscalls'];
|
||||
Object.keys(cpuData).forEach((key) => {
|
||||
if (!ignore.includes(key) && cpuData[key]) {
|
||||
moreInfo.push({ label: capitalize(key), value: `${cpuData[key].toFixed(1)}%` });
|
||||
}
|
||||
});
|
||||
this.moreInfo = moreInfo;
|
||||
},
|
||||
toggleMoreInfo() {
|
||||
this.showMoreInfo = !this.showMoreInfo;
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.overrideUpdateInterval = 2;
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.glances-cpu-gauge-wrapper {
|
||||
max-width: 15rem;
|
||||
margin: 0rem auto;
|
||||
|
||||
p.percentage {
|
||||
color: var(--widget-text-color);
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
font-size: 1.3rem;
|
||||
margin: 3.5rem 0;
|
||||
width: 100%;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.more-info {
|
||||
background: var(--widget-accent-color);
|
||||
border-radius: var(--curve-factor);
|
||||
padding: 0.25rem 0.5rem;
|
||||
margin: 0.5rem auto;
|
||||
|
||||
.more-info-row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
p.label, p.value {
|
||||
color: var(--widget-text-color);
|
||||
margin: 0.25rem 0;
|
||||
}
|
||||
|
||||
p.value {
|
||||
font-family: var(--font-monospace);
|
||||
}
|
||||
|
||||
&:not(:last-child) {
|
||||
border-bottom: 1px dashed var(--widget-text-color);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
p.show-more-btn {
|
||||
cursor: pointer;
|
||||
font-size: 0.9rem;
|
||||
text-align: center;
|
||||
width: fit-content;
|
||||
margin: -1.1rem auto 0 auto;
|
||||
padding: 0.1rem 0.25rem;
|
||||
border: 1px solid transparent;
|
||||
color: var(--widget-text-color);
|
||||
opacity: var(--dimming-factor);
|
||||
border-radius: var(--curve-factor);
|
||||
|
||||
&:hover {
|
||||
border: 1px solid var(--widget-text-color);
|
||||
}
|
||||
|
||||
&:focus,
|
||||
&:active {
|
||||
background: var(--widget-text-color);
|
||||
color: var(--widget-background-color);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
/* global override for the Guage tick lines */
|
||||
.gl-speedometer svg line {
|
||||
stroke: var(--widget-text-color);
|
||||
opacity: .3;
|
||||
}
|
||||
</style>
|
||||
150
src/components/Widgets/GlMemSpeedometer.vue
Normal file
150
src/components/Widgets/GlMemSpeedometer.vue
Normal file
@@ -0,0 +1,150 @@
|
||||
<template>
|
||||
<div class="glances-cpu-gauge-wrapper">
|
||||
<GaugeChart class="gl-speedometer" :value="gaugeValue"
|
||||
:baseColor="baseColor" :shadowColor="shadowColor" :gaugeColor="gaugeColor"
|
||||
:startAngle="startAngle" :endAngle="endAngle" :innerRadius="innerRadius"
|
||||
:separatorThickness="separatorThickness">
|
||||
<p class="percentage">{{ gaugeValue }}%</p>
|
||||
</GaugeChart>
|
||||
<p class="show-more-btn" @click="toggleMoreInfo">
|
||||
{{ showMoreInfo ? $t('widgets.general.show-less') : $t('widgets.general.mem-details') }}
|
||||
</p>
|
||||
<div class="more-info" v-if="moreInfo && showMoreInfo">
|
||||
<div class="more-info-row" v-for="(info, key) in moreInfo" :key="key">
|
||||
<p class="label">{{ info.label }}</p>
|
||||
<p class="value">{{ info.value }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import WidgetMixin from '@/mixins/WidgetMixin';
|
||||
import GlancesMixin from '@/mixins/GlancesMixin';
|
||||
import GaugeChart from '@/components/Charts/Gauge';
|
||||
import { capitalize, convertBytes } from '@/utils/MiscHelpers';
|
||||
|
||||
export default {
|
||||
mixins: [WidgetMixin, GlancesMixin],
|
||||
components: {
|
||||
GaugeChart,
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
gaugeValue: 0,
|
||||
baseColor: '#101010ED',
|
||||
shadowColor: '#00000000',
|
||||
gaugeColor: [
|
||||
{ offset: 0, color: '#20e253' },
|
||||
{ offset: 35, color: '#f6f000' },
|
||||
{ offset: 65, color: '#fca016' },
|
||||
{ offset: 90, color: '#f80363' },
|
||||
],
|
||||
showMoreInfo: false,
|
||||
moreInfo: null,
|
||||
startAngle: -135,
|
||||
endAngle: 135,
|
||||
innerRadius: 80,
|
||||
separatorThickness: 0,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
endpoint() {
|
||||
return this.makeGlancesUrl('mem');
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
processData(memData) {
|
||||
this.gaugeValue = memData.percent;
|
||||
const moreInfo = [];
|
||||
const ignore = ['percent'];
|
||||
Object.keys(memData).forEach((key) => {
|
||||
if (!ignore.includes(key) && memData[key]) {
|
||||
moreInfo.push({ label: capitalize(key), value: convertBytes(memData[key]) });
|
||||
}
|
||||
});
|
||||
this.moreInfo = moreInfo;
|
||||
},
|
||||
toggleMoreInfo() {
|
||||
this.showMoreInfo = !this.showMoreInfo;
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.overrideUpdateInterval = 2;
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.glances-cpu-gauge-wrapper {
|
||||
max-width: 15rem;
|
||||
margin: 0rem auto;
|
||||
|
||||
p.percentage {
|
||||
color: var(--widget-text-color);
|
||||
text-align: center;
|
||||
position: absolute;
|
||||
font-size: 1.3rem;
|
||||
margin: 3.5rem 0;
|
||||
width: 100%;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.more-info {
|
||||
background: var(--widget-accent-color);
|
||||
border-radius: var(--curve-factor);
|
||||
padding: 0.25rem 0.5rem;
|
||||
margin: 0.5rem auto;
|
||||
|
||||
.more-info-row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
p.label,
|
||||
p.value {
|
||||
color: var(--widget-text-color);
|
||||
margin: 0.25rem 0;
|
||||
}
|
||||
|
||||
p.value {
|
||||
font-family: var(--font-monospace);
|
||||
}
|
||||
|
||||
&:not(:last-child) {
|
||||
border-bottom: 1px dashed var(--widget-text-color);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
p.show-more-btn {
|
||||
cursor: pointer;
|
||||
font-size: 0.9rem;
|
||||
text-align: center;
|
||||
width: fit-content;
|
||||
margin: -1.1rem auto 0 auto;
|
||||
padding: 0.1rem 0.25rem;
|
||||
border: 1px solid transparent;
|
||||
color: var(--widget-text-color);
|
||||
opacity: var(--dimming-factor);
|
||||
border-radius: var(--curve-factor);
|
||||
|
||||
&:hover {
|
||||
border: 1px solid var(--widget-text-color);
|
||||
}
|
||||
|
||||
&:focus,
|
||||
&:active {
|
||||
background: var(--widget-text-color);
|
||||
color: var(--widget-background-color);
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
/* global override for the Guage tick lines */
|
||||
.gl-speedometer svg line {
|
||||
stroke: var(--widget-text-color);
|
||||
opacity: .3;
|
||||
}
|
||||
</style>
|
||||
108
src/components/Widgets/HackernewsTrending.vue
Normal file
108
src/components/Widgets/HackernewsTrending.vue
Normal file
@@ -0,0 +1,108 @@
|
||||
<template>
|
||||
<div class="hackernews-wrapper">
|
||||
<!-- Hackernews Trending Posts-->
|
||||
<div class="posts-wrapper" v-if="trendingPosts">
|
||||
<div class="post-row" v-for="(trendingPosts, index) in trendingPosts" :key="index">
|
||||
<a class="post-top" :href="trendingPosts.originURL">
|
||||
<div class="post-title-wrap">
|
||||
<p class="post-title">{{ trendingPosts.title }}</p>
|
||||
<p class="post-date">
|
||||
{{ formatDate(trendingPosts.time) }}
|
||||
</p>
|
||||
<p class="post-score" v-if="trendingPosts.score">score: {{ trendingPosts.score }}</p>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
// import axios from 'axios';
|
||||
import WidgetMixin from '@/mixins/WidgetMixin';
|
||||
import { widgetApiEndpoints } from '@/utils/defaults';
|
||||
|
||||
export default {
|
||||
mixins: [WidgetMixin],
|
||||
data() {
|
||||
return {
|
||||
trendingPosts: null,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
stories() {
|
||||
// This can be `beststories`, `topstories` or newstories
|
||||
// TODO: display error message if another string not matching the keywords was insert
|
||||
return this.options.stories || 'topstories';
|
||||
},
|
||||
limit() {
|
||||
return this.options.limit || 10;
|
||||
},
|
||||
endpoint() {
|
||||
return `${widgetApiEndpoints.hackernewsTrending}/${this.stories}.json`;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
fetchData() {
|
||||
this.makeRequest(this.endpoint).then(this.fetchPostDetails);
|
||||
},
|
||||
async fetchPostDetails(data) {
|
||||
const topPosts = data.slice(0, this.limit);
|
||||
const allData = topPosts.map((post) => {
|
||||
const url = `${widgetApiEndpoints.hackernewsTrending}/item/${post}.json`;
|
||||
return this.makeRequest(url);
|
||||
});
|
||||
Promise.all(allData).then((resolvedPostValues) => {
|
||||
this.trendingPosts = resolvedPostValues.map((element, index) => {
|
||||
const trendingPost = { ...element, originURL: `https://news.ycombinator.com/item?id=${topPosts.at(index)}` };
|
||||
return trendingPost;
|
||||
});
|
||||
});
|
||||
},
|
||||
formatDate(unixTime) {
|
||||
const date = new Date(unixTime * 1000);
|
||||
// Then specify how you want your dates to be formatted
|
||||
return new Intl.DateTimeFormat('default', { dateStyle: 'long' }).format(date);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.hackernews-wrapper {
|
||||
.meta-container {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-decoration: none;
|
||||
margin: 0.25rem 0 0.5rem 0;
|
||||
}
|
||||
|
||||
.post-row {
|
||||
border-top: 1px dashed var(--widget-text-color);
|
||||
padding: 0.5rem 0 0.25rem 0;
|
||||
.post-top {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
text-decoration: none;
|
||||
p.post-title {
|
||||
margin: 0;
|
||||
font-size: 1rem;
|
||||
font-weight: bold;
|
||||
color: var(--widget-text-color);
|
||||
}
|
||||
p.post-date {
|
||||
font-size: 0.8rem;
|
||||
margin: 0;
|
||||
opacity: var(--dimming-factor);
|
||||
color: var(--widget-text-color);
|
||||
}
|
||||
p.post-score {
|
||||
font-size: 0.8rem;
|
||||
margin: 0;
|
||||
opacity: var(--dimming-factor);
|
||||
color: var(--widget-text-color);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -74,6 +74,7 @@ export default {
|
||||
this.jokeLine2 = data.delivery;
|
||||
} else if (this.jokeType === 'single') {
|
||||
this.jokeLine1 = data.joke;
|
||||
this.jokeLine2 = null;
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
@@ -94,7 +94,7 @@ export default {
|
||||
}
|
||||
},
|
||||
processData(data) {
|
||||
this.data = data.data.sort((a, b) => a.vmid > b.vmid);
|
||||
this.data = data.data.sort((a, b) => Number(a.vmid) > Number(b.vmid));
|
||||
if (this.hideTemplates) {
|
||||
this.data = this.data.filter(item => item.template !== 1);
|
||||
}
|
||||
|
||||
@@ -90,7 +90,8 @@ export default {
|
||||
const formatType = (ht) => capitalize(ht.replaceAll('_', ' '));
|
||||
holidays.forEach((holiday) => {
|
||||
results.push({
|
||||
name: holiday.name[0].text,
|
||||
name: holiday.name
|
||||
.filter(p => p.lang === this.options.lang)[0].text || holiday.name[0].text,
|
||||
date: makeDate(holiday.date),
|
||||
type: formatType(holiday.holidayType),
|
||||
observed: holiday.observedOn ? makeDate(holiday.observedOn) : '',
|
||||
|
||||
109
src/components/Widgets/RescueTime.vue
Normal file
109
src/components/Widgets/RescueTime.vue
Normal file
@@ -0,0 +1,109 @@
|
||||
<template>
|
||||
<div class="rescuetime-wrapper">
|
||||
<div class="title-row">
|
||||
<p class="title-rank">Rank</p>
|
||||
<p class="title-name">Category</p>
|
||||
<p class="title-time">Time spent</p>
|
||||
</div>
|
||||
<div
|
||||
v-for="(category, indx) in categories"
|
||||
:key="indx"
|
||||
class="category-row"
|
||||
>
|
||||
<p class="category-rank">{{ category.rank }}</p>
|
||||
<p class="category-name">{{ indx }}</p>
|
||||
<p class="category-time">{{ category.minutes }} min</p>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
||||
import WidgetMixin from '@/mixins/WidgetMixin';
|
||||
import { widgetApiEndpoints } from '@/utils/defaults';
|
||||
|
||||
export default {
|
||||
mixins: [WidgetMixin],
|
||||
data() {
|
||||
return {
|
||||
categories: [],
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
this.checkOptions();
|
||||
},
|
||||
computed: {
|
||||
endpoint() {
|
||||
const todaystring = this.getDate();
|
||||
return `${widgetApiEndpoints.rescueTime}?key=${this.options.apiKey}&restrict_begin=${todaystring}&restrict_end=${todaystring}&restrict_kind=overview&format=json`;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
fetchData() {
|
||||
this.makeRequest(this.endpoint).then(this.processData);
|
||||
},
|
||||
processData(data) {
|
||||
const formateddata = this.calculateTimeCategories(data);
|
||||
this.categories = formateddata;
|
||||
},
|
||||
checkOptions() {
|
||||
const ops = this.options;
|
||||
if (!ops.apiKey) this.error('Missing API key for RescueTime');
|
||||
},
|
||||
getDate() {
|
||||
const today = new Date();
|
||||
let day = today.getDate();
|
||||
let month = today.getMonth() + 1;
|
||||
const year = today.getFullYear();
|
||||
if (day < 10) {
|
||||
day = `0${day}`;
|
||||
}
|
||||
if (month < 10) {
|
||||
month = `0${month}`;
|
||||
}
|
||||
return `${day}-${month}-${year}`;
|
||||
},
|
||||
calculateTimeCategories(timeArray) {
|
||||
const results = {};
|
||||
for (let i = 0; i < timeArray.rows.length; i += 1) {
|
||||
const [rank, seconds, persons, category] = timeArray.rows[i];
|
||||
const minutes = (parseInt(seconds, 10) / 60).toFixed(2);
|
||||
results[category] = { minutes, rank, persons };
|
||||
}
|
||||
return results;
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.rescuetime-wrapper {
|
||||
padding: 0.5rem 0;
|
||||
.title-row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
p {
|
||||
margin: 0.25rem 0;
|
||||
color: var(--widget-text-color);
|
||||
font-weight: 700;
|
||||
font-size: 1.15rem;
|
||||
}
|
||||
&:not(:last-child) {
|
||||
border-bottom: 1px dashed var(--widget-text-color);
|
||||
}
|
||||
}
|
||||
.category-rank {
|
||||
font-weight: 700;
|
||||
}
|
||||
.category-row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
p {
|
||||
margin: 0.25rem 0;
|
||||
color: var(--widget-text-color);
|
||||
opacity: var(--dimming-factor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
242
src/components/Widgets/UptimeKuma.vue
Normal file
242
src/components/Widgets/UptimeKuma.vue
Normal file
@@ -0,0 +1,242 @@
|
||||
<template>
|
||||
<div>
|
||||
<template v-if="monitors">
|
||||
<div v-for="(monitor, index) in monitors" :key="index" class="item-wrapper">
|
||||
<div class="item monitor-row">
|
||||
<div class="title-title"><span class="text">{{ monitor.name }}</span></div>
|
||||
<div class="monitors-container">
|
||||
<div class="status-container">
|
||||
<span class="status-pill" :class="[monitor.statusClass]">{{ monitor.status }}</span>
|
||||
</div>
|
||||
<div class="status-container">
|
||||
<span class="response-time">{{ monitor.responseTime }}ms</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<template v-if="errorMessage">
|
||||
<div class="error-message">
|
||||
<span class="text">{{ errorMessage }}</span>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
/**
|
||||
* A simple example which you can use as a template for creating your own widget.
|
||||
* Takes two optional parameters (`text` and `count`), and fetches a list of images
|
||||
* from dummyapis.com, then renders the results to the UI.
|
||||
*/
|
||||
import WidgetMixin from '@/mixins/WidgetMixin';
|
||||
|
||||
export default {
|
||||
mixins: [WidgetMixin],
|
||||
components: {},
|
||||
data() {
|
||||
return {
|
||||
monitors: null,
|
||||
errorMessage: null,
|
||||
errorMessageConstants: {
|
||||
missingApiKey: 'No API key set',
|
||||
missingUrl: 'No URL set',
|
||||
},
|
||||
};
|
||||
},
|
||||
|
||||
mounted() {
|
||||
this.fetchData();
|
||||
},
|
||||
computed: {
|
||||
/* Get API key for access to instance */
|
||||
apiKey() {
|
||||
const { apiKey } = this.options;
|
||||
|
||||
return apiKey;
|
||||
},
|
||||
/* Get instance URL */
|
||||
url() {
|
||||
const { url } = this.options;
|
||||
|
||||
return url;
|
||||
},
|
||||
/* Create authorisation header for the instance from the apiKey */
|
||||
authHeaders() {
|
||||
if (!this.options.apiKey) {
|
||||
return {};
|
||||
}
|
||||
const encoded = window.btoa(`:${this.options.apiKey}`);
|
||||
return { Authorization: `Basic ${encoded}` };
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
/* The update() method extends mixin, used to update the data.
|
||||
* It's called by parent component, when the user presses update
|
||||
*/
|
||||
update() {
|
||||
this.startLoading();
|
||||
this.fetchData();
|
||||
},
|
||||
/* Make the data request to the computed API endpoint */
|
||||
fetchData() {
|
||||
const { authHeaders, url } = this;
|
||||
|
||||
if (!this.optionsValid({ authHeaders, url })) {
|
||||
return;
|
||||
}
|
||||
|
||||
this.makeRequest(url, authHeaders)
|
||||
.then(this.processData);
|
||||
},
|
||||
/* Convert API response data into a format to be consumed by the UI */
|
||||
processData(response) {
|
||||
const monitorRows = this.getMonitorRows(response);
|
||||
|
||||
const monitors = new Map();
|
||||
|
||||
for (let index = 0; index < monitorRows.length; index += 1) {
|
||||
const row = monitorRows[index];
|
||||
this.processRow(row, monitors);
|
||||
}
|
||||
|
||||
this.monitors = Array.from(monitors.values());
|
||||
},
|
||||
getMonitorRows(response) {
|
||||
return response.split('\n').filter(row => row.startsWith('monitor_'));
|
||||
},
|
||||
processRow(row, monitors) {
|
||||
const dataType = this.getRowDataType(row);
|
||||
const monitorName = this.getRowMonitorName(row);
|
||||
|
||||
if (!monitors.has(monitorName)) {
|
||||
monitors.set(monitorName, { name: monitorName });
|
||||
}
|
||||
|
||||
const monitor = monitors.get(monitorName);
|
||||
const value = this.getRowValue(row);
|
||||
|
||||
const updated = this.setMonitorValue(dataType, monitor, value);
|
||||
|
||||
monitors.set(monitorName, updated);
|
||||
},
|
||||
setMonitorValue(key, monitor, value) {
|
||||
const copy = { ...monitor };
|
||||
switch (key) {
|
||||
case 'monitor_cert_days_remaining': {
|
||||
copy.certDaysRemaining = value;
|
||||
break;
|
||||
}
|
||||
case 'monitor_cert_is_valid': {
|
||||
copy.certValid = value;
|
||||
break;
|
||||
}
|
||||
case 'monitor_response_time': {
|
||||
copy.responseTime = value;
|
||||
break;
|
||||
}
|
||||
case 'monitor_status': {
|
||||
copy.status = value === '1' ? 'Up' : 'Down';
|
||||
copy.statusClass = copy.status.toLowerCase();
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return copy;
|
||||
},
|
||||
getRowValue(row) {
|
||||
return this.getValueWithRegex(row, /\b\d+\b$/);
|
||||
},
|
||||
getRowMonitorName(row) {
|
||||
return this.getValueWithRegex(row, /monitor_name="([^"]+)"/);
|
||||
},
|
||||
getRowDataType(row) {
|
||||
return this.getValueWithRegex(row, /^(.*?)\{/);
|
||||
},
|
||||
getValueWithRegex(string, regex) {
|
||||
const result = string.match(regex);
|
||||
|
||||
const isArray = Array.isArray(result);
|
||||
|
||||
if (!isArray) {
|
||||
return result;
|
||||
}
|
||||
|
||||
return result.length > 1 ? result[1] : result[0];
|
||||
},
|
||||
optionsValid({ url, authHeaders }) {
|
||||
const errors = [];
|
||||
if (url === undefined) {
|
||||
errors.push(this.errorMessageConstants.missingUrl);
|
||||
}
|
||||
|
||||
if (authHeaders === undefined) {
|
||||
errors.push(this.errorMessageConstants.missingApiKey);
|
||||
}
|
||||
|
||||
if (errors.length === 0) { return true; }
|
||||
|
||||
this.errorMessage = errors.join('\n');
|
||||
return false;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
.status-pill {
|
||||
border-radius: 50em;
|
||||
box-sizing: border-box;
|
||||
font-size: 0.75em;
|
||||
display: inline-block;
|
||||
font-weight: 700;
|
||||
text-align: center;
|
||||
white-space: nowrap;
|
||||
vertical-align: baseline;
|
||||
padding: .35em .65em;
|
||||
margin: 1em 0.5em;
|
||||
min-width: 64px;
|
||||
|
||||
&.up {
|
||||
background-color: rgb(92, 221, 139);
|
||||
color: black;
|
||||
}
|
||||
|
||||
&.down {
|
||||
background-color: rgb(220, 53, 69);
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
|
||||
div.item.monitor-row:hover {
|
||||
background-color: var(--item-background);
|
||||
color: var(--current-color);
|
||||
opacity: 1;
|
||||
|
||||
div.title-title>span.text {
|
||||
color: var(--current-color);
|
||||
}
|
||||
}
|
||||
|
||||
.monitors-container {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.monitor-row {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
padding: 0.35em 0.5em;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.title-title {
|
||||
font-weight: bold;
|
||||
}
|
||||
</style>
|
||||
@@ -46,7 +46,12 @@ export default {
|
||||
return this.options.units || 'metric';
|
||||
},
|
||||
endpoint() {
|
||||
const { apiKey, city } = this.options;
|
||||
const {
|
||||
apiKey, city, lat, lon,
|
||||
} = this.options;
|
||||
if (lat && lon) {
|
||||
return `${widgetApiEndpoints.weather}?lat=${lat}&lon=${lon}&appid=${apiKey}&units=${this.units}`;
|
||||
}
|
||||
return `${widgetApiEndpoints.weather}?q=${city}&appid=${apiKey}&units=${this.units}`;
|
||||
},
|
||||
tempDisplayUnits() {
|
||||
@@ -106,7 +111,11 @@ export default {
|
||||
checkProps() {
|
||||
const ops = this.options;
|
||||
if (!ops.apiKey) this.error('Missing API key for OpenWeatherMap');
|
||||
if (!ops.city) this.error('A city name is required to fetch weather');
|
||||
|
||||
if ((!ops.lat || !ops.lon) && !ops.city) {
|
||||
this.error('A city name or lat + lon is required to fetch weather');
|
||||
}
|
||||
|
||||
if (ops.units && ops.units !== 'metric' && ops.units !== 'imperial') {
|
||||
this.error('Invalid units specified, must be either \'metric\' or \'imperial\'');
|
||||
}
|
||||
|
||||
@@ -99,7 +99,7 @@ export default {
|
||||
icon: day.weather[0].icon,
|
||||
main: day.weather[0].main,
|
||||
description: day.weather[0].description,
|
||||
temp: this.processTemp(day.temp.day),
|
||||
temp: this.processTemp(day.main.temp),
|
||||
info: this.makeWeatherData(day),
|
||||
});
|
||||
});
|
||||
@@ -109,15 +109,15 @@ export default {
|
||||
makeWeatherData(data) {
|
||||
return [
|
||||
[
|
||||
{ label: 'Min Temp', value: this.processTemp(data.temp.min) },
|
||||
{ label: 'Max Temp', value: this.processTemp(data.temp.max) },
|
||||
{ label: 'Feels Like', value: this.processTemp(data.feels_like.day) },
|
||||
{ label: 'Min Temp', value: this.processTemp(data.main.temp_min) },
|
||||
{ label: 'Max Temp', value: this.processTemp(data.main.temp_max) },
|
||||
{ label: 'Feels Like', value: this.processTemp(data.main.feels_like) },
|
||||
],
|
||||
[
|
||||
{ label: 'Pressure', value: `${data.pressure}hPa` },
|
||||
{ label: 'Humidity', value: `${data.humidity}%` },
|
||||
{ label: 'wind', value: `${data.speed}${this.speedDisplayUnits}` },
|
||||
{ label: 'clouds', value: `${data.clouds}%` },
|
||||
{ label: 'Pressure', value: `${data.main.pressure}hPa` },
|
||||
{ label: 'Humidity', value: `${data.main.humidity}%` },
|
||||
{ label: 'wind', value: `${data.wind.speed}${this.speedDisplayUnits}` },
|
||||
{ label: 'clouds', value: `${data.clouds.all}%` },
|
||||
],
|
||||
];
|
||||
},
|
||||
|
||||
@@ -67,18 +67,21 @@ const COMPAT = {
|
||||
'gl-alerts': 'GlAlerts',
|
||||
'gl-current-cores': 'GlCpuCores',
|
||||
'gl-current-cpu': 'GlCpuGauge',
|
||||
'gl-cpu-speedometer': 'GlCpuSpeedometer',
|
||||
'gl-cpu-history': 'GlCpuHistory',
|
||||
'gl-disk-io': 'GlDiskIo',
|
||||
'gl-disk-space': 'GlDiskSpace',
|
||||
'gl-ip-address': 'GlIpAddress',
|
||||
'gl-load-history': 'GlLoadHistory',
|
||||
'gl-current-mem': 'GlMemGauge',
|
||||
'gl-mem-speedometer': 'GlMemSpeedometer',
|
||||
'gl-mem-history': 'GlMemHistory',
|
||||
'gl-network-interfaces': 'GlNetworkInterfaces',
|
||||
'gl-network-traffic': 'GlNetworkTraffic',
|
||||
'gl-system-load': 'GlSystemLoad',
|
||||
'gl-cpu-temp': 'GlCpuTemp',
|
||||
'health-checks': 'HealthChecks',
|
||||
'hackernews-trending': 'HackernewsTrending',
|
||||
'gluetun-status': 'GluetunStatus',
|
||||
iframe: 'IframeWidget',
|
||||
image: 'ImageWidget',
|
||||
@@ -103,6 +106,7 @@ const COMPAT = {
|
||||
'proxmox-lists': 'Proxmox',
|
||||
'public-holidays': 'PublicHolidays',
|
||||
'public-ip': 'PublicIp',
|
||||
'rescue-time': 'RescueTime',
|
||||
'rss-feed': 'RssFeed',
|
||||
sabnzbd: 'Sabnzbd',
|
||||
'sports-scores': 'SportsScores',
|
||||
@@ -111,6 +115,7 @@ const COMPAT = {
|
||||
'synology-download': 'SynologyDownload',
|
||||
'system-info': 'SystemInfo',
|
||||
'tfl-status': 'TflStatus',
|
||||
'uptime-kuma': 'UptimeKuma',
|
||||
'wallet-balance': 'WalletBalance',
|
||||
weather: 'Weather',
|
||||
'weather-forecast': 'WeatherForecast',
|
||||
@@ -201,14 +206,16 @@ export default {
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
@import '@/styles/media-queries.scss';
|
||||
@import "@/styles/media-queries.scss";
|
||||
|
||||
.widget-base {
|
||||
position: relative;
|
||||
padding: 0.75rem 0.5rem 0.5rem 0.5rem;
|
||||
background: var(--widget-base-background);
|
||||
box-shadow: var(--widget-base-shadow, none);
|
||||
|
||||
// Refresh and full-page action buttons
|
||||
button.action-btn {
|
||||
button.action-btn {
|
||||
height: 1rem;
|
||||
min-width: auto;
|
||||
width: 1.75rem;
|
||||
@@ -219,21 +226,26 @@ export default {
|
||||
border: none;
|
||||
opacity: var(--dimming-factor);
|
||||
color: var(--widget-text-color);
|
||||
|
||||
&:hover {
|
||||
opacity: 1;
|
||||
color: var(--widget-background-color);
|
||||
}
|
||||
|
||||
&.update-btn {
|
||||
right: -0.25rem;
|
||||
}
|
||||
|
||||
&.open-btn {
|
||||
right: 1.75rem;
|
||||
}
|
||||
}
|
||||
|
||||
// Optional widget label
|
||||
.widget-label {
|
||||
color: var(--widget-text-color);
|
||||
}
|
||||
|
||||
// Actual widget container
|
||||
.widget-wrap {
|
||||
&.has-error {
|
||||
@@ -241,9 +253,11 @@ export default {
|
||||
opacity: 0.5;
|
||||
border-radius: var(--curve-factor);
|
||||
background: #ffff0040;
|
||||
|
||||
&:hover { background: none; }
|
||||
}
|
||||
}
|
||||
|
||||
// Error message output
|
||||
.widget-error {
|
||||
p.error-msg {
|
||||
@@ -252,12 +266,14 @@ export default {
|
||||
font-size: 1rem;
|
||||
margin: 0 auto 0.5rem auto;
|
||||
}
|
||||
|
||||
p.error-output {
|
||||
font-family: var(--font-monospace);
|
||||
color: var(--widget-text-color);
|
||||
font-size: 0.85rem;
|
||||
margin: 0.5rem auto;
|
||||
}
|
||||
|
||||
p.retry-link {
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
@@ -266,14 +282,17 @@ export default {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Loading spinner
|
||||
.loading {
|
||||
margin: 0.2rem auto;
|
||||
text-align: center;
|
||||
|
||||
svg.loader {
|
||||
width: 100px;
|
||||
}
|
||||
}
|
||||
|
||||
// Hide widget contents while loading
|
||||
&.is-loading {
|
||||
.widget-wrap {
|
||||
@@ -281,5 +300,4 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* A Vue directive to trigger an event when the user
|
||||
* clicks anywhere other than the specified elements
|
||||
* Used to close context menus popup modals and tips
|
||||
* Dashy: Licensed under MIT - (C) Alicia Sykes 2022
|
||||
* Dashy: Licensed under MIT - (C) Alicia Sykes 2024
|
||||
*/
|
||||
|
||||
const instances = []; // List of click event instances
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* A Vue directive to call event when element is long-pressed
|
||||
* Used to open context menus on touch-enabled devices
|
||||
* Inspired by: FeliciousX/vue-directive-long-press
|
||||
* Dashy: Licensed under MIT - (C) Alicia Sykes 2022
|
||||
* Dashy: Licensed under MIT - (C) Alicia Sykes 2024
|
||||
*/
|
||||
|
||||
const LONG_PRESS_DEFAULT_DELAY = 750;
|
||||
|
||||
@@ -24,9 +24,13 @@ export default {
|
||||
const isSubPag = !!this.$store.state.currentConfigInfo;
|
||||
const jsonConfig = config;
|
||||
if (isSubPag) delete jsonConfig.appConfig;
|
||||
jsonConfig.sections = jsonConfig.sections.map(({ filteredItems, ...section }) => section);
|
||||
|
||||
// 2. Convert JSON into YAML
|
||||
const yamlOptions = {};
|
||||
const yaml = jsYaml.dump(jsonConfig, yamlOptions);
|
||||
const strjsonConfig = JSON.stringify(jsonConfig);
|
||||
const jsonObj = JSON.parse(strjsonConfig);
|
||||
const yaml = jsYaml.dump(jsonObj, yamlOptions);
|
||||
// 3. Prepare the request
|
||||
const baseUrl = process.env.VUE_APP_DOMAIN || window.location.origin;
|
||||
const endpoint = `${baseUrl}${serviceEndpoints.save}`;
|
||||
|
||||
@@ -148,13 +148,13 @@ const HomeMixin = {
|
||||
}
|
||||
},
|
||||
/* Returns true if there is more than 1 sub-result visible during searching */
|
||||
checkIfResults() {
|
||||
if (!this.sections) return false;
|
||||
checkIfResults(sections) {
|
||||
if (!sections) return false;
|
||||
else {
|
||||
let itemsFound = true;
|
||||
this.sections.forEach((section) => {
|
||||
sections.forEach((section) => {
|
||||
if (section.widgets && section.widgets.length > 0) itemsFound = false;
|
||||
if (this.filterTiles(section.items, this.searchValue).length > 0) itemsFound = false;
|
||||
if (section.filteredItems.length > 0) itemsFound = false;
|
||||
});
|
||||
return itemsFound;
|
||||
}
|
||||
|
||||
@@ -295,11 +295,15 @@ const store = new Vuex.Store({
|
||||
InfoHandler('Color palette updated', InfoKeys.VISUAL);
|
||||
},
|
||||
[SET_ITEM_LAYOUT](state, layout) {
|
||||
state.config.appConfig.layout = layout;
|
||||
const newConfig = { ...state.config };
|
||||
newConfig.appConfig.layout = layout;
|
||||
state.config = newConfig;
|
||||
InfoHandler('Layout updated', InfoKeys.VISUAL);
|
||||
},
|
||||
[SET_ITEM_SIZE](state, iconSize) {
|
||||
state.config.appConfig.iconSize = iconSize;
|
||||
const newConfig = { ...state.config };
|
||||
newConfig.appConfig.iconSize = iconSize;
|
||||
state.config = newConfig;
|
||||
InfoHandler('Item size updated', InfoKeys.VISUAL);
|
||||
},
|
||||
[UPDATE_CUSTOM_CSS](state, customCss) {
|
||||
|
||||
@@ -1721,3 +1721,83 @@ html[data-theme='cherry-blossom'] {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
html[data-theme="tama"] {
|
||||
// Main colors
|
||||
--primary: #ffffffe6;
|
||||
--background: #0b1021;
|
||||
--background-darker: #181c3a;
|
||||
--background-darker-transparent: #181c3ad4;
|
||||
--background-grey-transparent: #6b6c73c6;
|
||||
|
||||
// Typography
|
||||
--font-headings: 'Segoe UI', 'Ariel', 'sans-serif';
|
||||
--font-body: 'Segoe UI', 'Ariel', 'sans-serif';
|
||||
|
||||
// Items
|
||||
--item-background: var(--background-darker-transparent);
|
||||
--item-background-hover: var(--background-grey-transparent);
|
||||
--item-shadow: 1px 1px 2px #130f23;
|
||||
--item-hover-shadow: 2px 2px 4px #130f23;
|
||||
|
||||
// Sections
|
||||
--item-group-heading-text-color: var(--white);
|
||||
--item-group-heading-text-color-hover: var(--primary);
|
||||
--item-group-shadow: none;
|
||||
--item-group-background: none;
|
||||
--item-group-outer-background: none;
|
||||
|
||||
// Remove background from certain components
|
||||
div.home, div.options-outer, div.options-container, section.filter-container,
|
||||
section.settings-outer, div.show-hide-container.hide-btn, div.show-hide-container.show-btn {
|
||||
background: none;
|
||||
}
|
||||
|
||||
// Style overides
|
||||
label.lbl-toggle h3 { font-size: 1.3rem; font-weight: bold; }
|
||||
.content-inner { border-top: 1px dashed var(--primary); }
|
||||
.item.size-large .tile-title p.description { height: 3rem; }
|
||||
.is-collapsed {
|
||||
background: var(--item-background);
|
||||
box-shadow: var(--item-shadow);
|
||||
&:hover {
|
||||
background: var(--item-background-hover);
|
||||
box-shadow: var(--item-hover-shadow);
|
||||
}
|
||||
}
|
||||
|
||||
// Background Image
|
||||
body {
|
||||
//update the query terms after the '?', to customize for images you want
|
||||
background: url('https://source.unsplash.com/random/1920x1080/?dark,calm,nature,background');
|
||||
background-color: var(--background-darker);
|
||||
background-size: cover;
|
||||
}
|
||||
header, footer, form.normal { background-color: var(--background-darker-transparent); }
|
||||
|
||||
// large tile spacing adjustment
|
||||
.there-are-items:has(.item-wrapper.wrap-size-large) { padding-top: .25rem; }
|
||||
.item-wrapper.wrap-size-large { margin: 0rem .5rem .5rem 0rem; overflow: hidden; }
|
||||
.item.size-large .tile-title { padding: 0rem 0rem 0rem .7rem; }
|
||||
|
||||
// Hide open method icon
|
||||
.opening-method-icon { opacity: 0; }
|
||||
|
||||
// Widget tile style
|
||||
.widget-base {
|
||||
background-color: var(--background-darker-transparent);
|
||||
margin: .5rem .5rem 1rem .5rem;
|
||||
padding: 0;
|
||||
border: 1px solid var(--outline-color);
|
||||
border-radius: var(--curve-factor);
|
||||
box-shadow: var(--item-shadow);
|
||||
}
|
||||
.widget-base button.action-btn { margin-top: .3rem; margin-right: .5rem; }
|
||||
.widget-wrap { padding: 1.4rem .8rem .8rem .8rem; }
|
||||
|
||||
// Grow effect for tile-icon <img> & <i> on hover over Item tiles
|
||||
.item:hover .item-icon img, .item:hover .item-icon i{
|
||||
transition: all .35s ease-in-out;
|
||||
transform: scale(1.22);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -103,6 +103,7 @@ html {
|
||||
border-radius: var(--curve-factor-small);
|
||||
color: var(--description-tooltip-color);
|
||||
padding: var(--tooltip-padding);
|
||||
overflow: hidden;
|
||||
}
|
||||
.tooltip-arrow {
|
||||
width: 0;
|
||||
|
||||
18
src/utils/CheckPageVisibility.js
Normal file
18
src/utils/CheckPageVisibility.js
Normal file
@@ -0,0 +1,18 @@
|
||||
/**
|
||||
* A helper function that checks if a page is visible based on current users permissions
|
||||
* Checks a page's displayData for hideForUsers, showForUsers and hideForGuests
|
||||
* Returns a boolean that determines if the user has the required permissions
|
||||
*/
|
||||
|
||||
// Import helper functions from auth, to get current user, and check if guest
|
||||
import { getCurrentUser } from '@/utils/Auth';
|
||||
import { isVisibleToUser } from '@/utils/IsVisibleToUser';
|
||||
|
||||
/* Putting it all together, the function to export */
|
||||
export const checkPageVisibility = (page) => {
|
||||
const currentUser = getCurrentUser(); // Get current user object
|
||||
const displayData = page.displayData || {};
|
||||
return isVisibleToUser(displayData, currentUser);
|
||||
};
|
||||
|
||||
export default checkPageVisibility;
|
||||
@@ -10,7 +10,7 @@
|
||||
"type": "array",
|
||||
"description": "List of additional config files to load as extra pages",
|
||||
"items": {
|
||||
"title": "Pages",
|
||||
"title": "Page",
|
||||
"type": "object",
|
||||
"required": ["name", "path"],
|
||||
"additionalProperties": false,
|
||||
@@ -24,6 +24,90 @@
|
||||
"title": "Path",
|
||||
"type": "string",
|
||||
"description": "The file name, or path. If in public directory, use just `file-name.yml`"
|
||||
},
|
||||
"displayData": {
|
||||
"title": "Display Data",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"description": "Optional meta data for customizing a page",
|
||||
"properties": {
|
||||
"hideForUsers": {
|
||||
"title": "Hide for Users",
|
||||
"type": "array",
|
||||
"description": "Page will be visible to all users, except for those specified in this list",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"description": "Username for the user that will not be able to view this page"
|
||||
}
|
||||
},
|
||||
"showForUsers": {
|
||||
"title": "Show for Users",
|
||||
"type": "array",
|
||||
"description": "Page will be hidden from all users, except for those specified in this list",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"description": "Username for the user that will have access to this page"
|
||||
}
|
||||
},
|
||||
"hideForGuests": {
|
||||
"title": "Hide for Guests?",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "If set to true, page will be visible for logged in users, but not for guests"
|
||||
},
|
||||
"showForKeycloakUsers": {
|
||||
"title": "Show for select Keycloak groups or roles",
|
||||
"type": "object",
|
||||
"description": "Configure the Keycloak groups or roles that will have access to this page",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"groups": {
|
||||
"title": "Show for Groups",
|
||||
"type": "array",
|
||||
"description": "Page will be hidden from all users except those with one or more of these groups",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"description": "Name of the group that will be able to view this page"
|
||||
}
|
||||
},
|
||||
"roles": {
|
||||
"title": "Show for Roles",
|
||||
"type": "array",
|
||||
"description": "Page will be hidden from all users except those with one or more of these roles",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"description": "Name of the role that will be able to view this page"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"hideForKeycloakUsers": {
|
||||
"title": "Hide for select Keycloak groups or roles",
|
||||
"type": "object",
|
||||
"description": "Configure the Keycloak groups or roles that will not have access to this page",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"groups": {
|
||||
"title": "Hide for Groups",
|
||||
"type": "array",
|
||||
"description": "Page will be hidden from users with any of these groups",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"description": "name of the group that will not be able to view this page"
|
||||
}
|
||||
},
|
||||
"roles": {
|
||||
"title": "Hide for Roles",
|
||||
"type": "array",
|
||||
"description": "Page will be hidden from users with any of roles",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"description": "name of the role that will not be able to view this page"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -536,13 +620,13 @@
|
||||
"title": "Prevent saving config to disk",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "If set to true, no users will not be able to save config changes to disk through the UI"
|
||||
"description": "If set to true, users will be prevented from saving config changes to disk through the UI"
|
||||
},
|
||||
"preventLocalSave": {
|
||||
"title": "Prevent saving config to local storage",
|
||||
"type": "boolean",
|
||||
"default": false,
|
||||
"description": "If set to true, no users will not be able to save config changes to the browser's local storage"
|
||||
"description": "If set to true, users will be prevented from applying config changes to local storage"
|
||||
},
|
||||
"disableConfiguration": {
|
||||
"title": "Disable all UI Config",
|
||||
@@ -929,6 +1013,11 @@
|
||||
"type": "number",
|
||||
"description": "A numeric shortcut key, between 0 and 9. Useful for quickly launching frequently used applications"
|
||||
},
|
||||
"rel": {
|
||||
"title": "rel",
|
||||
"type": "string",
|
||||
"description": "The rel attribute for the link. For specifying the relationship between the current document and the linked document"
|
||||
},
|
||||
"tags": {
|
||||
"title": "Tags",
|
||||
"type": "array",
|
||||
@@ -1033,6 +1122,11 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"filteredItems": {
|
||||
"title": "Filtered Items - temp",
|
||||
"type": "array",
|
||||
"description": "This attribute will be deprecated in the next release - do not use!"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ export const welcomeMsg = () => {
|
||||
/* Prints warning message, usually when there is a configuration error */
|
||||
export const warningMsg = (message, stack) => {
|
||||
console.info(
|
||||
`\n%c⚠️ Warning ⚠️%c \n${message} \n\n%cThis is likely not an issue with Dashy, but rather your configuration. If you think it is a bug, please open a ticket on GitHub: https://git.io/JukXk`,
|
||||
`\n%c⚠️ Warning ⚠️%c \n${message} \n\n%cThis is likely not an issue with Dashy, but rather your configuration.\nIf you think it is a bug, please open a ticket on GitHub: https://git.io/JukXk`,
|
||||
"color:#ceb73f; background: #ceb73f33; font-size:1.5rem; padding:0.15rem; margin: 1rem auto; font-family: Rockwell, Tahoma, 'Trebuchet MS', Helvetica; border: 2px solid #ceb73f; border-radius: 4px; font-weight: bold; text-shadow: 1px 1px 1px #000000bf;",
|
||||
'font-weight: bold; font-size: 1rem;color: #ceb73f;',
|
||||
"color: #ceb73f; font-size: 0.75rem; font-family: Tahoma, 'Trebuchet MS', Helvetica;",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* Dashy: Licensed under MIT, (C) Alicia Sykes 2021 <https://aliciasykes.com> */
|
||||
/* Dashy: Licensed under MIT, (C) Alicia Sykes 2024 <https://aliciasykes.com> */
|
||||
|
||||
/* Tile filtering utility */
|
||||
import ErrorHandler from '@/utils/ErrorHandler';
|
||||
@@ -24,7 +24,7 @@ const getDomainFromUrl = (url) => {
|
||||
*/
|
||||
const filterHelper = (compareStr, searchStr) => {
|
||||
if (!compareStr) return false;
|
||||
const process = (input) => input?.toString().toLowerCase().replace(/[^\w\s]/gi, '');
|
||||
const process = (input) => input?.toString().toLowerCase().replace(/[^\w\s\p{Alpha}]/giu, '');
|
||||
return process(searchStr).split(/\s/).every(word => process(compareStr).includes(word));
|
||||
};
|
||||
|
||||
|
||||
@@ -85,6 +85,7 @@ module.exports = {
|
||||
'high-contrast-light',
|
||||
'adventure-basic',
|
||||
'basic',
|
||||
'tama',
|
||||
],
|
||||
/* Default color options for the theme configurator swatches */
|
||||
swatches: [
|
||||
@@ -108,11 +109,7 @@ module.exports = {
|
||||
footer: true,
|
||||
},
|
||||
/* A list of route names that page furniture (header, footer, etc) should be hidden on */
|
||||
hideFurnitureOn: [
|
||||
'minimal',
|
||||
'login',
|
||||
'download',
|
||||
],
|
||||
hideFurnitureOn: ['minimal', 'login', 'download'],
|
||||
/* Key names for local storage identifiers */
|
||||
localStorageKeys: {
|
||||
LANGUAGE: 'language',
|
||||
@@ -167,9 +164,7 @@ module.exports = {
|
||||
/* Amount of time to show splash screen, when enabled, in milliseconds */
|
||||
splashScreenTime: 1000,
|
||||
/* Page meta-data, rendered in the header of each view */
|
||||
metaTagData: [
|
||||
{ name: 'description', content: 'A simple static homepage for you\'re server' },
|
||||
],
|
||||
metaTagData: [{ name: 'description', content: "A simple static homepage for you're server" }],
|
||||
/* Default option for Toast messages */
|
||||
toastedOptions: {
|
||||
position: 'bottom-center',
|
||||
@@ -209,17 +204,19 @@ module.exports = {
|
||||
fa: 'https://kit.fontawesome.com',
|
||||
mdi: 'https://cdn.jsdelivr.net/npm/@mdi/font@7.0.96/css/materialdesignicons.min.css',
|
||||
si: 'https://unpkg.com/simple-icons@v7/icons',
|
||||
generative: 'https://avatars.dicebear.com/api/identicon/{icon}.svg',
|
||||
generative: 'https://api.dicebear.com/7.x/identicon/svg?seed={icon}',
|
||||
generativeFallback: 'https://evatar.io/{icon}',
|
||||
localPath: './item-icons',
|
||||
faviconName: 'favicon.ico',
|
||||
homeLabIcons: 'https://raw.githubusercontent.com/walkxcode/dashboard-icons/master/png/{icon}.png',
|
||||
homeLabIconsFallback: 'https://raw.githubusercontent.com/NX211/homer-icons/master/png/{icon}.png',
|
||||
homeLabIcons:
|
||||
'https://raw.githubusercontent.com/walkxcode/dashboard-icons/master/png/{icon}.png',
|
||||
homeLabIconsFallback:
|
||||
'https://raw.githubusercontent.com/NX211/homer-icons/master/png/{icon}.png',
|
||||
},
|
||||
/* API endpoints for widgets that need to fetch external data */
|
||||
widgetApiEndpoints: {
|
||||
anonAddy: 'https://app.anonaddy.com',
|
||||
astronomyPictureOfTheDay: 'https://go-apod.herokuapp.com/apod',
|
||||
astronomyPictureOfTheDay: 'https://apod.as93.net/apod',
|
||||
blacklistCheck: 'https://api.blacklistchecker.com/check',
|
||||
codeStats: 'https://codestats.net/',
|
||||
covidStats: 'https://disease.sh/v3/covid-19',
|
||||
@@ -232,6 +229,7 @@ module.exports = {
|
||||
exchangeRates: 'https://v6.exchangerate-api.com/v6/',
|
||||
flights: 'https://aerodatabox.p.rapidapi.com/flights/airports/icao/',
|
||||
githubTrending: 'https://gh-trending-repos.herokuapp.com/',
|
||||
hackernewsTrending: 'https://hacker-news.firebaseio.com/v0',
|
||||
healthChecks: 'https://healthchecks.io/api/v1/checks',
|
||||
holidays: 'https://kayaposoft.com/enrico/json/v2.0/?action=getHolidaysForDateRange',
|
||||
jokes: 'https://v2.jokeapi.dev/joke/',
|
||||
@@ -242,6 +240,7 @@ module.exports = {
|
||||
publicIp2: 'https://api.ipgeolocation.io/ipgeo',
|
||||
publicIp3: 'http://ip-api.com/json',
|
||||
readMeStats: 'https://github-readme-stats.vercel.app/api',
|
||||
rescueTime: 'https://www.rescuetime.com/anapi/data',
|
||||
rssToJson: 'https://api.rss2json.com/v1/api.json',
|
||||
sportsScores: 'https://www.thesportsdb.com/api/v1/json',
|
||||
stockPriceChart: 'https://www.alphavantage.co/query',
|
||||
@@ -249,7 +248,7 @@ module.exports = {
|
||||
walletBalance: 'https://api.blockcypher.com/v1',
|
||||
walletQrCode: 'https://www.bitcoinqrcodemaker.com/api',
|
||||
weather: 'https://api.openweathermap.org/data/2.5/weather',
|
||||
weatherForecast: 'https://api.openweathermap.org/data/2.5/forecast/daily',
|
||||
weatherForecast: 'https://api.openweathermap.org/data/2.5/forecast',
|
||||
xkcdComic: 'https://xkcd.vercel.app/',
|
||||
},
|
||||
/* URLs for web search engines */
|
||||
@@ -309,8 +308,8 @@ module.exports = {
|
||||
themeColor: '#00af87',
|
||||
msTileColor: '#0b1021',
|
||||
mode: 'production',
|
||||
manifestCrossorigin: 'use-credentials',
|
||||
iconPaths: {
|
||||
manifestCrossorigin: 'use-credentials',
|
||||
favicon64: './web-icons/favicon-64x64.png',
|
||||
favicon32: './web-icons/favicon-32x32.png',
|
||||
maskIcon: './web-icons/dashy-logo.png',
|
||||
|
||||
@@ -17,11 +17,14 @@ import nb from '@/assets/locales/nb.json';
|
||||
import nl from '@/assets/locales/nl.json';
|
||||
import pl from '@/assets/locales/pl.json';
|
||||
import pt from '@/assets/locales/pt.json';
|
||||
import gl from '@/assets/locales/gl.json';
|
||||
import ru from '@/assets/locales/ru.json';
|
||||
import ro from '@/assets/locales/ro.json';
|
||||
import sk from '@/assets/locales/sk.json';
|
||||
import sl from '@/assets/locales/sl.json';
|
||||
import sv from '@/assets/locales/sv.json';
|
||||
import tr from '@/assets/locales/tr.json';
|
||||
import ua from '@/assets/locales/ua.json';
|
||||
import zhCN from '@/assets/locales/zh-CN.json';
|
||||
import zhTW from '@/assets/locales/zh-TW.json';
|
||||
import pirate from '@/assets/locales/zz-pirate.json';
|
||||
@@ -137,12 +140,24 @@ export const languages = [
|
||||
locale: pt,
|
||||
flag: '🇵🇹',
|
||||
},
|
||||
{ // Galician
|
||||
name: 'Galego',
|
||||
code: 'gl',
|
||||
locale: gl,
|
||||
flag: '🛰️',
|
||||
},
|
||||
{ // Russian
|
||||
name: 'Русский',
|
||||
code: 'ru',
|
||||
locale: ru,
|
||||
flag: '🇷🇺',
|
||||
},
|
||||
{ // Romanian
|
||||
name: 'Romana',
|
||||
code: 'ro',
|
||||
locale: ro,
|
||||
flag: '🇷🇴',
|
||||
},
|
||||
{ // Slovak
|
||||
name: 'Slovenčina',
|
||||
code: 'sk',
|
||||
@@ -167,6 +182,12 @@ export const languages = [
|
||||
locale: tr,
|
||||
flag: '🇹🇷',
|
||||
},
|
||||
{ // Ukrainian
|
||||
name: 'Ukrainian',
|
||||
code: 'ua',
|
||||
locale: ua,
|
||||
flag: '🇺🇦',
|
||||
},
|
||||
{ // Chinese
|
||||
name: '简体中文',
|
||||
code: 'cn',
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
<section class="license">
|
||||
<h2>License</h2>
|
||||
<code>
|
||||
Copyright © 2021 Alicia Sykes (https://aliciasykes.com)
|
||||
Copyright © {{new Date().getFullYear()}} Alicia Sykes (https://aliciasykes.com)
|
||||
</code>
|
||||
<br><br>
|
||||
<code>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
+ (singleSectionView ? 'single-section-view ' : '')
|
||||
+ (this.colCount ? `col-count-${this.colCount} ` : '')"
|
||||
>
|
||||
<template v-for="(section, index) in filteredTiles">
|
||||
<template v-for="(section, index) in filteredSections">
|
||||
<Section
|
||||
:key="index"
|
||||
:index="index"
|
||||
@@ -35,22 +35,21 @@
|
||||
:icon="section.icon || undefined"
|
||||
:displayData="getDisplayData(section)"
|
||||
:groupId="`${pageId}-section-${index}`"
|
||||
:items="filterTiles(section.items, searchValue)"
|
||||
:items="section.filteredItems"
|
||||
:widgets="section.widgets"
|
||||
:searchTerm="searchValue"
|
||||
:itemSize="itemSizeBound"
|
||||
@itemClicked="finishedSearching()"
|
||||
@change-modal-visibility="updateModalVisibility"
|
||||
:isWide="!!singleSectionView || layoutOrientation === 'horizontal'"
|
||||
:class="
|
||||
(searchValue && filterTiles(section.items, searchValue).length === 0) ? 'no-results' : ''"
|
||||
:class="(searchValue && section.filteredItems.length === 0) ? 'no-results' : ''"
|
||||
/>
|
||||
</template>
|
||||
<!-- Show add new section button, in edit mode -->
|
||||
<AddNewSection v-if="isEditMode && !singleSectionView" />
|
||||
</div>
|
||||
<!-- Show message when there's no data to show -->
|
||||
<div v-if="checkIfResults() && !isEditMode" class="no-data">
|
||||
<div v-if="checkIfResults(filteredSections) && !isEditMode" class="no-data">
|
||||
{{searchValue ? $t('home.no-results') : $t('home.no-data')}}
|
||||
</div>
|
||||
<!-- Show banner at bottom of screen, for Saving config changes -->
|
||||
@@ -100,10 +99,14 @@ export default {
|
||||
if (colCount > 8) colCount = 8;
|
||||
return colCount;
|
||||
},
|
||||
/* Return all sections, that match users search term */
|
||||
filteredTiles() {
|
||||
/* Return sections with filtered items, that match users search term */
|
||||
filteredSections() {
|
||||
const sections = this.singleSectionView || this.sections;
|
||||
return sections.filter((section) => this.filterTiles(section.items, this.searchValue));
|
||||
return sections.map((_section) => {
|
||||
const section = _section;
|
||||
section.filteredItems = this.filterTiles(section.items, this.searchValue);
|
||||
return section;
|
||||
});
|
||||
},
|
||||
/* Updates layout (when button clicked), and saves in local storage */
|
||||
layoutOrientation() {
|
||||
|
||||
@@ -85,6 +85,9 @@ export default {
|
||||
|
||||
<style scoped lang="scss">
|
||||
.work-space {
|
||||
min-height: calc(100vh - var(--footer-height));
|
||||
min-height: fit-content;
|
||||
}
|
||||
:global(footer) {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user