Merge remote-tracking branch 'origin/dev' into dev

This commit is contained in:
Vanessa 2024-10-27 11:27:42 +08:00
commit c716e3cf11
19 changed files with 689 additions and 632 deletions

View File

@ -954,312 +954,312 @@
"refCountDESC": "Referenzanzahl DESC", "refCountDESC": "Referenzanzahl DESC",
"createdASC": "Erstellungszeit ASC", "createdASC": "Erstellungszeit ASC",
"createdDESC": "Erstellungszeit DESC", "createdDESC": "Erstellungszeit DESC",
"docSizeASC": "Dokumentgröße aufsteigend", "docSizeASC": "Dokumentgröße aufsteigend",
"docSizeDESC": "Dokumentgröße absteigend", "docSizeDESC": "Dokumentgröße absteigend",
"subDocCountASC": "Anzahl der Unterdokumente aufsteigend", "subDocCountASC": "Anzahl der Unterdokumente aufsteigend",
"subDocCountDESC": "Anzahl der Unterdokumente absteigend", "subDocCountDESC": "Anzahl der Unterdokumente absteigend",
"sort": "Sortieren", "sort": "Sortieren",
"enterFullscreen": "Vollbildmodus aktivieren", "enterFullscreen": "Vollbildmodus aktivieren",
"exitFullscreen": "Vollbildmodus beenden", "exitFullscreen": "Vollbildmodus beenden",
"clearAll": "Sind Sie sicher, dass Sie alle nicht referenzierten Assets löschen möchten?", "clearAll": "Sind Sie sicher, dass Sie alle nicht referenzierten Assets löschen möchten?",
"missingAssets": "Fehlende Assets", "missingAssets": "Fehlende Assets",
"unreferencedAssets": "Nicht referenzierte Assets", "unreferencedAssets": "Nicht referenzierte Assets",
"paste": "Einfügen", "paste": "Einfügen",
"pasteRef": "Blockreferenz einfügen", "pasteRef": "Blockreferenz einfügen",
"pasteEmbed": "Blockeinbettung einfügen", "pasteEmbed": "Blockeinbettung einfügen",
"cut": "Ausschneiden", "cut": "Ausschneiden",
"mentions": "Erwähnungen", "mentions": "Erwähnungen",
"colorFont": "Schriftfarbe", "colorFont": "Schriftfarbe",
"colorPrimary": "Hintergrundfarbe", "colorPrimary": "Hintergrundfarbe",
"sync": "Synchronisieren", "sync": "Synchronisieren",
"syncNow": "Jetzt synchronisieren", "syncNow": "Jetzt synchronisieren",
"waitSync": "Die Bearbeitungsdaten wurden nicht mit der Cloud synchronisiert", "waitSync": "Die Bearbeitungsdaten wurden nicht mit der Cloud synchronisiert",
"paymentSum": "Kumulativ bezahlt", "paymentSum": "Kumulativ bezahlt",
"refresh": "Aktualisieren", "refresh": "Aktualisieren",
"logout": "Abmelden", "logout": "Abmelden",
"refreshUser": "Benutzerinformationen aktualisiert", "refreshUser": "Benutzerinformationen aktualisiert",
"insertBottom": "Unter dem Tab öffnen", "insertBottom": "Unter dem Tab öffnen",
"insertRight": "Rechts vom Tab öffnen", "insertRight": "Rechts vom Tab öffnen",
"account1": "Werden Sie ein zahlendes Mitglied", "account1": "Werden Sie ein zahlendes Mitglied",
"account4": "Upgrade auf ein Abonnementmitglied", "account4": "Upgrade auf ein Abonnementmitglied",
"account2": "Ende-zu-Ende-verschlüsselte Datensynchronisation und Backup", "account2": "Ende-zu-Ende-verschlüsselte Datensynchronisation und Backup",
"account3": "Testabonnement", "account3": "Testabonnement",
"account5": "Cloud-Hosting für Assets", "account5": "Cloud-Hosting für Assets",
"account6": "Verbleibend, bis das Abonnement abläuft", "account6": "Verbleibend, bis das Abonnement abläuft",
"account10": "Jahresabonnement", "account10": "Jahresabonnement",
"account11": "Bis zum Ende des Frühbucherrabatts", "account11": "Bis zum Ende des Frühbucherrabatts",
"account12": "Lebensbegleiter", "account12": "Lebensbegleiter",
"clickMeToRenew": "Gehe zu Erneuern", "clickMeToRenew": "Gehe zu Erneuern",
"dataHistory": "Datenverlauf", "dataHistory": "Datenverlauf",
"quitApp": "Beenden?", "quitApp": "Beenden?",
"reset": "Zurücksetzen", "reset": "Zurücksetzen",
"siyuanNote": "SiYuan", "siyuanNote": "SiYuan",
"resetLayout": "Standardlayout wiederherstellen", "resetLayout": "Standardlayout wiederherstellen",
"tag": "Tag", "tag": "Tag",
"twoFactorCaptcha": "Zwei-Faktor-Authentifizierung Captcha", "twoFactorCaptcha": "Zwei-Faktor-Authentifizierung Captcha",
"captcha": "Captcha", "captcha": "Captcha",
"register": "Neues Konto erstellen", "register": "Neues Konto erstellen",
"login": "Anmelden", "login": "Anmelden",
"accountTip": "Ich habe die <a target='_blank' href='https://b3log.org/siyuan/en/privacy.html'>Datenschutzrichtlinie von SiYuan</a> gelesen und akzeptiere diese", "accountTip": "Ich habe die <a target='_blank' href='https://b3log.org/siyuan/en/privacy.html'>Datenschutzrichtlinie von SiYuan</a> gelesen und akzeptiere diese",
"forgetPassword": "Passwort vergessen", "forgetPassword": "Passwort vergessen",
"accountName": "Benutzername/E-Mail", "accountName": "Benutzername/E-Mail",
"account": "Konto", "account": "Konto",
"globalGraph": "Globales Diagramm", "globalGraph": "Globales Diagramm",
"backlinks": "Backlinks", "backlinks": "Backlinks",
"editor": "Editor", "editor": "Editor",
"appearance6": "Das Fensterlayout wird nach dem Zurücksetzen in den ursprünglichen Zustand zurückgesetzt", "appearance6": "Das Fensterlayout wird nach dem Zurücksetzen in den ursprünglichen Zustand zurückgesetzt",
"appearance9": "Themenordner öffnen", "appearance9": "Themenordner öffnen",
"appearance8": "Icon-Ordner öffnen", "appearance8": "Icon-Ordner öffnen",
"appearance5": "Wählen Sie den Modus der Benutzeroberfläche aus", "appearance5": "Wählen Sie den Modus der Benutzeroberfläche aus",
"appearance4": "Modus", "appearance4": "Modus",
"appearance3": "Wählen Sie das Syntaxhervorhebungsthema für den Dunkelmodus", "appearance3": "Wählen Sie das Syntaxhervorhebungsthema für den Dunkelmodus",
"appearance2": "Wählen Sie das Syntaxhervorhebungsthema für den Hellmodus", "appearance2": "Wählen Sie das Syntaxhervorhebungsthema für den Hellmodus",
"appearance1": "Codeblock-Thema", "appearance1": "Codeblock-Thema",
"appearance10": "Einstellungen für die Schaltfläche schließen", "appearance10": "Einstellungen für die Schaltfläche schließen",
"appearance11": "Nach dem Klicken auf die Schaltfläche schließen in das Tray minimieren", "appearance11": "Nach dem Klicken auf die Schaltfläche schließen in das Tray minimieren",
"appearance16": "Untere Statusleiste ausblenden", "appearance16": "Untere Statusleiste ausblenden",
"appearance17": "Die Statusleiste am unteren Bildschirmrand ausblenden, wenn aktiviert", "appearance17": "Die Statusleiste am unteren Bildschirmrand ausblenden, wenn aktiviert",
"min": "Min", "min": "Min",
"restore": "Wiederherstellen", "restore": "Wiederherstellen",
"max": "Max", "max": "Max",
"md2": "Codeblock-Ligatur", "md2": "Codeblock-Ligatur",
"md3": "Nach der Aktivierung wird die Ligatur im Codeblock angezeigt", "md3": "Nach der Aktivierung wird die Ligatur im Codeblock angezeigt",
"md4": "Nach der Aktivierung den Beginn der Absätze automatisch einrücken, um traditionellen chinesischen Setzgewohnheiten zu entsprechen", "md4": "Nach der Aktivierung den Beginn der Absätze automatisch einrücken, um traditionellen chinesischen Setzgewohnheiten zu entsprechen",
"md7": "Ob das Netzwerkbild-Eckzeichen angezeigt werden soll", "md7": "Ob das Netzwerkbild-Eckzeichen angezeigt werden soll",
"md8": "Nach der Aktivierung wird, wenn das Bild eine Webdatei (kein lokales Asset) ist, ein Eckzeichen angezeigt", "md8": "Nach der Aktivierung wird, wenn das Bild eine Webdatei (kein lokales Asset) ist, ein Eckzeichen angezeigt",
"md9": "Virtuelle Referenz-Stichwort-Einschlussliste", "md9": "Virtuelle Referenz-Stichwort-Einschlussliste",
"md12": "Ob Lesezeichen, Name, Alias, Memo und Referenzanzahl angezeigt werden sollen", "md12": "Ob Lesezeichen, Name, Alias, Memo und Referenzanzahl angezeigt werden sollen",
"md16": "Nach der Aktivierung wird, wenn solche Informationen vorhanden sind, dies auf der oberen rechten Seite des Blocks angezeigt", "md16": "Nach der Aktivierung wird, wenn solche Informationen vorhanden sind, dies auf der oberen rechten Seite des Blocks angezeigt",
"md27": "Codeblock-Zeilennummer", "md27": "Codeblock-Zeilennummer",
"md28": "Nach der Aktivierung zeigt der Codeblock die Zeilennummer an (Bitte beachten Sie, dass die Aktivierung die Leistung des Editors beeinträchtigen kann)", "md28": "Nach der Aktivierung zeigt der Codeblock die Zeilennummer an (Bitte beachten Sie, dass die Aktivierung die Leistung des Editors beeinträchtigen kann)",
"md29": "Anzahl der Tabulatoren", "md29": "Anzahl der Tabulatoren",
"md30": "Ersetzt nur durch Leerzeichen, wenn Tab gedrückt wird, ersetzt keine Tabs (Tab) in der Zwischenablage durch Leerzeichen", "md30": "Ersetzt nur durch Leerzeichen, wenn Tab gedrückt wird, ersetzt keine Tabs (Tab) in der Zwischenablage durch Leerzeichen",
"md31": "Codeblock-Wraps", "md31": "Codeblock-Wraps",
"md32": "Nach der Aktivierung wird der Inhalt im Codeblock automatisch umgebrochen", "md32": "Nach der Aktivierung wird der Inhalt im Codeblock automatisch umgebrochen",
"md33": "Virtuelle Referenz", "md33": "Virtuelle Referenz",
"md34": "Nach der Aktivierung wird sie automatisch mögliche Referenzbeziehungen nach Name, Alias und Ankertext des bestehenden Blockrefs erkennen.", "md34": "Nach der Aktivierung wird sie automatisch mögliche Referenzbeziehungen nach Name, Alias und Ankertext des bestehenden Blockrefs erkennen.",
"md35": "Virtuelle Referenz-Stichwort-Ausschlussliste", "md35": "Virtuelle Referenz-Stichwort-Ausschlussliste",
"md36": "Verwende das englische Komma <code class='fn__code'>,</code> zum Trennen, das Komma selbst kann mit <code class='fn__code'>\\,</code> escaped werden.", "md36": "Verwende das englische Komma <code class='fn__code'>,</code> zum Trennen, das Komma selbst kann mit <code class='fn__code'>\\,</code> escaped werden.",
"md37": "Die maximale Länge des dynamischen Ankertextes des Blockrefs", "md37": "Die maximale Länge des dynamischen Ankertextes des Blockrefs",
"md38": "Die maximale Länge des Ankertextes, die automatisch gerendert wird, wenn der Ankertext des Blockrefs nicht angepasst ist, beträgt standardmäßig <code class='fn__code'>96</code> Zeichen", "md38": "Die maximale Länge des Ankertextes, die automatisch gerendert wird, wenn der Ankertext des Blockrefs nicht angepasst ist, beträgt standardmäßig <code class='fn__code'>96</code> Zeichen",
"md39": "PlantUML-Serveradresse", "md39": "PlantUML-Serveradresse",
"md40": "Leer lassen, um die Standardeinstellung wiederherzustellen <code class='fn__code'>https://www.plantuml.com/plantuml/svg/~1</code>", "md40": "Leer lassen, um die Standardeinstellung wiederherzustellen <code class='fn__code'>https://www.plantuml.com/plantuml/svg/~1</code>",
"md41": "Unterstützen Sie die Verwendung von <code class='fn__code'>/</code>, um reguläre Ausdrücke zu umschließen, zum Beispiel <code class='fn__code'>foo,/[0-9]+/</code> bedeutet, foo und Zahlen auszuschließen", "md41": "Unterstützen Sie die Verwendung von <code class='fn__code'>/</code>, um reguläre Ausdrücke zu umschließen, zum Beispiel <code class='fn__code'>foo,/[0-9]+/</code> bedeutet, foo und Zahlen auszuschließen",
"fileTree2": "Der Dokumentbaum wählt automatisch das aktuelle Dokument aus, wenn der Editor-Tab gewechselt wird", "fileTree2": "Der Dokumentbaum wählt automatisch das aktuelle Dokument aus, wenn der Editor-Tab gewechselt wird",
"fileTree3": "Keine Bestätigung erforderlich beim Löschen von Dokumenten", "fileTree3": "Keine Bestätigung erforderlich beim Löschen von Dokumenten",
"fileTree4": "Wenn nicht aktiviert, wird jedes Mal ein Bestätigungsfeld angezeigt, wenn Sie ein Dokument löschen", "fileTree4": "Wenn nicht aktiviert, wird jedes Mal ein Bestätigungsfeld angezeigt, wenn Sie ein Dokument löschen",
"fileTree5": "Referenz erstellt Doc-Speicherort", "fileTree5": "Referenz erstellt Doc-Speicherort",
"fileTree6": "Beim Verwenden von <code class='fn__code'>((</code> der Speicherpfad des neuen Dokuments (z.B. <code class='fn__code'>/folder1/{{now | date \"20060102150405\"}}/</code>)", "fileTree6": "Beim Verwenden von <code class='fn__code'>((</code> der Speicherpfad des neuen Dokuments (z.B. <code class='fn__code'>/folder1/{{now | date \"20060102150405\"}}/</code>)",
"fileTree7": "Im aktuellen Tab öffnen", "fileTree7": "Im aktuellen Tab öffnen",
"fileTree8": "Der neu geöffnete Dokumenten-Tab ersetzt den nicht modifizierten Tab", "fileTree8": "Der neu geöffnete Dokumenten-Tab ersetzt den nicht modifizierten Tab",
"fileTree9": "Alle Tabs beim Start schließen", "fileTree9": "Alle Tabs beim Start schließen",
"fileTree10": "Nach der Aktivierung werden die nicht festgepinnten Tabs, die beim letzten Mal geöffnet wurden, jedes Mal automatisch geschlossen, wenn die Benutzeroberfläche gestartet wird", "fileTree10": "Nach der Aktivierung werden die nicht festgepinnten Tabs, die beim letzten Mal geöffnet wurden, jedes Mal automatisch geschlossen, wenn die Benutzeroberfläche gestartet wird",
"fileTree11": "Neue tägliche Notiz", "fileTree11": "Neue tägliche Notiz",
"fileTree12": "Neuer Dokumentenspeicherort", "fileTree12": "Neuer Dokumentenspeicherort",
"fileTree13": "Beim Verwenden von <code class='fn__code'>Ctrl+N</code> der Speicherpfad des neuen Dokuments (z.B. <code class='fn__code'>/folder1/{{now | date \"20060102150405\"}}</code>, der relative Pfad des aktuellen Dokuments wird verwendet, wenn er nicht mit <code class='fn__code'>/</code> beginnt)", "fileTree13": "Beim Verwenden von <code class='fn__code'>Ctrl+N</code> der Speicherpfad des neuen Dokuments (z.B. <code class='fn__code'>/folder1/{{now | date \"20060102150405\"}}</code>, der relative Pfad des aktuellen Dokuments wird verwendet, wenn er nicht mit <code class='fn__code'>/</code> beginnt)",
"fileTree14": "Speicherpfad (unterstützt Datumsformat-Template-Variablen, wie <code class='fn__code'>/Daily Notes/{{now | date \"2006/01\"}}/{{now | date \"2006-01-02\"}}</code>)", "fileTree14": "Speicherpfad (unterstützt Datumsformat-Template-Variablen, wie <code class='fn__code'>/Daily Notes/{{now | date \"2006/01\"}}/{{now | date \"2006-01-02\"}}</code>)",
"fileTree15": "Vorlagenpfad (zum Beispiel <code class='fn__code'>dailynote.md</code>, die Datei muss im Arbeitsbereich/data/templates/ platziert werden)", "fileTree15": "Vorlagenpfad (zum Beispiel <code class='fn__code'>dailynote.md</code>, die Datei muss im Arbeitsbereich/data/templates/ platziert werden)",
"fileTree16": "Maximale Anzahl an aufzulistenden", "fileTree16": "Maximale Anzahl an aufzulistenden",
"fileTree17": "Wenn es zu viele Unterdokumente/Tags gibt, kann diese Einschränkung verwendet werden, um die Leistung zu verbessern", "fileTree17": "Wenn es zu viele Unterdokumente/Tags gibt, kann diese Einschränkung verwendet werden, um die Leistung zu verbessern",
"fileTree18": "Erlaubt die Erstellung von Unterdokumenten, die tiefer als 7 Ebenen sind", "fileTree18": "Erlaubt die Erstellung von Unterdokumenten, die tiefer als 7 Ebenen sind",
"fileTree19": "Einige Betriebssysteme haben technische Einschränkungen, die das manuelle Kopieren von Arbeitsbereichsdaten nach der Erstellung von Unterdokumenten mit mehr als 7 Ebenen verhindern können", "fileTree19": "Einige Betriebssysteme haben technische Einschränkungen, die das manuelle Kopieren von Arbeitsbereichsdaten nach der Erstellung von Unterdokumenten mit mehr als 7 Ebenen verhindern können",
"fileTree20": "Speichern mit einer einzigen Zeile", "fileTree20": "Speichern mit einer einzigen Zeile",
"fileTree21": "Nach der Aktivierung wird beim Speichern von .sy-Dokumenten und Datenbank-.json-Dateien das Einzeilige JSON-Format verwendet, was die Dateigröße um etwa 30 % reduzieren und die Lese- und Schreibgeschwindigkeit um 50 % verbessern kann", "fileTree21": "Nach der Aktivierung wird beim Speichern von .sy-Dokumenten und Datenbank-.json-Dateien das Einzeilige JSON-Format verwendet, was die Dateigröße um etwa 30 % reduzieren und die Lese- und Schreibgeschwindigkeit um 50 % verbessern kann",
"export10": "Beispiel <code class='fn__code'>&lt;span style=\"color: #fff;background-color: black;padding: 4px;border-radius: 5px;float:right;\"&gt;SiYuan&lt;/span&gt;</code>, wenn leer, verwenden Sie Wasserzeichentext oder den Pfad zur Wasserzeichen-Datei.", "export10": "Beispiel <code class='fn__code'>&lt;span style=\"color: #fff;background-color: black;padding: 4px;border-radius: 5px;float:right;\"&gt;SiYuan&lt;/span&gt;</code>, wenn leer, verwenden Sie Wasserzeichentext oder den Pfad zur Wasserzeichen-Datei.",
"export11": "Inhaltsbehandlungsverfahren des Inhaltsreferenzblocks beim Exportieren", "export11": "Inhaltsbehandlungsverfahren des Inhaltsreferenzblocks beim Exportieren",
"export12": "Inhaltsbehandlungsverfahren des Inhalteinbettungsblocks beim Exportieren", "export12": "Inhaltsbehandlungsverfahren des Inhalteinbettungsblocks beim Exportieren",
"export13": "Ankertextumbruchsymbol", "export13": "Ankertextumbruchsymbol",
"export14": "Bitte füllen Sie das Symbol auf der linken Seite des Ankertextes und das Symbol auf der rechten Seite des Ankertextes der Reihe nach in das Eingabefeld ein", "export14": "Bitte füllen Sie das Symbol auf der linken Seite des Ankertextes und das Symbol auf der rechten Seite des Ankertextes der Reihe nach in das Eingabefeld ein",
"export15": "Label-Paket-Symbol", "export15": "Label-Paket-Symbol",
"export16": "Bitte füllen Sie das Symbol auf der linken Seite des Tags und das Symbol auf der rechten Seite des Tags der Reihe nach in das Eingabefeld ein", "export16": "Bitte füllen Sie das Symbol auf der linken Seite des Tags und das Symbol auf der rechten Seite des Tags der Reihe nach in das Eingabefeld ein",
"export17": "Dokumenttitel hinzufügen", "export17": "Dokumenttitel hinzufügen",
"export18": "Nach der Aktivierung den Dokumenttitel als Überschrift 1 am Anfang einfügen", "export18": "Nach der Aktivierung den Dokumenttitel als Überschrift 1 am Anfang einfügen",
"export19": "Pfad zur Pandoc ausführbaren Datei", "export19": "Pfad zur Pandoc ausführbaren Datei",
"export20": "Exportieren von Word .docx-Dateien erfordert Formatkonvertierung mit <a href=\"https://pandoc.org\" target=\"_blank\">Pandoc</a>", "export20": "Exportieren von Word .docx-Dateien erfordert Formatkonvertierung mit <a href=\"https://pandoc.org\" target=\"_blank\">Pandoc</a>",
"export21": "Export-PDF-Fußzeilenvorlage", "export21": "Export-PDF-Fußzeilenvorlage",
"export22": "<code class='fn__code'>%page</code> ist die aktuelle Seitenzahl, <code class='fn__code'>%pages</code> ist die Gesamtseitenzahl und unterstützt Sprig-Vorlagenfunktionen", "export22": "<code class='fn__code'>%page</code> ist die aktuelle Seitenzahl, <code class='fn__code'>%pages</code> ist die Gesamtseitenzahl und unterstützt Sprig-Vorlagenfunktionen",
"export23": "Exportieren Markdown mit YAML-Vorwort", "export23": "Exportieren Markdown mit YAML-Vorwort",
"export24": "Nach der Aktivierung einige allgemeine Metadateninformationen am Anfang der exportierten Markdown-Datei hinzufügen", "export24": "Nach der Aktivierung einige allgemeine Metadateninformationen am Anfang der exportierten Markdown-Datei hinzufügen",
"export25": "Export-Pfad der Word .docx-Vorlage", "export25": "Export-Pfad der Word .docx-Vorlage",
"export26": "Der absolute Pfad der Vorlage, die beim Exportieren von Word .docx-Dateien verwendet wird, d.h., der Pandoc <a href=\"https://pandoc.org/MANUAL.html#option--reference-doc\" target=\"_blank \">--reference-doc</a> Parameterwert", "export26": "Der absolute Pfad der Vorlage, die beim Exportieren von Word .docx-Dateien verwendet wird, d.h., der Pandoc <a href=\"https://pandoc.org/MANUAL.html#option--reference-doc\" target=\"_blank \">--reference-doc</a> Parameterwert",
"export27": "Export PDF-Wasserzeichen", "export27": "Export PDF-Wasserzeichen",
"export28": "Wasserzeichentext oder Wasserzeichen-Dateipfad", "export28": "Wasserzeichentext oder Wasserzeichen-Dateipfad",
"export29": "Wasserzeichenposition, Größe und Stil usw.", "export29": "Wasserzeichenposition, Größe und Stil usw.",
"export30": "Exportieren Sie Bildwasserzeichen", "export30": "Exportieren Sie Bildwasserzeichen",
"theme11": "Verwenden Sie das Thema im Hellmodus", "theme11": "Verwenden Sie das Thema im Hellmodus",
"theme12": "Verwenden Sie das Thema im Dunkelmodus", "theme12": "Verwenden Sie das Thema im Dunkelmodus",
"theme2": "Wählen Sie die in der Benutzeroberfläche verwendeten Icons aus", "theme2": "Wählen Sie die in der Benutzeroberfläche verwendeten Icons aus",
"language1": "Wählen Sie die Anzeigesprache der Benutzeroberfläche", "language1": "Wählen Sie die Anzeigesprache der Benutzeroberfläche",
"summary": "Zusammenfassung", "summary": "Zusammenfassung",
"bookmark": "Lesezeichen", "bookmark": "Lesezeichen",
"icon": "Symbol", "icon": "Symbol",
"appearance": "Erscheinungsbild", "appearance": "Erscheinungsbild",
"export0": "Ursprünglicher Text", "export0": "Ursprünglicher Text",
"export1": "Blockzitat", "export1": "Blockzitat",
"export2": "Ankertext mit Block-URL", "export2": "Ankertext mit Block-URL",
"export3": "Nur Ankertext", "export3": "Nur Ankertext",
"export4": "Fußnoten", "export4": "Fußnoten",
"export5": "PDF-Annotation Referenz", "export5": "PDF-Annotation Referenz",
"export6": "Über die Verarbeitung von Ankertext in PDF-Annotationen beim Exportieren", "export6": "Über die Verarbeitung von Ankertext in PDF-Annotationen beim Exportieren",
"export7": "Dateiname - Seitennummer - Ankertext", "export7": "Dateiname - Seitennummer - Ankertext",
"export8": "Nur Ankertext", "export8": "Nur Ankertext",
"export9": "Ankerhash", "export9": "Ankerhash",
"graphConfig2": "Referenzanzahlfilter", "graphConfig2": "Referenzanzahlfilter",
"selectOpen": "Immer geöffnetes Dokument auswählen", "selectOpen": "Immer geöffnetes Dokument auswählen",
"selectOpen1": "Ausgewähltes geöffnetes Dokument", "selectOpen1": "Ausgewähltes geöffnetes Dokument",
"closeAll": "Alle Tabs schließen", "closeAll": "Alle Tabs schließen",
"closeOthers": "Andere Tabs schließen", "closeOthers": "Andere Tabs schließen",
"closeLeft": "Tabs links schließen", "closeLeft": "Tabs links schließen",
"closeRight": "Tabs rechts schließen", "closeRight": "Tabs rechts schließen",
"closeUnmodified": "Unmodifizierte Tabs schließen", "closeUnmodified": "Unmodifizierte Tabs schließen",
"newFileTip": "Bitte öffnen Sie zuerst ein Notizbuch", "newFileTip": "Bitte öffnen Sie zuerst ein Notizbuch",
"copyBlockRef": "Blockreferenz kopieren", "copyBlockRef": "Blockreferenz kopieren",
"copyBlockEmbed": "Blockeinbettung kopieren", "copyBlockEmbed": "Blockeinbettung kopieren",
"linkLevel": "Tiefe", "linkLevel": "Tiefe",
"mark": "Markieren", "mark": "Markieren",
"splitLR": "Rechts aufteilen", "splitLR": "Rechts aufteilen",
"splitMoveR": "Aufteilen und nach rechts verschieben", "splitMoveR": "Aufteilen und nach rechts verschieben",
"splitTB": "Nach unten aufteilen", "splitTB": "Nach unten aufteilen",
"splitMoveB": "Aufteilen und nach unten verschieben", "splitMoveB": "Aufteilen und nach unten verschieben",
"debug": "Entwicklerwerkzeuge", "debug": "Entwicklerwerkzeuge",
"fileTree": "Dokumentbaum", "fileTree": "Dokumentbaum",
"graphView": "Diagrammansicht", "graphView": "Diagrammansicht",
"sponsor": "Entwickler unterstützen", "sponsor": "Entwickler unterstützen",
"relativeRelation": "Verknüpft", "relativeRelation": "Verknüpft",
"parentRelation": "Eltern - Kind", "parentRelation": "Eltern - Kind",
"openInNewTab": "In neuem Tab öffnen", "openInNewTab": "In neuem Tab öffnen",
"help": "Hilfe", "help": "Hilfe",
"userGuide": "Benutzerhandbuch", "userGuide": "Benutzerhandbuch",
"paragraphBeginningSpace": "Zwei Leerzeichen am Anfang des Absatzes", "paragraphBeginningSpace": "Zwei Leerzeichen am Anfang des Absatzes",
"outline": "Gliederung", "outline": "Gliederung",
"newFile": "Neues Dokument", "newFile": "Neues Dokument",
"newFileRef": "Neues Dokument mit Referenz erstellen", "newFileRef": "Neues Dokument mit Referenz erstellen",
"close": "Schließen", "close": "Schließen",
"delete": "Löschen", "delete": "Löschen",
"rename": "Umbenennen", "rename": "Umbenennen",
"cancel": "Abbrechen", "cancel": "Abbrechen",
"confirm": "Bestätigen", "confirm": "Bestätigen",
"confirmDelete": "Löschen", "confirmDelete": "Löschen",
"confirmDeleteCloudDir": "Sind Sie sicher, dass Sie das Cloud-Synchronisationsverzeichnis löschen möchten?", "confirmDeleteCloudDir": "Sind Sie sicher, dass Sie das Cloud-Synchronisationsverzeichnis löschen möchten?",
"back": "Zurück", "back": "Zurück",
"mount": "Notizbuch öffnen", "mount": "Notizbuch öffnen",
"newNotebook": "Neues Notizbuch", "newNotebook": "Neues Notizbuch",
"fileNameRule": "Dokumenttitel darf das /-Zeichen nicht enthalten", "fileNameRule": "Dokumenttitel darf das /-Zeichen nicht enthalten",
"slogan": "Refaktorisieren Sie Ihr Denken", "slogan": "Refaktorisieren Sie Ihr Denken",
"showInFolder": "Im Ordner anzeigen", "showInFolder": "Im Ordner anzeigen",
"search": "Suchen", "search": "Suchen",
"config": "Einstellungen", "config": "Einstellungen",
"userName": "Benutzername", "userName": "Benutzername",
"password": "Passwort", "password": "Passwort",
"passphrase": "Passwortphrase", "passphrase": "Passwortphrase",
"reEnterPassphrase": "Geben Sie das Passwort erneut ein", "reEnterPassphrase": "Geben Sie das Passwort erneut ein",
"theme": "Thema", "theme": "Thema",
"language": "Sprache", "language": "Sprache",
"about": "Über", "about": "Über",
"about1": "Urheberrecht (c) 2020-heute • Yunnan Liandi Technology Co., Ltd. • <a target='_blank' href='https://b3log.org/siyuan/en/privacy.html'>Datenschutzrichtlinie</a> • <a target='_blank' href='https://b3log.org/siyuan/en/eula.html'>Nutzervereinbarung</a>", "about1": "Urheberrecht (c) 2020-heute • Yunnan Liandi Technology Co., Ltd. • <a target='_blank' href='https://b3log.org/siyuan/en/privacy.html'>Datenschutzrichtlinie</a> • <a target='_blank' href='https://b3log.org/siyuan/en/eula.html'>Nutzervereinbarung</a>",
"about2": "Verwendung im Browser", "about2": "Verwendung im Browser",
"about3": "Bitte verwenden Sie den Chrome-Browser und halten Sie ihn im selben Netzwerk wie den Computer, Port <code class='fn__code'>${port}</code> (Neben dem zufälligen Port wird das zuerst gestartete Arbeitsbereichsdokument außerdem automatisch <code class='fn__code'>6806</code> als festen Port abhören, um zu ermöglichen, dass der Browser Erweiterungen oder andere externe Programme auf die Kernel-Schnittstelle aufruft), die möglicherweise verbundenen Adressen sind wie folgt:", "about3": "Bitte verwenden Sie den Chrome-Browser und halten Sie ihn im selben Netzwerk wie den Computer, Port <code class='fn__code'>${port}</code> (Neben dem zufälligen Port wird das zuerst gestartete Arbeitsbereichsdokument außerdem automatisch <code class='fn__code'>6806</code> als festen Port abhören, um zu ermöglichen, dass der Browser Erweiterungen oder andere externe Programme auf die Kernel-Schnittstelle aufruft), die möglicherweise verbundenen Adressen sind wie folgt:",
"about4": "Browser öffnen", "about4": "Browser öffnen",
"about5": "Zugriffsautorisierungscode", "about5": "Zugriffsautorisierungscode",
"about6": "Nach der Konfiguration wird es als Zugangsauthentifizierungspasswort verwendet, lassen Sie es leer, um die Authentifizierung zu schließen", "about6": "Nach der Konfiguration wird es als Zugangsauthentifizierungspasswort verwendet, lassen Sie es leer, um die Authentifizierung zu schließen",
"about7": "Entspricht dem Systembildschirm", "about7": "Entspricht dem Systembildschirm",
"about8": "Nach der Aktivierung wird die Anwendung automatisch gesperrt, wenn der Systembildschirm gesperrt wird", "about8": "Nach der Aktivierung wird die Anwendung automatisch gesperrt, wenn der Systembildschirm gesperrt wird",
"about9": "Fehlermeldungen und Diagnosedaten automatisch hochladen", "about9": "Fehlermeldungen und Diagnosedaten automatisch hochladen",
"about10": "Nach der Aktivierung werden Fehlerinformationen und Diagnosedaten automatisch über das <a href=\"https://sentry.io\" target=\"_blank\">Sentry</a> SDK hochgeladen, was keine persönlichen Privatsphärendaten umfasst, damit Entwickler Fehler beheben können. Die Anwendung wird nach der Modifikation automatisch geschlossen, bitte manuell neu starten", "about10": "Nach der Aktivierung werden Fehlerinformationen und Diagnosedaten automatisch über das <a href=\"https://sentry.io\" target=\"_blank\">Sentry</a> SDK hochgeladen, was keine persönlichen Privatsphärendaten umfasst, damit Entwickler Fehler beheben können. Die Anwendung wird nach der Modifikation automatisch geschlossen, bitte manuell neu starten",
"about11": "Netzwerkservice", "about11": "Netzwerkservice",
"about12": "Nach der Aktivierung dürfen andere Geräte im selben LAN zugreifen. Die Anwendung wird nach der Modifikation automatisch geschlossen, bitte manuell neu starten", "about12": "Nach der Aktivierung dürfen andere Geräte im selben LAN zugreifen. Die Anwendung wird nach der Modifikation automatisch geschlossen, bitte manuell neu starten",
"about13": "API-Token", "about13": "API-Token",
"about14": "Der Token muss bei der API-Anrufung authentifiziert werden<br>HTTP-Anforderungsheader <code class=\"fn__code\">Authorization: token ${token}</code>", "about14": "Der Token muss bei der API-Anrufung authentifiziert werden<br>HTTP-Anforderungsheader <code class=\"fn__code\">Authorization: token ${token}</code>",
"about17": "Proxy nicht aktivieren, wenn auf <code class='fn__code'>Direkte Verbindung</code> gesetzt", "about17": "Proxy nicht aktivieren, wenn auf <code class='fn__code'>Direkte Verbindung</code> gesetzt",
"about18": "Beim Verwenden einer Nicht-Loopback-Adresse (<code class=\"fn__code\">127.0.0.1</code>/<code class=\"fn__code\">[::1]</code>) bitte zuerst den Zugriffsautorisierungscode setzen", "about18": "Beim Verwenden einer Nicht-Loopback-Adresse (<code class=\"fn__code\">127.0.0.1</code>/<code class=\"fn__code\">[::1]</code>) bitte zuerst den Zugriffsautorisierungscode setzen",
"checkUpdate": "Aktualisierung überprüfen", "checkUpdate": "Aktualisierung überprüfen",
"currentVer": "Aktuelle Version", "currentVer": "Aktuelle Version",
"downloadLatestVer": "<a href=\"https://b3log.org/siyuan/en/download.html\", target=\"_blank\">Laden Sie die neueste Version herunter</a>", "downloadLatestVer": "<a href=\"https://b3log.org/siyuan/en/download.html\", target=\"_blank\">Laden Sie die neueste Version herunter</a>",
"themeLight": "Hell", "themeLight": "Hell",
"themeDark": "Dunkel", "themeDark": "Dunkel",
"themeOS": "Dem System folgen", "themeOS": "Dem System folgen",
"pasteAsPlainText": "Als Klartext einfügen", "pasteAsPlainText": "Als Klartext einfügen",
"assets": "Assets", "assets": "Assets",
"alignCenter": "Zentrieren", "alignCenter": "Zentrieren",
"alignLeft": "Links", "alignLeft": "Links",
"alignRight": "Rechts", "alignRight": "Rechts",
"alternateText": "Alternativer Text", "alternateText": "Alternativer Text",
"bold": "Fett", "bold": "Fett",
"cardPreview": "Vorschau", "cardPreview": "Vorschau",
"check": "Aufgabenliste", "check": "Aufgabenliste",
"code": "Codeblock", "code": "Codeblock",
"column": "Spalte", "column": "Spalte",
"copied": "Kopiert", "copied": "Kopiert",
"copy": "Kopieren", "copy": "Kopieren",
"copyText": "Text kopieren *", "copyText": "Text kopieren *",
"delete-column": "Spalte löschen", "delete-column": "Spalte löschen",
"delete-row": "Zeile löschen", "delete-row": "Zeile löschen",
"down": "Nach unten", "down": "Nach unten",
"downloadTip": "Der Browser unterstützt die Download-Funktion nicht", "downloadTip": "Der Browser unterstützt die Download-Funktion nicht",
"edit-mode": "Modus umschalten", "edit-mode": "Modus umschalten",
"emoji": "Emoji", "emoji": "Emoji",
"export": "Exportieren", "export": "Exportieren",
"fileTypeError": "Dateityp ist fehlerhaft", "fileTypeError": "Dateityp ist fehlerhaft",
"fullscreen": "Vollbildmodus umschalten", "fullscreen": "Vollbildmodus umschalten",
"generate": "Generierung", "generate": "Generierung",
"headings": "Überschriften", "headings": "Überschriften",
"imageURL": "Bild-URL", "imageURL": "Bild-URL",
"indent": "Einrücken", "indent": "Einrücken",
"info": "Info", "info": "Info",
"inline-code": "Inline-Code", "inline-code": "Inline-Code",
"insert-after": "Block nachfügen", "insert-after": "Block nachfügen",
"insert-before": "Block davor einfügen", "insert-before": "Block davor einfügen",
"insertColumnLeft": "1 links einfügen", "insertColumnLeft": "1 links einfügen",
"insertColumnRight": "1 rechts einfügen", "insertColumnRight": "1 rechts einfügen",
"insertRowAbove": "1 oben einfügen", "insertRowAbove": "1 oben einfügen",
"insertRowBelow": "1 unten einfügen", "insertRowBelow": "1 unten einfügen",
"italic": "Kursiv", "italic": "Kursiv",
"line": "Thematic break", "line": "Thematic break",
"link": "Link", "link": "Link",
"image": "Bild", "image": "Bild",
"ref": "Ref", "ref": "Ref",
"list": "Liste", "list": "Liste",
"more": "Mehr", "more": "Mehr",
"nameEmpty": "Name ist leer", "nameEmpty": "Name ist leer",
"ordered-list": "Geordnete Liste", "ordered-list": "Geordnete Liste",
"outdent": "Ausrücken", "outdent": "Ausrücken",
"outlineOutdent": "Listenumriss ausrücken", "outlineOutdent": "Listenumriss ausrücken",
"outlineOutdentTip": "Nach der Aktivierung wird das Ausrücken den Listenumriss-Logik verwenden, d.h. die Listenpunkte unter dem übergeordneten Element verschieben", "outlineOutdentTip": "Nach der Aktivierung wird das Ausrücken den Listenumriss-Logik verwenden, d.h. die Listenpunkte unter dem übergeordneten Element verschieben",
"spellcheck": "Rechtschreibprüfung", "spellcheck": "Rechtschreibprüfung",
"spellcheckTip": "Nach der Aktivierung wird die eingebaute Rechtschreibprüfung des Browsers verwendet. Derzeit wird nur die englische Rechtschreibprüfung unterstützt.", "spellcheckTip": "Nach der Aktivierung wird die eingebaute Rechtschreibprüfung des Browsers verwendet. Derzeit wird nur die englische Rechtschreibprüfung unterstützt.",
"over": "über", "over": "über",
"preview": "Export Vorschau", "preview": "Export Vorschau",
"desktop": "Desktop", "desktop": "Desktop",
"tablet": "Tablet", "tablet": "Tablet",
"mobile": "Mobil", "mobile": "Mobil",
"copyToWechatMP": "In Wechat MP kopieren", "copyToWechatMP": "In Wechat MP kopieren",
"copyToZhihu": "In Zhihu kopieren", "copyToZhihu": "In Zhihu kopieren",
"copyToYuque": "In Yuque kopieren", "copyToYuque": "In Yuque kopieren",
"pasteToWechatMP": "Kopiert, bereit zum Einfügen in Wechat MP", "pasteToWechatMP": "Kopiert, bereit zum Einfügen in Wechat MP",
"pasteToZhihu": "Kopiert, bereit zum Einfügen in Zhihu", "pasteToZhihu": "Kopiert, bereit zum Einfügen in Zhihu",
"pasteToYuque": "Kopiert, bereit zum Einfügen in Yuque", "pasteToYuque": "Kopiert, bereit zum Einfügen in Yuque",
"quote": "Blockzitat", "quote": "Blockzitat",
"startRecord": "Aufzeichnung starten", "startRecord": "Aufzeichnung starten",
"endRecord": "Aufzeichnung beenden", "endRecord": "Aufzeichnung beenden",
"record-tip": "Das Gerät unterstützt keine Aufzeichnung", "record-tip": "Das Gerät unterstützt keine Aufzeichnung",
"recording": "Aufnahme...", "recording": "Aufnahme...",
"redo": "Wiederholen", "redo": "Wiederholen",
"remove": "Entfernen", "remove": "Entfernen",
"row": "Zeile", "row": "Zeile",
"splitView": "Ansicht teilen", "splitView": "Ansicht teilen",
"strike": "Durchstreichen", "strike": "Durchstreichen",
"table": "Tabelle", "table": "Tabelle",
"title": "Titel", "title": "Titel",
"tooltipText": "Tooltip-Text", "tooltipText": "Tooltip-Text",
"undo": "Rückgängig", "undo": "Rückgängig",
"up": "Nach oben", "up": "Nach oben",
"update": "Aktualisieren", "update": "Aktualisieren",
"insertAsset": "Bild oder Datei einfügen", "insertAsset": "Bild oder Datei einfügen",
"uploadError": "Upload-Fehler", "uploadError": "Upload-Fehler",
"uploading": "Hochladen...", "uploading": "Hochladen...",
"wysiwyg": "WYSIWYG", "wysiwyg": "WYSIWYG",
"_label": "Deutsch", "_label": "Deutsch",
"_time": { "_time": {
"albl": "vor", "albl": "vor",
"blbl": "von jetzt an", "blbl": "von jetzt an",
"now": "jetzt", "now": "jetzt",
@ -1279,8 +1279,8 @@
"2y": "2 Jahre %s", "2y": "2 Jahre %s",
"xy": "%d Jahre %s", "xy": "%d Jahre %s",
"max": "eine lange Weile %s" "max": "eine lange Weile %s"
}, },
"_taskAction": { "_taskAction": {
"task.repo.checkout": "Ausschnitte aus der Momentaufnahme ausführen", "task.repo.checkout": "Ausschnitte aus der Momentaufnahme ausführen",
"task.database.index.full": "Index neu erstellen ausführen", "task.database.index.full": "Index neu erstellen ausführen",
"task.database.index": "Datenbankindex ausführen", "task.database.index": "Datenbankindex ausführen",
@ -1296,8 +1296,8 @@
"task.asset.database.index.full": "Asset-Datenbank-Index neu erstellen ausführen", "task.asset.database.index.full": "Asset-Datenbank-Index neu erstellen ausführen",
"task.asset.database.index.commit": "Asset-Datenbank-Index-Bestätigung ausführen", "task.asset.database.index.commit": "Asset-Datenbank-Index-Bestätigung ausführen",
"task.cache.virtualBlockRef": "Cache virtuelle Referenz ausführen" "task.cache.virtualBlockRef": "Cache virtuelle Referenz ausführen"
}, },
"_trayMenu": { "_trayMenu": {
"showWindow": "Fenster anzeigen", "showWindow": "Fenster anzeigen",
"hideWindow": "Fenster ausblenden", "hideWindow": "Fenster ausblenden",
"setWindowTop": "Fenster nach oben setzen", "setWindowTop": "Fenster nach oben setzen",
@ -1306,13 +1306,13 @@
"openSource": "Projekt auf GitHub besuchen", "openSource": "Projekt auf GitHub besuchen",
"resetWindow": "Fenster zurücksetzen und beenden", "resetWindow": "Fenster zurücksetzen und beenden",
"quit": "Anwendung beenden" "quit": "Anwendung beenden"
}, },
"_attrView": { "_attrView": {
"table": "Tabelle", "table": "Tabelle",
"key": "Primärschlüssel", "key": "Primärschlüssel",
"select": "Auswählen" "select": "Auswählen"
}, },
"_kernel": { "_kernel": {
"0": "Abfrage des Notizbuchs fehlgeschlagen", "0": "Abfrage des Notizbuchs fehlgeschlagen",
"1": "Doppelte Dateinamen", "1": "Doppelte Dateinamen",
"2": "Auflisten der Dateien von Box [%s] und Pfad [%s] fehlgeschlagen: %s", "2": "Auflisten der Dateien von Box [%s] und Pfad [%s] fehlgeschlagen: %s",
@ -1561,6 +1561,8 @@
"245": "Die Datenindizierung wurde nach der letzten Nutzung nicht abgeschlossen. Bitte führen Sie [Dokumentbaum - Index neu aufbauen] aus. Bitte verwenden Sie [Anwendung beenden] im rechten Spaltenpanel, um normal zu beenden.", "245": "Die Datenindizierung wurde nach der letzten Nutzung nicht abgeschlossen. Bitte führen Sie [Dokumentbaum - Index neu aufbauen] aus. Bitte verwenden Sie [Anwendung beenden] im rechten Spaltenpanel, um normal zu beenden.",
"246": "Der Dokumenttitel darf das /-Zeichen nicht enthalten und wurde durch _ ersetzt.", "246": "Der Dokumenttitel darf das /-Zeichen nicht enthalten und wurde durch _ ersetzt.",
"247": "Datei [%s] ist größer als die maximale Grenze [%s] und wurde beim Hochladen in die Cloud ignoriert.", "247": "Datei [%s] ist größer als die maximale Grenze [%s] und wurde beim Hochladen in die Cloud ignoriert.",
"248": "Die Zielfüberschrift befindet sich im Containerblock und kann nicht als Ablagepunkt verwendet werden." "248": "Die Zielfüberschrift befindet sich im Containerblock und kann nicht als Ablagepunkt verwendet werden.",
"249": "Aufgrund eines Konfigurationsfehlers kann nicht auf die Daten zugegriffen werden. Bitte überprüfen Sie die Einstellungen und die Berechtigungen für den Cloud-Speicher",
"250": "Die Anfrage wurde vom Cloud-Speicher begrenzt. Bitte überprüfen Sie die Einstellungen und die Berechtigungen für den Cloud-Speicher"
} }
} }

