🔂 Merge master into branch

This commit is contained in:
Alicia Sykes
2024-03-30 21:35:46 +00:00
1514 changed files with 7903 additions and 5342 deletions

View File

@@ -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",

View File

@@ -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"
}
}
}

View File

@@ -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
View 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"
}
}
}

View File

@@ -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
View 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
View 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": "витрачено"
}
}
}

View File

@@ -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": "浪费"
}
}
}
}

View File

@@ -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": "已浪費"
}
}
}

View File

@@ -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 -->

View File

@@ -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: {

View File

@@ -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];

View File

@@ -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;
},

View File

@@ -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;
}
}
}

View File

@@ -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];
},

View File

@@ -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;
}
}

View File

@@ -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;

View 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>

View 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>

View 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>

View File

@@ -74,6 +74,7 @@ export default {
this.jokeLine2 = data.delivery;
} else if (this.jokeType === 'single') {
this.jokeLine1 = data.joke;
this.jokeLine2 = null;
}
},
},

View File

@@ -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);
}

View File

@@ -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) : '',

View 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>

View 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>

View File

@@ -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\'');
}

View File

@@ -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}%` },
],
];
},

View File

@@ -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>

View File

@@ -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

View File

@@ -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;

View File

@@ -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}`;

View File

@@ -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;
}

View File

@@ -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) {

View File

@@ -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);
}
}

View File

@@ -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;

View 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;

View File

@@ -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!"
}
}
}

View File

@@ -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;",

View File

@@ -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));
};

View File

@@ -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',

View File

@@ -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',

View File

@@ -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>

View File

@@ -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() {

View File

@@ -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>