(Active): (Active) (BETA) Always overwrite with a newer file: (BETA) Always overwrite with a newer file (Beta) Use ignore files: (Beta) Use ignore files (Days passed, 0 to disable automatic-deletion): (Days passed, 0 to disable automatic-deletion) (ex. Read chunks online) If this option is enabled, LiveSync reads chunks online directly instead of replicating them locally. Increasing Custom chunk size is recommended.: (ex. Read chunks online) If this option is enabled, LiveSync reads chunks online directly instead of replicating them locally. Increasing Custom chunk size is recommended. (MB) If this is set, changes to local and remote files that are larger than this will be skipped. If the file becomes smaller again, a newer one will be used.: (MB) If this is set, changes to local and remote files that are larger than this will be skipped. If the file becomes smaller again, a newer one will be used. (Mega chars): (Mega chars) (Not recommended) If set, credentials will be stored in the file.: (Not recommended) If set, credentials will be stored in the file. (Obsolete) Use an old adapter for compatibility: (Obsolete) Use an old adapter for compatibility (RegExp) Empty to sync all files. Set filter as a regular expression to limit synchronising files.: (RegExp) Empty to sync all files. Set filter as a regular expression to limit synchronising files. (RegExp) If this is set, any changes to local and remote files that match this will be skipped.: (RegExp) If this is set, any changes to local and remote files that match this will be skipped. Access Key: Access Key Activate: Activate Active Remote Configuration: Active Remote Configuration Add default patterns: Add default patterns Add new connection: Add new connection Always prompt merge conflicts: Always prompt merge conflicts Analyse: Analyse Analyse database usage: Analyse database usage Analyse database usage and generate a TSV report for diagnosis yourself. You can paste the generated report with any spreadsheet you like.: Analyse database usage and generate a TSV report for diagnosis yourself. You can paste the generated report with any spreadsheet you like. Apply Latest Change if Conflicting: Apply Latest Change if Conflicting Apply preset configuration: Apply preset configuration Ask a passphrase at every launch: Ask a passphrase at every launch Automatically Sync all files when opening Obsidian.: Automatically Sync all files when opening Obsidian. Back: Back Back to non-configured: Back to non-configured Batch database update: Batch database update Batch limit: Batch limit Batch size: Batch size Batch size of on-demand fetching: Batch size of on-demand fetching Before v0.17.16, we used an old adapter for the local database. Now the new adapter is preferred. However, it needs local database rebuilding. Please disable this toggle when you have enough time. If leave it enabled, also while fetching from the remote database, you will be asked to disable this.: Before v0.17.16, we used an old adapter for the local database. Now the new adapter is preferred. However, it needs local database rebuilding. Please disable this toggle when you have enough time. If leave it enabled, also while fetching from the remote database, you will be asked to disable this. Bucket Name: Bucket Name Cancel: Cancel Changing this setting requires migrating existing data (a bit time may be taken) and restarting Obsidian. Please make sure to back up your data before proceeding.: Changing this setting requires migrating existing data (a bit time may be taken) and restarting Obsidian. Please make sure to back up your data before proceeding. Check: Check Check and convert non-path-obfuscated files: Check and convert non-path-obfuscated files Check for documents that have not been converted to path-obfuscated IDs and convert them if necessary.: Check for documents that have not been converted to path-obfuscated IDs and convert them if necessary. cmdConfigSync: showCustomizationSync: Show Customization sync Comma separated `.gitignore, .dockerignore`: Comma separated `.gitignore, .dockerignore` Compare the content of files between on local database and storage. If not matched, you will be asked which one you want to keep.: Compare the content of files between on local database and storage. If not matched, you will be asked which one you want to keep. Compatibility (Conflict Behaviour): Compatibility (Conflict Behaviour) Compatibility (Database structure): Compatibility (Database structure) Compatibility (Internal API Usage): Compatibility (Internal API Usage) Compatibility (Metadata): Compatibility (Metadata) Compatibility (Remote Database): Compatibility (Remote Database) Compatibility (Trouble addressed): Compatibility (Trouble addressed) Compute revisions for chunks: Compute revisions for chunks Configuration Encryption: Configuration Encryption Configure: Configure Configure And Change Remote: Configure And Change Remote Configure E2EE: Configure E2EE Configure Remote: Configure Remote Copy: Copy Copy Report to clipboard: Copy Report to clipboard CouchDB Connection Tweak: CouchDB Connection Tweak Cross-platform: Cross-platform "Current adapter: {adapter}": "Current adapter: {adapter}" Customization Sync: Customization Sync Customization Sync (Beta3): Customization Sync (Beta3) Data Compression: Data Compression Database -> Storage: Database -> Storage Database Adapter: Database Adapter Database Name: Database Name Database suffix: Database suffix Default: Default Delay conflict resolution of inactive files: Delay conflict resolution of inactive files Delay merge conflict prompt for inactive files.: Delay merge conflict prompt for inactive files. Delete: Delete Delete all customization sync data: Delete all customization sync data Delete all data on the remote server.: Delete all data on the remote server. Delete local database to reset or uninstall Self-hosted LiveSync: Delete local database to reset or uninstall Self-hosted LiveSync Delete old metadata of deleted files on start-up: Delete old metadata of deleted files on start-up Delete Remote Configuration: Delete Remote Configuration Delete remote configuration '{name}'?: Delete remote configuration '{name}'? desktop: desktop Developer: Developer Device name: Device name dialog: yourLanguageAvailable: _value: >- Self-hosted LiveSync had translations for your language, so the %{Display language} setting was enabled. Note: Not all messages are translated. We are waiting for your contributions! Note 2: If you create an Issue, **please revert to %{lang-def}** and then take screenshots, messages and logs. This can be done in the setting dialogue. May you find it easy to use! btnRevertToDefault: Keep %{lang-def} Title: " Translation is available!" Disables all synchronization and restart.: Disables all synchronization and restart. Disables logging, only shows notifications. Please disable if you report an issue.: Disables logging, only shows notifications. Please disable if you report an issue. Display Language: Display Language Display name: Display name Do not check configuration mismatch before replication: Do not check configuration mismatch before replication Do not keep metadata of deleted files.: Do not keep metadata of deleted files. Do not split chunks in the background: Do not split chunks in the background Do not use internal API: Do not use internal API Doctor: Button: DismissThisVersion: No, and do not ask again until the next release Fix: Fix it FixButNoRebuild: Fix it but no rebuild No: No Skip: Leave it as is Yes: Yes Dialogue: Main: >- Hi! Config Doctor has been activated because of ${activateReason}! And, unfortunately some configurations were detected as potential problems. Please be assured. Let's solve them one by one. To let you know ahead of time, we will ask you about the following items. ${issues} Shall we get started? MainFix: |- ## ${name} | Current | Ideal | |:---:|:---:| | ${current} | ${ideal} | **Recommendation Level:** ${level} ### Why this has been detected? ${reason} ${note} Fix this to the ideal value? Title: Self-hosted LiveSync Config Doctor TitleAlmostDone: Almost done! TitleFix: Fix issue ${current}/${total} Level: Must: Must Necessary: Necessary Optional: Optional Recommended: Recommended Message: NoIssues: No issues detected! RebuildLocalRequired: Attention! A local database rebuild is required to apply this! RebuildRequired: Attention! A rebuild is required to apply this! SomeSkipped: We left some issues as is. Shall I ask you again on next startup? RULES: E2EE_V02500: REASON: The End-to-End Encryption has got now more robust and faster. Also because, the previous E2EE was found to be compromised in a re-conducted code review. It should be applied as soon as possible. Really apologises for your inconvenience. And, this setting is not forward compatible. All synchronised devices must be updated to v0.25.0 or higher. Rebuilds are not required and will be converted from the new transfer to the new format, However, it is recommended to rebuild whenever possible. Document History: Document History Duplicate: Duplicate Duplicate remote: Duplicate remote E2EE Configuration: E2EE Configuration Edge case addressing (Behaviour): Edge case addressing (Behaviour) Edge case addressing (Database): Edge case addressing (Database) Edge case addressing (Processing): Edge case addressing (Processing) Emergency restart: Emergency restart Enable advanced features: Enable advanced features Enable customization sync: Enable customization sync Enable Developers' Debug Tools.: Enable Developers' Debug Tools. Enable edge case treatment features: Enable edge case treatment features Enable poweruser features: Enable poweruser features Enable this if your Object Storage doesn't support CORS: Enable this if your Object Storage doesn't support CORS Enable this option to automatically apply the most recent change to documents even when it conflicts: Enable this option to automatically apply the most recent change to documents even when it conflicts Encrypt contents on the remote database. If you use the plugin's synchronization feature, enabling this is recommended.: Encrypt contents on the remote database. If you use the plugin's synchronization feature, enabling this is recommended. Encrypting sensitive configuration items: Encrypting sensitive configuration items Encryption phassphrase. If changed, you should overwrite the server's database with the new (encrypted) files.: Encryption phassphrase. If changed, you should overwrite the server's database with the new (encrypted) files. End-to-End Encryption: End-to-End Encryption Endpoint URL: Endpoint URL Enhance chunk size: Enhance chunk size Export: Export Fetch: Fetch Fetch chunks on demand: Fetch chunks on demand Fetch database with previous behaviour: Fetch database with previous behaviour Fetch remote settings: Fetch remote settings File to resolve conflict: File to resolve conflict File to view History: File to view History Filename: Filename Flag and restart: Flag and restart Forces the file to be synced when opened.: Forces the file to be synced when opened. Fresh Start Wipe: Fresh Start Wipe Garbage Collection V3 (Beta): Garbage Collection V3 (Beta) Handle files as Case-Sensitive: Handle files as Case-Sensitive Hidden Files: Hidden Files Hide completely: Hide completely Highlight diff: Highlight diff How to display network errors when the sync server is unreachable.: How to display network errors when the sync server is unreachable. If disabled(toggled), chunks will be split on the UI thread (Previous behaviour).: If disabled(toggled), chunks will be split on the UI thread (Previous behaviour). If enabled per-filed efficient customization sync will be used. We need a small migration when enabling this. And all devices should be updated to v0.23.18. Once we enabled this, we lost a compatibility with old versions.: If enabled per-filed efficient customization sync will be used. We need a small migration when enabling this. And all devices should be updated to v0.23.18. Once we enabled this, we lost a compatibility with old versions. If enabled, chunks will be split into no more than 100 items. However, dedupe is slightly weaker.: If enabled, chunks will be split into no more than 100 items. However, dedupe is slightly weaker. If enabled, newly created chunks are temporarily kept within the document, and graduated to become independent chunks once stabilised.: If enabled, newly created chunks are temporarily kept within the document, and graduated to become independent chunks once stabilised. If enabled, the ⛔ icon will be shown inside the status instead of the file warnings banner. No details will be shown.: If enabled, the ⛔ icon will be shown inside the status instead of the file warnings banner. No details will be shown. If enabled, the file under 1kb will be processed in the UI thread.: If enabled, the file under 1kb will be processed in the UI thread. If enabled, the notification of hidden files change will be suppressed.: If enabled, the notification of hidden files change will be suppressed. If this enabled, all chunks will be stored with the revision made from its content. (Previous behaviour): If this enabled, all chunks will be stored with the revision made from its content. (Previous behaviour) If this enabled, All files are handled as case-Sensitive (Previous behaviour).: If this enabled, All files are handled as case-Sensitive (Previous behaviour). If this enabled, chunks will be split into semantically meaningful segments. Not all platforms support this feature.: If this enabled, chunks will be split into semantically meaningful segments. Not all platforms support this feature. If this is set, changes to local files which are matched by the ignore files will be skipped. Remote changes are determined using local ignore files.: If this is set, changes to local files which are matched by the ignore files will be skipped. Remote changes are determined using local ignore files. If this option is enabled, PouchDB will hold the connection open for 60 seconds, and if no change arrives in that time, close and reopen the socket, instead of holding it open indefinitely. Useful when a proxy limits request duration but can increase resource usage.: If this option is enabled, PouchDB will hold the connection open for 60 seconds, and if no change arrives in that time, close and reopen the socket, instead of holding it open indefinitely. Useful when a proxy limits request duration but can increase resource usage. If you reached the payload size limit when using IBM Cloudant, please decrease batch size and batch limit to a lower value.: If you reached the payload size limit when using IBM Cloudant, please decrease batch size and batch limit to a lower value. Ignore files: Ignore files Ignore patterns: Ignore patterns Import connection: Import connection Incubate Chunks in Document: Incubate Chunks in Document Initialise all journal history, On the next sync, every item will be received and sent.: Initialise all journal history, On the next sync, every item will be received and sent. Initialise journal received history. On the next sync, every item except this device sent will be downloaded again.: Initialise journal received history. On the next sync, every item except this device sent will be downloaded again. Initialise journal sent history. On the next sync, every item except this device received will be sent again.: Initialise journal sent history. On the next sync, every item except this device received will be sent again. Interval (sec): Interval (sec) K: exp: Experimental long_p2p_sync: "%{title_p2p_sync}" P2P: "%{Peer}-to-%{Peer}" Peer: Peer ScanCustomization: Scan customization short_p2p_sync: P2P Sync title_p2p_sync: Peer-to-Peer Sync Keep empty folder: Keep empty folder lang_def: Default lang-de: Deutsche lang-def: "%{lang_def}" lang-es: Español lang-fr: Français lang-he: Hebrew lang-ja: 日本語 lang-ko: 한국어 lang-ru: Русский lang-zh: 简体中文 lang-zh-tw: 繁體中文 Later: Later "Limit: {datetime} ({timestamp})": "Limit: {datetime} ({timestamp})" LiveSync could not handle multiple vaults which have same name without different prefix, This should be automatically configured.: LiveSync could not handle multiple vaults which have same name without different prefix, This should be automatically configured. liveSyncReplicator: beforeLiveSync: Before LiveSync, start OneShot once... cantReplicateLowerValue: We can't replicate more lower value. checkingLastSyncPoint: Looking for the point last synchronized point. couldNotConnectTo: |- Could not connect to ${uri} : ${name} (${db}) couldNotConnectToRemoteDb: "Could not connect to remote database: ${d}" couldNotConnectToServer: The connection to the remote has been prevented, or failed. couldNotConnectToURI: Could not connect to ${uri}:${dbRet} couldNotMarkResolveRemoteDb: Could not mark resolve remote database. liveSyncBegin: LiveSync begin... lockRemoteDb: Lock remote database to prevent data corruption markDeviceResolved: Mark this device as 'resolved'. oneShotSyncBegin: OneShot Sync begin... (${syncMode}) remoteDbCorrupted: Remote database is newer or corrupted, make sure to latest version of self-hosted-livesync installed remoteDbCreatedOrConnected: Remote Database Created or Connected remoteDbDestroyed: Remote Database Destroyed remoteDbDestroyError: "Something happened on Remote Database Destroy:" remoteDbMarkedResolved: Remote database has been marked resolved. replicationClosed: Replication closed replicationInProgress: Replication is already in progress retryLowerBatchSize: Retry with lower batch size:${batch_size}/${batches_limit} unlockRemoteDb: Unlock remote database to prevent data corruption mismatchedTweakDetected: Some mismatches have been detected in the configuration between devices. Running a manual replication will attempt to resolve this issue. liveSyncSetting: errorNoSuchSettingItem: "No such setting item: ${key}" originalValue: "Original: ${value}" valueShouldBeInRange: The value should ${min} < value < ${max} liveSyncSettings: btnApply: Apply Local Database Tweak: Local Database Tweak Lock: Lock Lock Server: Lock Server Lock the remote server to prevent synchronization with other devices.: Lock the remote server to prevent synchronization with other devices. logPane: autoScroll: Auto scroll logWindowOpened: Log window opened pause: Pause title: Self-hosted LiveSync Log wrap: Wrap Maximum delay for batch database updating: Maximum delay for batch database updating Maximum file size: Maximum file size Maximum Incubating Chunk Size: Maximum Incubating Chunk Size Maximum Incubating Chunks: Maximum Incubating Chunks Maximum Incubation Period: Maximum Incubation Period MB (0 to disable).: MB (0 to disable). Memory cache: Memory cache Memory cache size (by total characters): Memory cache size (by total characters) Memory cache size (by total items): Memory cache size (by total items) Merge: Merge Minimum delay for batch database updating: Minimum delay for batch database updating Minimum interval for syncing: Minimum interval for syncing moduleCheckRemoteSize: logCheckingStorageSizes: Checking storage sizes logCurrentStorageSize: "Remote storage size: ${measuredSize}" logExceededWarning: "Remote storage size: ${measuredSize} exceeded ${notifySize}" logThresholdEnlarged: Threshold has been enlarged to ${size}MB msgConfirmRebuild: This may take a bit of a long time. Do you really want to rebuild everything now? msgDatabaseGrowing: | **Your database is getting larger!** But do not worry, we can address it now. The time before running out of space on the remote storage. | Measured size | Configured size | | --- | --- | | ${estimatedSize} | ${maxSize} | > [!MORE]- > If you have been using it for many years, there may be unreferenced chunks - that is, garbage - accumulating in the database. Therefore, we recommend rebuilding everything. It will probably become much smaller. > > If the volume of your vault is simply increasing, it is better to rebuild everything after organizing the files. Self-hosted LiveSync does not delete the actual data even if you delete it to speed up the process. It is roughly [documented](https://github.com/vrtmrz/obsidian-livesync/blob/main/docs/tech_info.md). > > If you don't mind the increase, you can increase the notification limit by 100MB. This is the case if you are running it on your own server. However, it is better to rebuild everything from time to time. > > [!WARNING] > If you perform rebuild everything, make sure all devices are synchronised. The plug-in will merge as much as possible, though. msgSetDBCapacity: > We can set a maximum database capacity warning, **to take action before running out of space on the remote storage**. Do you want to enable this? > [!MORE]- > - 0: Do not warn about storage size. > This is recommended if you have enough space on the remote storage especially you have self-hosted. And you can check the storage size and rebuild manually. > - 800: Warn if the remote storage size exceeds 800MB. > This is recommended if you are using fly.io with 1GB limit or IBM Cloudant. > - 2000: Warn if the remote storage size exceeds 2GB. If we have reached the limit, we will be asked to enlarge the limit step by step. noticeExceeded: Remote storage size is ${measuredSize}, above the configured ${notifySize} notification threshold. {HERE} noticeNotConfigured: Remote storage size notifications are not configured. {HERE} option2GB: 2GB (Standard) option800MB: 800MB (Cloudant, fly.io) optionAskMeLater: Ask me later optionDismiss: Dismiss optionIncreaseLimit: increase to ${newMax}MB optionNoWarn: No, never warn please optionReview: Review options optionRebuildAll: Rebuild Everything Now titleDatabaseSizeLimitExceeded: Remote storage size exceeded the limit titleDatabaseSizeNotify: Setting up database size notification moduleInputUIObsidian: defaultTitleConfirmation: Confirmation defaultTitleSelect: Select optionNo: No optionYes: Yes moduleLiveSyncMain: logAdditionalSafetyScan: Additional safety scan... logLoadingPlugin: Loading plugin... logPluginInitCancelled: Plugin initialisation was cancelled by a module logPluginVersion: Self-hosted LiveSync v${manifestVersion} ${packageVersion} logReadChangelog: LiveSync has updated, please read the changelog! logSafetyScanCompleted: Additional safety scan completed logSafetyScanFailed: Additional safety scan has failed on a module logUnloadingPlugin: Unloading plugin... logVersionUpdate: LiveSync has been updated, In case of breaking updates, all automatic synchronization has been temporarily disabled. Ensure that all devices are up to date before enabling. msgScramEnabled: > Self-hosted LiveSync has been configured to ignore some events. Is this correct? | Type | Status | Note | |:---:|:---:|---| | Storage Events | ${fileWatchingStatus} | Every modification will be ignored | | Database Events | ${parseReplicationStatus} | Every synchronised change will be postponed | Do you want to resume them and restart Obsidian? > [!DETAILS]- > These flags are set by the plug-in while rebuilding, or fetching. If the process ends abnormally, it may be kept unintended. > If you are not sure, you can try to rerun these processes. Make sure to back your vault up. optionKeepLiveSyncDisabled: Keep LiveSync disabled optionResumeAndRestart: Resume and restart Obsidian 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 fix0256: buttons: checkItLater: Check it later DismissForever: I have fixed it, and do not ask again fix: Fix message: > Due to a recent bug (in v0.25.6), some files may not have been saved correctly in the sync database. We have scanned our files and found some that need to be fixed. **Files ready to be fixed:** ${files} These files have size-matched original file on the storage, and are likely to be recoverable. We can use them to fix the database, please click the "Fix" button below to fix them. ${messageUnrecoverable} If you want to run it again, you can do so from Hatch. messageUnrecoverable: > **Files cannot be fixed on this device:** ${filesNotRecoverable} These files have inconsistent metadata, and cannot be fixed on this device (mostly we cannot determine which is correct). To restore them, please check your other devices (also by this feature) or restore them manually from a backup. title: Broken files has been detected insecureChunkExist: buttons: fetch: I already rebuilt the remote. Fetch from the remote later: I will do it later rebuild: Rebuild Everything laterMessage: We strongly recommend to treat this as soon as possible! message: > Some chunks are not securely stored and are not encrypted in databases. **Please rebuild the database to fix this issue**. If your Remote Database is not configured with SSL, or using less-secure credentials, **you are at risk of exposing sensitive data**. Note: Please upgrade your Self-hosted LiveSync v0.25.6 or higher on all your devices, and back your vault up surely. Note2: Rebuild Everything and Fetch consumes a bit of time and traffic, please do it in off-peak hours and ensure a stable network connection. title: Insecure chunks found! logBulkSendCorrupted: Send chunks in bulk has been enabled, however, this feature had been corrupted. Sorry for your inconvenience. Automatically disabled. logFetchRemoteTweakFailed: Failed to fetch remote tweak values logLocalDatabaseNotReady: Something went wrong! The local database is not ready logMigratedSameBehaviour: Migrated to db:${current} with the same behaviour as before logMigrationFailed: Migration failed or cancelled from ${old} to ${current} logRedflag2CreationFail: Failed to create redflag2 logRemoteTweakUnavailable: Could not get remote tweak values logSetupCancelled: The setup has been cancelled, Self-hosted LiveSync waiting for your setup! msgFetchRemoteAgain: >- As you may already know, the self-hosted LiveSync has changed its default behaviour and database structure. And thankfully, with your time and efforts, the remote database appears to have already been migrated. Congratulations! However, 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? ___Note: We cannot synchronise until the configuration has been changed and the database has been fetched again.___ ___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: 1. **Case sensitivity of filenames** 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. (On These, a warning will be displayed for files with the same name but different cases). 2. **Revision handling of the chunks** Chunks are immutable, which allows their revisions to be fixed. This change will enhance the performance of file saving. ___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.___ - If you wish to maintain the previous behaviour, you can skip this process by using `${KEEP}`. - If you do not have enough time, please choose `${DISMISS}`. You will be prompted again later. - 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. optionAdjustRemote: Adjust to remote optionDecideLater: Decide it later 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 Move remotely deleted files to the trash, instead of deleting.: Move remotely deleted files to the trash, instead of deleting. Network warning style: Network warning style New Remote: New Remote No limit configured: No limit configured Non-Synchronising files: Non-Synchronising files Normal Files: Normal Files Not all messages have been translated. And, please revert to "Default" when reporting errors.: Not all messages have been translated. And, please revert to "Default" when reporting errors. Notify all setting files: Notify all setting files Notify customized: Notify customized Notify when other device has newly customized.: Notify when other device has newly customized. Notify when the estimated remote storage size exceeds on start up: Notify when the estimated remote storage size exceeds on start up Number of batches to process at a time. Defaults to 40. Minimum is 2. This along with batch size controls how many docs are kept in memory at a time.: Number of batches to process at a time. Defaults to 40. Minimum is 2. This along with batch size controls how many docs are kept in memory at a time. Number of changes to sync at a time. Defaults to 50. Minimum is 2.: Number of changes to sync at a time. Defaults to 50. Minimum is 2. obsidianLiveSyncSettingTab: btnApply: Apply btnCheck: Check btnCopy: Copy btnDisable: Disable btnDiscard: Discard 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. descCopySetupURI: Perfect for setting up a new device! descEnableLiveSync: Only enable this after configuring either of the above two options or completing all configuration manually. descFetchConfigFromRemote: Fetch necessary settings from already configured remote server. descManualSetup: Not recommended, but useful if you don't have a Setup URI descTestDatabaseConnection: Open database connection. If the remote database is not found and you have permission to create a database, the database will be created. descValidateDatabaseConfig: Checks and fixes any potential issues with the database config. errAccessForbidden: ❗ Access forbidden. errCannotContinueTest: We could not continue the test. errCorsCredentials: ❗ cors.credentials is wrong errCorsNotAllowingCredentials: ❗ CORS is not allowing credentials errCorsOrigins: ❗ cors.origins is wrong errEnableCors: ❗ httpd.enable_cors is wrong errEnableCorsChttpd: ❗ chttpd.enable_cors is wrong errMaxDocumentSize: ❗ couchdb.max_document_size is low) errMaxRequestSize: ❗ chttpd.max_http_request_size is low) errMissingWwwAuth: ❗ httpd.WWW-Authenticate is missing errRequireValidUser: ❗ chttpd.require_valid_user is wrong. errRequireValidUserAuth: ❗ chttpd_auth.require_valid_user is wrong. labelDisabled: "⏹️ : Disabled" labelEnabled: "🔁 : Enabled" levelAdvanced: " (Advanced)" levelEdgeCase: " (Edge Case)" levelPowerUser: " (Power User)" linkOpenInBrowser: Open in browser linkPageTop: Page Top linkTipsAndTroubleshooting: Tips and Troubleshooting linkTroubleshooting: /docs/troubleshooting.md logCannotUseCloudant: This feature cannot be used with IBM Cloudant. logCheckingConfigDone: Checking configuration done logCheckingConfigFailed: Checking configuration failed logCheckingDbConfig: Checking database configuration logCheckPassphraseFailed: |- ERROR: Failed to check passphrase with the remote server: ${db}. logConfiguredDisabled: "Configured synchronization mode: DISABLED" logConfiguredLiveSync: "Configured synchronization mode: LiveSync" logConfiguredPeriodic: "Configured synchronization mode: Periodic" logCouchDbConfigFail: "CouchDB Configuration: ${title} failed" logCouchDbConfigSet: "CouchDB Configuration: ${title} -> Set ${key} to ${value}" logCouchDbConfigUpdated: "CouchDB Configuration: ${title} successfully updated" logDatabaseConnected: Database connected logEncryptionNoPassphrase: You cannot enable encryption without a passphrase logEncryptionNoSupport: Your device does not support encryption. logErrorOccurred: An error occurred!! logEstimatedSize: "Estimated size: ${size}" logPassphraseInvalid: Passphrase is not valid, please fix it. logPassphraseNotCompatible: "ERROR: Passphrase is not compatible with the remote server! Please check it again!" logRebuildNote: Syncing has been disabled, fetch and re-enabled if desired. logSelectAnyPreset: Select any preset. logServerConfigurationCheck: obsidianLiveSyncSettingTab.logServerConfigurationCheck msgAreYouSureProceed: Are you sure to proceed? msgChangesNeedToBeApplied: Changes need to be applied! msgConfigCheck: --Config check-- msgConfigCheckFailed: The configuration check has failed. Do you want to continue anyway? msgConnectionCheck: --Connection check-- msgConnectionProxyNote: If you're having trouble with the Connection-check (even after checking config), please check your reverse proxy configuration. msgCurrentOrigin: "Current origin: ${origin}" msgDiscardConfirmation: Do you really want to discard existing settings and databases? msgDone: --Done-- msgEnableCors: Set httpd.enable_cors msgEnableCorsChttpd: Set chttpd.enable_cors 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. msgInvalidPassphrase: Your encryption passphrase might be invalid. Are you sure you want to continue? 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. msgNonHTTPSInfo: Configured as non-HTTPS URI. Be warned that this may not work on mobile devices. msgNonHTTPSWarning: Cannot connect to non-HTTPS URI. Please update your config and try again. msgNotice: ---Notice--- msgObjectStorageWarning: >- WARNING: This feature is a Work In Progress, so please keep in mind the following: - Append only architecture. A rebuild is required to shrink the storage. - A bit fragile. - When first syncing, all history will be transferred from the remote. Be mindful of data caps and slow speeds. - Only differences are synced live. If you run into any issues, or have ideas about this feature, please create a issue on GitHub. I appreciate you for your great dedication. msgOriginCheck: "Origin check: ${org}" msgRebuildRequired: >- Rebuilding Databases are required to apply the changes.. Please select the method to apply the changes.
Legends | Symbol | Meaning | |: ------ :| ------- | | ⇔ | Up to Date | | ⇄ | Synchronise to balance | | ⇐,⇒ | Transfer to overwrite | | ⇠,⇢ | Transfer to overwrite from other side |
## ${OPTION_REBUILD_BOTH} At a glance: 📄 ⇒¹ 💻 ⇒² 🛰️ ⇢ⁿ 💻 ⇄ⁿ⁺¹ 📄 Reconstruct both the local and remote databases using existing files from this device. This causes a lockout other devices, and they need to perform fetching. ## ${OPTION_FETCH} At a glance: 📄 ⇄² 💻 ⇐¹ 🛰️ ⇔ 💻 ⇔ 📄 Initialise the local database and reconstruct it using data fetched from the remote database. This case includes the case which you have rebuilt the remote database. ## ${OPTION_ONLY_SETTING} 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 msgSetMaxRequestSize: Set chttpd.max_http_request_size msgSetRequireValidUser: Set chttpd.require_valid_user = true msgSetRequireValidUserAuth: Set chttpd_auth.require_valid_user = true msgSettingModified: The setting "${setting}" was modified from another device. Click {HERE} to reload settings. Click elsewhere to ignore changes. msgSettingsUnchangeableDuringSync: These settings are unable to be changed during synchronization. Please disable all syncing in the "Sync Settings" to unlock. msgSetWwwAuth: Set httpd.WWW-Authenticate nameApplySettings: Apply Settings nameConnectSetupURI: Connect with Setup URI nameCopySetupURI: Copy the current settings to a Setup URI nameDisableHiddenFileSync: Disable Hidden files sync nameDiscardSettings: Discard existing settings and databases nameEnableHiddenFileSync: Enable Hidden files sync nameEnableLiveSync: Enable LiveSync nameHiddenFileSynchronization: Hidden file synchronization nameManualSetup: Manual Setup nameTestConnection: Test Connection nameTestDatabaseConnection: Test Database Connection nameValidateDatabaseConfig: Validate Database Configuration okAdminPrivileges: ✔ You have administrator privileges. okCorsCredentials: ✔ cors.credentials is ok. okCorsCredentialsForOrigin: CORS credentials OK okCorsOriginMatched: ✔ CORS origin OK okCorsOrigins: ✔ cors.origins is ok. okEnableCors: ✔ httpd.enable_cors is ok. okEnableCorsChttpd: ✔ chttpd.enable_cors is ok. okMaxDocumentSize: ✔ couchdb.max_document_size is ok. okMaxRequestSize: ✔ chttpd.max_http_request_size is ok. okRequireValidUser: ✔ chttpd.require_valid_user is ok. okRequireValidUserAuth: ✔ chttpd_auth.require_valid_user is ok. okWwwAuth: ✔ httpd.WWW-Authenticate is ok. optionApply: Apply optionCancel: Cancel optionCouchDB: CouchDB optionDisableAllAutomatic: Disable all automatic optionFetchFromRemote: Fetch from Remote optionHere: HERE optionLiveSync: LiveSync optionMinioS3R2: Minio,S3,R2 optionOkReadEverything: OK, I have read everything. optionOnEvents: On events optionPeriodicAndEvents: Periodic and on events optionPeriodicWithBatch: Periodic w/ batch optionRebuildBoth: Rebuild Both from This Device optionSaveOnlySettings: (Danger) Save Only Settings panelChangeLog: Change Log panelGeneralSettings: General Settings panelPrivacyEncryption: Privacy & Encryption panelRemoteConfiguration: Remote Configuration panelSetup: Setup serverVersion: "Server info: ${info}" titleActiveRemoteServer: Active Remote Server titleAppearance: Appearance titleConflictResolution: Conflict resolution titleCongratulations: Congratulations! titleCouchDB: CouchDB titleDeletionPropagation: Deletion Propagation titleEncryptionNotEnabled: Encryption is not enabled titleEncryptionPassphraseInvalid: Encryption Passphrase Invalid titleExtraFeatures: Enable extra and advanced features titleFetchConfig: Fetch Config titleFetchConfigFromRemote: Fetch config from remote server titleFetchSettings: Fetch Settings titleHiddenFiles: Hidden Files titleLogging: Logging titleMinioS3R2: Minio,S3,R2 titleNotification: Notification titleOnlineTips: Online Tips titleQuickSetup: Quick Setup titleRebuildRequired: Rebuild Required titleRemoteConfigCheckFailed: Remote Configuration Check Failed titleRemoteServer: Remote Server titleReset: Reset titleSetupOtherDevices: To setup other devices titleSynchronizationMethod: Synchronization Method titleSynchronizationPreset: Synchronization Preset titleSyncSettings: Sync Settings titleSyncSettingsViaMarkdown: Sync Settings via Markdown titleUpdateThinning: Update Thinning warnCorsOriginUnmatched: ⚠ CORS Origin is unmatched ${from}->${to} warnNoAdmin: ⚠ You do not have administrator privileges. Ok: Ok Old Algorithm: Old Algorithm Older fallback (Slow, W/O WebAssembly): Older fallback (Slow, W/O WebAssembly) Open: Open Open the dialog: Open the dialog Overwrite: Overwrite Overwrite patterns: Overwrite patterns Overwrite remote: Overwrite remote Overwrite remote with local DB and passphrase.: Overwrite remote with local DB and passphrase. Overwrite Server Data with This Device's Files: Overwrite Server Data with This Device's Files P2P: AskPassphraseForDecrypt: The remote peer shared the configuration. Please input the passphrase to decrypt the configuration. AskPassphraseForShare: The remote peer requested this device configuration. Please input the passphrase to share the configuration. You can ignore the request by cancelling this dialogue. DisabledButNeed: "%{title_p2p_sync} is disabled. Do you really want to enable it?" FailedToOpen: Failed to open P2P connection to the signalling server. NoAutoSyncPeers: No auto-sync peers found. Please set peers on the %{long_p2p_sync} pane. NoKnownPeers: No peers has been detected, waiting incoming other peers... Note: description: >2- This replicator allows us to synchronise our vault with other devices using a peer-to-peer connection. We can use this to synchronise our vault with our other devices without using a cloud service. This replicator is based on Trystero. It also uses a signalling server to establish a connection between devices. The signalling server is used to exchange connection information between devices. It does (or,should) not know or store any of our data. The signalling server can be hosted by anyone. This is just a Nostr relay. For the sake of simplicity and checking the behaviour of the replicator, an instance of the signalling server is hosted by vrtmrz. You can use the experimental server provided by vrtmrz, or you can use any other server. By the way, even if the signalling server does not store our data, it can see the connection information of some of our devices. Please be aware of this. Also, be cautious when using the server provided by someone else. important_note: Peer-to-Peer Replicator. important_note_sub: This feature is still on the bleeding edge. Please be aware that ensure your data is backed up before using this feature. And, we would be so happy if you could contribute to the development of this feature. Summary: What is this feature? (and some important notes, please read once) NotEnabled: "%{title_p2p_sync} is not enabled. We cannot open a new connection." P2PReplication: "%{P2P} Replication" PaneTitle: "%{long_p2p_sync}" ReplicatorInstanceMissing: P2P Sync replicator is not found, possibly not have been configured or enabled. SeemsOffline: Peer ${name} seems offline, skipped. SyncAlreadyRunning: P2P Sync is already running. SyncCompleted: P2P Sync completed. SyncStartedWith: P2P Sync with ${name} have been started. paneMaintenance: markDeviceResolvedAfterBackup: paneMaintenance.markDeviceResolvedAfterBackup remoteLockedAndDeviceNotAccepted: paneMaintenance.remoteLockedAndDeviceNotAccepted remoteLockedResolvedDevice: paneMaintenance.remoteLockedResolvedDevice unlockDatabaseReady: paneMaintenance.unlockDatabaseReady Passphrase: Passphrase Passphrase of sensitive configuration items: Passphrase of sensitive configuration items password: password Password: Password Paste a connection string: Paste a connection string Path Obfuscation: Path Obfuscation Patterns to match files for overwriting instead of merging: Patterns to match files for overwriting instead of merging Patterns to match files for syncing: Patterns to match files for syncing Peer-to-Peer Synchronisation: Peer-to-Peer Synchronisation Per-file-saved customization sync: Per-file-saved customization sync Perform: Perform Perform cleanup: Perform cleanup Perform Garbage Collection: Perform Garbage Collection Perform Garbage Collection to remove unused chunks and reduce database size.: Perform Garbage Collection to remove unused chunks and reduce database size. Periodic Sync interval: Periodic Sync interval Pick a file to resolve conflict: Pick a file to resolve conflict Pick a file to show history: Pick a file to show history Please set device name to identify this device. This name should be unique among your devices. While not configured, we cannot enable this feature.: Please set device name to identify this device. This name should be unique among your devices. While not configured, we cannot enable this feature. Please set this device name: Please set this device name Prepare the 'report' to create an issue: Prepare the 'report' to create an issue Presets: Presets Process small files in the foreground: Process small files in the foreground Property Encryption: Property Encryption PureJS fallback (Fast, W/O WebAssembly): PureJS fallback (Fast, W/O WebAssembly) Purge all download/upload cache.: Purge all download/upload cache. Purge all journal counter: Purge all journal counter Rebuild local and remote database with local files.: Rebuild local and remote database with local files. Rebuilding Operations (Remote Only): Rebuilding Operations (Remote Only) Recovery and Repair: Recovery and Repair Recreate all: Recreate all Recreate missing chunks for all files: Recreate missing chunks for all files RedFlag: Fetch: Method: Desc: >- How do you want to fetch? - %{RedFlag.Fetch.Method.FetchSafer}. **Low Traffic**, **High CPU**, **Low Risk** Recommended if ... - Files possibly inconsistent - Files were not so much - %{RedFlag.Fetch.Method.FetchSmoother}. **Low Traffic**, **Moderate CPU**, **Low to Moderate Risk** Recommended if ... - Files probably consistent - You have a lot of files. - %{RedFlag.Fetch.Method.FetchTraditional}. **High Traffic**, **Low CPU**, **Low to Moderate Risk** >[!INFO]- Details > ## %{RedFlag.Fetch.Method.FetchSafer}. > **Low Traffic**, **High CPU**, **Low Risk** > This option first creates a local database using existing local files before fetching data from the remote source. > If matching files exist both locally and remotely, only the differences between them will be transferred. > However, files present in both locations will initially be handled as conflicted files. They will be resolved automatically if they are not actually conflicted, but this process may take time. > This is generally the safest method, minimizing data loss risk. > ## %{RedFlag.Fetch.Method.FetchSmoother}. > **Low Traffic**, **Moderate CPU**, **Low to Moderate Risk** (depending operation) > This option first creates chunks from local files for the database, then fetches data. Consequently, only chunks missing locally are transferred. However, all metadata is taken from the remote source. > Local files are then compared against this metadata at launch. The content considered newer will overwrite the older one (by modified time). This outcome is then synchronised back to the remote database. > This is generally safe if local files are genuinely the latest timestamp. However, it can cause problems if a file has a newer timestamp but older content (like the initial `welcome.md`). > This uses less CPU and faster than "%{RedFlag.Fetch.Method.FetchSafer}", but it may lead to data loss if not used carefully. > ## %{RedFlag.Fetch.Method.FetchTraditional}. > **High Traffic**, **Low CPU**, **Low to Moderate Risk** (depending operation) > All things will be fetched from the remote. > Similar to the %{RedFlag.Fetch.Method.FetchSmoother}, but all chunks are fetched from the remote source. > This is the most traditional way to fetch, typically consuming the most network traffic and time. It also carries a similar risk of overwriting remote files to the '%{RedFlag.Fetch.Method.FetchSmoother}' option. > However, it is often considered the most stable method because it is the longest-established and most straightforward approach. FetchSafer: Create a local database once before fetching FetchSmoother: Create local file chunks before fetching FetchTraditional: Fetch everything from the remote Title: How do you want to fetch? FetchRemoteConfig: Buttons: Cancel: No, use local settings Fetch: Yes, fetch and apply remote settings Message: Do you want to fetch and apply remotely stored preference settings to the device? Title: Fetch Remote Configuration Reduces storage space by discarding all non-latest revisions. This requires the same amount of free space on the remote server and the local client.: Reduces storage space by discarding all non-latest revisions. This requires the same amount of free space on the remote server and the local client. Reducing the frequency with which on-disk changes are reflected into the DB: Reducing the frequency with which on-disk changes are reflected into the DB Region: Region Remediation: Remediation Remediation Setting Changed: Remediation Setting Changed Remote Database Tweak (In sunset): Remote Database Tweak (In sunset) Remote Databases: Remote Databases Remote name: Remote name Remote server type: Remote server type Remote Type: Remote Type Rename: Rename Replicator: Dialogue: Locked: Action: Dismiss: Cancel for reconfirmation Fetch: Reset Synchronisation on This Device Unlock: Unlock the remote database Message: _value: > Remote database is locked. This is due to a rebuild on one of the terminals. The device is therefore asked to withhold the connection to avoid database corruption. There are three options that we can do: - %{Replicator.Dialogue.Locked.Action.Fetch} The most preferred and reliable way. This will dispose the local database once, and reset all synchronisation information from the remote database again, In most case, we can perform this safely. However, it takes some time and should be done in stable network. - %{Replicator.Dialogue.Locked.Action.Unlock} This method can only be used if we are already reliably synchronised by other replication methods. This does not simply mean that we have the same files. If you are not sure, you should avoid it. - %{Replicator.Dialogue.Locked.Action.Dismiss} This will cancel the operation. And we will asked again on next request. Fetch: Fetch all has been scheduled. Plug-in will be restarted to perform it. Unlocked: The remote database has been unlocked. Please retry the operation. Title: Locked Message: Cleaned: Database cleaning up is in process. replication has been cancelled InitialiseFatalError: No replicator is available, this is the fatal error. Pending: Some file events are pending. Replication has been cancelled. SomeModuleFailed: Replication has been cancelled by some module failure VersionUpFlash: An update has been detected. Please open the Settings dialogue and check the Change Log. Replication has been cancelled. Requires restart of Obsidian: Requires restart of Obsidian Requires restart of Obsidian.: Requires restart of Obsidian. Rerun Onboarding Wizard: Rerun Onboarding Wizard Rerun the onboarding wizard to set up Self-hosted LiveSync again.: Rerun the onboarding wizard to set up Self-hosted LiveSync again. Rerun Wizard: Rerun Wizard Resend: Resend Resend all chunks to the remote.: Resend all chunks to the remote. Reset: Reset Reset all: Reset all Reset all journal counter: Reset all journal counter Reset journal received history: Reset journal received history Reset journal sent history: Reset journal sent history Reset notification threshold and check the remote database usage: Reset notification threshold and check the remote database usage Reset received: Reset received Reset sent history: Reset sent history Reset Synchronisation information: Reset Synchronisation information Reset Synchronisation on This Device: Reset Synchronisation on This Device Reset the remote storage size threshold and check the remote storage size again.: Reset the remote storage size threshold and check the remote storage size again. Resolve All: Resolve All Resolve all conflicted files: Resolve all conflicted files Resolve All conflicted files by the newer one: Resolve All conflicted files by the newer one "Resolve all conflicted files by the newer one. Caution: This will overwrite the older one, and cannot resurrect the overwritten one.": "Resolve all conflicted files by the newer one. Caution: This will overwrite the older one, and cannot resurrect the overwritten one." Restart Now: Restart Now Restarting Obsidian is strongly recommended. Until restart, some changes may not take effect, and display may be inconsistent. Are you sure to restart now?: Restarting Obsidian is strongly recommended. Until restart, some changes may not take effect, and display may be inconsistent. Are you sure to restart now? Restore or reconstruct local database from remote.: Restore or reconstruct local database from remote. Run Doctor: Run Doctor Save settings to a markdown file. You will be notified when new settings arrive. You can set different files by the platform.: Save settings to a markdown file. You will be notified when new settings arrive. You can set different files by the platform. Saving will be performed forcefully after this number of seconds.: Saving will be performed forcefully after this number of seconds. Scan changes on customization sync: Scan changes on customization sync Scan customization automatically: Scan customization automatically Scan customization before replicating.: Scan customization before replicating. Scan customization every 1 minute.: Scan customization every 1 minute. Scan customization periodically: Scan customization periodically Scan for Broken files: Scan for Broken files Scan for hidden files before replication: Scan for hidden files before replication Scan hidden files periodically: Scan hidden files periodically Schedule and Restart: Schedule and Restart Scram Switches: Scram Switches Scram!: Scram! Seconds, 0 to disable: Seconds, 0 to disable Seconds. Saving to the local database will be delayed until this value after we stop typing or saving.: Seconds. Saving to the local database will be delayed until this value after we stop typing or saving. Secret Key: Secret Key Select the database adapter to use.: Select the database adapter to use. Send: Send Send chunks: Send chunks Server URI: Server URI Setting: GenerateKeyPair: Desc: >+ We have generated a key pair! Note: This key pair will never be shown again. Please save it in a safe place. If you have lost it, you need to generate a new key pair. Note 2: The public key is in spki format, and the Private key is in pkcs8 format. For the sake of convenience, newlines are converted to `\n` in public key. Note 3: The public key should be configured in the remote database, and the private key should be configured in local devices. >[!FOR YOUR EYES ONLY]- >
> > ### Public Key > ``` ${public_key} > ``` > > ### Private Key > ``` ${private_key} > ``` > >
>[!Both for copying]- > >
> > ``` ${public_key} ${private_key} > ``` > >
Title: New key pair has been generated! TroubleShooting: _value: TroubleShooting Doctor: _value: Setting Doctor Desc: Detects non optimal settings. (Same as during migration) ScanBrokenFiles: _value: Scan for broken files Desc: Scans for files that are not stored correctly in the database. SettingTab: Message: AskRebuild: Your changes require fetching from the remote database. Do you want to proceed? Setup: Apply: Buttons: ApplyAndFetch: Apply and Fetch ApplyAndMerge: Apply and Merge ApplyAndRebuild: Apply and Rebuild Cancel: Discard and Cancel OnlyApply: Only Apply Message: >- The new configuration is ready. Let us proceed to apply it. There are several ways to apply this: - Apply and Fetch Configure this device as a new client. After applying, synchronise from the remote server. - Apply and Merge Configure on a device that already has the file. It processes the local files and transfers the differences. Conflicts may arise. - Apply and Rebuild Rebuild the remote using local files. This is typically done if the server becomes corrupted or we wish to start from scratch. Other devices will be locked and required to re-fetch. - Only Apply Apply only. Conflicts may arise if a rebuild is required. Title: Apply new configuration from the ${method} WarningRebuildRecommended: "NOTE: after adjusting the settings, it has been determined that a rebuild is required; Just Import is not recommended." Doctor: Buttons: No: No, please use the settings in the URI as is Yes: Yes, please consult the doctor Message: >- Self-hosted LiveSync has gradually become longer in history and some recommended settings have changed. Now, setup is a very good time to do this. Do you want to run Doctor to check if the imported settings are optimal compared to the latest state? Title: Do you want to consult the doctor? FetchRemoteConf: Buttons: Fetch: Yes, please fetch the configuration Skip: No, please use the settings in the URI Message: >- If we have already synchronised once with another device, the remote database stores the suitable configuration values between the synchronised devices. The plug-in would like to retrieve them for robust configuration. However, we have to make sure the one thing. Are we currently in a situation where we can access the network safely and retrieve the settings? Note: Mostly, you are safe to do this, that your remote database is hosted with a SSL certificate, and your network is not compromised. Title: Fetch configuration from remote database? QRCode: >- We have generated a QR code to transfer the settings. Please scan the QR code with your phone or other device. Note: The QR code is not encrypted, so be careful to open this. >[!FOR YOUR EYES ONLY]- >
${qr_image}
ShowQRCode: _value: Show QR code Desc: Show QR code to transfer the settings. RemoteE2EE: Title: End-to-End Encryption Guidance: Please configure your end-to-end encryption settings. LabelEncrypt: End-to-End Encryption PlaceholderPassphrase: Enter your passphrase StronglyRecommendedTitle: Strongly Recommended StronglyRecommendedLine1: Enabling end-to-end encryption ensures that your data is encrypted on your device before being sent to the remote server. This means that even if someone gains access to the server, they won't be able to read your data without the passphrase. Make sure to remember your passphrase, as it will be required to decrypt your data on other devices. StronglyRecommendedLine2: Also, please note that if you are using Peer-to-Peer synchronization, this configuration will be used when you switch to other methods and connect to a remote server in the future. MultiDestinationWarning: This setting must be the same even when connecting to multiple synchronisation destinations. LabelObfuscateProperties: Obfuscate Properties ObfuscatePropertiesDesc: Obfuscating properties (e.g., path of file, size, creation and modification dates) adds an additional layer of security by making it harder to identify the structure and names of your files and folders on the remote server. This helps protect your privacy and makes it more difficult for unauthorized users to infer information about your data. AdvancedTitle: Advanced LabelEncryptionAlgorithm: Encryption Algorithm DefaultAlgorithmDesc: In most cases, you should stick with the default algorithm (${algorithm}). This setting is only required if you have an existing Vault encrypted in a different format. AlgorithmWarning: Changing the encryption algorithm will prevent access to any data previously encrypted with a different algorithm. Ensure that all your devices are configured to use the same algorithm to maintain access to your data. PassphraseValidationLine1: Please be aware that the End-to-End Encryption passphrase is not validated until the synchronisation process actually commences. This is a security measure designed to protect your data. PassphraseValidationLine2: Therefore, we ask that you exercise extreme caution when configuring server information manually. If an incorrect passphrase is entered, the data on the server will become corrupted. Please understand that this is intended behaviour. ButtonProceed: Proceed ButtonCancel: Cancel UseSetupURI: Title: Enter Setup URI GuidanceLine1: Please enter the Setup URI that was generated during server installation or on another device, along with the vault passphrase. GuidanceLine2: Note that you can generate a new Setup URI by running the "Copy settings as a new Setup URI" command in the command palette. LabelSetupURI: Setup URI ValidInfo: The Setup URI is valid and ready to use. InvalidInfo: The Setup URI is invalid. Please check it and try again. LabelPassphrase: Vault passphrase PlaceholderPassphrase: Enter your vault passphrase ErrorPassphraseRequired: Please enter the vault passphrase. ErrorFailedToParse: Failed to parse the Setup URI. Please check the URI and passphrase. ButtonProceed: Test Settings and Continue ButtonCancel: Cancel ScanQRCode: Title: Scan QR Code Guidance: Please follow the steps below to import settings from your existing device. Step1: On this device, please keep this Vault open. Step2: On the source device, open Obsidian. Step3: On the source device, from the command palette, run the 'Show settings as a QR code' command. Step4: On this device, switch to the camera app or use a QR code scanner to scan the displayed QR code. ButtonClose: Close this dialog "Please enable 'Compute revisions for chunks' in settings to use Garbage Collection.": Please enable 'Compute revisions for chunks' in settings to use Garbage Collection. "Please disable 'Read chunks online' in settings to use Garbage Collection.": Please disable 'Read chunks online' in settings to use Garbage Collection. "Setup URI dialog cancelled.": Setup URI dialog cancelled. "Please select 'Cancel' explicitly to cancel this operation.": Please select 'Cancel' explicitly to cancel this operation. "Failed to connect to remote for compaction.": Failed to connect to remote for compaction. "Failed to connect to remote for compaction. ${reason}": Failed to connect to remote for compaction. ${reason} "Compaction in progress on remote database...": Compaction in progress on remote database... "Compaction on remote database timed out.": Compaction on remote database timed out. "Compaction on remote database completed successfully.": Compaction on remote database completed successfully. "Compaction on remote database failed.": Compaction on remote database failed. "Failed to start one-shot replication before Garbage Collection. Garbage Collection Cancelled.": Failed to start one-shot replication before Garbage Collection. Garbage Collection Cancelled. "Cancel Garbage Collection": Cancel Garbage Collection "No connected device information found. Cancelling Garbage Collection.": No connected device information found. Cancelling Garbage Collection. "The following accepted nodes are missing its node information:\n- ${missingNodes}\n\nThis indicates that they have not been connected for some time or have been left on an older version.\nIt is preferable to update all devices if possible. If you have any devices that are no longer in use, you can clear all accepted nodes by locking the remote once.": |- The following accepted nodes are missing its node information: - ${missingNodes} This indicates that they have not been connected for some time or have been left on an older version. It is preferable to update all devices if possible. If you have any devices that are no longer in use, you can clear all accepted nodes by locking the remote once. "Ignore and Proceed": Ignore and Proceed "Node Information Missing": Node Information Missing "Garbage Collection cancelled by user.": Garbage Collection cancelled by user. "Proceeding with Garbage Collection, ignoring missing nodes.": Proceeding with Garbage Collection, ignoring missing nodes. "Proceed Garbage Collection": Proceed Garbage Collection "> [!INFO]- The connected devices have been detected as follows:\n${devices}": |- > [!INFO]- The connected devices have been detected as follows: ${devices} "Device": Device "Node ID": Node ID "Obsidian version": Obsidian version "Plug-in version": Plug-in version "Progress": Progress "Some devices have differing progress values (max: ${maxProgress}, min: ${minProgress}).\nThis may indicate that some devices have not completed synchronisation, which could lead to conflicts. Strongly recommend confirming that all devices are synchronised before proceeding.": |- Some devices have differing progress values (max: ${maxProgress}, min: ${minProgress}). This may indicate that some devices have not completed synchronisation, which could lead to conflicts. Strongly recommend confirming that all devices are synchronised before proceeding. "All devices have the same progress value (${progress}). Your devices seem to be synchronised. And be able to proceed with Garbage Collection.": All devices have the same progress value (${progress}). Your devices seem to be synchronised. And be able to proceed with Garbage Collection. "Garbage Collection Confirmation": Garbage Collection Confirmation "Proceeding with Garbage Collection.": Proceeding with Garbage Collection. "Garbage Collection: Scanned ${scanned} / ~${docCount}": |- Garbage Collection: Scanned ${scanned} / ~${docCount} "Garbage Collection: Scanning completed. Total chunks: ${totalChunks}, Used chunks: ${usedChunks}": |- Garbage Collection: Scanning completed. Total chunks: ${totalChunks}, Used chunks: ${usedChunks} "Garbage Collection: Found ${unusedChunks} unused chunks to delete.": |- Garbage Collection: Found ${unusedChunks} unused chunks to delete. "Garbage Collection completed. Deleted chunks: ${deletedChunks} / ${totalChunks}. Time taken: ${seconds} seconds.": |- Garbage Collection completed. Deleted chunks: ${deletedChunks} / ${totalChunks}. Time taken: ${seconds} seconds. "Failed to start replication after Garbage Collection.": Failed to start replication after Garbage Collection. Should we keep folders that don't have any files inside?: Should we keep folders that don't have any files inside? Should we only check for conflicts when a file is opened?: Should we only check for conflicts when a file is opened? Should we prompt you about conflicting files when a file is opened?: Should we prompt you about conflicting files when a file is opened? Should we prompt you for every single merge, even if we can safely merge automatcially?: Should we prompt you for every single merge, even if we can safely merge automatcially? Show full banner: Show full banner Show history: Show history Show icon only: Show icon only Show only notifications: Show only notifications Show status as icons only: Show status as icons only Show status icon instead of file warnings banner: Show status icon instead of file warnings banner Show status inside the editor: Show status inside the editor Show status on the status bar: Show status on the status bar Show verbose log. Please enable if you report an issue.: Show verbose log. Please enable if you report an issue. Starts synchronisation when a file is saved.: Starts synchronisation when a file is saved. Stop reflecting database changes to storage files.: Stop reflecting database changes to storage files. Stop watching for file changes.: Stop watching for file changes. Storage -> Database: Storage -> Database Suppress notification of hidden files change: Suppress notification of hidden files change Suspend database reflecting: Suspend database reflecting Suspend file watching: Suspend file watching Switch to IDB: Switch to IDB Switch to IndexedDB: Switch to IndexedDB Sync after merging file: Sync after merging file Sync automatically after merging files: Sync automatically after merging files Sync Mode: Sync Mode Sync on Editor Save: Sync on Editor Save Sync on File Open: Sync on File Open Sync on Save: Sync on Save Sync on Startup: Sync on Startup Synchronising files: Synchronising files Syncing: Syncing Target patterns: Target patterns Testing only - Resolve file conflicts by syncing newer copies of the file, this can overwrite modified files. Be Warned.: Testing only - Resolve file conflicts by syncing newer copies of the file, this can overwrite modified files. Be Warned. The delay for consecutive on-demand fetches: The delay for consecutive on-demand fetches The Hash algorithm for chunk IDs: The Hash algorithm for chunk IDs The IndexedDB adapter often offers superior performance in certain scenarios, but it has been found to cause memory leaks when used with LiveSync mode. When using LiveSync mode, please use IDB adapter instead.: The IndexedDB adapter often offers superior performance in certain scenarios, but it has been found to cause memory leaks when used with LiveSync mode. When using LiveSync mode, please use IDB adapter instead. The maximum duration for which chunks can be incubated within the document. Chunks exceeding this period will graduate to independent chunks.: The maximum duration for which chunks can be incubated within the document. Chunks exceeding this period will graduate to independent chunks. The maximum number of chunks that can be incubated within the document. Chunks exceeding this number will immediately graduate to independent chunks.: The maximum number of chunks that can be incubated within the document. Chunks exceeding this number will immediately graduate to independent chunks. The maximum total size of chunks that can be incubated within the document. Chunks exceeding this size will immediately graduate to independent chunks.: The maximum total size of chunks that can be incubated within the document. Chunks exceeding this size will immediately graduate to independent chunks. The minimum interval for automatic synchronisation on event.: The minimum interval for automatic synchronisation on event. This passphrase will not be copied to another device. It will be set to `Default` until you configure it again.: This passphrase will not be copied to another device. It will be set to `Default` until you configure it again. This will recreate chunks for all files. If there were missing chunks, this may fix the errors.: This will recreate chunks for all files. If there were missing chunks, this may fix the errors. Transfer Tweak: Transfer Tweak TweakMismatchResolve: Action: Dismiss: Dismiss UseConfigured: Use configured settings UseMine: Update remote database settings UseMineAcceptIncompatible: Update remote database settings but keep as is UseMineWithRebuild: Update remote database settings and rebuild again UseRemote: Apply settings to this device UseRemoteAcceptIncompatible: Apply settings to this device, but and ignore incompatibility UseRemoteWithRebuild: Apply settings to this device, and fetch again EnableAutoAcceptCompatible: Enable auto-accept DisableAutoAcceptCompatible: Disable auto-accept Message: AutoAcceptCompatibleUndefined: >- It appears that the settings differ for each device. You can now automatically apply compatible changes to these configurations. Would you like to enable this `auto-accept` setting? Main: >- The settings in the remote database are as follows. These values are configured by other devices, which are synchronised with this device at least once. If you want to use these settings, please select %{TweakMismatchResolve.Action.UseConfigured}. If you want to keep the settings of this device, please select %{TweakMismatchResolve.Action.Dismiss}. ${table} >[!TIP] > If you want to synchronise all settings, please use `Sync settings via markdown` after applying minimal configuration with this feature. ${additionalMessage} MainTweakResolving: |- Your configuration has not been matched with the one on the remote server. Following configuration should be matched: ${table} Let us know your decision. ${additionalMessage} UseRemote: WarningRebuildRecommended: >- >[!NOTICE] > Some changes are compatible but may consume extra storage and transfer volumes. A rebuild is recommended. However, a rebuild may not be performed at present, but may be implemented in future maintenance. > ***Please ensure that you have time and are connected to a stable network to apply!*** WarningRebuildRequired: >- >[!WARNING] > Some remote configurations are not compatible with the local database of this device. Rebuilding the local database will be required. > ***Please ensure that you have time and are connected to a stable network to apply!*** WarningIncompatibleRebuildRecommended: >- >[!NOTICE] > We have detected that some of the values are different to make incompatible the local database with the remote database. > Some changes are compatible but may consume extra storage and transfer volumes. A rebuild is recommended. However, a rebuild may not be performed at present, but may be implemented in future maintenance. > If you want to rebuild, it takes a few minutes or more. **Make sure it is safe to perform it now.** WarningIncompatibleRebuildRequired: >- >[!WARNING] > We have detected that some of the values are different to make incompatible the local database with the remote database. > Either local or remote rebuilds are required. Both of them takes a few minutes or more. **Make sure it is safe to perform it now.** remoteUpdated: The configuration stored remotely has been updated. mineUpdated: The device configuration have been adjusted. Table: _value: |+ | Value name | This device | On Remote | |: --- |: ---- :|: ---- :| ${rows} Row: "| ${name} | ${self} | ${remote} |" Title: _value: Configuration Mismatch Detected TweakResolving: Configuration Mismatch Detected UseRemoteConfig: Use Remote Configuration AutoAcceptCompatible: Auto-Accept Available Unique name between all synchronized devices. To edit this setting, please disable customization sync once.: Unique name between all synchronized devices. To edit this setting, please disable customization sync once. Use a custom passphrase: Use a custom passphrase Use Custom HTTP Handler: Use Custom HTTP Handler Use dynamic iteration count: Use dynamic iteration count Use Segmented-splitter: Use Segmented-splitter Use splitting-limit-capped chunk splitter: Use splitting-limit-capped chunk splitter Use the trash bin: Use the trash bin Use timeouts instead of heartbeats: Use timeouts instead of heartbeats username: username Username: Username Verbose Log: Verbose Log Verify all: Verify all Verify and repair all files: Verify and repair all files Warning! This will have a serious impact on performance. And the logs will not be synchronised under the default name. Please be careful with logs; they often contain your confidential information.: Warning! This will have a serious impact on performance. And the logs will not be synchronised under the default name. Please be careful with logs; they often contain your confidential information. We cannot change the device name while this feature is enabled. Please disable this feature to change the device name.: We cannot change the device name while this feature is enabled. Please disable this feature to change the device name. When you save a file in the editor, start a sync automatically: When you save a file in the editor, start a sync automatically Write credentials in the file: Write credentials in the file Write logs into the file: Write logs into the file xxhash32 (Fast but less collision resistance): xxhash32 (Fast but less collision resistance) xxhash64 (Fastest): xxhash64 (Fastest) "Welcome to Self-hosted LiveSync": "Welcome to Self-hosted LiveSync" "We will now guide you through a few questions to simplify the synchronisation setup.": "We will now guide you through a few questions to simplify the synchronisation setup." "First, please select the option that best describes your current situation.": "First, please select the option that best describes your current situation." "I am setting this up for the first time": "I am setting this up for the first time" "(Select this if you are configuring this device as the first synchronisation device.) This option is suitable if you are new to LiveSync and want to set it up from scratch.": "(Select this if you are configuring this device as the first synchronisation device.) This option is suitable if you are new to LiveSync and want to set it up from scratch." "I am adding a device to an existing synchronisation setup": "I am adding a device to an existing synchronisation setup" "(Select this if you are already using synchronisation on another computer or smartphone.) This option is suitable if you are new to LiveSync and want to set it up from scratch.": "(Select this if you are already using synchronisation on another computer or smartphone.) This option is suitable if you are new to LiveSync and want to set it up from scratch." "Yes, I want to set up a new synchronisation": "Yes, I want to set up a new synchronisation" "Yes, I want to add this device to my existing synchronisation": "Yes, I want to add this device to my existing synchronisation" "No, please take me back": "No, please take me back" "Device Setup Method": "Device Setup Method" "You are adding this device to an existing synchronisation setup.": "You are adding this device to an existing synchronisation setup." "Please select a method to import the settings from another device.": "Please select a method to import the settings from another device." "Use a Setup URI (Recommended)": "Use a Setup URI (Recommended)" "Paste the Setup URI generated from one of your active devices.": "Paste the Setup URI generated from one of your active devices." "Scan a QR Code (Recommended for mobile)": "Scan a QR Code (Recommended for mobile)" "Scan the QR code displayed on an active device using this device's camera.": "Scan the QR code displayed on an active device using this device's camera." "Enter the server information manually": "Enter the server information manually" "Configure the same server information as your other devices again, manually, very advanced users only.": "Configure the same server information as your other devices again, manually, very advanced users only." "Proceed with Setup URI": "Proceed with Setup URI" "I know my server details, let me enter them": "I know my server details, let me enter them" "Please select an option to proceed": "Please select an option to proceed" "Connection Method": "Connection Method" "We will now proceed with the server configuration.": "We will now proceed with the server configuration." "How would you like to configure the connection to your server?": "How would you like to configure the connection to your server?" "A Setup URI is a single string of text containing your server address and authentication details. Using a URI, if one was generated by your server installation script, provides a simple and secure configuration.": "A Setup URI is a single string of text containing your server address and authentication details. Using a URI, if one was generated by your server installation script, provides a simple and secure configuration." "This is an advanced option for users who do not have a URI or who wish to configure detailed settings.": "This is an advanced option for users who do not have a URI or who wish to configure detailed settings." "Enter Server Information": "Enter Server Information" "Please select the type of server to which you are connecting.": "Please select the type of server to which you are connecting." "Continue to CouchDB setup": "Continue to CouchDB setup" "Continue to S3/MinIO/R2 setup": "Continue to S3/MinIO/R2 setup" "Continue to Peer-to-Peer only setup": "Continue to Peer-to-Peer only setup" "This is the most suitable synchronisation method for the design. All functions are available. You must have set up a CouchDB instance.": "This is the most suitable synchronisation method for the design. All functions are available. You must have set up a CouchDB instance." "S3/MinIO/R2 Object Storage": "S3/MinIO/R2 Object Storage" "Synchronisation utilising journal files. You must have set up an S3/MinIO/R2 compatible object storage.": "Synchronisation utilising journal files. You must have set up an S3/MinIO/R2 compatible object storage." "Peer-to-Peer only": "Peer-to-Peer only" "This feature enables direct synchronisation between devices. No server is required, but both devices must be online at the same time for synchronisation to occur, and some features may be limited. Internet connection is only required to signalling (detecting peers) and not for data transfer.": "This feature enables direct synchronisation between devices. No server is required, but both devices must be online at the same time for synchronisation to occur, and some features may be limited. Internet connection is only required to signalling (detecting peers) and not for data transfer." Ui: Common: Signal: Caution: CAUTION Danger: DANGER Notice: NOTICE Warning: WARNING Settings: Advanced: LocalDatabaseTweak: Local Database Tweak MemoryCache: Memory Cache TransferTweak: Transfer Tweak Common: Analyse: Analyse Back: Back Check: Check Configure: Configure Continue: Continue Delete: Delete Fetch: Fetch Lock: Lock Merge: Merge Open: Open Overwrite: Overwrite Perform: Perform ResetAll: Reset all ResolveAll: Resolve All Scan: Scan Send: Send Use: Use VerifyAll: Verify all CustomizationSync: OpenDesc: Open the dialog Panel: Customization Sync WarnChangeDeviceName: We cannot change the device name while this feature is enabled. Please disable this feature to change the device name. WarnSetDeviceName: Please set device name to identify this device. This name should be unique among your devices. While not configured, we cannot enable this feature. Hatch: AnalyseDatabaseUsage: Analyse database usage AnalyseDatabaseUsageDesc: Analyse database usage and generate a TSV report for diagnosis yourself. You can paste the generated report with any spreadsheet you like. BackToNonConfigured: Back to non-configured ConvertNonObfuscated: Check and convert non-path-obfuscated files ConvertNonObfuscatedDesc: Check the local database for files that were stored without path obfuscation and convert them when needed. CopyIssueReport: Copy Report to clipboard DatabaseLabel: "Database: ${details}" DatabaseToStorage: Database -> Storage DeleteCustomizationSyncData: Delete all customization sync data GeneratedReport: Generated report Missing: Missing ModifiedSize: "Modified: ${modified}, Size: ${size}" ModifiedSizeActual: "Modified: ${modified}, Size: ${size} (actual size: ${actualSize})" PrepareIssueReport: Prepare the 'report' to create an issue RecreateAll: Recreate all RecreateMissingChunks: Recreate missing chunks for all files RecreateMissingChunksDesc: This will recreate chunks for all files. If there were missing chunks, this may fix the errors. RecoveryAndRepair: Recovery and Repair ResetPanel: Reset ResetRemoteUsage: Reset notification threshold and check the remote database usage ResetRemoteUsageDesc: Reset the remote storage size threshold and check the remote storage size again. ResolveAllConflictedFiles: Resolve all conflicted files by the newer one ResolveAllConflictedFilesDesc: "Resolve all conflicted files by the newer one. Caution: This will overwrite the older one, and cannot resurrect the overwritten one." RunDoctor: Run Doctor ScanBrokenFiles: Scan for broken files ScramSwitches: Scram Switches ShowHistory: Show history StorageLabel: "Storage: ${details}" StorageToDatabase: Storage -> Database VerifyAndRepairAllFiles: Verify and repair all files VerifyAndRepairAllFilesDesc: Compare the content of files between the local database and storage. If they do not match, you will be asked which one to keep. Maintenance: Cleanup: Perform cleanup CleanupDesc: Reduces storage space by discarding all non-latest revisions. This requires the same amount of free space on the remote server and the local client. DeleteLocalDatabase: Delete local database to reset or uninstall Self-hosted LiveSync EmergencyRestart: Emergency restart EmergencyRestartDesc: Disable all synchronisation and restart. FreshStartWipe: Fresh Start Wipe FreshStartWipeDesc: Delete all data on the remote server. GarbageCollection: Garbage Collection V3 (Beta) GarbageCollectionAction: Perform Garbage Collection GarbageCollectionDesc: Perform Garbage Collection to remove unused chunks and reduce database size. LockServer: Lock Server LockServerDesc: Lock the remote server to prevent synchronisation with other devices. OverwriteServerData: Overwrite Server Data with This Device's Files OverwriteServerDataDesc: Rebuild the local and remote database with files from this device. OverwriteRemote: Overwrite remote OverwriteRemoteDesc: Overwrite remote with local DB and passphrase. PurgeAllJournalCounter: Purge all journal counter PurgeAllJournalCounterDesc: Purge all download and upload caches. RebuildingOperations: Rebuilding Operations (Remote Only) Reset: Reset ResetAllJournalCounter: Reset all journal counter ResetAllJournalCounterDesc: Initialise all journal history. On the next sync, every item will be received and sent again. ResetJournalReceived: Reset journal received history ResetJournalReceivedDesc: Initialise journal received history. On the next sync, every item except those sent by this device will be downloaded again. ResetReceived: Reset received ResetJournalSent: Reset journal sent history ResetJournalSentDesc: Initialise journal sent history. On the next sync, every item except those received by this device will be sent again. ResetLocalSyncInfo: Reset Synchronisation information ResetLocalSyncInfoDesc: Restore or reconstruct local database from remote. ResetSentHistory: Reset sent history ResetThisDevice: Reset Synchronisation on This Device Resend: Resend ResendDesc: Resend all chunks to the remote. ScheduleAndRestart: Schedule and Restart Scram: Scram! SendChunks: Send chunks Syncing: Syncing WarningLockedReadyAction: I am ready, unlock the database WarningLockedReadyText: To prevent unwanted vault corruption, the remote database has been locked for synchronisation. (This device is marked as 'resolved'.) When all your devices are marked as 'resolved', unlock the database. This warning will continue to appear until replication confirms the device is resolved. WarningLockedResolveAction: I have made a backup, mark this device as resolved WarningLockedResolveText: The remote database is locked for synchronisation to prevent vault corruption because this device is not marked as 'resolved'. Please back up your vault, reset the local database, and select 'Mark this device as resolved'. This warning will persist until replication confirms the device is resolved. WriteRedFlagAndRestart: Flag and restart Patches: CompatibilityConflict: Compatibility (Conflict Behaviour) CompatibilityDatabase: Compatibility (Database structure) CompatibilityInternalApi: Compatibility (Internal API Usage) CompatibilityMetadata: Compatibility (Metadata) CompatibilityRemote: Compatibility (Remote Database) CompatibilityTrouble: Compatibility (Trouble addressed) CurrentAdapter: "Current adapter: ${adapter}" DatabaseAdapter: Database Adapter DatabaseAdapterDesc: Select the database adapter to use. EdgeCaseBehaviour: Edge case addressing (Behaviour) EdgeCaseDatabase: Edge case addressing (Database) EdgeCaseProcessing: Edge case addressing (Processing) IndexedDbWarning: The IndexedDB adapter often offers superior performance in certain scenarios, but it has been found to cause memory leaks when used with LiveSync mode. When using LiveSync mode, please use the IDB adapter instead. MigrationWarning: Changing this setting requires migrating existing data, which may take some time, and restarting Obsidian. Please make sure to back up your data before proceeding. MigratingToIdb: Migrating all data to IDB... MigratingToIndexedDb: Migrating all data to IndexedDB... MigrationIdbCompleted: Migration to IDB completed. Obsidian will be restarted with the new configuration immediately. MigrationIdbCompletedFollowUp: Migration to IDB completed. Please switch the adapter and restart Obsidian. MigrationIndexedDbCompleted: Migration to IndexedDB completed. Obsidian will be restarted with the new configuration immediately. MigrationIndexedDbCompletedFollowUp: Migration to IndexedDB completed. Please switch the adapter and restart Obsidian. OperationToIdb: to IDB OperationToIndexedDb: to IndexedDB Remediation: Remediation RemediationChanged: Remediation Setting Changed RemediationNoLimit: No limit configured RemediationRestartLater: Later RemediationRestartMessage: Restarting Obsidian is strongly recommended. Until restart, some changes may not take effect, and the display may be inconsistent. Are you sure you want to restart now? RemediationRestartNow: Restart Now RemediationRestarting: Remediation setting changed. Restarting Obsidian... RemediationSuffixChanged: Suffix has been changed. Reopening database... RemediationWithValue: "Limit: ${date} (${timestamp})" RemoteDatabaseSunset: Remote Database Tweak (In sunset) SwitchToIDB: Switch to IDB SwitchToIndexedDb: Switch to IndexedDB PowerUsers: ConfigurationEncryption: Configuration Encryption ConnectionTweak: CouchDB Connection Tweak ConnectionTweakDesc: If you reached the payload size limit when using IBM Cloudant, please decrease batch size and batch limit to a lower value. Default: Default Developer: Developer EncryptSensitiveConfig: Encrypt sensitive configuration items PromptPassphraseEveryLaunch: Ask for a passphrase at every launch UseCustomPassphrase: Use a custom passphrase Remote: Activate: Activate ActiveSuffix: " (Active)" AddConnection: Add new connection AddRemoteDefaultName: New Remote ConfigureAndChangeRemote: Configure and change remote ConfigureE2EE: Configure E2EE ConfigureRemote: Configure Remote DeleteRemoteConfirm: "Delete remote configuration '${name}'?" DeleteRemoteTitle: Delete Remote Configuration DisplayName: Display name DuplicateRemote: Duplicate remote DuplicateRemoteSuffix: "${name} (Copy)" E2EEConfiguration: E2EE Configuration Export: Export FetchRemoteSettings: Fetch remote settings ImportConnection: Import connection ImportConnectionPrompt: Paste a connection string ImportedCouchDb: Imported CouchDB ImportedRemote: Remote MoreActions: More actions PeerToPeerPanel: Peer-to-Peer Synchronisation RemoteConfigurationPrefix: Remote configuration RemoteDatabases: Remote Databases RemoteName: Remote name RemoteNameCouchDb: "CouchDB ${host}" RemoteNameP2P: "P2P ${room}" RemoteNameS3: "S3 ${bucket}" Rename: Rename Selector: AddDefaultPatterns: Add default patterns CrossPlatform: Cross-platform Default: Default HiddenFiles: Hidden Files IgnorePatterns: Ignore patterns NonSynchronisingFiles: Non-Synchronising files NonSynchronisingFilesDesc: (RegExp) If this is set, any changes to local and remote files that match this will be skipped. NormalFiles: Normal Files OverwritePatterns: Overwrite patterns OverwritePatternsDesc: Patterns to match files for overwriting instead of merging SynchronisingFiles: Synchronising files SynchronisingFilesDesc: (RegExp) Empty to sync all files. Set a regular expression filter to limit synchronised files. TargetPatterns: Target patterns TargetPatternsDesc: Patterns to match files for syncing Setup: RerunWizardButton: Rerun Wizard RerunWizardDesc: Rerun the onboarding wizard to set up Self-hosted LiveSync again. RerunWizardName: Rerun Onboarding Wizard SyncSettings: Merge: Merge Fetch: Fetch Overwrite: Overwrite SetupWizard: Common: Back: No, please take me back Cancel: Cancel ProceedSelectOption: Please select an option to proceed Invitation: Start: Start setup Intro: ExistingOption: I am adding a device to an existing synchronisation setup ExistingOptionDesc: Select this if you are already using synchronisation on another computer or smartphone. Use this option to connect this device to that existing setup. NewOption: I am setting this up for the first time NewOptionDesc: Select this if you are configuring this device as the first synchronisation device. ProceedExisting: Yes, I want to add this device to my existing synchronisation ProceedNew: Yes, I want to set up a new synchronisation Question: First, please select the option that best describes your current situation. Title: Welcome to Self-hosted LiveSync Guidance: We will now guide you through a few questions to simplify the synchronisation setup. SelectExisting: Guidance: You are adding this device to an existing synchronisation setup. ManualOption: Configure a remote manually ManualOptionDesc: Configure the same remote as your other devices again manually. This is intended only for advanced users. ProceedManual: Proceed with manual configuration ProceedQr: Scan the QR code displayed on an active device using this device's camera. ProceedSetupUri: Proceed with Setup URI Question: Please select a method to import the settings from another device. QrOption: Scan a QR Code (Recommended for mobile) QrOptionDesc: Scan the QR code displayed on an active device using this device's camera. SetupUriOption: Use a Setup URI (Recommended) SetupUriOptionDesc: Paste the Setup URI generated from one of your active devices. Title: Device Setup Method SelectNew: Guidance: We will now configure the synchronisation connection. ManualOption: Configure a remote manually ManualOptionDesc: This is an advanced option for users who do not have a Setup URI or who want to configure detailed settings. You can also use it for P2P synchronisation instead of CouchDB or S3-compatible Object Storage. ProceedManual: Proceed with manual configuration ProceedSetupUri: Proceed with Setup URI Question: How would you like to configure this synchronisation connection? SetupUriOption: Use a Setup URI (Recommended) SetupUriOptionDesc: A Setup URI is a single string containing connection and authentication details. When one is available from a setup script, it provides a simple and secure configuration method. Title: Connection Method OutroAskUserMode: CompatibleOption: The remote is already set up, and the configuration is compatible (or became compatible through this operation). CompatibleOptionDesc: Unless you are certain, selecting this option is risky. It assumes the server configuration is compatible with this device. If that is not the case, data loss may occur. Please make sure you understand the consequences. ExistingOption: My remote server is already set up. I want to join this device. ExistingOptionDesc: Selecting this option will make this device join the existing server. You need to fetch the existing synchronisation data from the server to this device. Guidance: The connection to the server has been configured successfully. As the next step, the local database, in other words the synchronisation information, must be rebuilt. NewOption: I am setting up a new server for the first time / I want to reset my existing server. NewOptionDesc: Selecting this option will initialise the server using the current data on this device. Any existing data on the server will be completely overwritten. ProceedApplySettings: Apply the settings ProceedNext: Proceed to the next step. Question: Please select your situation. Title: "Mostly Complete: Decision Required" OutroNewUser: GuidancePrimary: The connection to the server has been configured successfully. As the next step, the synchronisation data on the server will be built from the current data on this device. GuidanceWarning: After restarting, the data on this device will be uploaded to the server as the master copy. Please note that any unintended data currently on the server will be completely overwritten. Important: IMPORTANT Proceed: Restart and Initialise Server Question: Please select the button below to restart and proceed to the final confirmation. Title: "Setup Complete: Preparing to Initialise Server" OutroNewP2PUser: GuidanceNotice: P2P has no central server copy to overwrite. This step prepares only this device; keep it online when another device fetches its initial data. GuidancePrimary: The peer-to-peer connection has been configured successfully. Next, the local LiveSync database will be built from the current files in this Vault. Important: PLEASE NOTE Proceed: Restart and Prepare This Device Question: Please select the button below to restart and proceed to the local initialisation confirmation. Title: "Setup Complete: Preparing This P2P Device" RebuildEverythingP2P: ConfirmLocalReset: I understand that this resets only this device's local synchronisation database. ConfirmLocalResetNote: The files currently in this Vault are used to rebuild it. ConfirmTitle: "⚠️ Please Confirm the Following" Guidance: This procedure will discard the local LiveSync database on this device and rebuild it from the current files in this Vault. It does not delete or overwrite data on another device. Note: Keep this device online after initialisation so that another device can fetch the Vault from it. Proceed: I Understand, Prepare This Device Title: "Final Confirmation: Prepare This Device for P2P" SetupRemote: BucketOption: S3-compatible Object Storage BucketOptionDesc: Synchronisation using journal files. You must already have an S3-compatible Object Storage service set up, such as Amazon S3, MinIO, or Cloudflare R2. CouchDbOptionDesc: This is the most suitable synchronisation method for the current design. All features are available. You must already have a CouchDB instance set up. Guidance: Select the remote type for this synchronisation setup. P2POption: Peer-to-Peer (P2P) P2POptionDesc: This enables direct synchronisation between devices. No server is required, but both devices must be online at the same time and some features may be limited. Internet connectivity is required only for signalling, not for data transfer. PostgRESTOption: PostgREST Journal Storage PostgRESTOptionDesc: Synchronisation using Journal objects stored in PostgreSQL through the packaged PostgREST RPC schema. The server SQL and a Vault-scoped JWT must already be configured. ProceedBucket: Continue to Object Storage setup ProceedCouchDb: Continue to CouchDB setup ProceedP2P: Continue to P2P setup ProceedPostgREST: Continue to PostgREST setup ProceedWebDAV: Continue to WebDAV setup Title: Choose a synchronisation remote WebDAVOption: WebDAV Journal Storage WebDAVOptionDesc: Synchronisation using Journal files in a dedicated WebDAV collection. Listing cost grows with the number of retained Journal files.