View File

@ -1561,6 +1561,8 @@
"245": "Data indexing was not completed after the last use. Please execute [Doc Tree - Rebuild Index]. Please use [Exit Application] in the right column panel to exit normally", "245": "Data indexing was not completed after the last use. Please execute [Doc Tree - Rebuild Index]. Please use [Exit Application] in the right column panel to exit normally",
"246": "The document title cannot contain / and has been replaced with _", "246": "The document title cannot contain / and has been replaced with _",
"247": "File [%s] is larger than the maximum limit [%s], and has been ignored for uploading to the cloud", "247": "File [%s] is larger than the maximum limit [%s], and has been ignored for uploading to the cloud",
"248": "The target heading is located in the container block and cannot be used as a drop point" "248": "The target heading is located in the container block and cannot be used as a drop point",
"249": "Unable to access data due to configuration error. Please check the settings and cloud storage permissions",
"250": "Request has been rate-limited by cloud storage. Please check the settings and cloud storage permissions"
} }
} }

View File

@ -1561,6 +1561,8 @@
"245": "La indexación de datos no se ha completado desde el último uso. Ejecute [Árbol de documentos - Reconstruir índice] una vez. Utilice [Salir de la aplicación] en el panel de la columna derecha para salir normalmente", "245": "La indexación de datos no se ha completado desde el último uso. Ejecute [Árbol de documentos - Reconstruir índice] una vez. Utilice [Salir de la aplicación] en el panel de la columna derecha para salir normalmente",
"246": "El título del documento no puede contener / y ha sido reemplazado por _", "246": "El título del documento no puede contener / y ha sido reemplazado por _",
"247": "El archivo [%s] es más grande que el límite máximo [%s] y se ha ignorado para cargarlo en la nube", "247": "El archivo [%s] es más grande que el límite máximo [%s] y se ha ignorado para cargarlo en la nube",
"248": "El rumbo de destino está ubicado en el bloque contenedor y no puede usarse como punto de entrega" "248": "El rumbo de destino está ubicado en el bloque contenedor y no puede usarse como punto de entrega",
"249": "No se puede acceder a los datos debido a un error de configuración. Por favor, verifique las configuraciones y permisos de almacenamiento en la nube",
"250": "La solicitud ha sido limitada por el almacenamiento en la nube. Por favor, verifique las configuraciones y permisos de almacenamiento en la nube"
} }
} }

