Remove obsolete settings wizard

This commit is contained in:
vorotamoroz
2026-08-24 10:02:32 +00:00
parent 06b9f32bdf
commit ebaf89f822
34 changed files with 106 additions and 974 deletions
-2
View File
@@ -7,7 +7,6 @@ export const EVENT_FILE_SAVED = "file-saved";
export const EVENT_LEAF_ACTIVE_CHANGED = "leaf-active-changed";
export const EVENT_REQUEST_OPEN_SETTINGS = "request-open-settings";
export const EVENT_REQUEST_OPEN_SETTING_WIZARD = "request-open-setting-wizard";
export const EVENT_REQUEST_OPEN_SETUP_URI = "request-open-setup-uri";
export const EVENT_REQUEST_COPY_SETUP_URI = "request-copy-setup-uri";
export const EVENT_REQUEST_SHOW_SETUP_QR = "request-show-setup-qr";
@@ -30,7 +29,6 @@ declare global {
[EVENT_PLUGIN_UNLOADED]: undefined;
[EVENT_REQUEST_OPEN_PLUGIN_SYNC_DIALOG]: undefined;
[EVENT_REQUEST_OPEN_SETTINGS]: undefined;
[EVENT_REQUEST_OPEN_SETTING_WIZARD]: undefined;
[EVENT_REQUEST_RELOAD_SETTING_TAB]: undefined;
[EVENT_LEAF_ACTIVE_CHANGED]: undefined;
[EVENT_REQUEST_OPEN_SETUP_URI]: undefined;
@@ -4206,16 +4206,6 @@ export const allMessages: Readonly<Record<string, Readonly<Record<string, string
zh: "显示日志",
"zh-tw": "顯示日誌",
},
"moduleMigration.docUri": {
def: "https://github.com/vrtmrz/obsidian-livesync/blob/main/README.md#how-to-use",
es: "https://github.com/vrtmrz/obsidian-livesync/blob/main/README_ES.md#how-to-use",
fr: "https://github.com/vrtmrz/obsidian-livesync/blob/main/README.md#how-to-use",
he: "https://github.com/vrtmrz/obsidian-livesync/blob/main/README.md#how-to-use",
ja: "https://github.com/vrtmrz/obsidian-livesync/blob/main/README.md#how-to-use",
ko: "https://github.com/vrtmrz/obsidian-livesync/blob/main/README.md#how-to-use",
ru: "https://github.com/vrtmrz/obsidian-livesync/blob/main/README.md#how-to-use",
zh: "https://github.com/vrtmrz/obsidian-livesync/blob/main/docs/zh/README_zh.md#%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8",
},
"moduleMigration.fix0256.buttons.checkItLater": {
def: "Check it later",
es: "Comprobarlo más tarde",
@@ -4451,30 +4441,6 @@ export const allMessages: Readonly<Record<string, Readonly<Record<string, string
"zh-tw":
"你可能已經知道,Self-hosted LiveSync 變更了預設行為與資料庫結構。\n\n值得慶幸的是,在你的努力下,遠端資料庫似乎已經完成遷移。恭喜!\n\n不過,還需要再多做一點。此裝置的設定與遠端資料庫不相容,我們需要再次從遠端資料庫抓取。現在要再次從遠端抓取嗎?\n\n___注意:在變更設定並再次抓取資料庫之前,我們無法進行同步。___\n___注意 2:chunks 完全不可變,我們只需要抓取中繼資料與差異部分。___",
},
"moduleMigration.msgInitialSetup": {
def: "Your device has **not been set up yet**. Let me guide you through the setup process.\n\nPlease keep in mind that every dialogue content can be copied to the clipboard. If you need to refer to it later, you can paste it into a note in Obsidian. You can also translate it into your language using a translation tool.\n\nFirst, do you have **Setup URI**?\n\nNote: If you do not know what it is, please refer to the [documentation](${URI_DOC}).",
es: "Tu dispositivo **aún no ha sido configurado**. Permíteme guiarte a través del proceso de configuración.\n\nTen en cuenta que todo el contenido del diálogo se puede copiar al portapapeles. Si necesitas consultarlo más tarde, puedes pegarlo en una nota en Obsidian. También puedes traducirlo a tu idioma utilizando una herramienta de traducción.\n\nPrimero, ¿tienes **URI de configuración**?\n\nNota: Si no sabes qué es, consulta la [documentación](${URI_DOC}).",
fr: "Votre appareil n'a **pas encore été configuré**. Laissez-moi vous guider dans le processus de configuration.\n\nVeuillez noter que chaque contenu de boîte de dialogue peut être copié dans le presse-papiers. Si vous souhaitez vous y référer plus tard, vous pouvez le coller dans une note d'Obsidian. Vous pouvez également le traduire dans votre langue via un outil de traduction.\n\nTout d'abord, disposez-vous d'une **URI de configuration** ?\n\nNote : Si vous ne savez pas ce que c'est, consultez la [documentation](${URI_DOC}).",
he: "המכשיר שלך **טרם הוגדר**. אנחנו כאן לעזור לך בתהליך ההגדרה.\n\nשים לב שניתן להעתיק את תוכן כל דיאלוג ללוח. אם צריך לחזור אליו מאוחר יותר, ניתן להדביק אותו כפתק ב-Obsidian. ניתן גם לתרגם לשפתך בעזרת כלי תרגום.\n\nראשית, האם יש לך **Setup URI**?\n\nהערה: אם אינך יודע מהו, אנא עיין ב[תיעוד](${URI_DOC}).",
ja: "このデバイスは**まだセットアップされていません**。セットアッププロセスをご案内します。\n\nすべてのダイアログの内容はクリップボードにコピーできます。後で参照する必要があれば、Obsidianのノートに貼り付けてください。翻訳ツールを使ってお使いの言語に翻訳することもできます。\n\nまず、**セットアップURI**をお持ちですか?\n\n注意: それが何か分からない場合は、[documentation](${URI_DOC})を参照してください。",
ko: "이 기기는 **아직 초기 설정이 완료되지 않았습니다**. 지금부터 설정 과정을 안내해 드리겠습니다.\n\n모든 대화 내용은 클립보드에 복사할 수 있습니다. 나중에 참고하려면 Obsidian 노트에 붙여넣거나 번역 도구를 활용해 번역하셔도 됩니다.\n\n먼저, **Setup URI**를 가지고 계신가요?\n\n참고: Setup URI가 무엇인지 잘 모르시겠다면 [문서](${URI_DOC})를 참고해 주세요.",
ru: "Ваше устройство ещё не настроено. У вас есть Setup URI?",
zh: "您的设备**尚未设置**。让我引导您完成设置过程。\n\n请记住,每个对话框内容都可以复制到剪贴板。如果以后需要参考,可以将其粘贴到 Obsidian 的笔记中。您也可以使用翻译工具将其翻译成您的语言。\n\n首先,您有**设置 URI** 吗?\n\n注意:如果您不知道这是什么,请参阅[文档](${URI_DOC})",
"zh-tw":
"你的裝置**尚未完成設定**。讓我引導你完成設定流程。\n\n請記得,每個對話框的內容都可以複製到剪貼簿。如果日後需要參考,可以貼到 Obsidian 的筆記中,也可以用翻譯工具翻成你的語言。\n\n首先,你有 **Setup URI** 嗎?\n\n注意:如果你不知道那是什麼,請參閱[說明文件](${URI_DOC})。",
},
"moduleMigration.msgRecommendSetupUri": {
def: "We strongly recommend that you generate a set-up URI and use it.\nIf you do not have knowledge about it, please refer to the [documentation](${URI_DOC}) (Sorry again, but it is important).\n\nHow do you want to set it up manually?",
es: "Te recomendamos encarecidamente que generes una URI de configuración y la utilices.\nSi no tienes conocimientos al respecto, consulta la [documentación](${URI_DOC}) (Lo siento de nuevo, pero es importante).\n\n¿Cómo quieres configurarlo manualmente?",
fr: "Nous recommandons vivement de générer une URI de configuration et de l'utiliser.\nSi vous ne connaissez pas, veuillez consulter la [documentation](${URI_DOC}) (Désolé encore, mais c'est important).\n\nComment souhaitez-vous effectuer la configuration manuellement ?",
he: "אנו ממליצים בחום לייצר Setup URI ולהשתמש בו.\nאם אין לך ידע בנושא, אנא עיין ב[תיעוד](${URI_DOC}) (מתנצלים שוב, אך זה חשוב).\n\nכיצד ברצונך להגדיר ידנית?",
ja: "セットアップURIを生成して使用することを強くお勧めします。\nこれについて知識がない場合は、[documentation](${URI_DOC})を参照してください(重要です)。\n\n手動でセットアップしますか?",
ko: "Setup URI를 생성해 사용하는 것을 강력히 권장합니다.\nSetup URI가 무엇인지 잘 모르시겠다면 [문서](${URI_DOC})를 참고해 주세요. 중요한 내용이니 꼭 확인하시기 바랍니다.\n\n직접 수동 설정을 진행하시겠습니까?",
ru: "Мы рекомендуем сгенерировать Setup URI.",
zh: "我们强烈建议您生成一个设置 URI 并使用它。\n如果您对此不了解,请参阅[文档](${URI_DOC})(再次抱歉,但这很重要)。\n\n您想如何手动设置?",
"zh-tw":
"我們強烈建議你產生 Setup URI 並使用它。\n如果你對此不熟悉,請參閱[說明文件](${URI_DOC})(再次抱歉,但這很重要)。\n\n你想要如何手動設定?",
},
"moduleMigration.msgSinceV02321": {
def: "Since v0.23.21, the self-hosted LiveSync has changed the default behaviour and database structure. The following changes have been made:\n\n1. **Case sensitivity of filenames**\n The handling of filenames is now case-insensitive. This is a beneficial change for most platforms, other than Linux and iOS, which do not manage filename case sensitivity effectively.\n (On These, a warning will be displayed for files with the same name but different cases).\n\n2. **Revision handling of the chunks**\n Chunks are immutable, which allows their revisions to be fixed. This change will enhance the performance of file saving.\n\n___However, to enable either of these changes, both remote and local databases need to be rebuilt. This process takes a few minutes, and we recommend doing it when you have ample time.___\n\n- If you wish to maintain the previous behaviour, you can skip this process by using `${KEEP}`.\n- If you do not have enough time, please choose `${DISMISS}`. You will be prompted again later.\n- If you have rebuilt the database on another device, please select `${DISMISS}` and try synchronizing again. Since a difference has been detected, you will be prompted again.",
es: "Desde la versión v0.23.21, Self-hosted LiveSync ha cambiado el comportamiento predeterminado y la estructura de la base de datos. Se han realizado los siguientes cambios:\n\n1. **Sensibilidad a mayúsculas de los nombres de archivo**\n El manejo de los nombres de archivo ahora no distingue entre mayúsculas y minúsculas. Este cambio es beneficioso para la mayoría de las plataformas, excepto Linux y iOS, que no gestionan efectivamente la sensibilidad a mayúsculas de los nombres de archivo.\n (En estos, se mostrará una advertencia para archivos con el mismo nombre pero diferentes mayúsculas).\n\n2. **Manejo de revisiones de los fragmentos**\n Los fragmentos son inmutables, lo que permite que sus revisiones sean fijas. Este cambio mejorará el rendimiento al guardar archivos.\n\n___Sin embargo, para habilitar cualquiera de estos cambios, es necesario reconstruir tanto las bases de datos remota como la local. Este proceso toma unos minutos, y recomendamos hacerlo cuando tengas tiempo suficiente.___\n\n- Si deseas mantener el comportamiento anterior, puedes omitir este proceso usando `${KEEP}`.\n- Si no tienes suficiente tiempo, por favor elige `${DISMISS}`. Se te pedirá nuevamente más tarde.\n- Si has reconstruido la base de datos en otro dispositivo, selecciona `${DISMISS}` e intenta sincronizar nuevamente. Dado que se ha detectado una diferencia, se te solicitará nuevamente.",
@@ -4542,17 +4508,6 @@ export const allMessages: Readonly<Record<string, Readonly<Record<string, string
zh: "仅启用 #2",
"zh-tw": "僅啟用",
},
"moduleMigration.optionHaveSetupUri": {
def: "Yes, I have",
es: "Sí, tengo",
fr: "Oui, j'en ai une",
he: "כן, יש לי",
ja: "はい、持っています",
ko: "예, 있습니다",
ru: "Да, есть",
zh: "是的,我有",
"zh-tw": "有,我有",
},
"moduleMigration.optionKeepPreviousBehaviour": {
def: "Keep previous behaviour",
es: "Mantener comportamiento anterior",
@@ -4564,17 +4519,6 @@ export const allMessages: Readonly<Record<string, Readonly<Record<string, string
zh: "保持以前的行为",
"zh-tw": "保留先前的行為",
},
"moduleMigration.optionManualSetup": {
def: "Set it up all manually",
es: "Configurarlo todo manualmente",
fr: "Tout configurer manuellement",
he: "הגדר הכל ידנית",
ja: "すべて手動でセットアップ",
ko: "모든 것을 수동으로 설정",
ru: "Настроить всё вручную",
zh: "全部手动设置",
"zh-tw": "全部手動設定",
},
"moduleMigration.optionNoAskAgain": {
def: "No, please ask again",
es: "No, por favor pregúntame de nuevo",
@@ -4586,50 +4530,6 @@ export const allMessages: Readonly<Record<string, Readonly<Record<string, string
zh: "不,请稍后再次询问",
"zh-tw": "不,請稍後再問我",
},
"moduleMigration.optionNoSetupUri": {
def: "No, I do not have",
es: "No, no tengo",
fr: "Non, je n'en ai pas",
he: "לא, אין לי",
ja: "いいえ、持っていません",
ko: "아니요, 없습니다",
ru: "Нет, нет",
zh: "不,我没有",
"zh-tw": "沒有,我沒有",
},
"moduleMigration.optionRemindNextLaunch": {
def: "Remind me at the next launch",
es: "Recordármelo en el próximo inicio",
fr: "Me rappeler au prochain lancement",
he: "הזכר לי בהפעלה הבאה",
ja: "次回起動時にリマインド",
ko: "다음 시작 시 알림",
ru: "Напомнить при следующем запуске",
zh: "下次启动时提醒我",
"zh-tw": "下次啟動時提醒我",
},
"moduleMigration.optionSetupViaP2P": {
def: "Use P2P Sync to set up",
es: "Usar Sincronización P2P para configurarlo",
fr: "Utiliser Sync P2P pour configurer",
he: "השתמש ב-%{short_p2p_sync} להגדרה",
ja: "P2P Sync (試験機能)を使ってセットアップ",
ko: "P2P 동기화를 사용하여 설정",
ru: "Использовать short_p2p_sync для настройки",
zh: "Use P2P同步(实验性) to set up",
"zh-tw": "使用「P2P 同步」進行設定",
},
"moduleMigration.optionSetupWizard": {
def: "Take me into the setup wizard",
es: "Llévame al asistente de configuración",
fr: "Ouvrir l'assistant de configuration",
he: "קח אותי לאשף ההגדרה",
ja: "セットアップウィザードへ",
ko: "설정 마법사로 안내",
ru: "Перейти в мастер настройки",
zh: "带我进入设置向导",
"zh-tw": "帶我進入設定精靈",
},
"moduleMigration.optionYesFetchAgain": {
def: "Yes, fetch again",
es: "Sí, obtener de nuevo",
@@ -4652,28 +4552,6 @@ export const allMessages: Readonly<Record<string, Readonly<Record<string, string
zh: "大小写敏感性",
"zh-tw": "大小寫敏感性",
},
"moduleMigration.titleRecommendSetupUri": {
def: "Recommendation to use Setup URI",
es: "Recomendación de usar un Setup URI",
fr: "Recommandation d'utilisation de l'URI de configuration",
he: "המלצה לשימוש ב-Setup URI",
ja: "セットアップURIの使用を推奨",
ko: "Setup URI 사용 권장",
ru: "Рекомендация использовать Setup URI",
zh: "推荐使用设置 URI",
"zh-tw": "建議使用 Setup URI",
},
"moduleMigration.titleWelcome": {
def: "Welcome to Self-hosted LiveSync",
es: "Bienvenido a Self-hosted LiveSync",
fr: "Bienvenue dans Self-hosted LiveSync",
he: "ברוך הבא ל-Self-hosted LiveSync",
ja: "Self-hosted LiveSyncへようこそ",
ko: "Self-hosted LiveSync에 오신 것을 환영합니다",
ru: "Добро пожаловать в Self-hosted LiveSync",
zh: "欢迎使用 Self-hosted LiveSync",
"zh-tw": "歡迎使用 Self-hosted LiveSync",
},
"moduleObsidianMenu.replicate": {
def: "Replicate",
es: "Replicar",
@@ -5061,17 +4939,6 @@ export const allMessages: Readonly<Record<string, Readonly<Record<string, string
zh: "我明白了并且已更新",
"zh-tw": "我知道了,且已更新。",
},
"obsidianLiveSyncSettingTab.btnNext": {
def: "Next",
es: "Siguiente",
fr: "Suivant",
he: "הבא",
ja: "次へ",
ko: "다음",
ru: "Далее",
zh: "下一步",
"zh-tw": "下一步",
},
"obsidianLiveSyncSettingTab.btnStart": {
def: "Start",
es: "Iniciar",
@@ -5116,17 +4983,6 @@ export const allMessages: Readonly<Record<string, Readonly<Record<string, string
zh: "获取",
"zh-tw": "抓取",
},
"obsidianLiveSyncSettingTab.buttonNext": {
def: "Next",
es: "Siguiente",
fr: "Suivant",
he: "הבא",
ja: "次へ",
ko: "다음",
ru: "Далее",
zh: "下一步",
"zh-tw": "下一步",
},
"obsidianLiveSyncSettingTab.defaultLanguage": {
def: "Default",
es: "Predeterminado",
@@ -5812,17 +5668,6 @@ export const allMessages: Readonly<Record<string, Readonly<Record<string, string
zh: "要从远端服务器获取配置吗?",
"zh-tw": "要從遠端伺服器抓取設定嗎?",
},
"obsidianLiveSyncSettingTab.msgGenerateSetupURI": {
def: "All done! Do you want to generate a setup URI to set up other devices?",
es: "¡Todo listo! ¿Quieres generar un URI de configuración para configurar otros dispositivos?",
fr: "Tout est prêt ! Voulez-vous générer une URI de configuration pour configurer d'autres appareils ?",
he: "הכל מוכן! האם ברצונך לייצר Setup URI להגדרת מכשירים אחרים?",
ja: "完了!他のデバイスをセットアップするためのセットアップURIを生成しますか?",
ko: "모든 작업이 완료되었습니다! 다른 기기를 설정하기 위해 Setup URI를 생성하시겠습니까?",
ru: "Всё готово! Вы хотите сгенерировать Setup URI для настройки других устройств?",
zh: "全部完成!要生成设置 URI 以便配置其他设备吗?",
"zh-tw": "全部完成!要產生 Setup URI 以便設定其他裝置嗎?",
},
"obsidianLiveSyncSettingTab.msgIfConfigNotPersistent": {
def: "If the server configuration is not persistent (e.g., running on docker), the values here may change. Once you are able to connect, please update the settings in the server's local.ini.",
es: "Si la configuración del servidor no es persistente (por ejemplo, ejecutándose en docker), los valores aquí pueden cambiar. Una vez que puedas conectarte, por favor actualiza las configuraciones en el local.ini del servidor.",
@@ -5925,17 +5770,6 @@ export const allMessages: Readonly<Record<string, Readonly<Record<string, string
"zh-tw":
"需要重建資料庫才能套用變更。請選擇套用變更的方式。\n\n<details>\n<summary>圖例</summary>\n\n| 符號 | 含意 |\n|: ------ :| ------- |\n| ⇔ | 已是最新 |\n| ⇄ | 同步以取得一致 |\n| ⇐,⇒ | 傳輸並覆寫 |\n| ⇠,⇢ | 從另一端傳輸並覆寫 |\n\n</details>\n\n## ${OPTION_REBUILD_BOTH}\n概覽: 📄 ⇒¹ 💻 ⇒² 🛰️ ⇢ⁿ 💻 ⇄ⁿ⁺¹ 📄\n以此裝置上現有的檔案重建本機與遠端資料庫。\n這會鎖定其他裝置,它們必須執行抓取。\n## ${OPTION_FETCH}\n概覽: 📄 ⇄² 💻 ⇐¹ 🛰️ ⇔ 💻 ⇔ 📄\n初始化本機資料庫,並以從遠端資料庫抓取的資料重建。\n這也涵蓋你已重建遠端資料庫的情況。\n## ${OPTION_ONLY_SETTING}\n僅儲存設定。**注意:這可能導致資料損毀**;通常仍需要重建資料庫。",
},
"obsidianLiveSyncSettingTab.msgSelectAndApplyPreset": {
def: "Please select and apply any preset item to complete the wizard.",
es: "Por favor, selecciona y aplica cualquier elemento preestablecido para completar el asistente.",
fr: "Veuillez sélectionner et appliquer un préréglage pour terminer l'assistant.",
he: "אנא בחר והחל פריט קבוע מראש כלשהו להשלמת האשף.",
ja: "ウィザードを完了するには、プリセット項目を選択して適用してください。",
ko: "마법사를 완료하려면 프리셋 항목을 선택하고 적용해 주세요.",
ru: "Выберите и примените любой пресет для завершения мастера.",
zh: "请选择并应用任一预设项以完成向导。",
"zh-tw": "請選擇並套用任一預設項目以完成精靈。",
},
"obsidianLiveSyncSettingTab.msgSetCorsCredentials": {
def: "Set cors.credentials",
es: "Configurar cors.credentials",
@@ -6552,17 +6386,6 @@ export const allMessages: Readonly<Record<string, Readonly<Record<string, string
zh: "冲突处理",
"zh-tw": "衝突處理",
},
"obsidianLiveSyncSettingTab.titleCongratulations": {
def: "Congratulations!",
es: "¡Felicidades!",
fr: "Félicitations !",
he: "מזל טוב!",
ja: "おめでとうございます!",
ko: "축하합니다!",
ru: "Поздравляем!",
zh: "恭喜!",
"zh-tw": "恭喜!",
},
"obsidianLiveSyncSettingTab.titleCouchDB": {
def: "CouchDB",
es: "Servidor CouchDB",
-5
View File
@@ -112,8 +112,6 @@
"Obsidian version": "Obsidian-Version",
"obsidianLiveSyncSettingTab.btnApply": "Anwenden",
"obsidianLiveSyncSettingTab.btnDisable": "Deaktivieren",
"obsidianLiveSyncSettingTab.btnNext": "Weiter",
"obsidianLiveSyncSettingTab.buttonNext": "Weiter",
"obsidianLiveSyncSettingTab.defaultLanguage": "Standardsprache",
"obsidianLiveSyncSettingTab.labelDisabled": "⏹️ : Deaktiviert",
"obsidianLiveSyncSettingTab.labelEnabled": "🔁 : Aktiviert",
@@ -124,9 +122,7 @@
"obsidianLiveSyncSettingTab.msgConfigCheckFailed": "Die Konfigurationsprüfung ist fehlgeschlagen. Trotzdem fortfahren?",
"obsidianLiveSyncSettingTab.msgEnableEncryptionRecommendation": "Wir empfehlen, Ende-zu-Ende-Verschlüsselung und Pfadverschleierung zu aktivieren. Möchten Sie wirklich ohne Verschlüsselung fortfahren?",
"obsidianLiveSyncSettingTab.msgFetchConfigFromRemote": "Möchten Sie die Konfiguration vom Remote-Server abrufen?",
"obsidianLiveSyncSettingTab.msgGenerateSetupURI": "Alles fertig! Möchten Sie eine Setup-URI erzeugen, um andere Geräte einzurichten?",
"obsidianLiveSyncSettingTab.msgInvalidPassphrase": "Ihre Verschlüsselungs-Passphrase könnte ungültig sein. Möchten Sie wirklich fortfahren?",
"obsidianLiveSyncSettingTab.msgSelectAndApplyPreset": "Bitte wählen und übernehmen Sie eine beliebige Voreinstellung, um den Assistenten abzuschließen.",
"obsidianLiveSyncSettingTab.nameDisableHiddenFileSync": "Synchronisation versteckter Dateien deaktivieren",
"obsidianLiveSyncSettingTab.nameEnableHiddenFileSync": "Synchronisation versteckter Dateien aktivieren",
"obsidianLiveSyncSettingTab.nameHiddenFileSynchronization": "Synchronisation versteckter Dateien",
@@ -137,7 +133,6 @@
"obsidianLiveSyncSettingTab.optionPeriodicWithBatch": "Periodisch mit Stapelverarbeitung",
"obsidianLiveSyncSettingTab.titleAppearance": "Darstellung",
"obsidianLiveSyncSettingTab.titleConflictResolution": "Konfliktbehandlung",
"obsidianLiveSyncSettingTab.titleCongratulations": "Glückwunsch!",
"obsidianLiveSyncSettingTab.titleCouchDB": "CouchDB-Server",
"obsidianLiveSyncSettingTab.titleDeletionPropagation": "Weitergabe von Löschungen",
"obsidianLiveSyncSettingTab.titleEncryptionNotEnabled": "Verschlüsselung ist nicht aktiviert",
-16
View File
@@ -478,7 +478,6 @@
"moduleLiveSyncMain.titleScramEnabled": "Scram Enabled",
"moduleLocalDatabase.logWaitingForReady": "Waiting for ready...",
"moduleLog.showLog": "Show Log",
"moduleMigration.docUri": "https://github.com/vrtmrz/obsidian-livesync/blob/main/README.md#how-to-use",
"moduleMigration.fix0256.buttons.checkItLater": "Check it later",
"moduleMigration.fix0256.buttons.DismissForever": "I have fixed it, and do not ask again",
"moduleMigration.fix0256.buttons.fix": "Fix",
@@ -500,26 +499,16 @@
"moduleMigration.logRemoteTweakUnavailable": "Could not get remote tweak values",
"moduleMigration.logSetupCancelled": "The setup has been cancelled, Self-hosted LiveSync waiting for your setup!",
"moduleMigration.msgFetchRemoteAgain": "As you may already know, the self-hosted LiveSync has changed its default behaviour and database structure.\n\nAnd thankfully, with your time and efforts, the remote database appears to have already been migrated. Congratulations!\n\nHowever, we need a bit more. The configuration of this device is not compatible with the remote database. We will need to fetch the remote database again. Should we fetch from the remote again now?\n\n___Note: We cannot synchronise until the configuration has been changed and the database has been fetched again.___\n___Note2: The chunks are completely immutable, we can fetch only the metadata and difference.___",
"moduleMigration.msgInitialSetup": "Your device has **not been set up yet**. Let me guide you through the setup process.\n\nPlease keep in mind that every dialogue content can be copied to the clipboard. If you need to refer to it later, you can paste it into a note in Obsidian. You can also translate it into your language using a translation tool.\n\nFirst, do you have **Setup URI**?\n\nNote: If you do not know what it is, please refer to the [documentation](${URI_DOC}).",
"moduleMigration.msgRecommendSetupUri": "We strongly recommend that you generate a set-up URI and use it.\nIf you do not have knowledge about it, please refer to the [documentation](${URI_DOC}) (Sorry again, but it is important).\n\nHow do you want to set it up manually?",
"moduleMigration.msgSinceV02321": "Since v0.23.21, the self-hosted LiveSync has changed the default behaviour and database structure. The following changes have been made:\n\n1. **Case sensitivity of filenames**\n The handling of filenames is now case-insensitive. This is a beneficial change for most platforms, other than Linux and iOS, which do not manage filename case sensitivity effectively.\n (On These, a warning will be displayed for files with the same name but different cases).\n\n2. **Revision handling of the chunks**\n Chunks are immutable, which allows their revisions to be fixed. This change will enhance the performance of file saving.\n\n___However, to enable either of these changes, both remote and local databases need to be rebuilt. This process takes a few minutes, and we recommend doing it when you have ample time.___\n\n- If you wish to maintain the previous behaviour, you can skip this process by using `${KEEP}`.\n- If you do not have enough time, please choose `${DISMISS}`. You will be prompted again later.\n- If you have rebuilt the database on another device, please select `${DISMISS}` and try synchronizing again. Since a difference has been detected, you will be prompted again.",
"moduleMigration.optionAdjustRemote": "Adjust to remote",
"moduleMigration.optionDecideLater": "Decide it later",
"moduleMigration.optionEnableBoth": "Enable both",
"moduleMigration.optionEnableFilenameCaseInsensitive": "Enable only #1",
"moduleMigration.optionEnableFixedRevisionForChunks": "Enable only #2",
"moduleMigration.optionHaveSetupUri": "Yes, I have",
"moduleMigration.optionKeepPreviousBehaviour": "Keep previous behaviour",
"moduleMigration.optionManualSetup": "Set it up all manually",
"moduleMigration.optionNoAskAgain": "No, please ask again",
"moduleMigration.optionNoSetupUri": "No, I do not have",
"moduleMigration.optionRemindNextLaunch": "Remind me at the next launch",
"moduleMigration.optionSetupViaP2P": "Use %{short_p2p_sync} to set up",
"moduleMigration.optionSetupWizard": "Take me into the setup wizard",
"moduleMigration.optionYesFetchAgain": "Yes, fetch again",
"moduleMigration.titleCaseSensitivity": "Case Sensitivity",
"moduleMigration.titleRecommendSetupUri": "Recommendation to use Setup URI",
"moduleMigration.titleWelcome": "Welcome to Self-hosted LiveSync",
"moduleObsidianMenu.replicate": "Replicate",
"More actions": "More actions",
"Mostly Complete: Decision Required": "Mostly Complete: Decision Required",
@@ -564,12 +553,10 @@
"obsidianLiveSyncSettingTab.btnEnable": "Enable",
"obsidianLiveSyncSettingTab.btnFix": "Fix",
"obsidianLiveSyncSettingTab.btnGotItAndUpdated": "I got it and updated.",
"obsidianLiveSyncSettingTab.btnNext": "Next",
"obsidianLiveSyncSettingTab.btnStart": "Start",
"obsidianLiveSyncSettingTab.btnTest": "Test",
"obsidianLiveSyncSettingTab.btnUse": "Use",
"obsidianLiveSyncSettingTab.buttonFetch": "Fetch",
"obsidianLiveSyncSettingTab.buttonNext": "Next",
"obsidianLiveSyncSettingTab.defaultLanguage": "Default",
"obsidianLiveSyncSettingTab.descConnectSetupURI": "This is the recommended method to set up Self-hosted LiveSync with a Setup URI.",
"obsidianLiveSyncSettingTab.descCopySetupURI": "Perfect for setting up a new device!",
@@ -633,7 +620,6 @@
"obsidianLiveSyncSettingTab.msgEnableCorsChttpd": "Set chttpd.enable_cors",
"obsidianLiveSyncSettingTab.msgEnableEncryptionRecommendation": "We recommend enabling End-To-End Encryption, and Path Obfuscation. Are you sure you want to continue without encryption?",
"obsidianLiveSyncSettingTab.msgFetchConfigFromRemote": "Do you want to fetch the config from the remote server?",
"obsidianLiveSyncSettingTab.msgGenerateSetupURI": "All done! Do you want to generate a setup URI to set up other devices?",
"obsidianLiveSyncSettingTab.msgIfConfigNotPersistent": "If the server configuration is not persistent (e.g., running on docker), the values here may change. Once you are able to connect, please update the settings in the server's local.ini.",
"obsidianLiveSyncSettingTab.msgInvalidPassphrase": "Your encryption passphrase might be invalid. Are you sure you want to continue?",
"obsidianLiveSyncSettingTab.msgNewVersionNote": "Here due to an upgrade notification? Please review the version history. If you're satisfied, click the button. A new update will prompt this again.",
@@ -643,7 +629,6 @@
"obsidianLiveSyncSettingTab.msgObjectStorageWarning": "WARNING: This feature is a Work In Progress, so please keep in mind the following:\n- Append only architecture. A rebuild is required to shrink the storage.\n- A bit fragile.\n- When first syncing, all history will be transferred from the remote. Be mindful of data caps and slow speeds.\n- Only differences are synced live.\n\nIf you run into any issues, or have ideas about this feature, please create a issue on GitHub.\nI appreciate you for your great dedication.",
"obsidianLiveSyncSettingTab.msgOriginCheck": "Origin check: ${org}",
"obsidianLiveSyncSettingTab.msgRebuildRequired": "Rebuilding Databases are required to apply the changes.. Please select the method to apply the changes.\n\n<details>\n<summary>Legends</summary>\n\n| Symbol | Meaning |\n|: ------ :| ------- |\n| ⇔ | Up to Date |\n| ⇄ | Synchronise to balance |\n| ⇐,⇒ | Transfer to overwrite |\n| ⇠,⇢ | Transfer to overwrite from other side |\n\n</details>\n\n## ${OPTION_REBUILD_BOTH}\nAt a glance: 📄 ⇒¹ 💻 ⇒² 🛰️ ⇢ⁿ 💻 ⇄ⁿ⁺¹ 📄\nReconstruct both the local and remote databases using existing files from this device.\nThis causes a lockout other devices, and they need to perform fetching.\n## ${OPTION_FETCH}\nAt a glance: 📄 ⇄² 💻 ⇐¹ 🛰️ ⇔ 💻 ⇔ 📄\nInitialise the local database and reconstruct it using data fetched from the remote database.\nThis case includes the case which you have rebuilt the remote database.\n## ${OPTION_ONLY_SETTING}\nStore only the settings. **Caution: This may lead to data corruption**; database reconstruction is generally necessary.",
"obsidianLiveSyncSettingTab.msgSelectAndApplyPreset": "Please select and apply any preset item to complete the wizard.",
"obsidianLiveSyncSettingTab.msgSetCorsCredentials": "Set cors.credentials",
"obsidianLiveSyncSettingTab.msgSetCorsOrigins": "Set cors.origins",
"obsidianLiveSyncSettingTab.msgSetMaxDocSize": "Set couchdb.max_document_size",
@@ -700,7 +685,6 @@
"obsidianLiveSyncSettingTab.titleActiveRemoteServer": "Active Remote Server",
"obsidianLiveSyncSettingTab.titleAppearance": "Appearance",
"obsidianLiveSyncSettingTab.titleConflictResolution": "Conflict resolution",
"obsidianLiveSyncSettingTab.titleCongratulations": "Congratulations!",
"obsidianLiveSyncSettingTab.titleCouchDB": "CouchDB",
"obsidianLiveSyncSettingTab.titleDeletionPropagation": "Deletion Propagation",
"obsidianLiveSyncSettingTab.titleEncryptionNotEnabled": "Encryption is not enabled",
-16
View File
@@ -479,7 +479,6 @@
"moduleLiveSyncMain.titleScramEnabled": "Scram habilitado",
"moduleLocalDatabase.logWaitingForReady": "Esperando a que la base de datos esté lista...",
"moduleLog.showLog": "Mostrar registro",
"moduleMigration.docUri": "https://github.com/vrtmrz/obsidian-livesync/blob/main/README_ES.md#how-to-use",
"moduleMigration.fix0256.buttons.checkItLater": "Comprobarlo más tarde",
"moduleMigration.fix0256.buttons.DismissForever": "Ya lo he corregido, no volver a preguntar",
"moduleMigration.fix0256.buttons.fix": "Corregir",
@@ -501,26 +500,16 @@
"moduleMigration.logRemoteTweakUnavailable": "No se pudieron obtener los valores de ajuste remoto",
"moduleMigration.logSetupCancelled": "La configuración ha sido cancelada, ¡Self-hosted LiveSync está esperando tu configuración!",
"moduleMigration.msgFetchRemoteAgain": "Como ya sabrás, Self-hosted LiveSync ha cambiado su comportamiento predeterminado y la estructura de la base de datos.\n\nAfortunadamente, con tu tiempo y esfuerzo, la base de datos remota parece haber sido ya migrada. ¡Felicidades!\n\nSin embargo, necesitamos un poco más. La configuración de este dispositivo no es compatible con la base de datos remota. Necesitaremos volver a obtener la base de datos remota. ¿Debemos obtenerla nuevamente ahora?\n\n___Nota: No podemos sincronizar hasta que la configuración haya sido cambiada y la base de datos haya sido obtenida nuevamente.___\n___Nota2: Los fragmentos son completamente inmutables, solo podemos obtener los metadatos y diferencias.___",
"moduleMigration.msgInitialSetup": "Tu dispositivo **aún no ha sido configurado**. Permíteme guiarte a través del proceso de configuración.\n\nTen en cuenta que todo el contenido del diálogo se puede copiar al portapapeles. Si necesitas consultarlo más tarde, puedes pegarlo en una nota en Obsidian. También puedes traducirlo a tu idioma utilizando una herramienta de traducción.\n\nPrimero, ¿tienes **URI de configuración**?\n\nNota: Si no sabes qué es, consulta la [documentación](${URI_DOC}).",
"moduleMigration.msgRecommendSetupUri": "Te recomendamos encarecidamente que generes una URI de configuración y la utilices.\nSi no tienes conocimientos al respecto, consulta la [documentación](${URI_DOC}) (Lo siento de nuevo, pero es importante).\n\n¿Cómo quieres configurarlo manualmente?",
"moduleMigration.msgSinceV02321": "Desde la versión v0.23.21, Self-hosted LiveSync ha cambiado el comportamiento predeterminado y la estructura de la base de datos. Se han realizado los siguientes cambios:\n\n1. **Sensibilidad a mayúsculas de los nombres de archivo**\n El manejo de los nombres de archivo ahora no distingue entre mayúsculas y minúsculas. Este cambio es beneficioso para la mayoría de las plataformas, excepto Linux y iOS, que no gestionan efectivamente la sensibilidad a mayúsculas de los nombres de archivo.\n (En estos, se mostrará una advertencia para archivos con el mismo nombre pero diferentes mayúsculas).\n\n2. **Manejo de revisiones de los fragmentos**\n Los fragmentos son inmutables, lo que permite que sus revisiones sean fijas. Este cambio mejorará el rendimiento al guardar archivos.\n\n___Sin embargo, para habilitar cualquiera de estos cambios, es necesario reconstruir tanto las bases de datos remota como la local. Este proceso toma unos minutos, y recomendamos hacerlo cuando tengas tiempo suficiente.___\n\n- Si deseas mantener el comportamiento anterior, puedes omitir este proceso usando `${KEEP}`.\n- Si no tienes suficiente tiempo, por favor elige `${DISMISS}`. Se te pedirá nuevamente más tarde.\n- Si has reconstruido la base de datos en otro dispositivo, selecciona `${DISMISS}` e intenta sincronizar nuevamente. Dado que se ha detectado una diferencia, se te solicitará nuevamente.",
"moduleMigration.optionAdjustRemote": "Ajustar al remoto",
"moduleMigration.optionDecideLater": "Decidirlo más tarde",
"moduleMigration.optionEnableBoth": "Habilitar ambos",
"moduleMigration.optionEnableFilenameCaseInsensitive": "Habilitar solo #1",
"moduleMigration.optionEnableFixedRevisionForChunks": "Habilitar solo #2",
"moduleMigration.optionHaveSetupUri": "Sí, tengo",
"moduleMigration.optionKeepPreviousBehaviour": "Mantener comportamiento anterior",
"moduleMigration.optionManualSetup": "Configurarlo todo manualmente",
"moduleMigration.optionNoAskAgain": "No, por favor pregúntame de nuevo",
"moduleMigration.optionNoSetupUri": "No, no tengo",
"moduleMigration.optionRemindNextLaunch": "Recordármelo en el próximo inicio",
"moduleMigration.optionSetupViaP2P": "Usar %{short_p2p_sync} para configurarlo",
"moduleMigration.optionSetupWizard": "Llévame al asistente de configuración",
"moduleMigration.optionYesFetchAgain": "Sí, obtener de nuevo",
"moduleMigration.titleCaseSensitivity": "Distinción de mayúsculas y minúsculas",
"moduleMigration.titleRecommendSetupUri": "Recomendación de usar un Setup URI",
"moduleMigration.titleWelcome": "Bienvenido a Self-hosted LiveSync",
"moduleObsidianMenu.replicate": "Replicar",
"More actions": "Más acciones",
"Mostly Complete: Decision Required": "Casi terminado: se requiere una decisión",
@@ -565,12 +554,10 @@
"obsidianLiveSyncSettingTab.btnEnable": "Activar",
"obsidianLiveSyncSettingTab.btnFix": "Corregir",
"obsidianLiveSyncSettingTab.btnGotItAndUpdated": "Lo entendí y actualicé.",
"obsidianLiveSyncSettingTab.btnNext": "Siguiente",
"obsidianLiveSyncSettingTab.btnStart": "Iniciar",
"obsidianLiveSyncSettingTab.btnTest": "Probar",
"obsidianLiveSyncSettingTab.btnUse": "Usar",
"obsidianLiveSyncSettingTab.buttonFetch": "Obtener",
"obsidianLiveSyncSettingTab.buttonNext": "Siguiente",
"obsidianLiveSyncSettingTab.defaultLanguage": "Predeterminado",
"obsidianLiveSyncSettingTab.descConnectSetupURI": "Este es el método recomendado para configurar Self-hosted LiveSync con una URI de configuración.",
"obsidianLiveSyncSettingTab.descCopySetupURI": "¡Perfecto para configurar un nuevo dispositivo!",
@@ -633,7 +620,6 @@
"obsidianLiveSyncSettingTab.msgEnableCorsChttpd": "Establecer chttpd.enable_cors",
"obsidianLiveSyncSettingTab.msgEnableEncryptionRecommendation": "Recomendamos habilitar el cifrado de extremo a extremo y la obfuscación de ruta. ¿Estás seguro de querer continuar sin cifrado?",
"obsidianLiveSyncSettingTab.msgFetchConfigFromRemote": "¿Quieres obtener la configuración del servidor remoto?",
"obsidianLiveSyncSettingTab.msgGenerateSetupURI": "¡Todo listo! ¿Quieres generar un URI de configuración para configurar otros dispositivos?",
"obsidianLiveSyncSettingTab.msgIfConfigNotPersistent": "Si la configuración del servidor no es persistente (por ejemplo, ejecutándose en docker), los valores aquí pueden cambiar. Una vez que puedas conectarte, por favor actualiza las configuraciones en el local.ini del servidor.",
"obsidianLiveSyncSettingTab.msgInvalidPassphrase": "Tu frase de contraseña de cifrado podría ser inválida. ¿Estás seguro de querer continuar?",
"obsidianLiveSyncSettingTab.msgNewVersionNote": "¿Aquí debido a una notificación de actualización? Por favor, revise el historial de versiones. Si está satisfecho, haga clic en el botón. Una nueva actualización volverá a mostrar esto.",
@@ -643,7 +629,6 @@
"obsidianLiveSyncSettingTab.msgObjectStorageWarning": "ADVERTENCIA: Esta característica está en desarrollo, así que por favor ten en cuenta lo siguiente:\n- Arquitectura de solo anexado. Se requiere una reconstrucción para reducir el almacenamiento.\n- Un poco frágil.\n- Al sincronizar por primera vez, todo el historial será transferido desde el remoto. Ten en cuenta los límites de datos y las velocidades lentas.\n- Solo las diferencias se sincronizan en vivo.\n\nSi encuentras algún problema o tienes ideas sobre esta característica, por favor crea un issue en GitHub.\nAprecio mucho tu gran dedicación.",
"obsidianLiveSyncSettingTab.msgOriginCheck": "Verificación de origen: {org}",
"obsidianLiveSyncSettingTab.msgRebuildRequired": "Es necesario reconstruir las bases de datos para aplicar los cambios. Por favor selecciona el método para aplicar los cambios.\n\n<details>\n<summary>Legendas</summary>\n\n| Símbolo | Significado |\n|: ------ :| ------- |\n| ⇔ | Actualizado |\n| ⇄ | Sincronizar para equilibrar |\n| ⇐,⇒ | Transferir para sobrescribir |\n| ⇠,⇢ | Transferir para sobrescribir desde otro lado |\n\n</details>\n\n## ${OPTION_REBUILD_BOTH}\nA simple vista: 📄 ⇒¹ 💻 ⇒² 🛰️ ⇢ⁿ 💻 ⇄ⁿ⁺¹ 📄\nReconstruir tanto la base de datos local como la remota utilizando los archivos existentes de este dispositivo.\nEsto bloquea a otros dispositivos, y necesitan realizar la obtención.\n## ${OPTION_FETCH}\nA simple vista: 📄 ⇄² 💻 ⇐¹ 🛰️ ⇔ 💻 ⇔ 📄\nInicializa la base de datos local y la reconstruye utilizando los datos obtenidos de la base de datos remota.\nEste caso incluye el caso en el que has reconstruido la base de datos remota.\n## ${OPTION_ONLY_SETTING}\nAlmacena solo la configuración. **Precaución: esto puede provocar corrupción de datos**; generalmente es necesario reconstruir la base de datos.",
"obsidianLiveSyncSettingTab.msgSelectAndApplyPreset": "Por favor, selecciona y aplica cualquier elemento preestablecido para completar el asistente.",
"obsidianLiveSyncSettingTab.msgSetCorsCredentials": "Configurar cors.credentials",
"obsidianLiveSyncSettingTab.msgSetCorsOrigins": "Configurar cors.origins",
"obsidianLiveSyncSettingTab.msgSetMaxDocSize": "Configurar couchdb.max_document_size",
@@ -700,7 +685,6 @@
"obsidianLiveSyncSettingTab.titleActiveRemoteServer": "Servidor remoto activo",
"obsidianLiveSyncSettingTab.titleAppearance": "Apariencia",
"obsidianLiveSyncSettingTab.titleConflictResolution": "Resolución de conflictos",
"obsidianLiveSyncSettingTab.titleCongratulations": "¡Felicidades!",
"obsidianLiveSyncSettingTab.titleCouchDB": "Servidor CouchDB",
"obsidianLiveSyncSettingTab.titleDeletionPropagation": "Propagación de eliminación",
"obsidianLiveSyncSettingTab.titleEncryptionNotEnabled": "El cifrado no está habilitado",
-16
View File
@@ -190,7 +190,6 @@
"moduleLiveSyncMain.titleScramEnabled": "Mode Scram activé",
"moduleLocalDatabase.logWaitingForReady": "En attente de disponibilité...",
"moduleLog.showLog": "Afficher le journal",
"moduleMigration.docUri": "https://github.com/vrtmrz/obsidian-livesync/blob/main/README.md#how-to-use",
"moduleMigration.fix0256.buttons.checkItLater": "Vérifier plus tard",
"moduleMigration.fix0256.buttons.DismissForever": "J'ai corrigé, et ne plus demander",
"moduleMigration.fix0256.buttons.fix": "Corriger",
@@ -212,26 +211,16 @@
"moduleMigration.logRemoteTweakUnavailable": "Impossible d'obtenir les valeurs d'ajustement distantes",
"moduleMigration.logSetupCancelled": "La configuration a été annulée, Self-hosted LiveSync attend votre configuration !",
"moduleMigration.msgFetchRemoteAgain": "Comme vous le savez peut-être déjà, Self-hosted LiveSync a modifié son comportement par défaut et la structure de sa base de données.\n\nEt, grâce à votre temps et vos efforts, la base distante semble déjà avoir été migrée. Félicitations !\n\nCependant, il faut encore un peu plus. La configuration de cet appareil n'est pas compatible avec la base distante. Nous devrons récupérer à nouveau la base distante. Devons-nous récupérer depuis le distant maintenant ?\n\n___Note : Nous ne pouvons pas synchroniser tant que la configuration n'a pas été modifiée et que la base n'a pas été récupérée à nouveau.___\n___Note 2 : Les fragments sont complètement immuables, nous ne pouvons récupérer que les métadonnées et les différences.___",
"moduleMigration.msgInitialSetup": "Votre appareil n'a **pas encore été configuré**. Laissez-moi vous guider dans le processus de configuration.\n\nVeuillez noter que chaque contenu de boîte de dialogue peut être copié dans le presse-papiers. Si vous souhaitez vous y référer plus tard, vous pouvez le coller dans une note d'Obsidian. Vous pouvez également le traduire dans votre langue via un outil de traduction.\n\nTout d'abord, disposez-vous d'une **URI de configuration** ?\n\nNote : Si vous ne savez pas ce que c'est, consultez la [documentation](${URI_DOC}).",
"moduleMigration.msgRecommendSetupUri": "Nous recommandons vivement de générer une URI de configuration et de l'utiliser.\nSi vous ne connaissez pas, veuillez consulter la [documentation](${URI_DOC}) (Désolé encore, mais c'est important).\n\nComment souhaitez-vous effectuer la configuration manuellement ?",
"moduleMigration.msgSinceV02321": "Depuis la v0.23.21, Self-hosted LiveSync a modifié son comportement par défaut et la structure de sa base. Les changements suivants ont été effectués :\n\n1. **Sensibilité à la casse des noms de fichiers**\n La gestion des noms de fichiers est désormais insensible à la casse. C'est un changement bénéfique pour la plupart des plateformes, hormis Linux et iOS, qui ne gèrent pas efficacement la casse des noms de fichiers.\n (Sur celles-ci, un avertissement s'affichera pour les fichiers portant le même nom avec une casse différente).\n\n2. **Gestion des révisions des fragments**\n Les fragments sont immuables, ce qui permet de fixer leurs révisions. Ce changement améliore les performances d'enregistrement des fichiers.\n\n___Cependant, pour activer l'un ou l'autre de ces changements, les bases locale et distante doivent être reconstruites. Ce processus prend quelques minutes, et nous recommandons de le faire quand vous avez le temps.___\n\n- Si vous souhaitez conserver le comportement précédent, vous pouvez ignorer ce processus via `${KEEP}`.\n- Si vous n'avez pas le temps, choisissez `${DISMISS}`. Vous serez invité à nouveau plus tard.\n- Si vous avez reconstruit la base sur un autre appareil, sélectionnez `${DISMISS}` et réessayez la synchronisation. Une différence étant détectée, vous serez invité à nouveau.",
"moduleMigration.optionAdjustRemote": "Ajuster au distant",
"moduleMigration.optionDecideLater": "Décider plus tard",
"moduleMigration.optionEnableBoth": "Activer les deux",
"moduleMigration.optionEnableFilenameCaseInsensitive": "Activer seulement #1",
"moduleMigration.optionEnableFixedRevisionForChunks": "Activer seulement #2",
"moduleMigration.optionHaveSetupUri": "Oui, j'en ai une",
"moduleMigration.optionKeepPreviousBehaviour": "Conserver le comportement précédent",
"moduleMigration.optionManualSetup": "Tout configurer manuellement",
"moduleMigration.optionNoAskAgain": "Non, demandez à nouveau",
"moduleMigration.optionNoSetupUri": "Non, je n'en ai pas",
"moduleMigration.optionRemindNextLaunch": "Me rappeler au prochain lancement",
"moduleMigration.optionSetupViaP2P": "Utiliser %{short_p2p_sync} pour configurer",
"moduleMigration.optionSetupWizard": "Ouvrir l'assistant de configuration",
"moduleMigration.optionYesFetchAgain": "Oui, récupérer à nouveau",
"moduleMigration.titleCaseSensitivity": "Sensibilité à la casse",
"moduleMigration.titleRecommendSetupUri": "Recommandation d'utilisation de l'URI de configuration",
"moduleMigration.titleWelcome": "Bienvenue dans Self-hosted LiveSync",
"moduleObsidianMenu.replicate": "Répliquer",
"Move remotely deleted files to the trash, instead of deleting.": "Déplacer les fichiers supprimés à distance vers la corbeille, au lieu de les supprimer.",
"Not all messages have been translated. And, please revert to \"Default\" when reporting errors.": "Tous les messages n'ont pas été traduits. Et veuillez revenir à « Par défaut » lorsque vous signalez des erreurs.",
@@ -249,12 +238,10 @@
"obsidianLiveSyncSettingTab.btnEnable": "Activer",
"obsidianLiveSyncSettingTab.btnFix": "Corriger",
"obsidianLiveSyncSettingTab.btnGotItAndUpdated": "J'ai compris et mis à jour.",
"obsidianLiveSyncSettingTab.btnNext": "Suivant",
"obsidianLiveSyncSettingTab.btnStart": "Démarrer",
"obsidianLiveSyncSettingTab.btnTest": "Tester",
"obsidianLiveSyncSettingTab.btnUse": "Utiliser",
"obsidianLiveSyncSettingTab.buttonFetch": "Récupérer",
"obsidianLiveSyncSettingTab.buttonNext": "Suivant",
"obsidianLiveSyncSettingTab.defaultLanguage": "Par défaut",
"obsidianLiveSyncSettingTab.descConnectSetupURI": "Méthode recommandée pour configurer Self-hosted LiveSync avec une URI de configuration.",
"obsidianLiveSyncSettingTab.descCopySetupURI": "Parfait pour configurer un nouvel appareil !",
@@ -317,7 +304,6 @@
"obsidianLiveSyncSettingTab.msgEnableCorsChttpd": "Définir chttpd.enable_cors",
"obsidianLiveSyncSettingTab.msgEnableEncryptionRecommendation": "Nous recommandons d'activer le chiffrement de bout en bout et l'obfuscation des chemins. Êtes-vous sûr de vouloir continuer sans chiffrement ?",
"obsidianLiveSyncSettingTab.msgFetchConfigFromRemote": "Voulez-vous récupérer la configuration depuis le serveur distant ?",
"obsidianLiveSyncSettingTab.msgGenerateSetupURI": "Tout est prêt ! Voulez-vous générer une URI de configuration pour configurer d'autres appareils ?",
"obsidianLiveSyncSettingTab.msgIfConfigNotPersistent": "Si la configuration du serveur n'est pas persistante (par ex. fonctionnant sur Docker), les valeurs peuvent changer. Une fois la connexion établie, mettez à jour les paramètres dans le local.ini du serveur.",
"obsidianLiveSyncSettingTab.msgInvalidPassphrase": "Votre phrase secrète de chiffrement peut être invalide. Êtes-vous sûr de vouloir continuer ?",
"obsidianLiveSyncSettingTab.msgNewVersionNote": "Arrivé ici suite à une notification de mise à jour ? Consultez l'historique des versions. Si vous êtes satisfait, cliquez sur le bouton. Une nouvelle mise à jour reproposera ceci.",
@@ -327,7 +313,6 @@
"obsidianLiveSyncSettingTab.msgObjectStorageWarning": "AVERTISSEMENT : cette fonctionnalité est en cours de développement, gardez à l'esprit ce qui suit :\n- Architecture en ajout seul. Une reconstruction est nécessaire pour réduire le stockage.\n- Un peu fragile.\n- Lors de la première synchronisation, tout l'historique sera transféré depuis le distant. Attention aux limites de données et aux débits lents.\n- Seules les différences sont synchronisées en direct.\n\nSi vous rencontrez des problèmes ou avez des idées sur cette fonctionnalité, merci d'ouvrir un ticket sur GitHub.\nMerci pour votre grand dévouement.",
"obsidianLiveSyncSettingTab.msgOriginCheck": "Vérification d'origine : ${org}",
"obsidianLiveSyncSettingTab.msgRebuildRequired": "La reconstruction des bases de données est nécessaire pour appliquer les changements. Veuillez sélectionner la méthode d'application.\n\n<details>\n<summary>Légende</summary>\n\n| Symbole | Signification |\n|: ------ :| ------- |\n| ⇔ | À jour |\n| ⇄ | Synchroniser pour équilibrer |\n| ⇐,⇒ | Transférer pour écraser |\n| ⇠,⇢ | Transférer pour écraser depuis l'autre côté |\n\n</details>\n\n## ${OPTION_REBUILD_BOTH}\nEn bref : 📄 ⇒¹ 💻 ⇒² 🛰️ ⇢ⁿ 💻 ⇄ⁿ⁺¹ 📄\nReconstruit les bases locale et distante à partir des fichiers existants de cet appareil.\nCeci provoque un verrouillage des autres appareils, qui devront effectuer une récupération.\n## ${OPTION_FETCH}\nEn bref : 📄 ⇄² 💻 ⇐¹ 🛰️ ⇔ 💻 ⇔ 📄\nInitialise la base locale et la reconstruit à partir des données récupérées depuis la base distante.\nCe cas inclut également celui où vous avez reconstruit la base distante.\n## ${OPTION_ONLY_SETTING}\nNe stocker que les paramètres. **Attention : cela peut entraîner une corruption des données** ; une reconstruction de la base est généralement nécessaire.",
"obsidianLiveSyncSettingTab.msgSelectAndApplyPreset": "Veuillez sélectionner et appliquer un préréglage pour terminer l'assistant.",
"obsidianLiveSyncSettingTab.msgSetCorsCredentials": "Définir cors.credentials",
"obsidianLiveSyncSettingTab.msgSetCorsOrigins": "Définir cors.origins",
"obsidianLiveSyncSettingTab.msgSetMaxDocSize": "Définir couchdb.max_document_size",
@@ -384,7 +369,6 @@
"obsidianLiveSyncSettingTab.titleActiveRemoteServer": "Serveur distant actif",
"obsidianLiveSyncSettingTab.titleAppearance": "Apparence",
"obsidianLiveSyncSettingTab.titleConflictResolution": "Résolution des conflits",
"obsidianLiveSyncSettingTab.titleCongratulations": "Félicitations !",
"obsidianLiveSyncSettingTab.titleCouchDB": "CouchDB",
"obsidianLiveSyncSettingTab.titleDeletionPropagation": "Propagation des suppressions",
"obsidianLiveSyncSettingTab.titleEncryptionNotEnabled": "Le chiffrement n'est pas activé",
-16
View File
@@ -191,7 +191,6 @@
"moduleLiveSyncMain.titleScramEnabled": "מצב בלימה פעיל",
"moduleLocalDatabase.logWaitingForReady": "ממתין לכשירות...",
"moduleLog.showLog": "הצג יומן",
"moduleMigration.docUri": "https://github.com/vrtmrz/obsidian-livesync/blob/main/README.md#how-to-use",
"moduleMigration.fix0256.buttons.checkItLater": "בדוק מאוחר יותר",
"moduleMigration.fix0256.buttons.DismissForever": "תיקנתי, ואל תשאל שוב",
"moduleMigration.fix0256.buttons.fix": "תקן",
@@ -213,26 +212,16 @@
"moduleMigration.logRemoteTweakUnavailable": "לא ניתן לקבל ערכי כיוונון מרוחקים",
"moduleMigration.logSetupCancelled": "ההגדרה בוטלה, Self-hosted LiveSync ממתין להגדרתך!",
"moduleMigration.msgFetchRemoteAgain": "כפי שייתכן שכבר ידוע לך, Self-hosted LiveSync שינה את התנהגות ברירת המחדל ומבנה מסד הנתונים.\n\nובזכות זמנך ומאמציך, מסד הנתונים המרוחד נראה כבר הוגר. ברכות!\n\nעם זאת, נדרש עוד קצת. תצורת מכשיר זה אינה תואמת למסד הנתונים המרוחד. נצטרך למשוך את מסד הנתונים המרוחד שוב. האם למשוך מהשרת המרוחד עכשיו?\n\n___הערה: לא ניתן לסנכרן עד שהתצורה תשתנה ומסד הנתונים יימשך שוב.___\n___הערה 2: הנתחים הם בלתי-ניתנים לשינוי לחלוטין, ניתן למשוך רק את המטה-נתונים וההפרש.___",
"moduleMigration.msgInitialSetup": "המכשיר שלך **טרם הוגדר**. אנחנו כאן לעזור לך בתהליך ההגדרה.\n\nשים לב שניתן להעתיק את תוכן כל דיאלוג ללוח. אם צריך לחזור אליו מאוחר יותר, ניתן להדביק אותו כפתק ב-Obsidian. ניתן גם לתרגם לשפתך בעזרת כלי תרגום.\n\nראשית, האם יש לך **Setup URI**?\n\nהערה: אם אינך יודע מהו, אנא עיין ב[תיעוד](${URI_DOC}).",
"moduleMigration.msgRecommendSetupUri": "אנו ממליצים בחום לייצר Setup URI ולהשתמש בו.\nאם אין לך ידע בנושא, אנא עיין ב[תיעוד](${URI_DOC}) (מתנצלים שוב, אך זה חשוב).\n\nכיצד ברצונך להגדיר ידנית?",
"moduleMigration.msgSinceV02321": "מאז גרסה 0.23.21, Self-hosted LiveSync שינה את התנהגות ברירת המחדל ומבנה מסד הנתונים. השינויים הבאים בוצעו:\n\n1. **תלות רישיות בשמות קבצים**\n הטיפול בשמות קבצים הוא כעת ללא תלות רישיות. זהו שינוי מועיל לרוב הפלטפורמות,\n פרט ל-Linux ו-iOS שאינן מנהלות תלות רישיות בקבצים ביעילות.\n (בפלטפורמות אלה, תוצג אזהרה עבור קבצים עם אותו שם אך רישיות שונה).\n\n2. **טיפול בגרסאות של נתחים**\n נתחים הם בלתי-ניתנים לשינוי, מה שמאפשר גרסאות קבועות. שינוי זה ישפר את\n ביצועי שמירת הקבצים.\n\n___עם זאת, כדי להפעיל אחד מהשינויים הללו, יש לבנות מחדש גם את מסד הנתונים המרוחד וגם את המקומי. תהליך זה לוקח כמה דקות, ואנו ממליצים לעשות זאת כשיש לך זמן פנוי.___\n\n- אם ברצונך לשמור את ההתנהגות הקודמת, ניתן לדלג על תהליך זה באמצעות `${KEEP}`.\n- אם אין לך מספיק זמן, אנא בחר `${DISMISS}`. תקבל תזכורת בהמשך.\n- אם בנית מחדש את מסד הנתונים במכשיר אחר, אנא בחר `${DISMISS}` ונסה לסנכרן שוב. מאחר שזוהה הפרש, תקבל תזכורת שוב.",
"moduleMigration.optionAdjustRemote": "התאם לשרת המרוחד",
"moduleMigration.optionDecideLater": "החלט מאוחר יותר",
"moduleMigration.optionEnableBoth": "הפעל את שניהם",
"moduleMigration.optionEnableFilenameCaseInsensitive": "הפעל רק #1",
"moduleMigration.optionEnableFixedRevisionForChunks": "הפעל רק #2",
"moduleMigration.optionHaveSetupUri": "כן, יש לי",
"moduleMigration.optionKeepPreviousBehaviour": "שמור על התנהגות קודמת",
"moduleMigration.optionManualSetup": "הגדר הכל ידנית",
"moduleMigration.optionNoAskAgain": "לא, אנא שאל שוב",
"moduleMigration.optionNoSetupUri": "לא, אין לי",
"moduleMigration.optionRemindNextLaunch": "הזכר לי בהפעלה הבאה",
"moduleMigration.optionSetupViaP2P": "השתמש ב-%{short_p2p_sync} להגדרה",
"moduleMigration.optionSetupWizard": "קח אותי לאשף ההגדרה",
"moduleMigration.optionYesFetchAgain": "כן, משוך שוב",
"moduleMigration.titleCaseSensitivity": "תלות רישיות",
"moduleMigration.titleRecommendSetupUri": "המלצה לשימוש ב-Setup URI",
"moduleMigration.titleWelcome": "ברוך הבא ל-Self-hosted LiveSync",
"moduleObsidianMenu.replicate": "שכפל",
"Move remotely deleted files to the trash, instead of deleting.": "העבר קבצים שנמחקו מרחוק לאשפה, במקום למחוק.",
"Not all messages have been translated. And, please revert to \"Default\" when reporting errors.": "לא כל ההודעות תורגמו. בנוסף, אנא חזור ל\"ברירת מחדל\" בעת דיווח על שגיאות.",
@@ -250,12 +239,10 @@
"obsidianLiveSyncSettingTab.btnEnable": "הפעל",
"obsidianLiveSyncSettingTab.btnFix": "תקן",
"obsidianLiveSyncSettingTab.btnGotItAndUpdated": "הבנתי ועדכנתי.",
"obsidianLiveSyncSettingTab.btnNext": "הבא",
"obsidianLiveSyncSettingTab.btnStart": "התחל",
"obsidianLiveSyncSettingTab.btnTest": "בדוק",
"obsidianLiveSyncSettingTab.btnUse": "השתמש",
"obsidianLiveSyncSettingTab.buttonFetch": "משוך",
"obsidianLiveSyncSettingTab.buttonNext": "הבא",
"obsidianLiveSyncSettingTab.defaultLanguage": "ברירת מחדל",
"obsidianLiveSyncSettingTab.descConnectSetupURI": "זוהי השיטה המומלצת להגדרת Self-hosted LiveSync עם Setup URI.",
"obsidianLiveSyncSettingTab.descCopySetupURI": "מושלם להגדרת מכשיר חדש!",
@@ -318,7 +305,6 @@
"obsidianLiveSyncSettingTab.msgEnableCorsChttpd": "הגדר chttpd.enable_cors",
"obsidianLiveSyncSettingTab.msgEnableEncryptionRecommendation": "אנו ממליצים להפעיל הצפנה מקצה לקצה ואת ערפול הנתיב. האם אתה בטוח שברצונך להמשיך ללא הצפנה?",
"obsidianLiveSyncSettingTab.msgFetchConfigFromRemote": "האם ברצונך למשוך את התצורה מהשרת המרוחד?",
"obsidianLiveSyncSettingTab.msgGenerateSetupURI": "הכל מוכן! האם ברצונך לייצר Setup URI להגדרת מכשירים אחרים?",
"obsidianLiveSyncSettingTab.msgIfConfigNotPersistent": "אם תצורת השרת אינה קבועה (למשל, פועלת ב-docker), הערכים כאן עשויים להשתנות. לאחר שתצליח להתחבר, אנא עדכן את ההגדרות ב-local.ini של השרת.",
"obsidianLiveSyncSettingTab.msgInvalidPassphrase": "ביטוי הסיסמה להצפנה שלך עשוי להיות לא תקין. האם אתה בטוח שברצונך להמשיך?",
"obsidianLiveSyncSettingTab.msgNewVersionNote": "הגעת כאן בשל הודעת שדרוג? אנא עיין בהיסטוריית הגרסאות. אם אתה מרוצה, לחץ על הכפתור. עדכון חדש יציג זאת שוב.",
@@ -328,7 +314,6 @@
"obsidianLiveSyncSettingTab.msgObjectStorageWarning": "אזהרה: תכונה זו בשלב פיתוח, לכן שים לב לנקודות הבאות:\n- ארכיטקטורת הוספה בלבד. נדרשת בנייה מחדש לצמצום האחסון.\n- קצת רגיש.\n- בסנכרון הראשון, כל ההיסטוריה תועבר מהשרת המרוחד. שים לב למגבלות נתונים ומהירות.\n- רק הפרשים מסונכרנים בזמן אמת.\n\nאם נתקלת בבעיות, או שיש לך רעיונות לגבי תכונה זו, אנא פתח Issue ב-GitHub.\nאנחנו מעריכים את ההקדשה הגדולה שלך.",
"obsidianLiveSyncSettingTab.msgOriginCheck": "בדיקת מקור: ${org}",
"obsidianLiveSyncSettingTab.msgRebuildRequired": "נדרשת בנייה מחדש של מסדי הנתונים כדי להחיל את השינויים. אנא בחר את השיטה.\n\n<details>\n<summary>מקרא</summary>\n\n| סמל | משמעות |\n|: ------ :| ------- |\n| ⇔ | מעודכן |\n| ⇄ | סנכרן לאיזון |\n| ⇐,⇒ | העבר לדריסה |\n| ⇠,⇢ | העבר לדריסה מהצד השני |\n\n</details>\n\n## ${OPTION_REBUILD_BOTH}\nבמבט: 📄 ⇒¹ 💻 ⇒² 🛰️ ⇢ⁿ 💻 ⇄ⁿ⁺¹ 📄\nבנה מחדש גם את מסד הנתונים המקומי וגם המרוחד תוך שימוש בקבצים קיימים ממכשיר זה.\nפעולה זו תנעל מכשירים אחרים שיצטרכו לבצע משיכה.\n## ${OPTION_FETCH}\nבמבט: 📄 ⇄² 💻 ⇐¹ 🛰️ ⇔ 💻 ⇔ 📄\nאתחל את מסד הנתונים המקומי ובנה אותו מחדש תוך שימוש בנתונים שנמשכו ממסד הנתונים המרוחד.\nכולל את המקרה שבו בנית מחדש את מסד הנתונים המרוחד.\n## ${OPTION_ONLY_SETTING}\nשמור רק את ההגדרות. **זהירות: עלול לגרום לפגיעה בנתונים**; בנייה מחדש של מסד הנתונים נדרשת בדרך כלל.",
"obsidianLiveSyncSettingTab.msgSelectAndApplyPreset": "אנא בחר והחל פריט קבוע מראש כלשהו להשלמת האשף.",
"obsidianLiveSyncSettingTab.msgSetCorsCredentials": "הגדר cors.credentials",
"obsidianLiveSyncSettingTab.msgSetCorsOrigins": "הגדר cors.origins",
"obsidianLiveSyncSettingTab.msgSetMaxDocSize": "הגדר couchdb.max_document_size",
@@ -385,7 +370,6 @@
"obsidianLiveSyncSettingTab.titleActiveRemoteServer": "שרת מרוחד פעיל",
"obsidianLiveSyncSettingTab.titleAppearance": "מראה",
"obsidianLiveSyncSettingTab.titleConflictResolution": "פתרון קונפליקטים",
"obsidianLiveSyncSettingTab.titleCongratulations": "מזל טוב!",
"obsidianLiveSyncSettingTab.titleCouchDB": "CouchDB",
"obsidianLiveSyncSettingTab.titleDeletionPropagation": "הפצת מחיקות",
"obsidianLiveSyncSettingTab.titleEncryptionNotEnabled": "ההצפנה אינה מופעלת",
-16
View File
@@ -291,7 +291,6 @@
"moduleLiveSyncMain.titleScramEnabled": "緊急停止(Scram)が有効",
"moduleLocalDatabase.logWaitingForReady": "しばらくお待ちください...",
"moduleLog.showLog": "ログを表示",
"moduleMigration.docUri": "https://github.com/vrtmrz/obsidian-livesync/blob/main/README.md#how-to-use",
"moduleMigration.fix0256.buttons.checkItLater": "後で確認する",
"moduleMigration.fix0256.buttons.DismissForever": "修正済み、今後確認しない",
"moduleMigration.fix0256.buttons.fix": "修正",
@@ -313,26 +312,16 @@
"moduleMigration.logRemoteTweakUnavailable": "リモートの調整値を取得できませんでした",
"moduleMigration.logSetupCancelled": "セットアップがキャンセルされました。Self-hosted LiveSyncはセットアップを待っています!",
"moduleMigration.msgFetchRemoteAgain": "ご存知のとおり、self-hosted LiveSyncはデフォルトの動作とデータベース構造を変更しました。\n\nご協力のおかげで、リモートデータベースはすでに移行されているようです。おめでとうございます!\n\nしかし、もう少し必要です。このデバイスの設定はリモートデータベースと互換性がありません。リモートデータベースを再度フェッチする必要があります。今すぐリモートから再フェッチしますか?\n\n___注意: 設定が変更され、データベースが再フェッチされるまで同期できません。___\n___注意2: チャンクは完全に不変なので、メタデータと差分のみフェッチできます。___",
"moduleMigration.msgInitialSetup": "このデバイスは**まだセットアップされていません**。セットアッププロセスをご案内します。\n\nすべてのダイアログの内容はクリップボードにコピーできます。後で参照する必要があれば、Obsidianのノートに貼り付けてください。翻訳ツールを使ってお使いの言語に翻訳することもできます。\n\nまず、**セットアップURI**をお持ちですか?\n\n注意: それが何か分からない場合は、[documentation](${URI_DOC})を参照してください。",
"moduleMigration.msgRecommendSetupUri": "セットアップURIを生成して使用することを強くお勧めします。\nこれについて知識がない場合は、[documentation](${URI_DOC})を参照してください(重要です)。\n\n手動でセットアップしますか?",
"moduleMigration.msgSinceV02321": "v0.23.21以降、self-hosted LiveSyncはデフォルトの動作とデータベース構造を変更しました。以下の変更が行われました:\n\n1. **ファイル名の大文字小文字の区別**\n ファイル名の処理が大文字小文字を区別しなくなりました。これは、ファイル名の大文字小文字を効果的に管理しないLinuxとiOS以外のほとんどのプラットフォームにとって有益な変更です。\n (これらの環境では、同じ名前で大文字小文字が異なるファイルに対して警告が表示されます)。\n\n2. **チャンクのリビジョン処理**\n チャンクは不変であり、リビジョンを固定できます。この変更により、ファイル保存のパフォーマンスが向上します。\n\n___しかし、これらの変更を有効にするには、リモートとローカルの両方のデータベースを再構築する必要があります。このプロセスは数分かかります。時間に余裕があるときに行うことをお勧めします。___\n\n- 以前の動作を維持したい場合は、`${KEEP}`を使用してこのプロセスをスキップできます。\n- 時間がない場合は、`${DISMISS}`を選択してください。後で再度確認されます。\n- 別のデバイスでデータベースを再構築した場合は、`${DISMISS}`を選択して再度同期してみてください。差異が検出されたため、再度確認されます。",
"moduleMigration.optionAdjustRemote": "リモートに合わせる",
"moduleMigration.optionDecideLater": "後で決める",
"moduleMigration.optionEnableBoth": "両方を有効にする",
"moduleMigration.optionEnableFilenameCaseInsensitive": "#1のみ有効にする",
"moduleMigration.optionEnableFixedRevisionForChunks": "#2のみ有効にする",
"moduleMigration.optionHaveSetupUri": "はい、持っています",
"moduleMigration.optionKeepPreviousBehaviour": "以前の動作を維持",
"moduleMigration.optionManualSetup": "すべて手動でセットアップ",
"moduleMigration.optionNoAskAgain": "いいえ、後で確認する",
"moduleMigration.optionNoSetupUri": "いいえ、持っていません",
"moduleMigration.optionRemindNextLaunch": "次回起動時にリマインド",
"moduleMigration.optionSetupViaP2P": "%{short_p2p_sync}を使ってセットアップ",
"moduleMigration.optionSetupWizard": "セットアップウィザードへ",
"moduleMigration.optionYesFetchAgain": "はい、再フェッチする",
"moduleMigration.titleCaseSensitivity": "大文字小文字の区別",
"moduleMigration.titleRecommendSetupUri": "セットアップURIの使用を推奨",
"moduleMigration.titleWelcome": "Self-hosted LiveSyncへようこそ",
"moduleObsidianMenu.replicate": "レプリケート",
"More actions": "その他の操作",
"Move remotely deleted files to the trash, instead of deleting.": "リモートで削除されたファイルを削除せずにゴミ箱に移動する。",
@@ -361,12 +350,10 @@
"obsidianLiveSyncSettingTab.btnEnable": "有効化",
"obsidianLiveSyncSettingTab.btnFix": "修正",
"obsidianLiveSyncSettingTab.btnGotItAndUpdated": "理解しました、更新しました。",
"obsidianLiveSyncSettingTab.btnNext": "次へ",
"obsidianLiveSyncSettingTab.btnStart": "開始",
"obsidianLiveSyncSettingTab.btnTest": "テスト",
"obsidianLiveSyncSettingTab.btnUse": "使用",
"obsidianLiveSyncSettingTab.buttonFetch": "フェッチ",
"obsidianLiveSyncSettingTab.buttonNext": "次へ",
"obsidianLiveSyncSettingTab.defaultLanguage": "デフォルト",
"obsidianLiveSyncSettingTab.descConnectSetupURI": "セットアップURIを使用してSelf-hosted LiveSyncをセットアップする推奨方法です。",
"obsidianLiveSyncSettingTab.descCopySetupURI": "新しいデバイスのセットアップにおすすめ!",
@@ -429,7 +416,6 @@
"obsidianLiveSyncSettingTab.msgEnableCorsChttpd": "chttpd.enable_corsを設定",
"obsidianLiveSyncSettingTab.msgEnableEncryptionRecommendation": "エンドツーエンド暗号化とパス難読化を有効にすることをお勧めします。暗号化なしで続行してもよろしいですか?",
"obsidianLiveSyncSettingTab.msgFetchConfigFromRemote": "リモートサーバーから設定を取得しますか?",
"obsidianLiveSyncSettingTab.msgGenerateSetupURI": "完了!他のデバイスをセットアップするためのセットアップURIを生成しますか?",
"obsidianLiveSyncSettingTab.msgIfConfigNotPersistent": "サーバー設定が永続的でない場合(例: Dockerで実行中)、ここの値は変更される可能性があります。接続できるようになったら、サーバーのlocal.iniの設定を更新してください。",
"obsidianLiveSyncSettingTab.msgInvalidPassphrase": "暗号化パスフレーズが無効かもしれません。続行してもよろしいですか?",
"obsidianLiveSyncSettingTab.msgNewVersionNote": "アップグレード通知でここに来ましたか?バージョン履歴を確認してください。納得したらボタンをクリックしてください。新しい更新があると再度確認されます。",
@@ -439,7 +425,6 @@
"obsidianLiveSyncSettingTab.msgObjectStorageWarning": "警告: この機能は開発中です。以下の点にご注意ください:\n- 追記専用アーキテクチャ。ストレージを縮小するには再構築が必要です。\n- やや不安定です。\n- 初回同期時、すべての履歴がリモートから転送されます。データ制限と速度に注意してください。\n- ライブ同期は差分のみです。\n\n問題があれば、またはこの機能についてアイデアがあれば、GitHubにIssueを作成してください。\nご協力に感謝します。",
"obsidianLiveSyncSettingTab.msgOriginCheck": "オリジン確認: ${org}",
"obsidianLiveSyncSettingTab.msgRebuildRequired": "変更を適用するにはデータベースの再構築が必要です。変更を適用する方法を選択してください。\n\n<details>\n<summary>凡例</summary>\n\n| 記号 | 意味 |\n|: ------ :| ------- |\n| ⇔ | 最新 |\n| ⇄ | 同期してバランスを取る |\n| ⇐,⇒ | 上書きするため転送 |\n| ⇠,⇢ | 反対側から上書きするため転送 |\n\n</details>\n\n## ${OPTION_REBUILD_BOTH}\n概要: 📄 ⇒¹ 💻 ⇒² 🛰️ ⇢ⁿ 💻 ⇄ⁿ⁺¹ 📄\nこのデバイスの既存ファイルを使用してローカルとリモートの両方のデータベースを再構築します。\n他のデバイスはロックアウトされ、フェッチが必要です。\n## ${OPTION_FETCH}\n概要: 📄 ⇄² 💻 ⇐¹ 🛰️ ⇔ 💻 ⇔ 📄\nローカルデータベースを初期化し、リモートデータベースから取得したデータを使用して再構築します。\nリモートデータベースを再構築した場合も含まれます。\n## ${OPTION_ONLY_SETTING}\n設定のみを保存します。**注意: データ破損につながる可能性があります**。通常、データベースの再構築が必要です。",
"obsidianLiveSyncSettingTab.msgSelectAndApplyPreset": "ウィザードを完了するには、プリセット項目を選択して適用してください。",
"obsidianLiveSyncSettingTab.msgSetCorsCredentials": "cors.credentialsを設定",
"obsidianLiveSyncSettingTab.msgSetCorsOrigins": "cors.originsを設定",
"obsidianLiveSyncSettingTab.msgSetMaxDocSize": "couchdb.max_document_sizeを設定",
@@ -496,7 +481,6 @@
"obsidianLiveSyncSettingTab.titleActiveRemoteServer": "アクティブなリモートサーバー",
"obsidianLiveSyncSettingTab.titleAppearance": "外観",
"obsidianLiveSyncSettingTab.titleConflictResolution": "競合解決",
"obsidianLiveSyncSettingTab.titleCongratulations": "おめでとうございます!",
"obsidianLiveSyncSettingTab.titleCouchDB": "CouchDB サーバー",
"obsidianLiveSyncSettingTab.titleDeletionPropagation": "削除の伝播",
"obsidianLiveSyncSettingTab.titleEncryptionNotEnabled": "暗号化が有効になっていません",
-16
View File
@@ -478,7 +478,6 @@
"moduleLiveSyncMain.titleScramEnabled": "긴급 정지 활성화됨",
"moduleLocalDatabase.logWaitingForReady": "준비 대기 중...",
"moduleLog.showLog": "로그 표시",
"moduleMigration.docUri": "https://github.com/vrtmrz/obsidian-livesync/blob/main/README.md#how-to-use",
"moduleMigration.fix0256.buttons.checkItLater": "나중에 확인",
"moduleMigration.fix0256.buttons.DismissForever": "이미 해결했으니 다시 묻지 않기",
"moduleMigration.fix0256.buttons.fix": "수정",
@@ -500,26 +499,16 @@
"moduleMigration.logRemoteTweakUnavailable": "원격 조정 값을 가져올 수 없습니다",
"moduleMigration.logSetupCancelled": "설정이 취소되었습니다. Self-hosted LiveSync가 설정을 기다리고 있습니다!",
"moduleMigration.msgFetchRemoteAgain": "이미 알고 계시겠지만, Self-hosted LiveSync의 기본 동작 방식과 데이터베이스 구조가 변경되었습니다.\n\n다행히도 여러분의 노력 덕분에 원격 데이터베이스는 이미 성공적으로 데이터 구조 전환이 완료된 것으로 보입니다. 축하드립니다!\n\n하지만 아직 일부 추가 작업이 필요합니다. 이 기기의 설정이 원격 데이터베이스와 호환되지 않으므로, 원격 데이터를 다시 가져와야 합니다. 지금 원격 데이터베이스를 다시 가져오시겠습니까?\n\n___참고: 설정이 변경되고 데이터베이스를 다시 불러오기 전까지는 동기화가 불가능합니다.___\n___참고2: 청크는 변경이 불가능한 구조이므로, 메타데이터와 차이점만 가져올 수 있습니다.___",
"moduleMigration.msgInitialSetup": "이 기기는 **아직 초기 설정이 완료되지 않았습니다**. 지금부터 설정 과정을 안내해 드리겠습니다.\n\n모든 대화 내용은 클립보드에 복사할 수 있습니다. 나중에 참고하려면 Obsidian 노트에 붙여넣거나 번역 도구를 활용해 번역하셔도 됩니다.\n\n먼저, **Setup URI**를 가지고 계신가요?\n\n참고: Setup URI가 무엇인지 잘 모르시겠다면 [문서](${URI_DOC})를 참고해 주세요.",
"moduleMigration.msgRecommendSetupUri": "Setup URI를 생성해 사용하는 것을 강력히 권장합니다.\nSetup URI가 무엇인지 잘 모르시겠다면 [문서](${URI_DOC})를 참고해 주세요. 중요한 내용이니 꼭 확인하시기 바랍니다.\n\n직접 수동 설정을 진행하시겠습니까?",
"moduleMigration.msgSinceV02321": "v0.23.21부터 Self-hosted LiveSync의 기본 동작 방식과 데이터베이스 구조가 변경되었습니다. 변경 내용은 다음과 같습니다:\n\n1. **파일명의 대소문자 구분**\n 이제 파일명을 대소문자 구분 없이 처리합니다. 파일명의 대소문자를 제대로 관리하지 못하는 Linux와 iOS를 제외한 대부분의 플랫폼에서 유리한 변경입니다.\n (해당 플랫폼에서는 이름이 같고 대소문자만 다른 파일에 대해 경고가 표시됩니다)\n\n2. **청크의 리비전 처리**\n 청크는 변경 불가능하므로 리비전을 고정할 수 있습니다. 이 변경으로 파일 저장 성능이 향상됩니다.\n\n___다만 이 변경 중 어느 하나라도 적용하려면 원격과 로컬 데이터베이스를 모두 재구축해야 합니다. 이 과정은 몇 분이 걸리므로 시간이 충분할 때 진행하시기를 권장합니다.___\n\n- 기존 동작을 유지하려면 `${KEEP}`을 선택해 이 과정을 건너뛸 수 있습니다.\n- 시간이 충분하지 않다면 `${DISMISS}`를 선택해 주세요. 나중에 다시 여쭤보겠습니다.\n- 다른 기기에서 이미 데이터베이스를 재구축했다면 `${DISMISS}`를 선택한 뒤 다시 동기화해 보세요. 차이가 감지되면 다시 안내해 드립니다.",
"moduleMigration.optionAdjustRemote": "원격에 맞추기",
"moduleMigration.optionDecideLater": "나중에 결정하기",
"moduleMigration.optionEnableBoth": "둘 다 활성화",
"moduleMigration.optionEnableFilenameCaseInsensitive": "#1만 활성화",
"moduleMigration.optionEnableFixedRevisionForChunks": "#2만 활성화",
"moduleMigration.optionHaveSetupUri": "예, 있습니다",
"moduleMigration.optionKeepPreviousBehaviour": "이전 동작 유지",
"moduleMigration.optionManualSetup": "모든 것을 수동으로 설정",
"moduleMigration.optionNoAskAgain": "아니요 (나중에 다시 물어보기)",
"moduleMigration.optionNoSetupUri": "아니요, 없습니다",
"moduleMigration.optionRemindNextLaunch": "다음 시작 시 알림",
"moduleMigration.optionSetupViaP2P": "%{short_p2p_sync}를 사용하여 설정",
"moduleMigration.optionSetupWizard": "설정 마법사로 안내",
"moduleMigration.optionYesFetchAgain": "예 (다시 가져오기)",
"moduleMigration.titleCaseSensitivity": "대소문자 구분",
"moduleMigration.titleRecommendSetupUri": "Setup URI 사용 권장",
"moduleMigration.titleWelcome": "Self-hosted LiveSync에 오신 것을 환영합니다",
"moduleObsidianMenu.replicate": "복제",
"More actions": "추가 작업",
"Mostly Complete: Decision Required": "거의 완료: 결정이 필요합니다",
@@ -564,12 +553,10 @@
"obsidianLiveSyncSettingTab.btnEnable": "활성화",
"obsidianLiveSyncSettingTab.btnFix": "수정",
"obsidianLiveSyncSettingTab.btnGotItAndUpdated": "알겠습니다. 업데이트했습니다.",
"obsidianLiveSyncSettingTab.btnNext": "다음",
"obsidianLiveSyncSettingTab.btnStart": "시작",
"obsidianLiveSyncSettingTab.btnTest": "테스트",
"obsidianLiveSyncSettingTab.btnUse": "사용",
"obsidianLiveSyncSettingTab.buttonFetch": "가져오기",
"obsidianLiveSyncSettingTab.buttonNext": "다음",
"obsidianLiveSyncSettingTab.defaultLanguage": "기본값",
"obsidianLiveSyncSettingTab.descConnectSetupURI": "이것은 Setup URI로 Self-hosted LiveSync를 설정하는 권장 방법입니다.",
"obsidianLiveSyncSettingTab.descCopySetupURI": "새 기기 설정에 완벽합니다!",
@@ -633,7 +620,6 @@
"obsidianLiveSyncSettingTab.msgEnableCorsChttpd": "chttpd.enable_cors 설정",
"obsidianLiveSyncSettingTab.msgEnableEncryptionRecommendation": "종단 간 암호화와 경로 난독화를 활성화하는 것을 권장합니다. 정말로 암호화 없이 계속하시겠습니까?",
"obsidianLiveSyncSettingTab.msgFetchConfigFromRemote": "원격 서버에서 구성을 가져오시겠습니까?",
"obsidianLiveSyncSettingTab.msgGenerateSetupURI": "모든 작업이 완료되었습니다! 다른 기기를 설정하기 위해 Setup URI를 생성하시겠습니까?",
"obsidianLiveSyncSettingTab.msgIfConfigNotPersistent": "서버 설정이 영구적으로 저장되지 않는 환경(예: Docker에서 실행 중)에서는 이곳의 값들이 변경될 수 있습니다. 연결이 가능해지면 서버의 local.ini 파일에서 설정을 수동으로 업데이트해 주세요.",
"obsidianLiveSyncSettingTab.msgInvalidPassphrase": "암호화 패스프레이즈가 유효하지 않을 수 있습니다. 정말로 계속하시겠습니까?",
"obsidianLiveSyncSettingTab.msgNewVersionNote": "업그레이드 알림으로 여기에 오셨나요? 버전 기록을 검토해 주세요. 만족하신다면 버튼을 클릭하세요. 새로운 업데이트 시 다시 안내됩니다.",
@@ -643,7 +629,6 @@
"obsidianLiveSyncSettingTab.msgObjectStorageWarning": "경고: 이 기능은 아직 개발 중이므로 다음 사항을 유의해 주세요:\n- 추가 전용 구조로 동작합니다. 저장 용량을 줄이려면 재구축이 필요합니다.\n- 다소 불안정합니다.\n- 최초 동기화 시 모든 기록이 원격에서 전송됩니다. 데이터 사용량 제한과 느린 속도에 유의해 주세요.\n- 실시간 동기화는 변경분만 처리합니다.\n\n문제가 발생했거나 이 기능에 대한 아이디어가 있다면 GitHub에 이슈를 등록해 주세요.\n큰 관심에 깊이 감사드립니다.",
"obsidianLiveSyncSettingTab.msgOriginCheck": "출처 확인: ${org}",
"obsidianLiveSyncSettingTab.msgRebuildRequired": "변경 사항을 적용하려면 데이터베이스를 재구축해야 합니다. 변경 사항을 적용할 방법을 선택해 주세요.\n\n<details>\n<summary>범례</summary>\n\n| 기호 | 의미 |\n|: ------ :| ------- |\n| ⇔ | 최신 상태 |\n| ⇄ | 양쪽을 맞추는 동기화 |\n| ⇐,⇒ | 덮어쓰기 전송 |\n| ⇠,⇢ | 반대편에서 덮어쓰기 전송 |\n\n</details>\n\n## ${OPTION_REBUILD_BOTH}\n한눈에 보기: 📄 ⇒¹ 💻 ⇒² 🛰️ ⇢ⁿ 💻 ⇄ⁿ⁺¹ 📄\n이 기기의 기존 파일을 사용해 로컬과 원격 데이터베이스를 모두 재구축합니다.\n이 경우 다른 기기는 잠기며, 가져오기를 수행해야 합니다.\n## ${OPTION_FETCH}\n한눈에 보기: 📄 ⇄² 💻 ⇐¹ 🛰️ ⇔ 💻 ⇔ 📄\n로컬 데이터베이스를 초기화한 뒤, 원격 데이터베이스에서 가져온 데이터로 재구축합니다.\n원격 데이터베이스를 이미 재구축한 경우도 여기에 해당합니다.\n## ${OPTION_ONLY_SETTING}\n설정만 저장합니다. **주의: 데이터가 손상될 수 있습니다.** 일반적으로는 데이터베이스 재구축이 필요합니다.",
"obsidianLiveSyncSettingTab.msgSelectAndApplyPreset": "마법사를 완료하려면 프리셋 항목을 선택하고 적용해 주세요.",
"obsidianLiveSyncSettingTab.msgSetCorsCredentials": "cors.credentials 설정",
"obsidianLiveSyncSettingTab.msgSetCorsOrigins": "cors.origins 설정",
"obsidianLiveSyncSettingTab.msgSetMaxDocSize": "couchdb.max_document_size 설정",
@@ -700,7 +685,6 @@
"obsidianLiveSyncSettingTab.titleActiveRemoteServer": "활성 원격 서버",
"obsidianLiveSyncSettingTab.titleAppearance": "모양",
"obsidianLiveSyncSettingTab.titleConflictResolution": "충돌 해결",
"obsidianLiveSyncSettingTab.titleCongratulations": "축하합니다!",
"obsidianLiveSyncSettingTab.titleCouchDB": "CouchDB",
"obsidianLiveSyncSettingTab.titleDeletionPropagation": "삭제 전파",
"obsidianLiveSyncSettingTab.titleEncryptionNotEnabled": "암호화가 활성화되지 않음",
-16
View File
@@ -306,7 +306,6 @@
"moduleLiveSyncMain.titleScramEnabled": "Экстренная остановка включена",
"moduleLocalDatabase.logWaitingForReady": "Ожидание готовности...",
"moduleLog.showLog": "Показать лог",
"moduleMigration.docUri": "https://github.com/vrtmrz/obsidian-livesync/blob/main/README.md#how-to-use",
"moduleMigration.fix0256.buttons.checkItLater": "Проверить позже",
"moduleMigration.fix0256.buttons.DismissForever": "Исправлено, больше не спрашивать",
"moduleMigration.fix0256.buttons.fix": "Исправить",
@@ -328,26 +327,16 @@
"moduleMigration.logRemoteTweakUnavailable": "Не удалось получить удалённые настройки",
"moduleMigration.logSetupCancelled": "Настройка отменена, Self-hosted LiveSync ожидает вашей настройки!",
"moduleMigration.msgFetchRemoteAgain": "Удалённая база данных, похоже, уже была мигрирована. Конфигурация этого устройства несовместима.",
"moduleMigration.msgInitialSetup": "Ваше устройство ещё не настроено. У вас есть Setup URI?",
"moduleMigration.msgRecommendSetupUri": "Мы рекомендуем сгенерировать Setup URI.",
"moduleMigration.msgSinceV02321": "Начиная с v0.23.21, self-hosted LiveSync изменил поведение и структуру базы данных.",
"moduleMigration.optionAdjustRemote": "Настроить под удалённую",
"moduleMigration.optionDecideLater": "Решить позже",
"moduleMigration.optionEnableBoth": "Включить оба",
"moduleMigration.optionEnableFilenameCaseInsensitive": "Включить только #1",
"moduleMigration.optionEnableFixedRevisionForChunks": "Включить только #2",
"moduleMigration.optionHaveSetupUri": "Да, есть",
"moduleMigration.optionKeepPreviousBehaviour": "Сохранить предыдущее поведение",
"moduleMigration.optionManualSetup": "Настроить всё вручную",
"moduleMigration.optionNoAskAgain": "Нет, спросить снова",
"moduleMigration.optionNoSetupUri": "Нет, нет",
"moduleMigration.optionRemindNextLaunch": "Напомнить при следующем запуске",
"moduleMigration.optionSetupViaP2P": "Использовать short_p2p_sync для настройки",
"moduleMigration.optionSetupWizard": "Перейти в мастер настройки",
"moduleMigration.optionYesFetchAgain": "Да, загрузить снова",
"moduleMigration.titleCaseSensitivity": "Чувствительность к регистру",
"moduleMigration.titleRecommendSetupUri": "Рекомендация использовать Setup URI",
"moduleMigration.titleWelcome": "Добро пожаловать в Self-hosted LiveSync",
"moduleObsidianMenu.replicate": "Реплицировать",
"More actions": "Другие действия",
"Move remotely deleted files to the trash, instead of deleting.": "Перемещать удалённые на удалённом сервере файлы в корзину вместо удаления.",
@@ -377,12 +366,10 @@
"obsidianLiveSyncSettingTab.btnEnable": "Включить",
"obsidianLiveSyncSettingTab.btnFix": "Исправить",
"obsidianLiveSyncSettingTab.btnGotItAndUpdated": "Понял и обновил.",
"obsidianLiveSyncSettingTab.btnNext": "Далее",
"obsidianLiveSyncSettingTab.btnStart": "Старт",
"obsidianLiveSyncSettingTab.btnTest": "Тест",
"obsidianLiveSyncSettingTab.btnUse": "Использовать",
"obsidianLiveSyncSettingTab.buttonFetch": "Загрузить",
"obsidianLiveSyncSettingTab.buttonNext": "Далее",
"obsidianLiveSyncSettingTab.defaultLanguage": "По умолчанию",
"obsidianLiveSyncSettingTab.descConnectSetupURI": "Это рекомендуемый способ настройки Self-hosted LiveSync с помощью Setup URI.",
"obsidianLiveSyncSettingTab.descCopySetupURI": "Идеально подходит для настройки нового устройства!",
@@ -445,7 +432,6 @@
"obsidianLiveSyncSettingTab.msgEnableCorsChttpd": "Установить chttpd.enable_cors",
"obsidianLiveSyncSettingTab.msgEnableEncryptionRecommendation": "Мы рекомендуем включить сквозное шифрование. Вы уверены, что хотите продолжить без шифрования?",
"obsidianLiveSyncSettingTab.msgFetchConfigFromRemote": "Вы хотите загрузить конфигурацию с удалённого сервера?",
"obsidianLiveSyncSettingTab.msgGenerateSetupURI": "Всё готово! Вы хотите сгенерировать Setup URI для настройки других устройств?",
"obsidianLiveSyncSettingTab.msgIfConfigNotPersistent": "Если конфигурация сервера непостоянна, значения здесь могут измениться.",
"obsidianLiveSyncSettingTab.msgInvalidPassphrase": "Ваша парольная фраза шифрования может быть недействительна.",
"obsidianLiveSyncSettingTab.msgNewVersionNote": "Вы пришли из-за уведомления об обновлении? Просмотрите историю версий.",
@@ -455,7 +441,6 @@
"obsidianLiveSyncSettingTab.msgObjectStorageWarning": "ПРЕДУПРЕЖДЕНИЕ: Эта функция в разработке.",
"obsidianLiveSyncSettingTab.msgOriginCheck": "Проверка origin: org",
"obsidianLiveSyncSettingTab.msgRebuildRequired": "Требуется перестроение баз данных для применения изменений.",
"obsidianLiveSyncSettingTab.msgSelectAndApplyPreset": "Выберите и примените любой пресет для завершения мастера.",
"obsidianLiveSyncSettingTab.msgSetCorsCredentials": "Установить cors.credentials",
"obsidianLiveSyncSettingTab.msgSetCorsOrigins": "Установить cors.origins",
"obsidianLiveSyncSettingTab.msgSetMaxDocSize": "Установить couchdb.max_document_size",
@@ -512,7 +497,6 @@
"obsidianLiveSyncSettingTab.titleActiveRemoteServer": "Активный удалённый сервер",
"obsidianLiveSyncSettingTab.titleAppearance": "Внешний вид",
"obsidianLiveSyncSettingTab.titleConflictResolution": "Разрешение конфликтов",
"obsidianLiveSyncSettingTab.titleCongratulations": "Поздравляем!",
"obsidianLiveSyncSettingTab.titleCouchDB": "Сервер CouchDB",
"obsidianLiveSyncSettingTab.titleDeletionPropagation": "Распространение удалений",
"obsidianLiveSyncSettingTab.titleEncryptionNotEnabled": "Шифрование не включено",
-15
View File
@@ -498,26 +498,16 @@
"moduleMigration.logRemoteTweakUnavailable": "無法取得遠端調校值",
"moduleMigration.logSetupCancelled": "設定已取消,Self-hosted LiveSync 正在等候你完成設定!",
"moduleMigration.msgFetchRemoteAgain": "你可能已經知道,Self-hosted LiveSync 變更了預設行為與資料庫結構。\n\n值得慶幸的是,在你的努力下,遠端資料庫似乎已經完成遷移。恭喜!\n\n不過,還需要再多做一點。此裝置的設定與遠端資料庫不相容,我們需要再次從遠端資料庫抓取。現在要再次從遠端抓取嗎?\n\n___注意:在變更設定並再次抓取資料庫之前,我們無法進行同步。___\n___注意 2:chunks 完全不可變,我們只需要抓取中繼資料與差異部分。___",
"moduleMigration.msgInitialSetup": "你的裝置**尚未完成設定**。讓我引導你完成設定流程。\n\n請記得,每個對話框的內容都可以複製到剪貼簿。如果日後需要參考,可以貼到 Obsidian 的筆記中,也可以用翻譯工具翻成你的語言。\n\n首先,你有 **Setup URI** 嗎?\n\n注意:如果你不知道那是什麼,請參閱[說明文件](${URI_DOC})。",
"moduleMigration.msgRecommendSetupUri": "我們強烈建議你產生 Setup URI 並使用它。\n如果你對此不熟悉,請參閱[說明文件](${URI_DOC})(再次抱歉,但這很重要)。\n\n你想要如何手動設定?",
"moduleMigration.msgSinceV02321": "自 v0.23.21 起,Self-hosted LiveSync 變更了預設行為與資料庫結構,進行了以下變更:\n\n1. **檔名的大小寫敏感性**\n 現在處理檔名時不區分大小寫。這對多數平台是有益的變更,除了 Linux 與 iOS,它們無法有效處理檔名的大小寫敏感性。\n (在這些平台上,檔名相同但大小寫不同的檔案會顯示警告。)\n\n2. **chunks 的版本處理**\n chunks 是不可變的,因此可以固定其版本。這項變更會提升檔案儲存的效能。\n\n___不過,若要啟用這兩項變更中的任何一項,都需要重建遠端與本機資料庫。這個過程需要幾分鐘,建議在時間充裕時進行。___\n\n- 如果你想維持先前的行為,可以使用 `${KEEP}` 略過此程序。\n- 如果你目前沒有足夠的時間,請選擇 `${DISMISS}`,之後會再次提示你。\n- 如果你已在其他裝置上重建過資料庫,請選擇 `${DISMISS}` 並再次嘗試同步;由於偵測到差異,系統會再次提示你。",
"moduleMigration.optionAdjustRemote": "調整為遠端設定",
"moduleMigration.optionDecideLater": "稍後再決定",
"moduleMigration.optionEnableBoth": "兩者都啟用",
"moduleMigration.optionEnableFilenameCaseInsensitive": "僅啟用",
"moduleMigration.optionEnableFixedRevisionForChunks": "僅啟用",
"moduleMigration.optionHaveSetupUri": "有,我有",
"moduleMigration.optionKeepPreviousBehaviour": "保留先前的行為",
"moduleMigration.optionManualSetup": "全部手動設定",
"moduleMigration.optionNoAskAgain": "不,請稍後再問我",
"moduleMigration.optionNoSetupUri": "沒有,我沒有",
"moduleMigration.optionRemindNextLaunch": "下次啟動時提醒我",
"moduleMigration.optionSetupViaP2P": "使用「%{short_p2p_sync}」進行設定",
"moduleMigration.optionSetupWizard": "帶我進入設定精靈",
"moduleMigration.optionYesFetchAgain": "是,再次抓取",
"moduleMigration.titleCaseSensitivity": "大小寫敏感性",
"moduleMigration.titleRecommendSetupUri": "建議使用 Setup URI",
"moduleMigration.titleWelcome": "歡迎使用 Self-hosted LiveSync",
"moduleObsidianMenu.replicate": "複寫",
"More actions": "更多操作",
"Mostly Complete: Decision Required": "大致完成:需要你做出決定",
@@ -562,12 +552,10 @@
"obsidianLiveSyncSettingTab.btnEnable": "啟用",
"obsidianLiveSyncSettingTab.btnFix": "修正",
"obsidianLiveSyncSettingTab.btnGotItAndUpdated": "我知道了,且已更新。",
"obsidianLiveSyncSettingTab.btnNext": "下一步",
"obsidianLiveSyncSettingTab.btnStart": "開始",
"obsidianLiveSyncSettingTab.btnTest": "測試",
"obsidianLiveSyncSettingTab.btnUse": "使用",
"obsidianLiveSyncSettingTab.buttonFetch": "抓取",
"obsidianLiveSyncSettingTab.buttonNext": "下一步",
"obsidianLiveSyncSettingTab.defaultLanguage": "預設語言",
"obsidianLiveSyncSettingTab.descConnectSetupURI": "這是使用 Setup URI 設定 Self-hosted LiveSync 的建議方式。",
"obsidianLiveSyncSettingTab.descCopySetupURI": "設定新裝置時非常方便!",
@@ -629,7 +617,6 @@
"obsidianLiveSyncSettingTab.msgEnableCorsChttpd": "設定 chttpd.enable_cors",
"obsidianLiveSyncSettingTab.msgEnableEncryptionRecommendation": "我們建議啟用端對端加密與路徑混淆。你確定要在未加密的情況下繼續嗎?",
"obsidianLiveSyncSettingTab.msgFetchConfigFromRemote": "要從遠端伺服器抓取設定嗎?",
"obsidianLiveSyncSettingTab.msgGenerateSetupURI": "全部完成!要產生 Setup URI 以便設定其他裝置嗎?",
"obsidianLiveSyncSettingTab.msgIfConfigNotPersistent": "如果伺服器設定並非持久保存(例如在 Docker 上執行),這裡的值可能會變動。一旦能夠連線,請更新伺服器 local.ini 中的設定。",
"obsidianLiveSyncSettingTab.msgInvalidPassphrase": "你的加密密語可能無效。你確定要繼續嗎?",
"obsidianLiveSyncSettingTab.msgNewVersionNote": "因為升級通知才來到這裡嗎?請查看版本歷程。若你已確認無誤,請點選按鈕。下次更新時會再次提示。",
@@ -639,7 +626,6 @@
"obsidianLiveSyncSettingTab.msgObjectStorageWarning": "警告:此功能仍在開發中,請注意以下事項:\n- 僅附加架構。需要重建才能縮小儲存空間。\n- 較不穩定。\n- 首次同步時,所有歷史記錄都會從遠端傳輸,請留意流量上限與速度較慢的情況。\n- 之後只會即時同步差異部分。\n\n如果你遇到任何問題,或對此功能有任何想法,請到 GitHub 建立 issue。\n感謝你的大力支持。",
"obsidianLiveSyncSettingTab.msgOriginCheck": "來源檢查:${org}",
"obsidianLiveSyncSettingTab.msgRebuildRequired": "需要重建資料庫才能套用變更。請選擇套用變更的方式。\n\n<details>\n<summary>圖例</summary>\n\n| 符號 | 含意 |\n|: ------ :| ------- |\n| ⇔ | 已是最新 |\n| ⇄ | 同步以取得一致 |\n| ⇐,⇒ | 傳輸並覆寫 |\n| ⇠,⇢ | 從另一端傳輸並覆寫 |\n\n</details>\n\n## ${OPTION_REBUILD_BOTH}\n概覽: 📄 ⇒¹ 💻 ⇒² 🛰️ ⇢ⁿ 💻 ⇄ⁿ⁺¹ 📄\n以此裝置上現有的檔案重建本機與遠端資料庫。\n這會鎖定其他裝置,它們必須執行抓取。\n## ${OPTION_FETCH}\n概覽: 📄 ⇄² 💻 ⇐¹ 🛰️ ⇔ 💻 ⇔ 📄\n初始化本機資料庫,並以從遠端資料庫抓取的資料重建。\n這也涵蓋你已重建遠端資料庫的情況。\n## ${OPTION_ONLY_SETTING}\n僅儲存設定。**注意:這可能導致資料損毀**;通常仍需要重建資料庫。",
"obsidianLiveSyncSettingTab.msgSelectAndApplyPreset": "請選擇並套用任一預設項目以完成精靈。",
"obsidianLiveSyncSettingTab.msgSetCorsCredentials": "設定 cors.credentials",
"obsidianLiveSyncSettingTab.msgSetCorsOrigins": "設定 cors.origins",
"obsidianLiveSyncSettingTab.msgSetMaxDocSize": "設定 couchdb.max_document_size",
@@ -696,7 +682,6 @@
"obsidianLiveSyncSettingTab.titleActiveRemoteServer": "使用中的遠端伺服器",
"obsidianLiveSyncSettingTab.titleAppearance": "外觀",
"obsidianLiveSyncSettingTab.titleConflictResolution": "衝突處理",
"obsidianLiveSyncSettingTab.titleCongratulations": "恭喜!",
"obsidianLiveSyncSettingTab.titleCouchDB": "CouchDB 伺服器",
"obsidianLiveSyncSettingTab.titleDeletionPropagation": "刪除傳播",
"obsidianLiveSyncSettingTab.titleEncryptionNotEnabled": "尚未啟用加密",
-16
View File
@@ -293,7 +293,6 @@
"moduleLiveSyncMain.titleScramEnabled": "紧急停止已启用",
"moduleLocalDatabase.logWaitingForReady": "等待就绪...",
"moduleLog.showLog": "显示日志",
"moduleMigration.docUri": "https://github.com/vrtmrz/obsidian-livesync/blob/main/docs/zh/README_zh.md#%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8",
"moduleMigration.fix0256.buttons.checkItLater": "稍后检查",
"moduleMigration.fix0256.buttons.DismissForever": "我已经修复了,不再询问",
"moduleMigration.fix0256.buttons.fix": "修复",
@@ -315,26 +314,16 @@
"moduleMigration.logRemoteTweakUnavailable": "无法获取远程调整值",
"moduleMigration.logSetupCancelled": "设置已取消,Self-hosted LiveSync 正在等待您的设置!",
"moduleMigration.msgFetchRemoteAgain": "您可能已经知道,Self-hosted LiveSync 更改了其默认行为和数据库结构。\n\n值得庆幸的是,在您的时间和努力下,远程数据库似乎已经迁移完成。恭喜!\n\n但是,我们还需要一点点操作。此设备的配置与远程数据库不兼容。我们需要再次从远程数据库获取。我们现在应该再次从远程获取吗?\n\n___注意:在更改配置并再次获取数据库之前,我们无法进行同步。___\n___注意2:chunks 是完全不可变的,我们只能获取元数据和差异",
"moduleMigration.msgInitialSetup": "您的设备**尚未设置**。让我引导您完成设置过程。\n\n请记住,每个对话框内容都可以复制到剪贴板。如果以后需要参考,可以将其粘贴到 Obsidian 的笔记中。您也可以使用翻译工具将其翻译成您的语言。\n\n首先,您有**设置 URI** 吗?\n\n注意:如果您不知道这是什么,请参阅[文档](${URI_DOC})",
"moduleMigration.msgRecommendSetupUri": "我们强烈建议您生成一个设置 URI 并使用它。\n如果您对此不了解,请参阅[文档](${URI_DOC})(再次抱歉,但这很重要)。\n\n您想如何手动设置?",
"moduleMigration.msgSinceV02321": "自 v0.23.21 起,Self-hosted LiveSync 更改了默认行为和数据库结构。进行了以下更改:\n\n1. **文件名的区分大小写**\n现在处理文件名时不区分大小写。这对于大多数平台来说是一个有益的更改,除了 Linux 和 iOS,它们不能有效地管理文件名的大小写敏感性。\n(在这些平台上,对于名称相同但大小写不同的文件将显示警告)。\n\n2. **chunks 的版本处理**\nchunks 是不可变的,这使得它们的版本可以固定。此更改将提高文件保存的性能。\n\n___然而,要启用这些更改中的任何一个,都需要重建远程和本地数据库。这个过程需要几分钟,我们建议您在有充足时间时进行。___\n\n- 如果您希望保持以前的行为,可以使用 `${KEEP}` 跳过此过程。\n- 如果您没有足够的时间,请选择 `${DISMISS}`。稍后会再次提示您。\n- 如果您已在另一台设备上重建了数据库,请选择 `${DISMISS}` 并尝试再次同步。由于检测到差异,系统会再次提示您",
"moduleMigration.optionAdjustRemote": "调整到远程设置",
"moduleMigration.optionDecideLater": "稍后决定",
"moduleMigration.optionEnableBoth": "启用两者",
"moduleMigration.optionEnableFilenameCaseInsensitive": "仅启用 #1",
"moduleMigration.optionEnableFixedRevisionForChunks": "仅启用 #2",
"moduleMigration.optionHaveSetupUri": "是的,我有",
"moduleMigration.optionKeepPreviousBehaviour": "保持以前的行为",
"moduleMigration.optionManualSetup": "全部手动设置",
"moduleMigration.optionNoAskAgain": "不,请稍后再次询问",
"moduleMigration.optionNoSetupUri": "不,我没有",
"moduleMigration.optionRemindNextLaunch": "下次启动时提醒我",
"moduleMigration.optionSetupViaP2P": "Use %{short_p2p_sync} to set up",
"moduleMigration.optionSetupWizard": "带我进入设置向导",
"moduleMigration.optionYesFetchAgain": "是的,再次获取",
"moduleMigration.titleCaseSensitivity": "大小写敏感性",
"moduleMigration.titleRecommendSetupUri": "推荐使用设置 URI",
"moduleMigration.titleWelcome": "欢迎使用 Self-hosted LiveSync",
"moduleObsidianMenu.replicate": "复制",
"More actions": "更多操作",
"Move remotely deleted files to the trash, instead of deleting.": "将远程删除的文件移至回收站,而不是直接删除",
@@ -363,12 +352,10 @@
"obsidianLiveSyncSettingTab.btnEnable": "启用",
"obsidianLiveSyncSettingTab.btnFix": "修复",
"obsidianLiveSyncSettingTab.btnGotItAndUpdated": "我明白了并且已更新",
"obsidianLiveSyncSettingTab.btnNext": "下一步",
"obsidianLiveSyncSettingTab.btnStart": "开始",
"obsidianLiveSyncSettingTab.btnTest": "测试",
"obsidianLiveSyncSettingTab.btnUse": "使用",
"obsidianLiveSyncSettingTab.buttonFetch": "获取",
"obsidianLiveSyncSettingTab.buttonNext": "下一步",
"obsidianLiveSyncSettingTab.defaultLanguage": "默认语言",
"obsidianLiveSyncSettingTab.descConnectSetupURI": "这是使用设置 URI 设置 Self-hosted LiveSync 的推荐方法",
"obsidianLiveSyncSettingTab.descCopySetupURI": "非常适合设置新设备!",
@@ -431,7 +418,6 @@
"obsidianLiveSyncSettingTab.msgEnableCorsChttpd": "设置 chttpd.enable_cors",
"obsidianLiveSyncSettingTab.msgEnableEncryptionRecommendation": "建议启用端到端加密和路径混淆。你确定要在未加密的情况下继续吗?",
"obsidianLiveSyncSettingTab.msgFetchConfigFromRemote": "要从远端服务器获取配置吗?",
"obsidianLiveSyncSettingTab.msgGenerateSetupURI": "全部完成!要生成设置 URI 以便配置其他设备吗?",
"obsidianLiveSyncSettingTab.msgIfConfigNotPersistent": "如果服务器配置不是持久的(例如,在 docker 上运行),此处的值可能会更改。一旦能够连接,请更新服务器 local.ini 中的设置",
"obsidianLiveSyncSettingTab.msgInvalidPassphrase": "你的加密密码短语可能无效。你确定要继续吗?",
"obsidianLiveSyncSettingTab.msgNewVersionNote": "因为升级通知来到这里?请查看版本历史。如果您满意,请点击按钮。新的更新将再次提示此信息",
@@ -441,7 +427,6 @@
"obsidianLiveSyncSettingTab.msgObjectStorageWarning": "警告:此功能仍在开发中,请注意以下几点:\n- 仅追加架构。需要重建才能缩小存储空间。\n- 有点脆弱。\n- 首次同步时,所有历史记录将从远程传输。注意数据上限和慢速。\n- 只有差异会实时同步。\n\n如果您遇到任何问题,或对此功能有任何想法,请在 GitHub 上创建 issue。\n感谢您的巨大贡献",
"obsidianLiveSyncSettingTab.msgOriginCheck": "源检查: {org}",
"obsidianLiveSyncSettingTab.msgRebuildRequired": "需要重建数据库以应用更改。请选择应用更改的方法。\n\n<details>\n<summary>图例</summary>\n\n| 符号 | 含义 |\n|: ------ :| ------- |\n| ⇔ | 最新 |\n| ⇄ | 同步以平衡 |\n| ⇐,⇒ | 传输以覆盖 |\n| ⇠,⇢ | 从另一侧传输以覆盖 |\n\n</details>\n\n## ${OPTION_REBUILD_BOTH}\n概览:📄 ⇒¹ 💻 ⇒² 🛰️ ⇢ⁿ 💻 ⇄ⁿ⁺¹ 📄\n使用此设备的现有文件重建本地和远程数据库。\n这将导致其他设备被锁定,并且它们需要执行获取操作。\n## ${OPTION_FETCH}\n概览:📄 ⇄² 💻 ⇐¹ 🛰️ ⇔ 💻 ⇔ 📄\n初始化本地数据库并使用从远程数据库获取的数据重建它。\n这种情况包括您已经重建了远程数据库的情况。\n## ${OPTION_ONLY_SETTING}\n仅存储设置。**注意:这可能导致数据损坏**;通常需要重建数据库",
"obsidianLiveSyncSettingTab.msgSelectAndApplyPreset": "请选择并应用任一预设项以完成向导。",
"obsidianLiveSyncSettingTab.msgSetCorsCredentials": "设置 cors.credentials",
"obsidianLiveSyncSettingTab.msgSetCorsOrigins": "设置 cors.origins",
"obsidianLiveSyncSettingTab.msgSetMaxDocSize": "设置 couchdb.max_document_size",
@@ -498,7 +483,6 @@
"obsidianLiveSyncSettingTab.titleActiveRemoteServer": "活动远程服务器",
"obsidianLiveSyncSettingTab.titleAppearance": "外观",
"obsidianLiveSyncSettingTab.titleConflictResolution": "冲突处理",
"obsidianLiveSyncSettingTab.titleCongratulations": "恭喜!",
"obsidianLiveSyncSettingTab.titleCouchDB": "CouchDB 服务器",
"obsidianLiveSyncSettingTab.titleDeletionPropagation": "删除传播",
"obsidianLiveSyncSettingTab.titleEncryptionNotEnabled": "尚未启用加密",
-7
View File
@@ -92,8 +92,6 @@ Normal Files: Normale Dateien
obsidianLiveSyncSettingTab:
btnApply: Anwenden
btnDisable: Deaktivieren
btnNext: Weiter
buttonNext: Weiter
defaultLanguage: Standardsprache
labelDisabled: "⏹️ : Deaktiviert"
labelEnabled: "🔁 : Aktiviert"
@@ -106,12 +104,8 @@ obsidianLiveSyncSettingTab:
und Pfadverschleierung zu aktivieren. Möchten Sie wirklich ohne
Verschlüsselung fortfahren?
msgFetchConfigFromRemote: Möchten Sie die Konfiguration vom Remote-Server abrufen?
msgGenerateSetupURI: Alles fertig! Möchten Sie eine Setup-URI erzeugen, um
andere Geräte einzurichten?
msgInvalidPassphrase: Ihre Verschlüsselungs-Passphrase könnte ungültig sein.
Möchten Sie wirklich fortfahren?
msgSelectAndApplyPreset: Bitte wählen und übernehmen Sie eine beliebige
Voreinstellung, um den Assistenten abzuschließen.
nameDisableHiddenFileSync: Synchronisation versteckter Dateien deaktivieren
nameEnableHiddenFileSync: Synchronisation versteckter Dateien aktivieren
nameHiddenFileSynchronization: Synchronisation versteckter Dateien
@@ -122,7 +116,6 @@ obsidianLiveSyncSettingTab:
optionPeriodicWithBatch: Periodisch mit Stapelverarbeitung
titleAppearance: Darstellung
titleConflictResolution: Konfliktbehandlung
titleCongratulations: Glückwunsch!
titleCouchDB: CouchDB-Server
titleDeletionPropagation: Weitergabe von Löschungen
titleEncryptionNotEnabled: Verschlüsselung ist nicht aktiviert
-38
View File
@@ -725,7 +725,6 @@ moduleLocalDatabase:
moduleLog:
showLog: Show Log
moduleMigration:
docUri: https://github.com/vrtmrz/obsidian-livesync/blob/main/README.md#how-to-use
fix0256:
buttons:
checkItLater: Check it later
@@ -819,30 +818,6 @@ moduleMigration:
___Note2: The chunks are completely immutable, we can fetch only the
metadata and difference.___
msgInitialSetup: >-
Your device has **not been set up yet**. Let me guide you through the setup
process.
Please keep in mind that every dialogue content can be copied to the
clipboard. If you need to refer to it later, you can paste it into a note in
Obsidian. You can also translate it into your language using a translation
tool.
First, do you have **Setup URI**?
Note: If you do not know what it is, please refer to the
[documentation](${URI_DOC}).
msgRecommendSetupUri: >-
We strongly recommend that you generate a set-up URI and use it.
If you do not have knowledge about it, please refer to the
[documentation](${URI_DOC}) (Sorry again, but it is important).
How do you want to set it up manually?
msgSinceV02321: >-
Since v0.23.21, the self-hosted LiveSync has changed the default behaviour
and database structure. The following changes have been made:
@@ -874,18 +849,10 @@ moduleMigration:
optionEnableBoth: Enable both
optionEnableFilenameCaseInsensitive: "Enable only #1"
optionEnableFixedRevisionForChunks: "Enable only #2"
optionHaveSetupUri: Yes, I have
optionKeepPreviousBehaviour: Keep previous behaviour
optionManualSetup: Set it up all manually
optionNoAskAgain: No, please ask again
optionNoSetupUri: No, I do not have
optionRemindNextLaunch: Remind me at the next launch
optionSetupViaP2P: Use %{short_p2p_sync} to set up
optionSetupWizard: Take me into the setup wizard
optionYesFetchAgain: Yes, fetch again
titleCaseSensitivity: Case Sensitivity
titleRecommendSetupUri: Recommendation to use Setup URI
titleWelcome: Welcome to Self-hosted LiveSync
moduleObsidianMenu:
replicate: Replicate
More actions: More actions
@@ -940,12 +907,10 @@ obsidianLiveSyncSettingTab:
btnEnable: Enable
btnFix: Fix
btnGotItAndUpdated: I got it and updated.
btnNext: Next
btnStart: Start
btnTest: Test
btnUse: Use
buttonFetch: Fetch
buttonNext: Next
defaultLanguage: Default
descConnectSetupURI: This is the recommended method to set up Self-hosted
LiveSync with a Setup URI.
@@ -1018,7 +983,6 @@ obsidianLiveSyncSettingTab:
msgEnableEncryptionRecommendation: We recommend enabling End-To-End Encryption,
and Path Obfuscation. Are you sure you want to continue without encryption?
msgFetchConfigFromRemote: Do you want to fetch the config from the remote server?
msgGenerateSetupURI: All done! Do you want to generate a setup URI to set up other devices?
msgIfConfigNotPersistent: If the server configuration is not persistent (e.g.,
running on docker), the values here may change. Once you are able to
connect, please update the settings in the server's local.ini.
@@ -1098,7 +1062,6 @@ obsidianLiveSyncSettingTab:
Store only the settings. **Caution: This may lead to data corruption**;
database reconstruction is generally necessary.
msgSelectAndApplyPreset: Please select and apply any preset item to complete the wizard.
msgSetCorsCredentials: Set cors.credentials
msgSetCorsOrigins: Set cors.origins
msgSetMaxDocSize: Set couchdb.max_document_size
@@ -1158,7 +1121,6 @@ obsidianLiveSyncSettingTab:
titleActiveRemoteServer: Active Remote Server
titleAppearance: Appearance
titleConflictResolution: Conflict resolution
titleCongratulations: Congratulations!
titleCouchDB: CouchDB
titleDeletionPropagation: Deletion Propagation
titleEncryptionNotEnabled: Encryption is not enabled
-40
View File
@@ -751,7 +751,6 @@ moduleLocalDatabase:
moduleLog:
showLog: Mostrar registro
moduleMigration:
docUri: https://github.com/vrtmrz/obsidian-livesync/blob/main/README_ES.md#how-to-use
logBulkSendCorrupted: El envío de fragmentos en bloque se ha habilitado, sin
embargo, esta función se ha corrompido. Disculpe las molestias.
Deshabilitado automáticamente.
@@ -782,30 +781,6 @@ moduleMigration:
___Nota2: Los fragmentos son completamente inmutables, solo podemos obtener
los metadatos y diferencias.___
msgInitialSetup: >-
Tu dispositivo **aún no ha sido configurado**. Permíteme guiarte a través
del proceso de configuración.
Ten en cuenta que todo el contenido del diálogo se puede copiar al
portapapeles. Si necesitas consultarlo más tarde, puedes pegarlo en una nota
en Obsidian. También puedes traducirlo a tu idioma utilizando una
herramienta de traducción.
Primero, ¿tienes **URI de configuración**?
Nota: Si no sabes qué es, consulta la [documentación](${URI_DOC}).
msgRecommendSetupUri: >-
Te recomendamos encarecidamente que generes una URI de configuración y la
utilices.
Si no tienes conocimientos al respecto, consulta la
[documentación](${URI_DOC}) (Lo siento de nuevo, pero es importante).
¿Cómo quieres configurarlo manualmente?
msgSinceV02321: >-
Desde la versión v0.23.21, Self-hosted LiveSync ha cambiado el
comportamiento predeterminado y la estructura de la base de datos. Se han
@@ -838,9 +813,7 @@ moduleMigration:
optionEnableBoth: Habilitar ambos
optionEnableFilenameCaseInsensitive: "Habilitar solo #1"
optionEnableFixedRevisionForChunks: "Habilitar solo #2"
optionHaveSetupUri: Sí, tengo
optionKeepPreviousBehaviour: Mantener comportamiento anterior
optionManualSetup: Configurarlo todo manualmente
optionNoAskAgain: No, por favor pregúntame de nuevo
fix0256:
buttons:
@@ -909,14 +882,8 @@ moduleMigration:
Nota 2: reconstruir todo y obtener los datos consume algo de tiempo y de
tráfico; hazlo en horas de poco uso y con una conexión de red estable.
title: ¡Se han encontrado chunks no seguros!
optionNoSetupUri: No, no tengo
optionRemindNextLaunch: Recordármelo en el próximo inicio
optionSetupViaP2P: Usar %{short_p2p_sync} para configurarlo
optionSetupWizard: Llévame al asistente de configuración
optionYesFetchAgain: Sí, obtener de nuevo
titleCaseSensitivity: Distinción de mayúsculas y minúsculas
titleRecommendSetupUri: Recomendación de usar un Setup URI
titleWelcome: Bienvenido a Self-hosted LiveSync
"Mostly Complete: Decision Required": "Casi terminado: se requiere una decisión"
My remote server is already set up. I want to join this device.: Mi servidor remoto ya está configurado. Quiero añadir este dispositivo.
Name: Nombre
@@ -1506,12 +1473,10 @@ obsidianLiveSyncSettingTab:
btnEnable: Activar
btnFix: Corregir
btnGotItAndUpdated: Lo entendí y actualicé.
btnNext: Siguiente
btnStart: Iniciar
btnTest: Probar
btnUse: Usar
buttonFetch: Obtener
buttonNext: Siguiente
defaultLanguage: Predeterminado
descConnectSetupURI: Este es el método recomendado para configurar Self-hosted
LiveSync con una URI de configuración.
@@ -1585,8 +1550,6 @@ obsidianLiveSyncSettingTab:
a extremo y la obfuscación de ruta. ¿Estás seguro de querer continuar sin
cifrado?
msgFetchConfigFromRemote: ¿Quieres obtener la configuración del servidor remoto?
msgGenerateSetupURI: ¡Todo listo! ¿Quieres generar un URI de configuración para
configurar otros dispositivos?
msgIfConfigNotPersistent: Si la configuración del servidor no es persistente
(por ejemplo, ejecutándose en docker), los valores aquí pueden cambiar. Una
vez que puedas conectarte, por favor actualiza las configuraciones en el
@@ -1670,8 +1633,6 @@ obsidianLiveSyncSettingTab:
Almacena solo la configuración. **Precaución: esto puede provocar corrupción
de datos**; generalmente es necesario reconstruir la base de datos.
msgSelectAndApplyPreset: Por favor, selecciona y aplica cualquier elemento
preestablecido para completar el asistente.
msgSetCorsCredentials: Configurar cors.credentials
msgSetCorsOrigins: Configurar cors.origins
msgSetMaxDocSize: Configurar couchdb.max_document_size
@@ -1729,7 +1690,6 @@ obsidianLiveSyncSettingTab:
panelSetup: Configuración
titleAppearance: Apariencia
titleConflictResolution: Resolución de conflictos
titleCongratulations: ¡Felicidades!
titleCouchDB: Servidor CouchDB
titleDeletionPropagation: Propagación de eliminación
titleEncryptionNotEnabled: El cifrado no está habilitado
-39
View File
@@ -384,7 +384,6 @@ moduleLocalDatabase:
moduleLog:
showLog: Afficher le journal
moduleMigration:
docUri: https://github.com/vrtmrz/obsidian-livesync/blob/main/README.md#how-to-use
fix0256:
buttons:
checkItLater: Vérifier plus tard
@@ -482,31 +481,6 @@ moduleMigration:
___Note 2 : Les fragments sont complètement immuables, nous ne pouvons
récupérer que les métadonnées et les différences.___
msgInitialSetup: >-
Votre appareil n'a **pas encore été configuré**. Laissez-moi vous guider
dans le processus de configuration.
Veuillez noter que chaque contenu de boîte de dialogue peut être copié
dans le presse-papiers. Si vous souhaitez vous y référer plus tard, vous
pouvez le coller dans une note d'Obsidian. Vous pouvez également le
traduire dans votre langue via un outil de traduction.
Tout d'abord, disposez-vous d'une **URI de configuration** ?
Note : Si vous ne savez pas ce que c'est, consultez la
[documentation](${URI_DOC}).
msgRecommendSetupUri: >-
Nous recommandons vivement de générer une URI de configuration et de
l'utiliser.
Si vous ne connaissez pas, veuillez consulter la
[documentation](${URI_DOC}) (Désolé encore, mais c'est important).
Comment souhaitez-vous effectuer la configuration manuellement ?
msgSinceV02321: >-
Depuis la v0.23.21, Self-hosted LiveSync a modifié son comportement par
défaut et la structure de sa base. Les changements suivants ont été
@@ -539,18 +513,10 @@ moduleMigration:
optionEnableBoth: Activer les deux
optionEnableFilenameCaseInsensitive: "Activer seulement #1"
optionEnableFixedRevisionForChunks: "Activer seulement #2"
optionHaveSetupUri: Oui, j'en ai une
optionKeepPreviousBehaviour: Conserver le comportement précédent
optionManualSetup: Tout configurer manuellement
optionNoAskAgain: Non, demandez à nouveau
optionNoSetupUri: Non, je n'en ai pas
optionRemindNextLaunch: Me rappeler au prochain lancement
optionSetupViaP2P: Utiliser %{short_p2p_sync} pour configurer
optionSetupWizard: Ouvrir l'assistant de configuration
optionYesFetchAgain: Oui, récupérer à nouveau
titleCaseSensitivity: Sensibilité à la casse
titleRecommendSetupUri: Recommandation d'utilisation de l'URI de configuration
titleWelcome: Bienvenue dans Self-hosted LiveSync
moduleObsidianMenu:
replicate: Répliquer
Move remotely deleted files to the trash, instead of deleting.: Déplacer les fichiers supprimés à distance vers la corbeille, au lieu de les supprimer.
@@ -574,12 +540,10 @@ obsidianLiveSyncSettingTab:
btnEnable: Activer
btnFix: Corriger
btnGotItAndUpdated: J'ai compris et mis à jour.
btnNext: Suivant
btnStart: Démarrer
btnTest: Tester
btnUse: Utiliser
buttonFetch: Récupérer
buttonNext: Suivant
defaultLanguage: Par défaut
descConnectSetupURI: Méthode recommandée pour configurer Self-hosted LiveSync
avec une URI de configuration.
@@ -653,7 +617,6 @@ obsidianLiveSyncSettingTab:
de bout en bout et l'obfuscation des chemins. Êtes-vous sûr de vouloir
continuer sans chiffrement ?
msgFetchConfigFromRemote: Voulez-vous récupérer la configuration depuis le serveur distant ?
msgGenerateSetupURI: Tout est prêt ! Voulez-vous générer une URI de configuration pour configurer d'autres appareils ?
msgIfConfigNotPersistent: Si la configuration du serveur n'est pas persistante
(par ex. fonctionnant sur Docker), les valeurs peuvent changer. Une fois la
connexion établie, mettez à jour les paramètres dans le local.ini du
@@ -736,7 +699,6 @@ obsidianLiveSyncSettingTab:
Ne stocker que les paramètres. **Attention : cela peut entraîner une
corruption des données** ; une reconstruction de la base est généralement
nécessaire.
msgSelectAndApplyPreset: Veuillez sélectionner et appliquer un préréglage pour terminer l'assistant.
msgSetCorsCredentials: Définir cors.credentials
msgSetCorsOrigins: Définir cors.origins
msgSetMaxDocSize: Définir couchdb.max_document_size
@@ -797,7 +759,6 @@ obsidianLiveSyncSettingTab:
titleActiveRemoteServer: Serveur distant actif
titleAppearance: Apparence
titleConflictResolution: Résolution des conflits
titleCongratulations: Félicitations !
titleCouchDB: CouchDB
titleDeletionPropagation: Propagation des suppressions
titleEncryptionNotEnabled: Le chiffrement n'est pas activé
-33
View File
@@ -344,7 +344,6 @@ moduleLocalDatabase:
moduleLog:
showLog: הצג יומן
moduleMigration:
docUri: https://github.com/vrtmrz/obsidian-livesync/blob/main/README.md#how-to-use
fix0256:
buttons:
checkItLater: בדוק מאוחר יותר
@@ -430,25 +429,6 @@ moduleMigration:
___הערה 2: הנתחים הם בלתי-ניתנים לשינוי לחלוטין, ניתן למשוך רק את המטה-נתונים
וההפרש.___
msgInitialSetup: >-
המכשיר שלך **טרם הוגדר**. אנחנו כאן לעזור לך בתהליך ההגדרה.
שים לב שניתן להעתיק את תוכן כל דיאלוג ללוח. אם צריך לחזור אליו מאוחר יותר,
ניתן להדביק אותו כפתק ב-Obsidian. ניתן גם לתרגם לשפתך בעזרת כלי תרגום.
ראשית, האם יש לך **Setup URI**?
הערה: אם אינך יודע מהו, אנא עיין ב[תיעוד](${URI_DOC}).
msgRecommendSetupUri: >-
אנו ממליצים בחום לייצר Setup URI ולהשתמש בו.
אם אין לך ידע בנושא, אנא עיין ב[תיעוד](${URI_DOC}) (מתנצלים שוב, אך זה חשוב).
כיצד ברצונך להגדיר ידנית?
msgSinceV02321: >-
מאז גרסה 0.23.21, Self-hosted LiveSync שינה את התנהגות ברירת המחדל ומבנה מסד
הנתונים. השינויים הבאים בוצעו:
@@ -478,18 +458,10 @@ moduleMigration:
optionEnableBoth: הפעל את שניהם
optionEnableFilenameCaseInsensitive: "הפעל רק #1"
optionEnableFixedRevisionForChunks: "הפעל רק #2"
optionHaveSetupUri: כן, יש לי
optionKeepPreviousBehaviour: שמור על התנהגות קודמת
optionManualSetup: הגדר הכל ידנית
optionNoAskAgain: לא, אנא שאל שוב
optionNoSetupUri: לא, אין לי
optionRemindNextLaunch: הזכר לי בהפעלה הבאה
optionSetupViaP2P: השתמש ב-%{short_p2p_sync} להגדרה
optionSetupWizard: קח אותי לאשף ההגדרה
optionYesFetchAgain: כן, משוך שוב
titleCaseSensitivity: תלות רישיות
titleRecommendSetupUri: המלצה לשימוש ב-Setup URI
titleWelcome: ברוך הבא ל-Self-hosted LiveSync
moduleObsidianMenu:
replicate: שכפל
Move remotely deleted files to the trash, instead of deleting.: העבר קבצים שנמחקו מרחוק לאשפה, במקום למחוק.
@@ -512,12 +484,10 @@ obsidianLiveSyncSettingTab:
btnEnable: הפעל
btnFix: תקן
btnGotItAndUpdated: הבנתי ועדכנתי.
btnNext: הבא
btnStart: התחל
btnTest: בדוק
btnUse: השתמש
buttonFetch: משוך
buttonNext: הבא
defaultLanguage: ברירת מחדל
descConnectSetupURI: זוהי השיטה המומלצת להגדרת Self-hosted LiveSync עם Setup URI.
descCopySetupURI: מושלם להגדרת מכשיר חדש!
@@ -586,7 +556,6 @@ obsidianLiveSyncSettingTab:
msgEnableEncryptionRecommendation: אנו ממליצים להפעיל הצפנה מקצה לקצה ואת ערפול
הנתיב. האם אתה בטוח שברצונך להמשיך ללא הצפנה?
msgFetchConfigFromRemote: האם ברצונך למשוך את התצורה מהשרת המרוחד?
msgGenerateSetupURI: הכל מוכן! האם ברצונך לייצר Setup URI להגדרת מכשירים אחרים?
msgIfConfigNotPersistent: אם תצורת השרת אינה קבועה (למשל, פועלת ב-docker), הערכים
כאן עשויים להשתנות. לאחר שתצליח להתחבר, אנא עדכן את ההגדרות ב-local.ini של השרת.
msgInvalidPassphrase: ביטוי הסיסמה להצפנה שלך עשוי להיות לא תקין. האם אתה בטוח
@@ -659,7 +628,6 @@ obsidianLiveSyncSettingTab:
שמור רק את ההגדרות. **זהירות: עלול לגרום לפגיעה בנתונים**; בנייה מחדש של מסד
הנתונים נדרשת בדרך כלל.
msgSelectAndApplyPreset: אנא בחר והחל פריט קבוע מראש כלשהו להשלמת האשף.
msgSetCorsCredentials: הגדר cors.credentials
msgSetCorsOrigins: הגדר cors.origins
msgSetMaxDocSize: הגדר couchdb.max_document_size
@@ -718,7 +686,6 @@ obsidianLiveSyncSettingTab:
titleActiveRemoteServer: שרת מרוחד פעיל
titleAppearance: מראה
titleConflictResolution: פתרון קונפליקטים
titleCongratulations: מזל טוב!
titleCouchDB: CouchDB
titleDeletionPropagation: הפצת מחיקות
titleEncryptionNotEnabled: ההצפנה אינה מופעלת
-27
View File
@@ -356,7 +356,6 @@ moduleLocalDatabase:
moduleLog:
showLog: ログを表示
moduleMigration:
docUri: https://github.com/vrtmrz/obsidian-livesync/blob/main/README.md#how-to-use
fix0256:
buttons:
checkItLater: 後で確認する
@@ -416,19 +415,6 @@ moduleMigration:
___注意: 設定が変更され、データベースが再フェッチされるまで同期できません。___
___注意2: チャンクは完全に不変なので、メタデータと差分のみフェッチできます。___
msgInitialSetup: |-
このデバイスは**まだセットアップされていません**。セットアッププロセスをご案内します。
すべてのダイアログの内容はクリップボードにコピーできます。後で参照する必要があれば、Obsidianのノートに貼り付けてください。翻訳ツールを使ってお使いの言語に翻訳することもできます。
まず、**セットアップURI**をお持ちですか?
注意: それが何か分からない場合は、[documentation](${URI_DOC})を参照してください。
msgRecommendSetupUri: |-
セットアップURIを生成して使用することを強くお勧めします。
これについて知識がない場合は、[documentation](${URI_DOC})を参照してください(重要です)。
手動でセットアップしますか?
msgSinceV02321: |-
v0.23.21以降、self-hosted LiveSyncはデフォルトの動作とデータベース構造を変更しました。以下の変更が行われました:
@@ -449,18 +435,10 @@ moduleMigration:
optionEnableBoth: 両方を有効にする
optionEnableFilenameCaseInsensitive: "#1のみ有効にする"
optionEnableFixedRevisionForChunks: "#2のみ有効にする"
optionHaveSetupUri: はい、持っています
optionKeepPreviousBehaviour: 以前の動作を維持
optionManualSetup: すべて手動でセットアップ
optionNoAskAgain: いいえ、後で確認する
optionNoSetupUri: いいえ、持っていません
optionRemindNextLaunch: 次回起動時にリマインド
optionSetupViaP2P: "%{short_p2p_sync}を使ってセットアップ"
optionSetupWizard: セットアップウィザードへ
optionYesFetchAgain: はい、再フェッチする
titleCaseSensitivity: 大文字小文字の区別
titleRecommendSetupUri: セットアップURIの使用を推奨
titleWelcome: Self-hosted LiveSyncへようこそ
moduleObsidianMenu:
replicate: レプリケート
More actions: その他の操作
@@ -486,12 +464,10 @@ obsidianLiveSyncSettingTab:
btnEnable: 有効化
btnFix: 修正
btnGotItAndUpdated: 理解しました、更新しました。
btnNext: 次へ
btnStart: 開始
btnTest: テスト
btnUse: 使用
buttonFetch: フェッチ
buttonNext: 次へ
defaultLanguage: デフォルト
descConnectSetupURI: セットアップURIを使用してSelf-hosted LiveSyncをセットアップする推奨方法です。
descCopySetupURI: 新しいデバイスのセットアップにおすすめ!
@@ -556,7 +532,6 @@ obsidianLiveSyncSettingTab:
msgEnableCorsChttpd: chttpd.enable_corsを設定
msgEnableEncryptionRecommendation: エンドツーエンド暗号化とパス難読化を有効にすることをお勧めします。暗号化なしで続行してもよろしいですか?
msgFetchConfigFromRemote: リモートサーバーから設定を取得しますか?
msgGenerateSetupURI: 完了!他のデバイスをセットアップするためのセットアップURIを生成しますか?
msgIfConfigNotPersistent: "サーバー設定が永続的でない場合(例:
Dockerで実行中)、ここの値は変更される可能性があります。接続できるようになったら、サーバーのlocal.iniの設定を更新してください。"
msgInvalidPassphrase: 暗号化パスフレーズが無効かもしれません。続行してもよろしいですか?
@@ -599,7 +574,6 @@ obsidianLiveSyncSettingTab:
リモートデータベースを再構築した場合も含まれます。
## ${OPTION_ONLY_SETTING}
設定のみを保存します。**注意: データ破損につながる可能性があります**。通常、データベースの再構築が必要です。
msgSelectAndApplyPreset: ウィザードを完了するには、プリセット項目を選択して適用してください。
msgSetCorsCredentials: cors.credentialsを設定
msgSetCorsOrigins: cors.originsを設定
msgSetMaxDocSize: couchdb.max_document_sizeを設定
@@ -656,7 +630,6 @@ obsidianLiveSyncSettingTab:
titleActiveRemoteServer: アクティブなリモートサーバー
titleAppearance: 外観
titleConflictResolution: 競合解決
titleCongratulations: おめでとうございます!
titleCouchDB: CouchDB サーバー
titleDeletionPropagation: 削除の伝播
titleEncryptionNotEnabled: 暗号化が有効になっていません
-27
View File
@@ -571,7 +571,6 @@ moduleLocalDatabase:
moduleLog:
showLog: 로그 표시
moduleMigration:
docUri: https://github.com/vrtmrz/obsidian-livesync/blob/main/README.md#how-to-use
fix0256:
buttons:
checkItLater: 나중에 확인
@@ -631,19 +630,6 @@ moduleMigration:
___참고: 설정이 변경되고 데이터베이스를 다시 불러오기 전까지는 동기화가 불가능합니다.___
___참고2: 청크는 변경이 불가능한 구조이므로, 메타데이터와 차이점만 가져올 수 있습니다.___
msgInitialSetup: |-
이 기기는 **아직 초기 설정이 완료되지 않았습니다**. 지금부터 설정 과정을 안내해 드리겠습니다.
모든 대화 내용은 클립보드에 복사할 수 있습니다. 나중에 참고하려면 Obsidian 노트에 붙여넣거나 번역 도구를 활용해 번역하셔도 됩니다.
먼저, **Setup URI**를 가지고 계신가요?
참고: Setup URI가 무엇인지 잘 모르시겠다면 [문서](${URI_DOC})를 참고해 주세요.
msgRecommendSetupUri: |-
Setup URI를 생성해 사용하는 것을 강력히 권장합니다.
Setup URI가 무엇인지 잘 모르시겠다면 [문서](${URI_DOC})를 참고해 주세요. 중요한 내용이니 꼭 확인하시기 바랍니다.
직접 수동 설정을 진행하시겠습니까?
msgSinceV02321: |-
v0.23.21부터 Self-hosted LiveSync의 기본 동작 방식과 데이터베이스 구조가 변경되었습니다. 변경 내용은 다음과 같습니다:
@@ -664,18 +650,10 @@ moduleMigration:
optionEnableBoth: 둘 다 활성화
optionEnableFilenameCaseInsensitive: "#1만 활성화"
optionEnableFixedRevisionForChunks: "#2만 활성화"
optionHaveSetupUri: 예, 있습니다
optionKeepPreviousBehaviour: 이전 동작 유지
optionManualSetup: 모든 것을 수동으로 설정
optionNoAskAgain: 아니요 (나중에 다시 물어보기)
optionNoSetupUri: 아니요, 없습니다
optionRemindNextLaunch: 다음 시작 시 알림
optionSetupViaP2P: "%{short_p2p_sync}를 사용하여 설정"
optionSetupWizard: 설정 마법사로 안내
optionYesFetchAgain: 예 (다시 가져오기)
titleCaseSensitivity: 대소문자 구분
titleRecommendSetupUri: Setup URI 사용 권장
titleWelcome: Self-hosted LiveSync에 오신 것을 환영합니다
moduleObsidianMenu:
replicate: 복제
More actions: 추가 작업
@@ -722,12 +700,10 @@ obsidianLiveSyncSettingTab:
btnEnable: 활성화
btnFix: 수정
btnGotItAndUpdated: 알겠습니다. 업데이트했습니다.
btnNext: 다음
btnStart: 시작
btnTest: 테스트
btnUse: 사용
buttonFetch: 가져오기
buttonNext: 다음
defaultLanguage: 기본값
descConnectSetupURI: 이것은 Setup URI로 Self-hosted LiveSync를 설정하는 권장 방법입니다.
descCopySetupURI: 새 기기 설정에 완벽합니다!
@@ -793,7 +769,6 @@ obsidianLiveSyncSettingTab:
msgEnableCorsChttpd: chttpd.enable_cors 설정
msgEnableEncryptionRecommendation: 종단 간 암호화와 경로 난독화를 활성화하는 것을 권장합니다. 정말로 암호화 없이 계속하시겠습니까?
msgFetchConfigFromRemote: 원격 서버에서 구성을 가져오시겠습니까?
msgGenerateSetupURI: 모든 작업이 완료되었습니다! 다른 기기를 설정하기 위해 Setup URI를 생성하시겠습니까?
msgIfConfigNotPersistent: "서버 설정이 영구적으로 저장되지 않는 환경(예: Docker에서 실행 중)에서는 이곳의 값들이 변경될 수 있습니다. 연결이 가능해지면 서버의 local.ini 파일에서 설정을 수동으로 업데이트해 주세요."
msgInvalidPassphrase: 암호화 패스프레이즈가 유효하지 않을 수 있습니다. 정말로 계속하시겠습니까?
msgNewVersionNote: 업그레이드 알림으로 여기에 오셨나요? 버전 기록을 검토해 주세요. 만족하신다면 버튼을 클릭하세요. 새로운 업데이트 시 다시 안내됩니다.
@@ -835,7 +810,6 @@ obsidianLiveSyncSettingTab:
원격 데이터베이스를 이미 재구축한 경우도 여기에 해당합니다.
## ${OPTION_ONLY_SETTING}
설정만 저장합니다. **주의: 데이터가 손상될 수 있습니다.** 일반적으로는 데이터베이스 재구축이 필요합니다.
msgSelectAndApplyPreset: 마법사를 완료하려면 프리셋 항목을 선택하고 적용해 주세요.
msgSetCorsCredentials: cors.credentials 설정
msgSetCorsOrigins: cors.origins 설정
msgSetMaxDocSize: couchdb.max_document_size 설정
@@ -892,7 +866,6 @@ obsidianLiveSyncSettingTab:
titleActiveRemoteServer: 활성 원격 서버
titleAppearance: 모양
titleConflictResolution: 충돌 해결
titleCongratulations: 축하합니다!
titleCouchDB: CouchDB
titleDeletionPropagation: 삭제 전파
titleEncryptionNotEnabled: 암호화가 활성화되지 않음
-16
View File
@@ -413,7 +413,6 @@ moduleLocalDatabase:
moduleLog:
showLog: Показать лог
moduleMigration:
docUri: https://github.com/vrtmrz/obsidian-livesync/blob/main/README.md#how-to-use
fix0256:
buttons:
checkItLater: Проверить позже
@@ -441,8 +440,6 @@ moduleMigration:
logSetupCancelled: Настройка отменена, Self-hosted LiveSync ожидает вашей настройки!
msgFetchRemoteAgain: Удалённая база данных, похоже, уже была мигрирована.
Конфигурация этого устройства несовместима.
msgInitialSetup: Ваше устройство ещё не настроено. У вас есть Setup URI?
msgRecommendSetupUri: Мы рекомендуем сгенерировать Setup URI.
msgSinceV02321: Начиная с v0.23.21, self-hosted LiveSync изменил поведение и
структуру базы данных.
optionAdjustRemote: Настроить под удалённую
@@ -450,18 +447,10 @@ moduleMigration:
optionEnableBoth: Включить оба
optionEnableFilenameCaseInsensitive: "Включить только #1"
optionEnableFixedRevisionForChunks: "Включить только #2"
optionHaveSetupUri: Да, есть
optionKeepPreviousBehaviour: Сохранить предыдущее поведение
optionManualSetup: Настроить всё вручную
optionNoAskAgain: Нет, спросить снова
optionNoSetupUri: Нет, нет
optionRemindNextLaunch: Напомнить при следующем запуске
optionSetupViaP2P: Использовать short_p2p_sync для настройки
optionSetupWizard: Перейти в мастер настройки
optionYesFetchAgain: Да, загрузить снова
titleCaseSensitivity: Чувствительность к регистру
titleRecommendSetupUri: Рекомендация использовать Setup URI
titleWelcome: Добро пожаловать в Self-hosted LiveSync
moduleObsidianMenu:
replicate: Реплицировать
More actions: Другие действия
@@ -492,12 +481,10 @@ obsidianLiveSyncSettingTab:
btnEnable: Включить
btnFix: Исправить
btnGotItAndUpdated: Понял и обновил.
btnNext: Далее
btnStart: Старт
btnTest: Тест
btnUse: Использовать
buttonFetch: Загрузить
buttonNext: Далее
defaultLanguage: По умолчанию
descConnectSetupURI: Это рекомендуемый способ настройки Self-hosted LiveSync с помощью Setup URI.
descCopySetupURI: Идеально подходит для настройки нового устройства!
@@ -562,7 +549,6 @@ obsidianLiveSyncSettingTab:
msgEnableEncryptionRecommendation: Мы рекомендуем включить сквозное шифрование.
Вы уверены, что хотите продолжить без шифрования?
msgFetchConfigFromRemote: Вы хотите загрузить конфигурацию с удалённого сервера?
msgGenerateSetupURI: Всё готово! Вы хотите сгенерировать Setup URI для настройки других устройств?
msgIfConfigNotPersistent: Если конфигурация сервера непостоянна, значения здесь могут измениться.
msgInvalidPassphrase: Ваша парольная фраза шифрования может быть недействительна.
msgNewVersionNote: Вы пришли из-за уведомления об обновлении? Просмотрите историю версий.
@@ -572,7 +558,6 @@ obsidianLiveSyncSettingTab:
msgObjectStorageWarning: "ПРЕДУПРЕЖДЕНИЕ: Эта функция в разработке."
msgOriginCheck: "Проверка origin: org"
msgRebuildRequired: Требуется перестроение баз данных для применения изменений.
msgSelectAndApplyPreset: Выберите и примените любой пресет для завершения мастера.
msgSetCorsCredentials: Установить cors.credentials
msgSetCorsOrigins: Установить cors.origins
msgSetMaxDocSize: Установить couchdb.max_document_size
@@ -629,7 +614,6 @@ obsidianLiveSyncSettingTab:
titleActiveRemoteServer: Активный удалённый сервер
titleAppearance: Внешний вид
titleConflictResolution: Разрешение конфликтов
titleCongratulations: Поздравляем!
titleCouchDB: Сервер CouchDB
titleDeletionPropagation: Распространение удалений
titleEncryptionNotEnabled: Шифрование не включено
-26
View File
@@ -745,27 +745,6 @@ moduleMigration:
optionNoAskAgain: 不,請稍後再問我
optionYesFetchAgain: 是,再次抓取
titleCaseSensitivity: 大小寫敏感性
msgInitialSetup: |-
你的裝置**尚未完成設定**。讓我引導你完成設定流程。
請記得,每個對話框的內容都可以複製到剪貼簿。如果日後需要參考,可以貼到 Obsidian 的筆記中,也可以用翻譯工具翻成你的語言。
首先,你有 **Setup URI** 嗎?
注意:如果你不知道那是什麼,請參閱[說明文件](${URI_DOC})。
msgRecommendSetupUri: |-
我們強烈建議你產生 Setup URI 並使用它。
如果你對此不熟悉,請參閱[說明文件](${URI_DOC})(再次抱歉,但這很重要)。
你想要如何手動設定?
optionHaveSetupUri: 有,我有
optionManualSetup: 全部手動設定
optionNoSetupUri: 沒有,我沒有
optionRemindNextLaunch: 下次啟動時提醒我
optionSetupViaP2P: 使用「%{short_p2p_sync}」進行設定
optionSetupWizard: 帶我進入設定精靈
titleRecommendSetupUri: 建議使用 Setup URI
titleWelcome: 歡迎使用 Self-hosted LiveSync
moduleObsidianMenu:
replicate: 複寫
More actions: 更多操作
@@ -786,9 +765,7 @@ obsidianLiveSyncSettingTab:
btnTest: 測試
buttonFetch: 抓取
btnFix: 修正
btnNext: 下一步
btnUse: 使用
buttonNext: 下一步
defaultLanguage: 預設語言
descConnectSetupURI: 這是使用 Setup URI 設定 Self-hosted LiveSync 的建議方式。
descCopySetupURI: 設定新裝置時非常方便!
@@ -868,7 +845,6 @@ obsidianLiveSyncSettingTab:
msgEnableCorsChttpd: 設定 chttpd.enable_cors
msgEnableEncryptionRecommendation: 我們建議啟用端對端加密與路徑混淆。你確定要在未加密的情況下繼續嗎?
msgFetchConfigFromRemote: 要從遠端伺服器抓取設定嗎?
msgGenerateSetupURI: 全部完成!要產生 Setup URI 以便設定其他裝置嗎?
msgIfConfigNotPersistent: 如果伺服器設定並非持久保存(例如在 Docker 上執行),這裡的值可能會變動。一旦能夠連線,請更新伺服器 local.ini 中的設定。
msgInvalidPassphrase: 你的加密密語可能無效。你確定要繼續嗎?
msgNotice: "---注意---"
@@ -898,7 +874,6 @@ obsidianLiveSyncSettingTab:
這也涵蓋你已重建遠端資料庫的情況。
## ${OPTION_ONLY_SETTING}
僅儲存設定。**注意:這可能導致資料損毀**;通常仍需要重建資料庫。
msgSelectAndApplyPreset: 請選擇並套用任一預設項目以完成精靈。
msgSetCorsCredentials: 設定 cors.credentials
msgSetCorsOrigins: 設定 cors.origins
msgSetMaxDocSize: 設定 couchdb.max_document_size
@@ -951,7 +926,6 @@ obsidianLiveSyncSettingTab:
titleFetchConfigFromRemote: 從遠端伺服器抓取設定
titleFetchSettings: 抓取設定
titleConflictResolution: 衝突處理
titleCongratulations: 恭喜!
titleCouchDB: CouchDB 伺服器
titleDeletionPropagation: 刪除傳播
titleEncryptionNotEnabled: 尚未啟用加密
-27
View File
@@ -358,7 +358,6 @@ moduleLocalDatabase:
moduleLog:
showLog: 显示日志
moduleMigration:
docUri: https://github.com/vrtmrz/obsidian-livesync/blob/main/docs/zh/README_zh.md#%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8
fix0256:
buttons:
checkItLater: 稍后检查
@@ -420,19 +419,6 @@ moduleMigration:
___注意:在更改配置并再次获取数据库之前,我们无法进行同步。___
___注意2:chunks 是完全不可变的,我们只能获取元数据和差异
msgInitialSetup: |-
您的设备**尚未设置**。让我引导您完成设置过程。
请记住,每个对话框内容都可以复制到剪贴板。如果以后需要参考,可以将其粘贴到 Obsidian 的笔记中。您也可以使用翻译工具将其翻译成您的语言。
首先,您有**设置 URI** 吗?
注意:如果您不知道这是什么,请参阅[文档](${URI_DOC})
msgRecommendSetupUri: |-
我们强烈建议您生成一个设置 URI 并使用它。
如果您对此不了解,请参阅[文档](${URI_DOC})(再次抱歉,但这很重要)。
您想如何手动设置?
msgSinceV02321: |-
自 v0.23.21 起,Self-hosted LiveSync 更改了默认行为和数据库结构。进行了以下更改:
@@ -453,18 +439,10 @@ moduleMigration:
optionEnableBoth: 启用两者
optionEnableFilenameCaseInsensitive: "仅启用 #1"
optionEnableFixedRevisionForChunks: "仅启用 #2"
optionHaveSetupUri: 是的,我有
optionKeepPreviousBehaviour: 保持以前的行为
optionManualSetup: 全部手动设置
optionNoAskAgain: 不,请稍后再次询问
optionNoSetupUri: 不,我没有
optionRemindNextLaunch: 下次启动时提醒我
optionSetupViaP2P: Use %{short_p2p_sync} to set up
optionSetupWizard: 带我进入设置向导
optionYesFetchAgain: 是的,再次获取
titleCaseSensitivity: 大小写敏感性
titleRecommendSetupUri: 推荐使用设置 URI
titleWelcome: 欢迎使用 Self-hosted LiveSync
moduleObsidianMenu:
replicate: 复制
More actions: 更多操作
@@ -490,12 +468,10 @@ obsidianLiveSyncSettingTab:
btnEnable: 启用
btnFix: 修复
btnGotItAndUpdated: 我明白了并且已更新
btnNext: 下一步
btnStart: 开始
btnTest: 测试
btnUse: 使用
buttonFetch: 获取
buttonNext: 下一步
defaultLanguage: 默认语言
descConnectSetupURI: 这是使用设置 URI 设置 Self-hosted LiveSync 的推荐方法
descCopySetupURI: 非常适合设置新设备!
@@ -560,7 +536,6 @@ obsidianLiveSyncSettingTab:
msgEnableCorsChttpd: 设置 chttpd.enable_cors
msgEnableEncryptionRecommendation: 建议启用端到端加密和路径混淆。你确定要在未加密的情况下继续吗?
msgFetchConfigFromRemote: 要从远端服务器获取配置吗?
msgGenerateSetupURI: 全部完成!要生成设置 URI 以便配置其他设备吗?
msgIfConfigNotPersistent: 如果服务器配置不是持久的(例如,在 docker 上运行),此处的值可能会更改。一旦能够连接,请更新服务器 local.ini 中的设置
msgInvalidPassphrase: 你的加密密码短语可能无效。你确定要继续吗?
msgNewVersionNote: 因为升级通知来到这里?请查看版本历史。如果您满意,请点击按钮。新的更新将再次提示此信息
@@ -602,7 +577,6 @@ obsidianLiveSyncSettingTab:
这种情况包括您已经重建了远程数据库的情况。
## ${OPTION_ONLY_SETTING}
仅存储设置。**注意:这可能导致数据损坏**;通常需要重建数据库
msgSelectAndApplyPreset: 请选择并应用任一预设项以完成向导。
msgSetCorsCredentials: 设置 cors.credentials
msgSetCorsOrigins: 设置 cors.origins
msgSetMaxDocSize: 设置 couchdb.max_document_size
@@ -659,7 +633,6 @@ obsidianLiveSyncSettingTab:
titleActiveRemoteServer: 活动远程服务器
titleAppearance: 外观
titleConflictResolution: 冲突处理
titleCongratulations: 恭喜!
titleCouchDB: CouchDB 服务器
titleDeletionPropagation: 删除传播
titleEncryptionNotEnabled: 尚未启用加密
+1 -55
View File
@@ -4,14 +4,7 @@ import {
LOG_LEVEL_VERBOSE,
Logger,
} from "@vrtmrz/livesync-commonlib/compat/common/logger";
import {
EVENT_REQUEST_OPEN_P2P,
EVENT_REQUEST_OPEN_SETTING_WIZARD,
EVENT_REQUEST_OPEN_SETTINGS,
EVENT_REQUEST_RUN_DOCTOR,
EVENT_REQUEST_RUN_FIX_INCOMPLETE,
eventHub,
} from "@/common/events.ts";
import { EVENT_REQUEST_RUN_DOCTOR, EVENT_REQUEST_RUN_FIX_INCOMPLETE, eventHub } from "@/common/events.ts";
import { AbstractModule } from "@/modules/AbstractModule.ts";
import { $msg } from "@/common/translation";
import { performDoctorConsultation, RebuildOptions } from "@vrtmrz/livesync-commonlib/compat/common/configForDoc";
@@ -95,53 +88,6 @@ export class ModuleMigration extends AbstractModule<LiveSyncCore> {
initialMessage() {
const manager = this.core.getModule(SetupManager);
showOnboardingInvitation(this.core, manager);
/*
const message = $msg("moduleMigration.msgInitialSetup", {
URI_DOC: $msg("moduleMigration.docUri"),
});
const USE_SETUP = $msg("moduleMigration.optionHaveSetupUri");
const NEXT = $msg("moduleMigration.optionNoSetupUri");
const ret = await this.core.confirm.askSelectStringDialogue(message, [USE_SETUP, NEXT], {
title: $msg("moduleMigration.titleWelcome"),
defaultAction: USE_SETUP,
});
if (ret === USE_SETUP) {
eventHub.emitEvent(EVENT_REQUEST_OPEN_SETUP_URI);
return false;
} else if (ret == NEXT) {
return true;
}
return false;
*/
}
async askAgainForSetupURI() {
const message = $msg("moduleMigration.msgRecommendSetupUri", { URI_DOC: $msg("moduleMigration.docUri") });
const USE_MINIMAL = $msg("moduleMigration.optionSetupWizard");
const USE_P2P = $msg("moduleMigration.optionSetupViaP2P");
const USE_SETUP = $msg("moduleMigration.optionManualSetup");
const NEXT = $msg("moduleMigration.optionRemindNextLaunch");
const ret = await this.core.confirm.askSelectStringDialogue(message, [USE_MINIMAL, USE_SETUP, USE_P2P, NEXT], {
title: $msg("moduleMigration.titleRecommendSetupUri"),
defaultAction: USE_MINIMAL,
});
if (ret === USE_MINIMAL) {
eventHub.emitEvent(EVENT_REQUEST_OPEN_SETTING_WIZARD);
return false;
}
if (ret === USE_P2P) {
eventHub.emitEvent(EVENT_REQUEST_OPEN_P2P);
return false;
}
if (ret === USE_SETUP) {
eventHub.emitEvent(EVENT_REQUEST_OPEN_SETTINGS);
return false;
} else if (ret == NEXT) {
return false;
}
return false;
}
async hasIncompleteDocs(force: boolean = false): Promise<boolean> {
@@ -1,7 +1,7 @@
import { ObsidianLiveSyncSettingTab } from "./SettingDialogue/ObsidianLiveSyncSettingTab.ts";
import { AbstractObsidianModule } from "@/modules/AbstractObsidianModule.ts";
// import { PouchDB } from "../../lib/src/pouchdb/pouchdb-browser";
import { EVENT_REQUEST_OPEN_SETTING_WIZARD, EVENT_REQUEST_OPEN_SETTINGS, eventHub } from "@/common/events.ts";
import { EVENT_REQUEST_OPEN_SETTINGS, eventHub } from "@/common/events.ts";
import type { LiveSyncCore } from "@/main.ts";
import { openObsidianSettings } from "@/common/obsidianSettings.ts";
@@ -12,10 +12,6 @@ export class ModuleObsidianSettingDialogue extends AbstractObsidianModule {
this.settingTab = new ObsidianLiveSyncSettingTab(this.app, this.plugin);
this.plugin.addSettingTab(this.settingTab);
eventHub.onEvent(EVENT_REQUEST_OPEN_SETTINGS, () => this.openSetting());
eventHub.onEvent(EVENT_REQUEST_OPEN_SETTING_WIZARD, () => {
this.openSetting();
void this.settingTab.enableMinimalSetup();
});
return Promise.resolve(true);
}
@@ -275,8 +275,6 @@ export class ObsidianLiveSyncSettingTab extends PluginSettingTab {
controlledElementFunc = [] as UpdateFunction[];
onSavedHandlers = [] as OnSavedHandler<AllSettingItemKey>[];
inWizard: boolean = false;
constructor(app: App, plugin: ObsidianLiveSyncPlugin) {
super(app, plugin);
this.plugin = plugin;
@@ -436,20 +434,6 @@ export class ObsidianLiveSyncSettingTab extends PluginSettingTab {
}
this.selectedScreen = screen;
}
async enableMinimalSetup() {
this.editingSettings.liveSync = false;
this.editingSettings.periodicReplication = false;
this.editingSettings.syncOnSave = false;
this.editingSettings.syncOnEditorSave = false;
this.editingSettings.syncOnStart = false;
this.editingSettings.syncOnFileOpen = false;
this.editingSettings.syncAfterMerge = false;
this.core.replicator.closeReplication();
await this.saveAllDirtySettings();
this.containerEl.addClass("isWizard");
this.inWizard = true;
this.changeDisplay("20");
}
menuEl?: HTMLElement;
addScreenElement(key: string, element: HTMLElement) {
@@ -667,7 +651,6 @@ export class ObsidianLiveSyncSettingTab extends PluginSettingTab {
containerEl.empty();
containerEl.addClass("sls-setting");
containerEl.removeClass("isWizard");
setStyle(containerEl, "menu-setting-poweruser", () => this.isConfiguredAs("usePowerUserMode", true));
setStyle(containerEl, "menu-setting-advanced", () => this.isConfiguredAs("useAdvancedMode", true));
@@ -688,7 +671,6 @@ export class ObsidianLiveSyncSettingTab extends PluginSettingTab {
"div",
{ cls: "sls-setting-menu-buttons" },
(el) => {
el.addClass("wizardHidden");
el.createEl("label", { text: $msg("obsidianLiveSyncSettingTab.msgChangesNeedToBeApplied") });
void this.addEl(
el,
@@ -705,39 +687,28 @@ export class ObsidianLiveSyncSettingTab extends PluginSettingTab {
);
// let paneNo = 0;
const addPane = (
parentEl: HTMLElement,
title: string,
icon: string,
order: number,
wizardHidden: boolean,
level?: ConfigLevel
) => {
const addPane = (parentEl: HTMLElement, title: string, icon: string, order: number, level?: ConfigLevel) => {
const el = this.createEl(parentEl, "div", { text: "" });
setLevelClass(el, level);
new Setting(el).setName(title).setHeading().setClass("sls-setting-pane-title");
if (this.menuEl) {
this.menuEl.createEl(
"label",
{ cls: `sls-setting-label c-${order} ${wizardHidden ? "wizardHidden" : ""}` },
(el) => {
setLevelClass(el, level);
const inputEl = el.createEl("input", {
type: "radio",
name: "disp",
value: `${order}`,
cls: "sls-setting-tab",
} as DomElementInfo);
el.createDiv({
cls: "sls-setting-menu-btn",
text: icon,
title: title,
});
inputEl.addEventListener("change", (evt) => this.selectPane(evt));
inputEl.addEventListener("click", (evt) => this.selectPane(evt));
}
);
this.menuEl.createEl("label", { cls: `sls-setting-label c-${order}` }, (el) => {
setLevelClass(el, level);
const inputEl = el.createEl("input", {
type: "radio",
name: "disp",
value: `${order}`,
cls: "sls-setting-tab",
} as DomElementInfo);
el.createDiv({
cls: "sls-setting-menu-btn",
text: icon,
title: title,
});
inputEl.addEventListener("change", (evt) => this.selectPane(evt));
inputEl.addEventListener("click", (evt) => this.selectPane(evt));
});
}
this.addScreenElement(`${order}`, el);
const p = Promise.resolve(el);
@@ -792,33 +763,29 @@ export class ObsidianLiveSyncSettingTab extends PluginSettingTab {
// Add panes
// TODO: Refactor to new API style.
void addPane(containerEl, $msg("obsidianLiveSyncSettingTab.panelChangeLog"), "💬", 100, false).then(
void addPane(containerEl, $msg("obsidianLiveSyncSettingTab.panelChangeLog"), "💬", 100).then(
bindPane(paneChangeLog)
);
void addPane(containerEl, $msg("obsidianLiveSyncSettingTab.panelSetup"), "🧙‍♂️", 110, false).then(
bindPane(paneSetup)
);
void addPane(containerEl, $msg("obsidianLiveSyncSettingTab.panelGeneralSettings"), "⚙️", 20, false).then(
void addPane(containerEl, $msg("obsidianLiveSyncSettingTab.panelSetup"), "🧙‍♂️", 110).then(bindPane(paneSetup));
void addPane(containerEl, $msg("obsidianLiveSyncSettingTab.panelGeneralSettings"), "⚙️", 20).then(
bindPane(paneGeneral)
);
void addPane(containerEl, $msg("obsidianLiveSyncSettingTab.panelRemoteConfiguration"), "🛰️", 0, false).then(
void addPane(containerEl, $msg("obsidianLiveSyncSettingTab.panelRemoteConfiguration"), "🛰️", 0).then(
bindPane(paneRemoteConfig)
);
void addPane(containerEl, $msg("obsidianLiveSyncSettingTab.titleSyncSettings"), "🔄", 30, false).then(
void addPane(containerEl, $msg("obsidianLiveSyncSettingTab.titleSyncSettings"), "🔄", 30).then(
bindPane(paneSyncSettings)
);
void addPane(containerEl, "Selector", "🚦", 33, false, LEVEL_ADVANCED).then(bindPane(paneSelector));
void addPane(containerEl, "Customization sync", "🔌", 60, false, LEVEL_ADVANCED).then(
bindPane(paneCustomisationSync)
);
void addPane(containerEl, "Selector", "🚦", 33, LEVEL_ADVANCED).then(bindPane(paneSelector));
void addPane(containerEl, "Customization sync", "🔌", 60, LEVEL_ADVANCED).then(bindPane(paneCustomisationSync));
void addPane(containerEl, "Hatch", "🧰", 50, true).then(bindPane(paneHatch));
void addPane(containerEl, "Advanced", "🔧", 46, false, LEVEL_ADVANCED).then(bindPane(paneAdvanced));
void addPane(containerEl, "Power users", "💪", 47, true, LEVEL_POWER_USER).then(bindPane(panePowerUsers));
void addPane(containerEl, "Hatch", "🧰", 50).then(bindPane(paneHatch));
void addPane(containerEl, "Advanced", "🔧", 46, LEVEL_ADVANCED).then(bindPane(paneAdvanced));
void addPane(containerEl, "Power users", "💪", 47, LEVEL_POWER_USER).then(bindPane(panePowerUsers));
void addPane(containerEl, "Patches", "🩹", 51, false, LEVEL_EDGE_CASE).then(bindPane(panePatches));
void addPane(containerEl, "Patches", "🩹", 51, LEVEL_EDGE_CASE).then(bindPane(panePatches));
void addPane(containerEl, "Maintenance", "🎛️", 70, true).then(bindPane(paneMaintenance));
void addPane(containerEl, "Maintenance", "🎛️", 70).then(bindPane(paneMaintenance));
void yieldNextAnimationFrame().then(() => {
if (this.selectedScreen == "") {
@@ -9,8 +9,6 @@ export function paneAdvanced(this: ObsidianLiveSyncSettingTab, paneEl: HTMLEleme
// new Setting(paneEl).autoWireNumeric("hashCacheMaxAmount", { clampMin: 1 });
});
void addPanel(paneEl, "Local Database Tweak").then((paneEl) => {
paneEl.addClass("wizardHidden");
const items = ChunkAlgorithmNames;
new Setting(paneEl).autoWireDropDown("chunkSplitterVersion", {
options: items,
@@ -19,35 +17,27 @@ export function paneAdvanced(this: ObsidianLiveSyncSettingTab, paneEl: HTMLEleme
});
void addPanel(paneEl, "Transfer Tweak").then((paneEl) => {
new Setting(paneEl)
.setClass("wizardHidden")
.autoWireToggle("readChunksOnline", { onUpdate: this.onlyOnCouchDB });
new Setting(paneEl)
.setClass("wizardHidden")
.autoWireToggle("useOnlyLocalChunk", { onUpdate: this.onlyOnCouchDB });
new Setting(paneEl).autoWireToggle("readChunksOnline", { onUpdate: this.onlyOnCouchDB });
new Setting(paneEl).autoWireToggle("useOnlyLocalChunk", { onUpdate: this.onlyOnCouchDB });
new Setting(paneEl).setClass("wizardHidden").autoWireNumeric("concurrencyOfReadChunksOnline", {
new Setting(paneEl).autoWireNumeric("concurrencyOfReadChunksOnline", {
clampMin: 10,
onUpdate: this.onlyOnCouchDB,
});
new Setting(paneEl).setClass("wizardHidden").autoWireNumeric("minimumIntervalOfReadChunksOnline", {
new Setting(paneEl).autoWireNumeric("minimumIntervalOfReadChunksOnline", {
clampMin: 10,
onUpdate: this.onlyOnCouchDB,
});
new Setting(paneEl)
.setClass("wizardHidden")
.autoWireToggle("autoAcceptCompatibleTweak", { defaultToggleValue: true });
new Setting(paneEl).autoWireToggle("autoAcceptCompatibleTweak", { defaultToggleValue: true });
// new Setting(paneEl)
// .setClass("wizardHidden")
// .autoWireToggle("sendChunksBulk", { onUpdate: onlyOnCouchDB })
// new Setting(paneEl)
// .setClass("wizardHidden")
// .autoWireNumeric("sendChunksBulkMaxSize", {
// clampMax: 100, clampMin: 1, onUpdate: onlyOnCouchDB
// })
});
void addPanel(paneEl, "Remote Database Tweak").then((paneEl) => {
new Setting(paneEl).setClass("wizardHidden").autoWireToggle("enableCompression");
new Setting(paneEl).autoWireToggle("enableCompression");
});
}
@@ -6,11 +6,7 @@ import type { PageFunctions } from "./SettingPane.ts";
import { visibleOnly } from "./SettingPane.ts";
import { EVENT_ON_UNRESOLVED_ERROR, eventHub } from "@/common/events.ts";
import { NetworkWarningStyles } from "@vrtmrz/livesync-commonlib/compat/common/models/setting.const";
export function paneGeneral(
this: ObsidianLiveSyncSettingTab,
paneEl: HTMLElement,
{ addPanel, addPane }: PageFunctions
): void {
export function paneGeneral(this: ObsidianLiveSyncSettingTab, paneEl: HTMLElement, { addPanel }: PageFunctions): void {
void addPanel(paneEl, $msg("obsidianLiveSyncSettingTab.titleAppearance")).then((paneEl) => {
const languages = Object.fromEntries([
// ["", $msg("obsidianLiveSyncSettingTab.defaultLanguage")],
@@ -41,20 +37,10 @@ export function paneGeneral(
});
});
void addPanel(paneEl, $msg("obsidianLiveSyncSettingTab.titleLogging")).then((paneEl) => {
paneEl.addClass("wizardHidden");
new Setting(paneEl).autoWireToggle("lessInformationInLog");
new Setting(paneEl).autoWireToggle("showVerboseLog", {
onUpdate: visibleOnly(() => this.isConfiguredAs("lessInformationInLog", false)),
});
});
new Setting(paneEl).setClass("wizardOnly").addButton((button) =>
button
.setButtonText($msg("obsidianLiveSyncSettingTab.btnNext"))
.setCta()
.onClick(() => {
this.changeDisplay("0");
})
);
}
@@ -16,17 +16,16 @@ import { migrateDatabases } from "./settingUtils.ts";
export function panePatches(this: ObsidianLiveSyncSettingTab, paneEl: HTMLElement, { addPanel }: PageFunctions): void {
void addPanel(paneEl, "Compatibility (Metadata)").then((paneEl) => {
new Setting(paneEl).setClass("wizardHidden").autoWireToggle("deleteMetadataOfDeletedFiles");
new Setting(paneEl).autoWireToggle("deleteMetadataOfDeletedFiles");
new Setting(paneEl).setClass("wizardHidden").autoWireNumeric("automaticallyDeleteMetadataOfDeletedFiles", {
new Setting(paneEl).autoWireNumeric("automaticallyDeleteMetadataOfDeletedFiles", {
onUpdate: visibleOnly(() => this.isConfiguredAs("deleteMetadataOfDeletedFiles", true)),
});
});
void addPanel(paneEl, "Compatibility (Conflict Behaviour)").then((paneEl) => {
paneEl.addClass("wizardHidden");
new Setting(paneEl).setClass("wizardHidden").autoWireToggle("disableMarkdownAutoMerge");
new Setting(paneEl).setClass("wizardHidden").autoWireToggle("writeDocumentsIfConflicted");
new Setting(paneEl).autoWireToggle("disableMarkdownAutoMerge");
new Setting(paneEl).autoWireToggle("writeDocumentsIfConflicted");
});
void addPanel(paneEl, "Compatibility (Database structure)").then((paneEl) => {
@@ -113,7 +112,7 @@ export function panePatches(this: ObsidianLiveSyncSettingTab, paneEl: HTMLElemen
});
}
}
new Setting(paneEl).autoWireToggle("handleFilenameCaseSensitive", { holdValue: true }).setClass("wizardHidden");
new Setting(paneEl).autoWireToggle("handleFilenameCaseSensitive", { holdValue: true });
});
void addPanel(paneEl, "Compatibility (Internal API Usage)").then((paneEl) => {
@@ -158,7 +157,7 @@ export function panePatches(this: ObsidianLiveSyncSettingTab, paneEl: HTMLElemen
});
void addPanel(paneEl, "Edge case addressing (Behaviour)").then((paneEl) => {
new Setting(paneEl).autoWireToggle("doNotSuspendOnFetching");
new Setting(paneEl).setClass("wizardHidden").autoWireToggle("doNotDeleteFolder");
new Setting(paneEl).autoWireToggle("doNotDeleteFolder");
new Setting(paneEl).autoWireToggle("processSizeMismatchedFiles");
});
@@ -9,8 +9,6 @@ export function panePowerUsers(
{ addPanel }: PageFunctions
): void {
void addPanel(paneEl, "CouchDB Connection Tweak", undefined, this.onlyOnCouchDB).then((paneEl) => {
paneEl.addClass("wizardHidden");
this.createEl(
paneEl,
"div",
@@ -19,16 +17,14 @@ export function panePowerUsers(
},
undefined,
this.onlyOnCouchDB
).addClass("wizardHidden");
);
new Setting(paneEl)
.setClass("wizardHidden")
.autoWireNumeric("batch_size", { clampMin: 2, onUpdate: this.onlyOnCouchDB });
new Setting(paneEl).setClass("wizardHidden").autoWireNumeric("batches_limit", {
new Setting(paneEl).autoWireNumeric("batch_size", { clampMin: 2, onUpdate: this.onlyOnCouchDB });
new Setting(paneEl).autoWireNumeric("batches_limit", {
clampMin: 2,
onUpdate: this.onlyOnCouchDB,
});
new Setting(paneEl).setClass("wizardHidden").autoWireToggle("useTimeouts", { onUpdate: this.onlyOnCouchDB });
new Setting(paneEl).autoWireToggle("useTimeouts", { onUpdate: this.onlyOnCouchDB });
});
void addPanel(paneEl, "Configuration Encryption").then((paneEl) => {
const passphrase_options: Record<ConfigPassphraseStore, string> = {
@@ -42,18 +38,14 @@ export function panePowerUsers(
.autoWireDropDown("configPassphraseStore", {
options: passphrase_options,
holdValue: true,
})
.setClass("wizardHidden");
});
new Setting(paneEl)
.autoWireText("configPassphrase", { isPassword: true, holdValue: true })
.setClass("wizardHidden")
.addOnUpdate(() => ({
disabled: !this.isConfiguredAs("configPassphraseStore", "LOCALSTORAGE"),
}));
new Setting(paneEl).addApplyButton(["configPassphrase", "configPassphraseStore"]).setClass("wizardHidden");
new Setting(paneEl).autoWireText("configPassphrase", { isPassword: true, holdValue: true }).addOnUpdate(() => ({
disabled: !this.isConfiguredAs("configPassphraseStore", "LOCALSTORAGE"),
}));
new Setting(paneEl).addApplyButton(["configPassphrase", "configPassphraseStore"]);
});
void addPanel(paneEl, "Developer").then((paneEl) => {
new Setting(paneEl).autoWireToggle("enableDebugTools").setClass("wizardHidden");
new Setting(paneEl).autoWireToggle("enableDebugTools");
});
}
@@ -89,7 +89,7 @@ function suggestRemoteConfigurationName(parsed: RemoteConfigurationResult): stri
export function paneRemoteConfig(
this: ObsidianLiveSyncSettingTab,
paneEl: HTMLElement,
{ addPanel, addPane }: PageFunctions
{ addPanel }: PageFunctions
): void {
{
/* E2EE */
@@ -553,83 +553,6 @@ export function paneRemoteConfig(
// );
void addPanel(paneEl, $msg("obsidianLiveSyncSettingTab.titleNotification"), () => {}).then((paneEl) => {
paneEl.addClass("wizardHidden");
new Setting(paneEl).autoWireNumeric("notifyThresholdOfRemoteStorageSize", {}).setClass("wizardHidden");
new Setting(paneEl).autoWireNumeric("notifyThresholdOfRemoteStorageSize", {});
});
// new Setting(paneEl).setClass("wizardOnly").addButton((button) =>
// button
// .setButtonText($msg("obsidianLiveSyncSettingTab.buttonNext"))
// .setCta()
// .setDisabled(false)
// .onClick(async () => {
// if (!(await checkConfig(checkResultDiv))) {
// if (
// (await this.plugin.confirm.askYesNoDialog(
// $msg("obsidianLiveSyncSettingTab.msgConfigCheckFailed"),
// {
// defaultOption: "No",
// title: $msg("obsidianLiveSyncSettingTab.titleRemoteConfigCheckFailed"),
// }
// )) == "no"
// ) {
// return;
// }
// }
// const isEncryptionFullyEnabled =
// !this.editingSettings.encrypt || !this.editingSettings.usePathObfuscation;
// if (isEncryptionFullyEnabled) {
// if (
// (await this.plugin.confirm.askYesNoDialog(
// $msg("obsidianLiveSyncSettingTab.msgEnableEncryptionRecommendation"),
// {
// defaultOption: "No",
// title: $msg("obsidianLiveSyncSettingTab.titleEncryptionNotEnabled"),
// }
// )) == "no"
// ) {
// return;
// }
// }
// if (!this.editingSettings.encrypt) {
// this.editingSettings.passphrase = "";
// }
// if (!(await this.isPassphraseValid())) {
// if (
// (await this.plugin.confirm.askYesNoDialog(
// $msg("obsidianLiveSyncSettingTab.msgInvalidPassphrase"),
// {
// defaultOption: "No",
// title: $msg("obsidianLiveSyncSettingTab.titleEncryptionPassphraseInvalid"),
// }
// )) == "no"
// ) {
// return;
// }
// }
// if (isCloudantURI(this.editingSettings.couchDB_URI)) {
// this.editingSettings = { ...this.editingSettings, ...PREFERRED_SETTING_CLOUDANT };
// } else if (this.editingSettings.remoteType == REMOTE_MINIO) {
// this.editingSettings = { ...this.editingSettings, ...PREFERRED_JOURNAL_SYNC };
// } else {
// this.editingSettings = { ...this.editingSettings, ...PREFERRED_SETTING_SELF_HOSTED };
// }
// if (
// (await this.plugin.confirm.askYesNoDialog(
// $msg("obsidianLiveSyncSettingTab.msgFetchConfigFromRemote"),
// { defaultOption: "Yes", title: $msg("obsidianLiveSyncSettingTab.titleFetchConfig") }
// )) == "yes"
// ) {
// const trialSetting = { ...this.initialSettings, ...this.editingSettings };
// const newTweaks = await this.services.tweakValue.checkAndAskUseRemoteConfiguration(trialSetting);
// if (newTweaks.result !== false) {
// this.editingSettings = { ...this.editingSettings, ...newTweaks.result };
// this.requestUpdate();
// } else {
// // Messages should be already shown.
// }
// }
// this.changeDisplay("30");
// })
// );
}
@@ -8,14 +8,11 @@ import type { PageFunctions } from "./SettingPane.ts";
import { visibleOnly } from "./SettingPane.ts";
export function paneSelector(this: ObsidianLiveSyncSettingTab, paneEl: HTMLElement, { addPanel }: PageFunctions): void {
void addPanel(paneEl, "Normal Files").then((paneEl) => {
paneEl.addClass("wizardHidden");
const syncFilesSetting = new Setting(paneEl)
.setName("Synchronising files")
.setDesc(
"(RegExp) Empty to sync all files. Set filter as a regular expression to limit synchronising files."
)
.setClass("wizardHidden");
);
mount(MultipleRegExpControl, {
target: syncFilesSetting.controlEl,
props: {
@@ -31,8 +28,7 @@ export function paneSelector(this: ObsidianLiveSyncSettingTab, paneEl: HTMLEleme
const nonSyncFilesSetting = new Setting(paneEl)
.setName("Non-Synchronising files")
.setDesc("(RegExp) If this is set, any changes to local and remote files that match this will be skipped.")
.setClass("wizardHidden");
.setDesc("(RegExp) If this is set, any changes to local and remote files that match this will be skipped.");
mount(MultipleRegExpControl, {
target: nonSyncFilesSetting.controlEl,
@@ -46,17 +42,16 @@ export function paneSelector(this: ObsidianLiveSyncSettingTab, paneEl: HTMLEleme
},
},
});
new Setting(paneEl).setClass("wizardHidden").autoWireNumeric("syncMaxSizeInMB", { clampMin: 0 });
new Setting(paneEl).autoWireNumeric("syncMaxSizeInMB", { clampMin: 0 });
new Setting(paneEl).setClass("wizardHidden").autoWireToggle("useIgnoreFiles");
new Setting(paneEl).setClass("wizardHidden").autoWireTextArea("ignoreFiles", {
new Setting(paneEl).autoWireToggle("useIgnoreFiles");
new Setting(paneEl).autoWireTextArea("ignoreFiles", {
onUpdate: visibleOnly(() => this.isConfiguredAs("useIgnoreFiles", true)),
});
});
void addPanel(paneEl, "Hidden Files", undefined, undefined, LEVEL_ADVANCED).then((paneEl) => {
const targetPatternSetting = new Setting(paneEl)
.setName("Target patterns")
.setClass("wizardHidden")
.setDesc("Patterns to match files for syncing");
const patTarget = splitCustomRegExpList(this.editingSettings.syncInternalFilesTargetPatterns, ",");
mount(MultipleRegExpControl, {
@@ -77,7 +72,7 @@ export function paneSelector(this: ObsidianLiveSyncSettingTab, paneEl: HTMLEleme
defaultSkipPattern + ",\\/workspace$ ,\\/workspace.json$,\\/workspace-mobile.json$";
const pat = splitCustomRegExpList(this.editingSettings.syncInternalFilesIgnorePatterns, ",");
const patSetting = new Setting(paneEl).setName("Ignore patterns").setClass("wizardHidden").setDesc("");
const patSetting = new Setting(paneEl).setName("Ignore patterns").setDesc("");
mount(MultipleRegExpControl, {
target: patSetting.controlEl,
@@ -106,7 +101,6 @@ export function paneSelector(this: ObsidianLiveSyncSettingTab, paneEl: HTMLEleme
new Setting(paneEl)
.setName("Add default patterns")
.setClass("wizardHidden")
.addButton((button) => {
button.setButtonText("Default").onClick(async () => {
await addDefaultPatterns(defaultSkipPattern);
@@ -120,7 +114,6 @@ export function paneSelector(this: ObsidianLiveSyncSettingTab, paneEl: HTMLEleme
const overwritePatterns = new Setting(paneEl)
.setName("Overwrite patterns")
.setClass("wizardHidden")
.setDesc("Patterns to match files for overwriting instead of merging");
const patTarget2 = splitCustomRegExpList(this.editingSettings.syncInternalFileOverwritePatterns, ",");
mount(MultipleRegExpControl, {
@@ -1,21 +1,20 @@
import { type ObsidianLiveSyncSettings, LOG_LEVEL_NOTICE, REMOTE_COUCHDB, LEVEL_ADVANCED } from "@vrtmrz/livesync-commonlib/compat/common/types";
import {
type ObsidianLiveSyncSettings,
LOG_LEVEL_NOTICE,
REMOTE_COUCHDB,
LEVEL_ADVANCED,
} from "@vrtmrz/livesync-commonlib/compat/common/types";
import { Logger } from "@vrtmrz/livesync-commonlib/compat/common/logger";
import { $msg } from "@/common/translation";
import { LiveSyncSetting as Setting } from "./LiveSyncSetting.ts";
import { EVENT_REQUEST_COPY_SETUP_URI, eventHub } from "@/common/events.ts";
import type { ObsidianLiveSyncSettingTab } from "./ObsidianLiveSyncSettingTab.ts";
import type { PageFunctions } from "./SettingPane.ts";
import { visibleOnly } from "./SettingPane.ts";
export function paneSyncSettings(
this: ObsidianLiveSyncSettingTab,
paneEl: HTMLElement,
{ addPanel, addPane }: PageFunctions
{ addPanel }: PageFunctions
): void {
this.createEl(paneEl, "div", {
text: $msg("obsidianLiveSyncSettingTab.msgSelectAndApplyPreset"),
cls: "wizardOnly",
}).addClasses(["op-warn-info"]);
void addPanel(paneEl, $msg("obsidianLiveSyncSettingTab.titleSynchronizationPreset")).then((paneEl) => {
const options: Record<string, string> =
this.editingSettings.remoteType == REMOTE_COUCHDB
@@ -94,44 +93,11 @@ export function paneSyncSettings(
};
}
if (this.inWizard) {
this.closeSetting();
this.inWizard = false;
if (!this.editingSettings.isConfigured) {
this.editingSettings.isConfigured = true;
await this.saveAllDirtySettings();
await this.services.control.applySettings();
await this.rebuildDB("localOnly");
// this.resetEditingSettings();
if (
(await this.core.confirm.askYesNoDialog(
$msg("obsidianLiveSyncSettingTab.msgGenerateSetupURI"),
{
defaultOption: "Yes",
title: $msg("obsidianLiveSyncSettingTab.titleCongratulations"),
}
)) == "yes"
) {
eventHub.emitEvent(EVENT_REQUEST_COPY_SETUP_URI);
}
} else {
if (this.isNeedRebuildLocal() || this.isNeedRebuildRemote()) {
await this.confirmRebuild();
} else {
await this.saveAllDirtySettings();
await this.services.control.applySettings();
this.services.appLifecycle.askRestart();
}
}
} else {
await this.saveAllDirtySettings();
await this.services.control.applySettings();
}
await this.saveAllDirtySettings();
await this.services.control.applySettings();
});
});
void addPanel(paneEl, $msg("obsidianLiveSyncSettingTab.titleSynchronizationMethod")).then((paneEl) => {
paneEl.addClass("wizardHidden");
// const onlyOnLiveSync = visibleOnly(() => this.isConfiguredAs("syncMode", "LIVESYNC"));
const onlyOnNonLiveSync = visibleOnly(() => !this.isConfiguredAs("syncMode", "LIVESYNC"));
const onlyOnPeriodic = visibleOnly(() => this.isConfiguredAs("syncMode", "PERIODIC"));
@@ -148,12 +114,10 @@ export function paneSyncSettings(
PERIODIC: $msg("obsidianLiveSyncSettingTab.optionPeriodicAndEvents"),
};
new Setting(paneEl)
.autoWireDropDown("syncMode", {
//@ts-ignore
options: optionsSyncMode,
})
.setClass("wizardHidden");
new Setting(paneEl).autoWireDropDown("syncMode", {
//@ts-ignore
options: optionsSyncMode,
});
this.addOnSaved("syncMode", async (value) => {
this.editingSettings.liveSync = false;
this.editingSettings.periodicReplication = false;
@@ -167,36 +131,32 @@ export function paneSyncSettings(
await this.services.control.applySettings();
});
new Setting(paneEl)
.autoWireNumeric("periodicReplicationInterval", {
clampMax: 5000,
onUpdate: onlyOnPeriodic,
})
.setClass("wizardHidden");
new Setting(paneEl).autoWireNumeric("periodicReplicationInterval", {
clampMax: 5000,
onUpdate: onlyOnPeriodic,
});
new Setting(paneEl).autoWireNumeric("syncMinimumInterval", {
onUpdate: onlyOnNonLiveSync,
});
new Setting(paneEl).setClass("wizardHidden").autoWireToggle("syncOnSave", { onUpdate: onlyOnNonLiveSync });
new Setting(paneEl)
.setClass("wizardHidden")
.autoWireToggle("syncOnEditorSave", { onUpdate: onlyOnNonLiveSync });
new Setting(paneEl).setClass("wizardHidden").autoWireToggle("syncOnFileOpen", { onUpdate: onlyOnNonLiveSync });
new Setting(paneEl).setClass("wizardHidden").autoWireToggle("syncOnStart", { onUpdate: onlyOnNonLiveSync });
new Setting(paneEl).setClass("wizardHidden").autoWireToggle("syncAfterMerge", { onUpdate: onlyOnNonLiveSync });
new Setting(paneEl).autoWireToggle("syncOnSave", { onUpdate: onlyOnNonLiveSync });
new Setting(paneEl).autoWireToggle("syncOnEditorSave", { onUpdate: onlyOnNonLiveSync });
new Setting(paneEl).autoWireToggle("syncOnFileOpen", { onUpdate: onlyOnNonLiveSync });
new Setting(paneEl).autoWireToggle("syncOnStart", { onUpdate: onlyOnNonLiveSync });
new Setting(paneEl).autoWireToggle("syncAfterMerge", { onUpdate: onlyOnNonLiveSync });
// Desktop app only, and only for the sync modes that keep a background replication channel
// (LiveSync and Periodic). Ignored on mobile, where suspending preserves battery. The
// visibility predicate mirrors the runtime guard in ModuleObsidianEvents.
if (!this.services.API.isMobile()) {
new Setting(paneEl).setClass("wizardHidden").autoWireToggle("keepReplicationActiveInBackground", {
new Setting(paneEl).autoWireToggle("keepReplicationActiveInBackground", {
onUpdate: visibleOnly(
() => this.isConfiguredAs("syncMode", "LIVESYNC") || this.isConfiguredAs("syncMode", "PERIODIC")
),
});
}
new Setting(paneEl).setClass("wizardHidden").autoWireToggle("allowSleepDuringSynchronisation");
new Setting(paneEl).autoWireToggle("allowSleepDuringSynchronisation");
if (!this.services.API.isMobile()) {
new Setting(paneEl).setClass("wizardHidden").autoWireToggle("allowSleepDuringSynchronisationOnDesktop");
new Setting(paneEl).autoWireToggle("allowSleepDuringSynchronisationOnDesktop");
}
});
@@ -206,13 +166,12 @@ export function paneSyncSettings(
undefined,
visibleOnly(() => !this.isConfiguredAs("syncMode", "LIVESYNC"))
).then((paneEl) => {
paneEl.addClass("wizardHidden");
new Setting(paneEl).setClass("wizardHidden").autoWireToggle("batchSave");
new Setting(paneEl).setClass("wizardHidden").autoWireNumeric("batchSaveMinimumDelay", {
new Setting(paneEl).autoWireToggle("batchSave");
new Setting(paneEl).autoWireNumeric("batchSaveMinimumDelay", {
acceptZero: true,
onUpdate: visibleOnly(() => this.isConfiguredAs("batchSave", true)),
});
new Setting(paneEl).setClass("wizardHidden").autoWireNumeric("batchSaveMaximumDelay", {
new Setting(paneEl).autoWireNumeric("batchSaveMaximumDelay", {
acceptZero: true,
onUpdate: visibleOnly(() => this.isConfiguredAs("batchSave", true)),
});
@@ -225,8 +184,7 @@ export function paneSyncSettings(
undefined,
LEVEL_ADVANCED
).then((paneEl) => {
paneEl.addClass("wizardHidden");
new Setting(paneEl).setClass("wizardHidden").autoWireToggle("doNotDeleteFolder");
new Setting(paneEl).autoWireToggle("doNotDeleteFolder");
});
void addPanel(
paneEl,
@@ -235,13 +193,11 @@ export function paneSyncSettings(
undefined,
LEVEL_ADVANCED
).then((paneEl) => {
paneEl.addClass("wizardHidden");
new Setting(paneEl).autoWireToggle("resolveConflictsByNewerFile");
new Setting(paneEl).setClass("wizardHidden").autoWireToggle("resolveConflictsByNewerFile");
new Setting(paneEl).autoWireToggle("checkConflictOnlyOnOpen");
new Setting(paneEl).setClass("wizardHidden").autoWireToggle("checkConflictOnlyOnOpen");
new Setting(paneEl).setClass("wizardHidden").autoWireToggle("showMergeDialogOnlyOnActive");
new Setting(paneEl).autoWireToggle("showMergeDialogOnlyOnActive");
});
void addPanel(
@@ -251,7 +207,6 @@ export function paneSyncSettings(
undefined,
LEVEL_ADVANCED
).then((paneEl) => {
paneEl.addClass("wizardHidden");
new Setting(paneEl).autoWireText("settingSyncFile", { holdValue: true }).addApplyButton(["settingSyncFile"]);
new Setting(paneEl).autoWireToggle("writeCredentialsForSettingSync");
@@ -266,21 +221,18 @@ export function paneSyncSettings(
undefined,
LEVEL_ADVANCED
).then((paneEl) => {
paneEl.addClass("wizardHidden");
const LABEL_ENABLED = $msg("obsidianLiveSyncSettingTab.labelEnabled");
const LABEL_DISABLED = $msg("obsidianLiveSyncSettingTab.labelDisabled");
const hiddenFileSyncSetting = new Setting(paneEl)
.setName($msg("obsidianLiveSyncSettingTab.nameHiddenFileSynchronization"))
.setClass("wizardHidden");
const hiddenFileSyncSetting = new Setting(paneEl).setName(
$msg("obsidianLiveSyncSettingTab.nameHiddenFileSynchronization")
);
const hiddenFileSyncSettingEl = hiddenFileSyncSetting.settingEl;
const hiddenFileSyncSettingDiv = hiddenFileSyncSettingEl.createDiv("");
hiddenFileSyncSettingDiv.innerText = this.editingSettings.syncInternalFiles ? LABEL_ENABLED : LABEL_DISABLED;
if (this.editingSettings.syncInternalFiles) {
new Setting(paneEl)
.setName($msg("obsidianLiveSyncSettingTab.nameDisableHiddenFileSync"))
.setClass("wizardHidden")
.addButton((button) => {
button.setButtonText($msg("obsidianLiveSyncSettingTab.btnDisable")).onClick(async () => {
this.editingSettings.syncInternalFiles = false;
@@ -291,7 +243,6 @@ export function paneSyncSettings(
} else {
new Setting(paneEl)
.setName($msg("obsidianLiveSyncSettingTab.nameEnableHiddenFileSync"))
.setClass("wizardHidden")
.addButton((button) => {
button.setButtonText("Merge").onClick(async () => {
this.closeSetting();
@@ -315,12 +266,12 @@ export function paneSyncSettings(
});
}
new Setting(paneEl).setClass("wizardHidden").autoWireToggle("suppressNotifyHiddenFilesChange", {});
new Setting(paneEl).setClass("wizardHidden").autoWireToggle("syncInternalFilesBeforeReplication", {
new Setting(paneEl).autoWireToggle("suppressNotifyHiddenFilesChange", {});
new Setting(paneEl).autoWireToggle("syncInternalFilesBeforeReplication", {
onUpdate: visibleOnly(() => this.isConfiguredAs("watchInternalFileChanges", true)),
});
new Setting(paneEl).setClass("wizardHidden").autoWireNumeric("syncInternalFilesInterval", {
new Setting(paneEl).autoWireNumeric("syncInternalFilesInterval", {
clampMin: 10,
acceptZero: true,
});
@@ -1,5 +1,10 @@
import { $msg } from "@/common/translation";
import { LEVEL_ADVANCED, LEVEL_EDGE_CASE, LEVEL_POWER_USER, type ConfigLevel } from "@vrtmrz/livesync-commonlib/compat/common/types";
import {
LEVEL_ADVANCED,
LEVEL_EDGE_CASE,
LEVEL_POWER_USER,
type ConfigLevel,
} from "@vrtmrz/livesync-commonlib/compat/common/types";
import type { AllSettingItemKey, AllSettings } from "./settingConstants";
export const combineOnUpdate = (func1: OnUpdateFunc, func2: OnUpdateFunc): OnUpdateFunc => {
@@ -107,7 +112,6 @@ export type PageFunctions = {
title: string,
icon: string,
order: number,
wizardHidden: boolean,
level?: ConfigLevel
) => Promise<HTMLDivElement>;
addPanel: (
-8
View File
@@ -299,14 +299,6 @@ body {
border-radius: 4px;
}
.isWizard .wizardHidden {
display: none;
}
.sls-setting:not(.isWizard) .wizardOnly {
display: none;
}
.sls-item-dirty::before {
content: "✏";
}