View File

@ -1561,6 +1561,8 @@
"245": "L'indexation des données n'a pas été terminée depuis la dernière utilisation. Veuillez exécuter [Arborescence des documents - Reconstruire l'index] une fois. Veuillez utiliser [Quitter l'application] dans le panneau de la colonne de droite pour quitter normalement", "245": "L'indexation des données n'a pas été terminée depuis la dernière utilisation. Veuillez exécuter [Arborescence des documents - Reconstruire l'index] une fois. Veuillez utiliser [Quitter l'application] dans le panneau de la colonne de droite pour quitter normalement",
"246": "Le titre du document ne peut pas contenir / et a été remplacé par _", "246": "Le titre du document ne peut pas contenir / et a été remplacé par _",
"247": "Le fichier [%s] est plus grand que la limite maximale [%s] et a été ignoré pour le téléchargement vers le cloud", "247": "Le fichier [%s] est plus grand que la limite maximale [%s] et a été ignoré pour le téléchargement vers le cloud",
"248": "Le cap cible est situé dans le bloc conteneur et ne peut pas être utilisé comme point de dépôt" "248": "Le cap cible est situé dans le bloc conteneur et ne peut pas être utilisé comme point de dépôt",
"249": "Impossible d'accéder aux données en raison d'une erreur de configuration. Veuillez vérifier les paramètres et les autorisations de stockage cloud",
"250": "La demande a été limitée par le stockage cloud. Veuillez vérifier les paramètres et les autorisations de stockage cloud"
} }
} }

View File

@ -1561,6 +1561,8 @@
"245": "אינדוקס הנתונים לא הושלם לאחר השימוש האחרון. אנא זכור לבצע [עץ המסמכים - שחזור אינדקס]. אנא השתמש [צא מהאפליקציה] בפאנל הטורי הימני כדי לצאת על פי סדר", "245": "אינדוקס הנתונים לא הושלם לאחר השימוש האחרון. אנא זכור לבצע [עץ המסמכים - שחזור אינדקס]. אנא השתמש [צא מהאפליקציה] בפאנל הטורי הימני כדי לצאת על פי סדר",
"246": "כותרת המסמך לא יכולה להכיל / והחלפה ב- _ ", "246": "כותרת המסמך לא יכולה להכיל / והחלפה ב- _ ",
"247": "הקובץ [%s] גדול יותר מהמגבלה המקסימלית [%s], והוזנח להעלות בענן", "247": "הקובץ [%s] גדול יותר מהמגבלה המקסימלית [%s], והוזנח להעלות בענן",
"248": "הכותרת היעד ממוקמת בבלוק המיכל ואינה יכולה לשמש כנקודת זרימה" "248": "הכותרת היעד ממוקמת בבלוק המיכל ואינה יכולה לשמש כנקודת זרימה",
"249": "אין אפשרות לגשת לנתונים עקב שגיאת תצורה. אנא בדוק את ההגדרות והרשאות האחסון בענן",
"250": "הבקשה הוגבלה על ידי אחסון הענן. אנא בדוק את ההגדרות והרשאות האחסון בענן"
} }
} }

View File

@ -1561,6 +1561,8 @@
"245": "L'indicizzazione dei dati non è stata completata dopo l'ultimo utilizzo. Si prega di eseguire [Albero Documenti - Ricostruisci Indice]. Si prega di utilizzare [Esci dall'applicazione] nel pannello della colonna destra per uscire normalmente", "245": "L'indicizzazione dei dati non è stata completata dopo l'ultimo utilizzo. Si prega di eseguire [Albero Documenti - Ricostruisci Indice]. Si prega di utilizzare [Esci dall'applicazione] nel pannello della colonna destra per uscire normalmente",
"246": "Il titolo del documento non può contenere / ed è stato sostituito con _", "246": "Il titolo del documento non può contenere / ed è stato sostituito con _",
"247": "Il file [%s] è più grande del limite massimo [%s] ed è stato ignorato per il caricamento nel cloud", "247": "Il file [%s] è più grande del limite massimo [%s] ed è stato ignorato per il caricamento nel cloud",
"248": "L'intestazione di destinazione si trova nel blocco contenitore e non può essere utilizzata come punto di rilascio" "248": "L'intestazione di destinazione si trova nel blocco contenitore e non può essere utilizzata come punto di rilascio",
"249": "Impossibile accedere ai dati a causa di un errore di configurazione. Si prega di controllare attentamente le impostazioni e le autorizzazioni di archiviazione cloud",
"250": "La richiesta è stata limitata dall'archiviazione cloud. Si prega di controllare attentamente le impostazioni e le autorizzazioni di archiviazione cloud"
} }
} }

View File

@ -1561,6 +1561,8 @@
"245": "前回の使用以降、データのインデックス作成が完了していません。[ドキュメントツリー] - [インデックスの再構築] を一度実行してください。正常に終了するには、右側のパネルから [アプリケーションの終了] を使用してください。", "245": "前回の使用以降、データのインデックス作成が完了していません。[ドキュメントツリー] - [インデックスの再構築] を一度実行してください。正常に終了するには、右側のパネルから [アプリケーションの終了] を使用してください。",
"246": "ドキュメントのタイトルに / を含めることはできません。_ に置き換えられました", "246": "ドキュメントのタイトルに / を含めることはできません。_ に置き換えられました",
"247": "ファイル [%s] は制限サイズ [%s] を超えているためアップロードされませんでした", "247": "ファイル [%s] は制限サイズ [%s] を超えているためアップロードされませんでした",
"248": "目標の見出しがコンテナブロック内にあるためドロップできません" "248": "目標の見出しがコンテナブロック内にあるためドロップできません",
"249": "設定エラーのためデータにアクセスできません。設定を一つずつ確認し、クラウドストレージの権限を確認してください",
"250": "リクエストがクラウドストレージによって制限されました。設定を一つずつ確認し、クラウドストレージの権限を確認してください"
} }
} }

View File

@ -1561,6 +1561,8 @@
"245": "Indeksowanie danych nie zostało zakończone po ostatnim użyciu. Proszę wykonać [Drzewo dokumentów - Przebudowa indeksu]. Proszę użyć [Zamknij aplikację] w prawym panelu bocznym, aby wyjść normalnie", "245": "Indeksowanie danych nie zostało zakończone po ostatnim użyciu. Proszę wykonać [Drzewo dokumentów - Przebudowa indeksu]. Proszę użyć [Zamknij aplikację] w prawym panelu bocznym, aby wyjść normalnie",
"246": "Tytuł dokumentu nie może zawierać / i został zastąpiony _", "246": "Tytuł dokumentu nie może zawierać / i został zastąpiony _",
"247": "Plik [%s] jest większy niż maksymalne ograniczenie [%s], i został zignorowany przy przesyłaniu do chmury", "247": "Plik [%s] jest większy niż maksymalne ograniczenie [%s], i został zignorowany przy przesyłaniu do chmury",
"248": "Docelowy nagłówek znajduje się w bloku kontenera i nie może być użyty jako punkt upuszczenia" "248": "Docelowy nagłówek znajduje się w bloku kontenera i nie może być użyty jako punkt upuszczenia",
"249": "Z powodu błędu konfiguracji nie można uzyskać dostępu do danych. Proszę dokładnie sprawdzić ustawienia i uprawnienia do przechowywania w chmurze",
"250": "Żądanie zostało ograniczone przez przechowywanie w chmurze. Proszę dokładnie sprawdzić ustawienia i uprawnienia do przechowywania w chmurze"
} }
} }

View File

@ -1561,6 +1561,8 @@
"245": "Индексация данных не была завершена после последнего использования. Пожалуйста, выполните [Дерево документов - Восстановить индекс]. Пожалуйста, используйте [Выход из приложения] в правой боковой панели для нормального выхода", "245": "Индексация данных не была завершена после последнего использования. Пожалуйста, выполните [Дерево документов - Восстановить индекс]. Пожалуйста, используйте [Выход из приложения] в правой боковой панели для нормального выхода",
"246": "Название документа не может содержать / и было заменено на _", "246": "Название документа не может содержать / и было заменено на _",
"247": "Файл [%s] больше максимального ограничения [%s] и был проигнорирован для загрузки в облако", "247": "Файл [%s] больше максимального ограничения [%s] и был проигнорирован для загрузки в облако",
"248": "Целевой заголовок находится в контейнерном блоке и не может использоваться как пункт сброса" "248": "Целевой заголовок находится в контейнерном блоке и не может использоваться как пункт сброса",
"249": "Из-за ошибки конфигурации невозможно получить доступ к данным. Пожалуйста, проверьте настройки и права доступа к облачному хранилищу",
"250": "Запрос был ограничен облачным хранилищем. Пожалуйста, проверьте настройки и права доступа к облачному хранилищу"
} }
} }

View File

@ -1561,6 +1561,8 @@
"245": "上次使用後未完成資料索引,請執行一次 [文檔樹 - 重建索引]。以後請使用右側欄面板中的 [退出應用] 進行正常退出", "245": "上次使用後未完成資料索引,請執行一次 [文檔樹 - 重建索引]。以後請使用右側欄面板中的 [退出應用] 進行正常退出",
"246": "文件標題不能包含 /,已經使用 _ 替換", "246": "文件標題不能包含 /,已經使用 _ 替換",
"247": "檔案 [%s] 大於最大限制 [%s],已忽略上傳至社群圖床", "247": "檔案 [%s] 大於最大限制 [%s],已忽略上傳至社群圖床",
"248": "目標標題位於容器塊中,無法作為放置點" "248": "目標標題位於容器塊中,無法作為放置點",
"249": "因配置錯誤導致無法存取數據,請仔細逐個核對配置項,並檢查雲端存儲相關權限配置",
"250": "請求已被雲端存儲限流,請仔細逐個核對配置項,並檢查雲端存儲相關權限配置"
} }
} }

View File

@ -1561,6 +1561,8 @@
"245": "上次使用后未完成数据索引,请执行一次 [文档树 - 重建索引]。以后请使用右侧栏面板中的 [退出应用] 进行正常退出", "245": "上次使用后未完成数据索引,请执行一次 [文档树 - 重建索引]。以后请使用右侧栏面板中的 [退出应用] 进行正常退出",
"246": "文档标题不能包含 /,已经使用 _ 替换", "246": "文档标题不能包含 /,已经使用 _ 替换",
"247": "文件 [%s] 大于最大限制 [%s],已忽略上传到社区图床", "247": "文件 [%s] 大于最大限制 [%s],已忽略上传到社区图床",
"248": "目标标题位于容器块中,无法作为放置点" "248": "目标标题位于容器块中,无法作为放置点",
"249": "因配置错误导致无法存取数据,请仔细逐个核对配置项,并检查云端存储相关权限配置",
"250": "请求已被云端存储限流,请仔细逐个核对配置项,并检查云端存储相关权限配置"
} }
} }

View File

@ -87,8 +87,8 @@ const renderProvider = (provider: number) => {
<div class="fn__flex-center fn__size200">Addressing</div> <div class="fn__flex-center fn__size200">Addressing</div>
<div class="fn__space"></div> <div class="fn__space"></div>
<select class="b3-select fn__block" id="pathStyle"> <select class="b3-select fn__block" id="pathStyle">
<option ${window.siyuan.config.sync.s3.pathStyle ? "" : "selected"} value="false">Virtual-hosted-style</option>
<option ${window.siyuan.config.sync.s3.pathStyle ? "selected" : ""} value="true">Path-style</option> <option ${window.siyuan.config.sync.s3.pathStyle ? "selected" : ""} value="true">Path-style</option>
<option ${window.siyuan.config.sync.s3.pathStyle ? "" : "selected"} value="false">Virtual-hosted-style</option>
</select> </select>
</div> </div>
<div class="b3-label b3-label--inner fn__flex"> <div class="b3-label b3-label--inner fn__flex">

View File

@ -23,6 +23,7 @@ import (
"github.com/88250/gulu" "github.com/88250/gulu"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"github.com/siyuan-note/siyuan/kernel/bazaar"
"github.com/siyuan-note/siyuan/kernel/conf" "github.com/siyuan-note/siyuan/kernel/conf"
"github.com/siyuan-note/siyuan/kernel/model" "github.com/siyuan-note/siyuan/kernel/model"
"github.com/siyuan-note/siyuan/kernel/server/proxy" "github.com/siyuan-note/siyuan/kernel/server/proxy"
@ -527,10 +528,16 @@ func setAppearance(c *gin.Context) {
model.Conf.Appearance = appearance model.Conf.Appearance = appearance
model.Conf.Lang = appearance.Lang model.Conf.Lang = appearance.Lang
oldLang := util.Lang
util.Lang = model.Conf.Lang util.Lang = model.Conf.Lang
model.Conf.Save() model.Conf.Save()
model.InitAppearance() model.InitAppearance()
if oldLang != util.Lang {
// The marketplace language does not change after switching the appearance language https://github.com/siyuan-note/siyuan/issues/12892
bazaar.CleanBazaarPackageCache()
}
ret.Data = model.Conf.Appearance ret.Data = model.Conf.Appearance
} }

View File

@ -722,4 +722,8 @@ func disallowDisplayBazaarPackage(pkg *Package) bool {
var packageCache = gcache.New(6*time.Hour, 30*time.Minute) // [repoURL]*Package var packageCache = gcache.New(6*time.Hour, 30*time.Minute) // [repoURL]*Package
func CleanBazaarPackageCache() {
packageCache.Flush()
}
var packageInstallSizeCache = gcache.New(48*time.Hour, 6*time.Hour) // [repoURL]*int64 var packageInstallSizeCache = gcache.New(48*time.Hour, 6*time.Hour) // [repoURL]*int64

View File

@ -54,7 +54,7 @@ require (
github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06
github.com/sashabaranov/go-openai v1.29.1 github.com/sashabaranov/go-openai v1.29.1
github.com/shirou/gopsutil/v3 v3.24.5 github.com/shirou/gopsutil/v3 v3.24.5
github.com/siyuan-note/dejavu v0.0.0-20241016112457-5fc03573be87 github.com/siyuan-note/dejavu v0.0.0-20241026143313-2e180bfe2017
github.com/siyuan-note/encryption v0.0.0-20231219001248-1e028a4d13b4 github.com/siyuan-note/encryption v0.0.0-20231219001248-1e028a4d13b4
github.com/siyuan-note/eventbus v0.0.0-20240627125516-396fdb0f0f97 github.com/siyuan-note/eventbus v0.0.0-20240627125516-396fdb0f0f97
github.com/siyuan-note/filelock v0.0.0-20240724034355-d1ed7bf21d04 github.com/siyuan-note/filelock v0.0.0-20240724034355-d1ed7bf21d04

View File

@ -332,8 +332,8 @@ github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+D
github.com/shurcooL/gofontwoff v0.0.0-20181114050219-180f79e6909d h1:lvCTyBbr36+tqMccdGMwuEU+hjux/zL6xSmf5S9ITaA= github.com/shurcooL/gofontwoff v0.0.0-20181114050219-180f79e6909d h1:lvCTyBbr36+tqMccdGMwuEU+hjux/zL6xSmf5S9ITaA=
github.com/shurcooL/gofontwoff v0.0.0-20181114050219-180f79e6909d/go.mod h1:05UtEgK5zq39gLST6uB0cf3NEHjETfB4Fgr3Gx5R9Vw= github.com/shurcooL/gofontwoff v0.0.0-20181114050219-180f79e6909d/go.mod h1:05UtEgK5zq39gLST6uB0cf3NEHjETfB4Fgr3Gx5R9Vw=
github.com/simplereach/timeutils v1.2.0/go.mod h1:VVbQDfN/FHRZa1LSqcwo4kNZ62OOyqLLGQKYB3pB0Q8= github.com/simplereach/timeutils v1.2.0/go.mod h1:VVbQDfN/FHRZa1LSqcwo4kNZ62OOyqLLGQKYB3pB0Q8=
github.com/siyuan-note/dejavu v0.0.0-20241016112457-5fc03573be87 h1:EG8h35jYH8/iOukQlhB2OE7S35PwOBBn+XMOK1rtgtg= github.com/siyuan-note/dejavu v0.0.0-20241026143313-2e180bfe2017 h1:QOq6KYVbNKKx0qv8JJX6nuacQoYNtLkj9L4nWNEJ0mM=
github.com/siyuan-note/dejavu v0.0.0-20241016112457-5fc03573be87/go.mod h1:7E+jOWm75Me1ss7Sc5UM6O5xMiATAyCbN3g7MP6Cgxw= github.com/siyuan-note/dejavu v0.0.0-20241026143313-2e180bfe2017/go.mod h1:7E+jOWm75Me1ss7Sc5UM6O5xMiATAyCbN3g7MP6Cgxw=
github.com/siyuan-note/encryption v0.0.0-20231219001248-1e028a4d13b4 h1:kJaw5L/evyW6LcB9IQT8PR4ppx8JVqOFP9Ix3rfwSrc= github.com/siyuan-note/encryption v0.0.0-20231219001248-1e028a4d13b4 h1:kJaw5L/evyW6LcB9IQT8PR4ppx8JVqOFP9Ix3rfwSrc=
github.com/siyuan-note/encryption v0.0.0-20231219001248-1e028a4d13b4/go.mod h1:UYcCCY+0wh+GmUoDOaO63j1sV5lgy7laLAk1XhEiUis= github.com/siyuan-note/encryption v0.0.0-20231219001248-1e028a4d13b4/go.mod h1:UYcCCY+0wh+GmUoDOaO63j1sV5lgy7laLAk1XhEiUis=
github.com/siyuan-note/eventbus v0.0.0-20240627125516-396fdb0f0f97 h1:lM5v8BfNtbOL5jYwhCdMYBcYtr06IYBKjjSLAPMKTM8= github.com/siyuan-note/eventbus v0.0.0-20240627125516-396fdb0f0f97 h1:lM5v8BfNtbOL5jYwhCdMYBcYtr06IYBKjjSLAPMKTM8=

View File

@ -339,7 +339,7 @@ func InitConf() {
Conf.Sync.Mode = 1 Conf.Sync.Mode = 1
} }
if nil == Conf.Sync.S3 { if nil == Conf.Sync.S3 {
Conf.Sync.S3 = &conf.S3{SkipTlsVerify: true} Conf.Sync.S3 = &conf.S3{PathStyle: true, SkipTlsVerify: true}
} }
Conf.Sync.S3.Endpoint = util.NormalizeEndpoint(Conf.Sync.S3.Endpoint) Conf.Sync.S3.Endpoint = util.NormalizeEndpoint(Conf.Sync.S3.Endpoint)
Conf.Sync.S3.Timeout = util.NormalizeTimeout(Conf.Sync.S3.Timeout) Conf.Sync.S3.Timeout = util.NormalizeTimeout(Conf.Sync.S3.Timeout)

View File

@ -1386,7 +1386,7 @@ func fullTextSearchByFTSWithRoot(query, boxFilter, pathFilter, typeFilter, ignor
query = strings.ReplaceAll(query, "'", "''") query = strings.ReplaceAll(query, "'", "''")
query = strings.ReplaceAll(query, "\"", "\"\"") query = strings.ReplaceAll(query, "\"", "\"\"")
keywords := strings.Split(query, " ") keywords := strings.Split(query, " ")
contentField := "content||tag||name||alias||memo" contentField := columnConcat()
var likeFilter string var likeFilter string
orderByLike := "(" orderByLike := "("
for i, keyword := range keywords { for i, keyword := range keywords {
@ -1402,15 +1402,16 @@ func fullTextSearchByFTSWithRoot(query, boxFilter, pathFilter, typeFilter, ignor
" FROM blocks WHERE type IN " + typeFilter + boxFilter + pathFilter + ignoreFilter + " FROM blocks WHERE type IN " + typeFilter + boxFilter + pathFilter + ignoreFilter +
" GROUP BY root_id HAVING " + likeFilter + "ORDER BY " + orderByLike + " DESC, MAX(updated) DESC" " GROUP BY root_id HAVING " + likeFilter + "ORDER BY " + orderByLike + " DESC, MAX(updated) DESC"
cteStmt := "WITH docBlocks AS (" + dMatchStmt + ")" cteStmt := "WITH docBlocks AS (" + dMatchStmt + ")"
pagingStmt := " LIMIT " + strconv.Itoa(pageSize) + " OFFSET " + strconv.Itoa((page-1)*pageSize)
likeFilter = strings.ReplaceAll(likeFilter, "GROUP_CONCAT("+contentField+")", "concatContent") likeFilter = strings.ReplaceAll(likeFilter, "GROUP_CONCAT("+contentField+")", "concatContent")
selectStmt := cteStmt + "\nSELECT *, " + selectStmt := cteStmt + "\nSELECT *, " +
"(content || tag || name || alias || memo) AS concatContent, " + "(" + contentField + ") AS concatContent, " +
"(SELECT COUNT(root_id) FROM docBlocks) AS `docs` FROM blocks" + "(SELECT COUNT(root_id) FROM docBlocks) AS docs, " +
" WHERE type IN " + typeFilter + boxFilter + pathFilter + ignoreFilter + "(CASE WHEN (root_id IN (SELECT root_id FROM docBlocks) AND (" + strings.ReplaceAll(likeFilter, "concatContent", contentField) + ")) THEN 1 ELSE 0 END) AS blockSort" +
" AND (id IN (SELECT root_id FROM docBlocks" + pagingStmt + ") OR" + " FROM blocks WHERE type IN " + typeFilter + boxFilter + pathFilter + ignoreFilter +
" (root_id IN (SELECT root_id FROM docBlocks" + pagingStmt + ") AND (" + likeFilter + ")))" " AND (id IN (SELECT root_id FROM docBlocks) OR" +
selectStmt += " " + orderBy + " LIMIT 10240000" " (root_id IN (SELECT root_id FROM docBlocks) AND (" + likeFilter + ")))"
selectStmt += " " + strings.Replace(orderBy, "END ASC, ", "END ASC, blockSort DESC, ", 1) +
" LIMIT " + strconv.Itoa(pageSize) + " OFFSET " + strconv.Itoa((page-1)*pageSize)
result, _ := sql.Query(selectStmt, -1) result, _ := sql.Query(selectStmt, -1)
var resultBlocks []*sql.Block var resultBlocks []*sql.Block
for _, row := range result { for _, row := range result {
@ -1451,7 +1452,7 @@ func fullTextSearchByFTSWithRoot(query, boxFilter, pathFilter, typeFilter, ignor
ret = []*Block{} ret = []*Block{}
} }
logging.LogInfof("time cost [all]: %v", time.Since(start)) logging.LogInfof("time cost [search]: %v", time.Since(start))
return return
} }
@ -1592,7 +1593,7 @@ func fromSQLBlock(sqlBlock *sql.Block, terms string, beforeLen int) (block *Bloc
} }
} }
hPath, _ := markSearch(sqlBlock.HPath, terms, 18) hPath, _ := markSearch(sqlBlock.HPath, "", 18)
if !strings.HasPrefix(hPath, "/") { if !strings.HasPrefix(hPath, "/") {
hPath = "/" + hPath hPath = "/" + hPath
} }
@ -1683,6 +1684,25 @@ func columnFilter() string {
return buf.String() return buf.String()
} }
func columnConcat() string {
buf := bytes.Buffer{}
buf.WriteString("content")
if Conf.Search.Name {
buf.WriteString("||name")
}
if Conf.Search.Alias {
buf.WriteString("||alias")
}
if Conf.Search.Memo {
buf.WriteString("||memo")
}
if Conf.Search.IAL {
buf.WriteString("||ial")
}
buf.WriteString("||tag")
return buf.String()
}
func stringQuery(query string) string { func stringQuery(query string) string {
if "" == strings.TrimSpace(query) { if "" == strings.TrimSpace(query) {
return "\"" + query + "\"" return "\"" + query + "\""

View File

@ -584,6 +584,10 @@ func formatRepoErrorMsg(err error) string {
msg = Conf.Language(213) msg = Conf.Language(213)
} else if errors.Is(err, cloud.ErrCloudServiceUnavailable) { } else if errors.Is(err, cloud.ErrCloudServiceUnavailable) {
msg = Conf.language(219) msg = Conf.language(219)
} else if errors.Is(err, cloud.ErrCloudForbidden) {
msg = Conf.language(249)
} else if errors.Is(err, cloud.ErrCloudTooManyRequests) {
msg = Conf.language(250)
} else { } else {
logging.LogErrorf("sync failed caused by network: %s", msg) logging.LogErrorf("sync failed caused by network: %s", msg)
msgLowerCase := strings.ToLower(msg) msgLowerCase := strings.ToLower(msg)