Files
obsidian-livesync/src/common/messagesJson/en.json
T

1135 lines
121 KiB
JSON

{
"(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.",
"(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.",
"(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.",
"> [!INFO]- The connected devices have been detected as follows:\n${devices}": "> [!INFO]- The connected devices have been detected as follows:\n${devices}",
"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.",
"Access Key": "Access Key",
"Activate": "Activate",
"Active Remote Configuration": "Active Remote Configuration",
"Add default patterns": "Add default patterns",
"Add new connection": "Add new connection",
"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.",
"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",
"Cancel Garbage Collection": "Cancel Garbage Collection",
"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`",
"Compaction in progress on remote database...": "Compaction in progress on remote database...",
"Compaction on remote database completed successfully.": "Compaction on remote database completed successfully.",
"Compaction on remote database failed.": "Compaction on remote database failed.",
"Compaction on remote database timed out.": "Compaction on remote database timed out.",
"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",
"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.",
"Connection Method": "Connection Method",
"Continue to CouchDB setup": "Continue to CouchDB setup",
"Continue to Peer-to-Peer only setup": "Continue to Peer-to-Peer only setup",
"Continue to S3/MinIO/R2 setup": "Continue to S3/MinIO/R2 setup",
"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": "Device",
"Device name": "Device name",
"Device Setup Method": "Device Setup Method",
"dialog.yourLanguageAvailable": "Self-hosted LiveSync had translations for your language, so the %{Display language} setting was enabled.\n\nNote: Not all messages are translated. We are waiting for your contributions!\nNote 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.\nMay you find it easy to use!",
"dialog.yourLanguageAvailable.btnRevertToDefault": "Keep %{lang-def}",
"dialog.yourLanguageAvailable.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",
"Doctor.Button.Fix": "Fix it",
"Doctor.Button.FixButNoRebuild": "Fix it but no rebuild",
"Doctor.Button.No": "No",
"Doctor.Button.Skip": "Leave it as is",
"Doctor.Button.Yes": "Yes",
"Doctor.Dialogue.Main": "Hi! Config Doctor has been activated because of ${activateReason}!\nAnd, unfortunately some configurations were detected as potential problems.\nPlease be assured. Let's solve them one by one.\n\nTo let you know ahead of time, we will ask you about the following items.\n\n${issues}\n\nShall we get started?",
"Doctor.Dialogue.MainFix": "\n## ${name}\n\n| Current | Ideal |\n|:---:|:---:|\n| ${current} | ${ideal} |\n\n**Recommendation Level:** ${level}\n\n### Why this has been detected?\n\n${reason}\n\n${note}\n\nFix this to the ideal value?",
"Doctor.Dialogue.Title": "Self-hosted LiveSync Config Doctor",
"Doctor.Dialogue.TitleAlmostDone": "Almost done!",
"Doctor.Dialogue.TitleFix": "Fix issue ${current}/${total}",
"Doctor.Level.Must": "Must",
"Doctor.Level.Necessary": "Necessary",
"Doctor.Level.Optional": "Optional",
"Doctor.Level.Recommended": "Recommended",
"Doctor.Message.NoIssues": "No issues detected!",
"Doctor.Message.RebuildLocalRequired": "Attention! A local database rebuild is required to apply this!",
"Doctor.Message.RebuildRequired": "Attention! A rebuild is required to apply this!",
"Doctor.Message.SomeSkipped": "We left some issues as is. Shall I ask you again on next startup?",
"Doctor.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",
"Enter Server Information": "Enter Server Information",
"Enter the server information manually": "Enter the server information manually",
"Export": "Export",
"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}",
"Failed to start one-shot replication before Garbage Collection. Garbage Collection Cancelled.": "Failed to start one-shot replication before Garbage Collection. Garbage Collection Cancelled.",
"Failed to start replication after Garbage Collection.": "Failed to start replication after Garbage Collection.",
"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",
"First, please select the option that best describes your current situation.": "First, please select the option that best describes your current situation.",
"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 cancelled by user.": "Garbage Collection cancelled by user.",
"Garbage Collection completed. Deleted chunks: ${deletedChunks} / ${totalChunks}. Time taken: ${seconds} seconds.": "Garbage Collection completed. Deleted chunks: ${deletedChunks} / ${totalChunks}. Time taken: ${seconds} seconds.",
"Garbage Collection Confirmation": "Garbage Collection Confirmation",
"Garbage Collection V3 (Beta)": "Garbage Collection V3 (Beta)",
"Garbage Collection: Found ${unusedChunks} unused chunks to delete.": "Garbage Collection: Found ${unusedChunks} unused chunks to delete.",
"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}",
"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.",
"How would you like to configure the connection to your server?": "How would you like to configure the connection to your server?",
"I am adding a device to an existing synchronisation setup": "I am adding a device to an existing synchronisation setup",
"I am setting this up for the first time": "I am setting this up for the first time",
"I know my server details, let me enter them": "I know my server details, let me enter them",
"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 and Proceed": "Ignore and Proceed",
"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",
"K.long_p2p_sync": "%{title_p2p_sync}",
"K.P2P": "%{Peer}-to-%{Peer}",
"K.Peer": "Peer",
"K.ScanCustomization": "Scan customization",
"K.short_p2p_sync": "P2P Sync",
"K.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...",
"liveSyncReplicator.cantReplicateLowerValue": "We can't replicate more lower value.",
"liveSyncReplicator.checkingLastSyncPoint": "Looking for the point last synchronized point.",
"liveSyncReplicator.couldNotConnectTo": "Could not connect to ${uri} : ${name}\n(${db})",
"liveSyncReplicator.couldNotConnectToRemoteDb": "Could not connect to remote database: ${d}",
"liveSyncReplicator.couldNotConnectToServer": "The connection to the remote has been prevented, or failed.",
"liveSyncReplicator.couldNotConnectToURI": "Could not connect to ${uri}:${dbRet}",
"liveSyncReplicator.couldNotMarkResolveRemoteDb": "Could not mark resolve remote database.",
"liveSyncReplicator.liveSyncBegin": "LiveSync begin...",
"liveSyncReplicator.lockRemoteDb": "Lock remote database to prevent data corruption",
"liveSyncReplicator.markDeviceResolved": "Mark this device as 'resolved'.",
"liveSyncReplicator.mismatchedTweakDetected": "Some mismatches have been detected in the configuration between devices. Running a manual replication will attempt to resolve this issue.",
"liveSyncReplicator.oneShotSyncBegin": "OneShot Sync begin... (${syncMode})",
"liveSyncReplicator.remoteDbCorrupted": "Remote database is newer or corrupted, make sure to latest version of self-hosted-livesync installed",
"liveSyncReplicator.remoteDbCreatedOrConnected": "Remote Database Created or Connected",
"liveSyncReplicator.remoteDbDestroyed": "Remote Database Destroyed",
"liveSyncReplicator.remoteDbDestroyError": "Something happened on Remote Database Destroy:",
"liveSyncReplicator.remoteDbMarkedResolved": "Remote database has been marked resolved.",
"liveSyncReplicator.replicationClosed": "Replication closed",
"liveSyncReplicator.replicationInProgress": "Replication is already in progress",
"liveSyncReplicator.retryLowerBatchSize": "Retry with lower batch size:${batch_size}/${batches_limit}",
"liveSyncReplicator.unlockRemoteDb": "Unlock remote database to prevent data corruption",
"liveSyncSetting.errorNoSuchSettingItem": "No such setting item: ${key}",
"liveSyncSetting.originalValue": "Original: ${value}",
"liveSyncSetting.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",
"logPane.logWindowOpened": "Log window opened",
"logPane.pause": "Pause",
"logPane.title": "Self-hosted LiveSync Log",
"logPane.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",
"moduleCheckRemoteSize.logCurrentStorageSize": "Remote storage size: ${measuredSize}",
"moduleCheckRemoteSize.logExceededWarning": "Remote storage size: ${measuredSize} exceeded ${notifySize}",
"moduleCheckRemoteSize.logThresholdEnlarged": "Threshold has been enlarged to ${size}MB",
"moduleCheckRemoteSize.msgConfirmRebuild": "This may take a bit of a long time. Do you really want to rebuild everything now?",
"moduleCheckRemoteSize.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.\n\n| Measured size | Configured size |\n| --- | --- |\n| ${estimatedSize} | ${maxSize} |\n\n> [!MORE]-\n> 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.\n>\n> 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).\n>\n> 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.\n>\n\n> [!WARNING]\n> If you perform rebuild everything, make sure all devices are synchronised. The plug-in will merge as much as possible, though.\n",
"moduleCheckRemoteSize.msgSetDBCapacity": "We can set a maximum database capacity warning, **to take action before running out of space on the remote storage**.\nDo you want to enable this?\n\n> [!MORE]-\n> - 0: Do not warn about storage size.\n> 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.\n> - 800: Warn if the remote storage size exceeds 800MB.\n> This is recommended if you are using fly.io with 1GB limit or IBM Cloudant.\n> - 2000: Warn if the remote storage size exceeds 2GB.\n\nIf we have reached the limit, we will be asked to enlarge the limit step by step.\n",
"moduleCheckRemoteSize.noticeExceeded": "Remote storage size is ${measuredSize}, above the configured ${notifySize} notification threshold. {HERE}",
"moduleCheckRemoteSize.noticeNotConfigured": "Remote storage size notifications are not configured. {HERE}",
"moduleCheckRemoteSize.option2GB": "2GB (Standard)",
"moduleCheckRemoteSize.option800MB": "800MB (Cloudant, fly.io)",
"moduleCheckRemoteSize.optionAskMeLater": "Ask me later",
"moduleCheckRemoteSize.optionDismiss": "Dismiss",
"moduleCheckRemoteSize.optionIncreaseLimit": "increase to ${newMax}MB",
"moduleCheckRemoteSize.optionNoWarn": "No, never warn please",
"moduleCheckRemoteSize.optionRebuildAll": "Rebuild Everything Now",
"moduleCheckRemoteSize.optionReview": "Review options",
"moduleCheckRemoteSize.titleDatabaseSizeLimitExceeded": "Remote storage size exceeded the limit",
"moduleCheckRemoteSize.titleDatabaseSizeNotify": "Setting up database size notification",
"moduleInputUIObsidian.defaultTitleConfirmation": "Confirmation",
"moduleInputUIObsidian.defaultTitleSelect": "Select",
"moduleInputUIObsidian.optionNo": "No",
"moduleInputUIObsidian.optionYes": "Yes",
"moduleLiveSyncMain.logAdditionalSafetyScan": "Additional safety scan...",
"moduleLiveSyncMain.logLoadingPlugin": "Loading plugin...",
"moduleLiveSyncMain.logPluginInitCancelled": "Plugin initialisation was cancelled by a module",
"moduleLiveSyncMain.logPluginVersion": "Self-hosted LiveSync v${manifestVersion} ${packageVersion}",
"moduleLiveSyncMain.logReadChangelog": "LiveSync has updated, please read the changelog!",
"moduleLiveSyncMain.logSafetyScanCompleted": "Additional safety scan completed",
"moduleLiveSyncMain.logSafetyScanFailed": "Additional safety scan has failed on a module",
"moduleLiveSyncMain.logUnloadingPlugin": "Unloading plugin...",
"moduleLiveSyncMain.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.",
"moduleLiveSyncMain.msgScramEnabled": "Self-hosted LiveSync has been configured to ignore some events. Is this correct?\n\n| Type | Status | Note |\n|:---:|:---:|---|\n| Storage Events | ${fileWatchingStatus} | Every modification will be ignored |\n| Database Events | ${parseReplicationStatus} | Every synchronised change will be postponed |\n\nDo you want to resume them and restart Obsidian?\n\n> [!DETAILS]-\n> These flags are set by the plug-in while rebuilding, or fetching. If the process ends abnormally, it may be kept unintended.\n> If you are not sure, you can try to rerun these processes. Make sure to back your vault up.\n",
"moduleLiveSyncMain.optionKeepLiveSyncDisabled": "Keep LiveSync disabled",
"moduleLiveSyncMain.optionResumeAndRestart": "Resume and restart Obsidian",
"moduleLiveSyncMain.titleScramEnabled": "Scram Enabled",
"moduleLocalDatabase.logWaitingForReady": "Waiting for ready...",
"moduleLog.showLog": "Show Log",
"moduleMigration.docUri": "https://github.com/vrtmrz/obsidian-livesync/blob/main/README.md#how-to-use",
"moduleMigration.fix0256.buttons.checkItLater": "Check it later",
"moduleMigration.fix0256.buttons.DismissForever": "I have fixed it, and do not ask again",
"moduleMigration.fix0256.buttons.fix": "Fix",
"moduleMigration.fix0256.message": "Due to a recent bug (in v0.25.6), some files may not have been saved correctly in the sync database.\nWe have scanned our files and found some that need to be fixed.\n\n**Files ready to be fixed:**\n\n${files}\n\nThese files have size-matched original file on the storage, and are likely to be recoverable.\nWe can use them to fix the database, please click the \"Fix\" button below to fix them.\n\n${messageUnrecoverable}\n\nIf you want to run it again, you can do so from Hatch.\n",
"moduleMigration.fix0256.messageUnrecoverable": "**Files cannot be fixed on this device:**\n\n${filesNotRecoverable}\n\nThese files have inconsistent metadata, and cannot be fixed on this device (mostly we cannot determine which is correct).\nTo restore them, please check your other devices (also by this feature) or restore them manually from a backup.\n",
"moduleMigration.fix0256.title": "Broken files has been detected",
"moduleMigration.insecureChunkExist.buttons.fetch": "I already rebuilt the remote. Fetch from the remote",
"moduleMigration.insecureChunkExist.buttons.later": "I will do it later",
"moduleMigration.insecureChunkExist.buttons.rebuild": "Rebuild Everything",
"moduleMigration.insecureChunkExist.laterMessage": "We strongly recommend to treat this as soon as possible!",
"moduleMigration.insecureChunkExist.message": "Some chunks are not securely stored and are not encrypted in databases.\n**Please rebuild the database to fix this issue**.\n\nIf your Remote Database is not configured with SSL, or using less-secure credentials, **you are at risk of exposing sensitive data**.\n\nNote: Please upgrade your Self-hosted LiveSync v0.25.6 or higher on all your devices, and back your vault up surely.\nNote2: Rebuild Everything and Fetch consumes a bit of time and traffic, please do it in off-peak hours and ensure a stable network connection.\n",
"moduleMigration.insecureChunkExist.title": "Insecure chunks found!",
"moduleMigration.logBulkSendCorrupted": "Send chunks in bulk has been enabled, however, this feature had been corrupted. Sorry for your inconvenience. Automatically disabled.",
"moduleMigration.logFetchRemoteTweakFailed": "Failed to fetch remote tweak values",
"moduleMigration.logLocalDatabaseNotReady": "Something went wrong! The local database is not ready",
"moduleMigration.logMigratedSameBehaviour": "Migrated to db:${current} with the same behaviour as before",
"moduleMigration.logMigrationFailed": "Migration failed or cancelled from ${old} to ${current}",
"moduleMigration.logRedflag2CreationFail": "Failed to create redflag2",
"moduleMigration.logRemoteTweakUnavailable": "Could not get remote tweak values",
"moduleMigration.logSetupCancelled": "The setup has been cancelled, Self-hosted LiveSync waiting for your setup!",
"moduleMigration.msgFetchRemoteAgain": "As you may already know, the self-hosted LiveSync has changed its default behaviour and database structure.\n\nAnd thankfully, with your time and efforts, the remote database appears to have already been migrated. Congratulations!\n\nHowever, we need a bit more. The configuration of this device is not compatible with the remote database. We will need to fetch the remote database again. Should we fetch from the remote again now?\n\n___Note: We cannot synchronise until the configuration has been changed and the database has been fetched again.___\n___Note2: The chunks are completely immutable, we can fetch only the metadata and difference.___",
"moduleMigration.msgInitialSetup": "Your device has **not been set up yet**. Let me guide you through the setup process.\n\nPlease keep in mind that every dialogue content can be copied to the clipboard. If you need to refer to it later, you can paste it into a note in Obsidian. You can also translate it into your language using a translation tool.\n\nFirst, do you have **Setup URI**?\n\nNote: If you do not know what it is, please refer to the [documentation](${URI_DOC}).",
"moduleMigration.msgRecommendSetupUri": "We strongly recommend that you generate a set-up URI and use it.\nIf you do not have knowledge about it, please refer to the [documentation](${URI_DOC}) (Sorry again, but it is important).\n\nHow do you want to set it up manually?",
"moduleMigration.msgSinceV02321": "Since v0.23.21, the self-hosted LiveSync has changed the default behaviour and database structure. The following changes have been made:\n\n1. **Case sensitivity of filenames**\n The handling of filenames is now case-insensitive. This is a beneficial change for most platforms, other than Linux and iOS, which do not manage filename case sensitivity effectively.\n (On These, a warning will be displayed for files with the same name but different cases).\n\n2. **Revision handling of the chunks**\n Chunks are immutable, which allows their revisions to be fixed. This change will enhance the performance of file saving.\n\n___However, to enable either of these changes, both remote and local databases need to be rebuilt. This process takes a few minutes, and we recommend doing it when you have ample time.___\n\n- If you wish to maintain the previous behaviour, you can skip this process by using `${KEEP}`.\n- If you do not have enough time, please choose `${DISMISS}`. You will be prompted again later.\n- If you have rebuilt the database on another device, please select `${DISMISS}` and try synchronizing again. Since a difference has been detected, you will be prompted again.",
"moduleMigration.optionAdjustRemote": "Adjust to remote",
"moduleMigration.optionDecideLater": "Decide it later",
"moduleMigration.optionEnableBoth": "Enable both",
"moduleMigration.optionEnableFilenameCaseInsensitive": "Enable only #1",
"moduleMigration.optionEnableFixedRevisionForChunks": "Enable only #2",
"moduleMigration.optionHaveSetupUri": "Yes, I have",
"moduleMigration.optionKeepPreviousBehaviour": "Keep previous behaviour",
"moduleMigration.optionManualSetup": "Set it up all manually",
"moduleMigration.optionNoAskAgain": "No, please ask again",
"moduleMigration.optionNoSetupUri": "No, I do not have",
"moduleMigration.optionRemindNextLaunch": "Remind me at the next launch",
"moduleMigration.optionSetupViaP2P": "Use %{short_p2p_sync} to set up",
"moduleMigration.optionSetupWizard": "Take me into the setup wizard",
"moduleMigration.optionYesFetchAgain": "Yes, fetch again",
"moduleMigration.titleCaseSensitivity": "Case Sensitivity",
"moduleMigration.titleRecommendSetupUri": "Recommendation to use Setup URI",
"moduleMigration.titleWelcome": "Welcome to Self-hosted LiveSync",
"moduleObsidianMenu.replicate": "Replicate",
"More actions": "More actions",
"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 connected device information found. Cancelling Garbage Collection.": "No connected device information found. Cancelling Garbage Collection.",
"No limit configured": "No limit configured",
"No, please take me back": "No, please take me back",
"Node ID": "Node ID",
"Node Information Missing": "Node Information Missing",
"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.",
"Obsidian version": "Obsidian version",
"obsidianLiveSyncSettingTab.btnApply": "Apply",
"obsidianLiveSyncSettingTab.btnCheck": "Check",
"obsidianLiveSyncSettingTab.btnCopy": "Copy",
"obsidianLiveSyncSettingTab.btnDisable": "Disable",
"obsidianLiveSyncSettingTab.btnDiscard": "Discard",
"obsidianLiveSyncSettingTab.btnEnable": "Enable",
"obsidianLiveSyncSettingTab.btnFix": "Fix",
"obsidianLiveSyncSettingTab.btnGotItAndUpdated": "I got it and updated.",
"obsidianLiveSyncSettingTab.btnNext": "Next",
"obsidianLiveSyncSettingTab.btnStart": "Start",
"obsidianLiveSyncSettingTab.btnTest": "Test",
"obsidianLiveSyncSettingTab.btnUse": "Use",
"obsidianLiveSyncSettingTab.buttonFetch": "Fetch",
"obsidianLiveSyncSettingTab.buttonNext": "Next",
"obsidianLiveSyncSettingTab.defaultLanguage": "Default",
"obsidianLiveSyncSettingTab.descConnectSetupURI": "This is the recommended method to set up Self-hosted LiveSync with a Setup URI.",
"obsidianLiveSyncSettingTab.descCopySetupURI": "Perfect for setting up a new device!",
"obsidianLiveSyncSettingTab.descEnableLiveSync": "Only enable this after configuring either of the above two options or completing all configuration manually.",
"obsidianLiveSyncSettingTab.descFetchConfigFromRemote": "Fetch necessary settings from already configured remote server.",
"obsidianLiveSyncSettingTab.descManualSetup": "Not recommended, but useful if you don't have a Setup URI",
"obsidianLiveSyncSettingTab.descTestDatabaseConnection": "Open database connection. If the remote database is not found and you have permission to create a database, the database will be created.",
"obsidianLiveSyncSettingTab.descValidateDatabaseConfig": "Checks and fixes any potential issues with the database config.",
"obsidianLiveSyncSettingTab.errAccessForbidden": "❗ Access forbidden.",
"obsidianLiveSyncSettingTab.errCannotContinueTest": "We could not continue the test.",
"obsidianLiveSyncSettingTab.errCorsCredentials": "❗ cors.credentials is wrong",
"obsidianLiveSyncSettingTab.errCorsNotAllowingCredentials": "❗ CORS is not allowing credentials",
"obsidianLiveSyncSettingTab.errCorsOrigins": "❗ cors.origins is wrong",
"obsidianLiveSyncSettingTab.errEnableCors": "❗ httpd.enable_cors is wrong",
"obsidianLiveSyncSettingTab.errEnableCorsChttpd": "❗ chttpd.enable_cors is wrong",
"obsidianLiveSyncSettingTab.errMaxDocumentSize": "❗ couchdb.max_document_size is low)",
"obsidianLiveSyncSettingTab.errMaxRequestSize": "❗ chttpd.max_http_request_size is low)",
"obsidianLiveSyncSettingTab.errMissingWwwAuth": "❗ httpd.WWW-Authenticate is missing",
"obsidianLiveSyncSettingTab.errRequireValidUser": "❗ chttpd.require_valid_user is wrong.",
"obsidianLiveSyncSettingTab.errRequireValidUserAuth": "❗ chttpd_auth.require_valid_user is wrong.",
"obsidianLiveSyncSettingTab.labelDisabled": "⏹️ : Disabled",
"obsidianLiveSyncSettingTab.labelEnabled": "🔁 : Enabled",
"obsidianLiveSyncSettingTab.levelAdvanced": " (Advanced)",
"obsidianLiveSyncSettingTab.levelEdgeCase": " (Edge Case)",
"obsidianLiveSyncSettingTab.levelPowerUser": " (Power User)",
"obsidianLiveSyncSettingTab.linkOpenInBrowser": "Open in browser",
"obsidianLiveSyncSettingTab.linkPageTop": "Page Top",
"obsidianLiveSyncSettingTab.linkTipsAndTroubleshooting": "Tips and Troubleshooting",
"obsidianLiveSyncSettingTab.linkTroubleshooting": "/docs/troubleshooting.md",
"obsidianLiveSyncSettingTab.logCannotUseCloudant": "This feature cannot be used with IBM Cloudant.",
"obsidianLiveSyncSettingTab.logCheckingConfigDone": "Checking configuration done",
"obsidianLiveSyncSettingTab.logCheckingConfigFailed": "Checking configuration failed",
"obsidianLiveSyncSettingTab.logCheckingDbConfig": "Checking database configuration",
"obsidianLiveSyncSettingTab.logCheckPassphraseFailed": "ERROR: Failed to check passphrase with the remote server:\n${db}.",
"obsidianLiveSyncSettingTab.logConfiguredDisabled": "Configured synchronization mode: DISABLED",
"obsidianLiveSyncSettingTab.logConfiguredLiveSync": "Configured synchronization mode: LiveSync",
"obsidianLiveSyncSettingTab.logConfiguredPeriodic": "Configured synchronization mode: Periodic",
"obsidianLiveSyncSettingTab.logCouchDbConfigFail": "CouchDB Configuration: ${title} failed",
"obsidianLiveSyncSettingTab.logCouchDbConfigSet": "CouchDB Configuration: ${title} -> Set ${key} to ${value}",
"obsidianLiveSyncSettingTab.logCouchDbConfigUpdated": "CouchDB Configuration: ${title} successfully updated",
"obsidianLiveSyncSettingTab.logDatabaseConnected": "Database connected",
"obsidianLiveSyncSettingTab.logEncryptionNoPassphrase": "You cannot enable encryption without a passphrase",
"obsidianLiveSyncSettingTab.logEncryptionNoSupport": "Your device does not support encryption.",
"obsidianLiveSyncSettingTab.logErrorOccurred": "An error occurred!!",
"obsidianLiveSyncSettingTab.logEstimatedSize": "Estimated size: ${size}",
"obsidianLiveSyncSettingTab.logPassphraseInvalid": "Passphrase is not valid, please fix it.",
"obsidianLiveSyncSettingTab.logPassphraseNotCompatible": "ERROR: Passphrase is not compatible with the remote server! Please check it again!",
"obsidianLiveSyncSettingTab.logRebuildNote": "Syncing has been disabled, fetch and re-enabled if desired.",
"obsidianLiveSyncSettingTab.logSelectAnyPreset": "Select any preset.",
"obsidianLiveSyncSettingTab.logServerConfigurationCheck": "obsidianLiveSyncSettingTab.logServerConfigurationCheck",
"obsidianLiveSyncSettingTab.msgAreYouSureProceed": "Are you sure to proceed?",
"obsidianLiveSyncSettingTab.msgChangesNeedToBeApplied": "Changes need to be applied!",
"obsidianLiveSyncSettingTab.msgConfigCheck": "--Config check--",
"obsidianLiveSyncSettingTab.msgConfigCheckFailed": "The configuration check has failed. Do you want to continue anyway?",
"obsidianLiveSyncSettingTab.msgConnectionCheck": "--Connection check--",
"obsidianLiveSyncSettingTab.msgConnectionProxyNote": "If you're having trouble with the Connection-check (even after checking config), please check your reverse proxy configuration.",
"obsidianLiveSyncSettingTab.msgCurrentOrigin": "Current origin: ${origin}",
"obsidianLiveSyncSettingTab.msgDiscardConfirmation": "Do you really want to discard existing settings and databases?",
"obsidianLiveSyncSettingTab.msgDone": "--Done--",
"obsidianLiveSyncSettingTab.msgEnableCors": "Set httpd.enable_cors",
"obsidianLiveSyncSettingTab.msgEnableCorsChttpd": "Set chttpd.enable_cors",
"obsidianLiveSyncSettingTab.msgEnableEncryptionRecommendation": "We recommend enabling End-To-End Encryption, and Path Obfuscation. Are you sure you want to continue without encryption?",
"obsidianLiveSyncSettingTab.msgFetchConfigFromRemote": "Do you want to fetch the config from the remote server?",
"obsidianLiveSyncSettingTab.msgGenerateSetupURI": "All done! Do you want to generate a setup URI to set up other devices?",
"obsidianLiveSyncSettingTab.msgIfConfigNotPersistent": "If the server configuration is not persistent (e.g., running on docker), the values here may change. Once you are able to connect, please update the settings in the server's local.ini.",
"obsidianLiveSyncSettingTab.msgInvalidPassphrase": "Your encryption passphrase might be invalid. Are you sure you want to continue?",
"obsidianLiveSyncSettingTab.msgNewVersionNote": "Here due to an upgrade notification? Please review the version history. If you're satisfied, click the button. A new update will prompt this again.",
"obsidianLiveSyncSettingTab.msgNonHTTPSInfo": "Configured as non-HTTPS URI. Be warned that this may not work on mobile devices.",
"obsidianLiveSyncSettingTab.msgNonHTTPSWarning": "Cannot connect to non-HTTPS URI. Please update your config and try again.",
"obsidianLiveSyncSettingTab.msgNotice": "---Notice---",
"obsidianLiveSyncSettingTab.msgObjectStorageWarning": "WARNING: This feature is a Work In Progress, so please keep in mind the following:\n- Append only architecture. A rebuild is required to shrink the storage.\n- A bit fragile.\n- When first syncing, all history will be transferred from the remote. Be mindful of data caps and slow speeds.\n- Only differences are synced live.\n\nIf you run into any issues, or have ideas about this feature, please create a issue on GitHub.\nI appreciate you for your great dedication.",
"obsidianLiveSyncSettingTab.msgOriginCheck": "Origin check: ${org}",
"obsidianLiveSyncSettingTab.msgRebuildRequired": "Rebuilding Databases are required to apply the changes.. Please select the method to apply the changes.\n\n<details>\n<summary>Legends</summary>\n\n| Symbol | Meaning |\n|: ------ :| ------- |\n| ⇔ | Up to Date |\n| ⇄ | Synchronise to balance |\n| ⇐,⇒ | Transfer to overwrite |\n| ⇠,⇢ | Transfer to overwrite from other side |\n\n</details>\n\n## ${OPTION_REBUILD_BOTH}\nAt a glance: 📄 ⇒¹ 💻 ⇒² 🛰️ ⇢ⁿ 💻 ⇄ⁿ⁺¹ 📄\nReconstruct both the local and remote databases using existing files from this device.\nThis causes a lockout other devices, and they need to perform fetching.\n## ${OPTION_FETCH}\nAt a glance: 📄 ⇄² 💻 ⇐¹ 🛰️ ⇔ 💻 ⇔ 📄\nInitialise the local database and reconstruct it using data fetched from the remote database.\nThis case includes the case which you have rebuilt the remote database.\n## ${OPTION_ONLY_SETTING}\nStore only the settings. **Caution: This may lead to data corruption**; database reconstruction is generally necessary.",
"obsidianLiveSyncSettingTab.msgSelectAndApplyPreset": "Please select and apply any preset item to complete the wizard.",
"obsidianLiveSyncSettingTab.msgSetCorsCredentials": "Set cors.credentials",
"obsidianLiveSyncSettingTab.msgSetCorsOrigins": "Set cors.origins",
"obsidianLiveSyncSettingTab.msgSetMaxDocSize": "Set couchdb.max_document_size",
"obsidianLiveSyncSettingTab.msgSetMaxRequestSize": "Set chttpd.max_http_request_size",
"obsidianLiveSyncSettingTab.msgSetRequireValidUser": "Set chttpd.require_valid_user = true",
"obsidianLiveSyncSettingTab.msgSetRequireValidUserAuth": "Set chttpd_auth.require_valid_user = true",
"obsidianLiveSyncSettingTab.msgSettingModified": "The setting \"${setting}\" was modified from another device. Click {HERE} to reload settings. Click elsewhere to ignore changes.",
"obsidianLiveSyncSettingTab.msgSettingsUnchangeableDuringSync": "These settings are unable to be changed during synchronization. Please disable all syncing in the \"Sync Settings\" to unlock.",
"obsidianLiveSyncSettingTab.msgSetWwwAuth": "Set httpd.WWW-Authenticate",
"obsidianLiveSyncSettingTab.nameApplySettings": "Apply Settings",
"obsidianLiveSyncSettingTab.nameConnectSetupURI": "Connect with Setup URI",
"obsidianLiveSyncSettingTab.nameCopySetupURI": "Copy the current settings to a Setup URI",
"obsidianLiveSyncSettingTab.nameDisableHiddenFileSync": "Disable Hidden files sync",
"obsidianLiveSyncSettingTab.nameDiscardSettings": "Discard existing settings and databases",
"obsidianLiveSyncSettingTab.nameEnableHiddenFileSync": "Enable Hidden files sync",
"obsidianLiveSyncSettingTab.nameEnableLiveSync": "Enable LiveSync",
"obsidianLiveSyncSettingTab.nameHiddenFileSynchronization": "Hidden file synchronization",
"obsidianLiveSyncSettingTab.nameManualSetup": "Manual Setup",
"obsidianLiveSyncSettingTab.nameTestConnection": "Test Connection",
"obsidianLiveSyncSettingTab.nameTestDatabaseConnection": "Test Database Connection",
"obsidianLiveSyncSettingTab.nameValidateDatabaseConfig": "Validate Database Configuration",
"obsidianLiveSyncSettingTab.okAdminPrivileges": "✔ You have administrator privileges.",
"obsidianLiveSyncSettingTab.okCorsCredentials": "✔ cors.credentials is ok.",
"obsidianLiveSyncSettingTab.okCorsCredentialsForOrigin": "CORS credentials OK",
"obsidianLiveSyncSettingTab.okCorsOriginMatched": "✔ CORS origin OK",
"obsidianLiveSyncSettingTab.okCorsOrigins": "✔ cors.origins is ok.",
"obsidianLiveSyncSettingTab.okEnableCors": "✔ httpd.enable_cors is ok.",
"obsidianLiveSyncSettingTab.okEnableCorsChttpd": "✔ chttpd.enable_cors is ok.",
"obsidianLiveSyncSettingTab.okMaxDocumentSize": "✔ couchdb.max_document_size is ok.",
"obsidianLiveSyncSettingTab.okMaxRequestSize": "✔ chttpd.max_http_request_size is ok.",
"obsidianLiveSyncSettingTab.okRequireValidUser": "✔ chttpd.require_valid_user is ok.",
"obsidianLiveSyncSettingTab.okRequireValidUserAuth": "✔ chttpd_auth.require_valid_user is ok.",
"obsidianLiveSyncSettingTab.okWwwAuth": "✔ httpd.WWW-Authenticate is ok.",
"obsidianLiveSyncSettingTab.optionApply": "Apply",
"obsidianLiveSyncSettingTab.optionCancel": "Cancel",
"obsidianLiveSyncSettingTab.optionCouchDB": "CouchDB",
"obsidianLiveSyncSettingTab.optionDisableAllAutomatic": "Disable all automatic",
"obsidianLiveSyncSettingTab.optionFetchFromRemote": "Fetch from Remote",
"obsidianLiveSyncSettingTab.optionHere": "HERE",
"obsidianLiveSyncSettingTab.optionLiveSync": "LiveSync",
"obsidianLiveSyncSettingTab.optionMinioS3R2": "Minio,S3,R2",
"obsidianLiveSyncSettingTab.optionOkReadEverything": "OK, I have read everything.",
"obsidianLiveSyncSettingTab.optionOnEvents": "On events",
"obsidianLiveSyncSettingTab.optionPeriodicAndEvents": "Periodic and on events",
"obsidianLiveSyncSettingTab.optionPeriodicWithBatch": "Periodic w/ batch",
"obsidianLiveSyncSettingTab.optionRebuildBoth": "Rebuild Both from This Device",
"obsidianLiveSyncSettingTab.optionSaveOnlySettings": "(Danger) Save Only Settings",
"obsidianLiveSyncSettingTab.panelChangeLog": "Change Log",
"obsidianLiveSyncSettingTab.panelGeneralSettings": "General Settings",
"obsidianLiveSyncSettingTab.panelPrivacyEncryption": "Privacy & Encryption",
"obsidianLiveSyncSettingTab.panelRemoteConfiguration": "Remote Configuration",
"obsidianLiveSyncSettingTab.panelSetup": "Setup",
"obsidianLiveSyncSettingTab.serverVersion": "Server info: ${info}",
"obsidianLiveSyncSettingTab.titleActiveRemoteServer": "Active Remote Server",
"obsidianLiveSyncSettingTab.titleAppearance": "Appearance",
"obsidianLiveSyncSettingTab.titleConflictResolution": "Conflict resolution",
"obsidianLiveSyncSettingTab.titleCongratulations": "Congratulations!",
"obsidianLiveSyncSettingTab.titleCouchDB": "CouchDB",
"obsidianLiveSyncSettingTab.titleDeletionPropagation": "Deletion Propagation",
"obsidianLiveSyncSettingTab.titleEncryptionNotEnabled": "Encryption is not enabled",
"obsidianLiveSyncSettingTab.titleEncryptionPassphraseInvalid": "Encryption Passphrase Invalid",
"obsidianLiveSyncSettingTab.titleExtraFeatures": "Enable extra and advanced features",
"obsidianLiveSyncSettingTab.titleFetchConfig": "Fetch Config",
"obsidianLiveSyncSettingTab.titleFetchConfigFromRemote": "Fetch config from remote server",
"obsidianLiveSyncSettingTab.titleFetchSettings": "Fetch Settings",
"obsidianLiveSyncSettingTab.titleHiddenFiles": "Hidden Files",
"obsidianLiveSyncSettingTab.titleLogging": "Logging",
"obsidianLiveSyncSettingTab.titleMinioS3R2": "Minio,S3,R2",
"obsidianLiveSyncSettingTab.titleNotification": "Notification",
"obsidianLiveSyncSettingTab.titleOnlineTips": "Online Tips",
"obsidianLiveSyncSettingTab.titleQuickSetup": "Quick Setup",
"obsidianLiveSyncSettingTab.titleRebuildRequired": "Rebuild Required",
"obsidianLiveSyncSettingTab.titleRemoteConfigCheckFailed": "Remote Configuration Check Failed",
"obsidianLiveSyncSettingTab.titleRemoteServer": "Remote Server",
"obsidianLiveSyncSettingTab.titleReset": "Reset",
"obsidianLiveSyncSettingTab.titleSetupOtherDevices": "To setup other devices",
"obsidianLiveSyncSettingTab.titleSynchronizationMethod": "Synchronization Method",
"obsidianLiveSyncSettingTab.titleSynchronizationPreset": "Synchronization Preset",
"obsidianLiveSyncSettingTab.titleSyncSettings": "Sync Settings",
"obsidianLiveSyncSettingTab.titleSyncSettingsViaMarkdown": "Sync Settings via Markdown",
"obsidianLiveSyncSettingTab.titleUpdateThinning": "Update Thinning",
"obsidianLiveSyncSettingTab.warnCorsOriginUnmatched": "⚠ CORS Origin is unmatched ${from}->${to}",
"obsidianLiveSyncSettingTab.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.",
"P2P.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.",
"P2P.DisabledButNeed": "%{title_p2p_sync} is disabled. Do you really want to enable it?",
"P2P.FailedToOpen": "Failed to open P2P connection to the signalling server.",
"P2P.NoAutoSyncPeers": "No auto-sync peers found. Please set peers on the %{long_p2p_sync} pane.",
"P2P.NoKnownPeers": "No peers has been detected, waiting incoming other peers...",
"P2P.Note.description": " This replicator allows us to synchronise our vault with other devices\nusing a peer-to-peer connection. We can use this to synchronise our vault with our other devices without using a cloud service.\nThis 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.\n\nThe 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.\n\nBy 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.",
"P2P.Note.important_note": "Peer-to-Peer Replicator.",
"P2P.Note.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.",
"P2P.Note.Summary": "What is this feature? (and some important notes, please read once)",
"P2P.NotEnabled": "%{title_p2p_sync} is not enabled. We cannot open a new connection.",
"P2P.P2PReplication": "%{P2P} Replication",
"P2P.PaneTitle": "%{long_p2p_sync}",
"P2P.ReplicatorInstanceMissing": "P2P Sync replicator is not found, possibly not have been configured or enabled.",
"P2P.SeemsOffline": "Peer ${name} seems offline, skipped.",
"P2P.SyncAlreadyRunning": "P2P Sync is already running.",
"P2P.SyncCompleted": "P2P Sync completed.",
"P2P.SyncStartedWith": "P2P Sync with ${name} have been started.",
"paneMaintenance.markDeviceResolvedAfterBackup": "paneMaintenance.markDeviceResolvedAfterBackup",
"paneMaintenance.remoteLockedAndDeviceNotAccepted": "paneMaintenance.remoteLockedAndDeviceNotAccepted",
"paneMaintenance.remoteLockedResolvedDevice": "paneMaintenance.remoteLockedResolvedDevice",
"paneMaintenance.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",
"Paste the Setup URI generated from one of your active devices.": "Paste the Setup URI generated from one of your active devices.",
"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 only": "Peer-to-Peer only",
"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 disable 'Read chunks online' in settings to use Garbage Collection.": "Please disable 'Read chunks online' in settings to use Garbage Collection.",
"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 select 'Cancel' explicitly to cancel this operation.": "Please select 'Cancel' explicitly to cancel this operation.",
"Please select a method to import the settings from another device.": "Please select a method to import the settings from another device.",
"Please select an option to proceed": "Please select an option to proceed",
"Please select the type of server to which you are connecting.": "Please select the type of server to which you are connecting.",
"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",
"Plug-in version": "Plug-in version",
"Prepare the 'report' to create an issue": "Prepare the 'report' to create an issue",
"Presets": "Presets",
"Proceed Garbage Collection": "Proceed Garbage Collection",
"Proceed with Setup URI": "Proceed with Setup URI",
"Proceeding with Garbage Collection, ignoring missing nodes.": "Proceeding with Garbage Collection, ignoring missing nodes.",
"Proceeding with Garbage Collection.": "Proceeding with Garbage Collection.",
"Process small files in the foreground": "Process small files in the foreground",
"Progress": "Progress",
"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?\n- %{RedFlag.Fetch.Method.FetchSafer}.\n **Low Traffic**, **High CPU**, **Low Risk**\n Recommended if ...\n - Files possibly inconsistent\n - Files were not so much\n- %{RedFlag.Fetch.Method.FetchSmoother}.\n **Low Traffic**, **Moderate CPU**, **Low to Moderate Risk**\n Recommended if ...\n - Files probably consistent\n - You have a lot of files.\n- %{RedFlag.Fetch.Method.FetchTraditional}.\n **High Traffic**, **Low CPU**, **Low to Moderate Risk**\n\n>[!INFO]- Details\n> ## %{RedFlag.Fetch.Method.FetchSafer}.\n> **Low Traffic**, **High CPU**, **Low Risk**\n> This option first creates a local database using existing local files before fetching data from the remote source.\n> If matching files exist both locally and remotely, only the differences between them will be transferred.\n> 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.\n> This is generally the safest method, minimizing data loss risk.\n> ## %{RedFlag.Fetch.Method.FetchSmoother}.\n> **Low Traffic**, **Moderate CPU**, **Low to Moderate Risk** (depending operation)\n> 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.\n> 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.\n> 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`).\n> This uses less CPU and faster than \"%{RedFlag.Fetch.Method.FetchSafer}\", but it may lead to data loss if not used carefully.\n> ## %{RedFlag.Fetch.Method.FetchTraditional}.\n> **High Traffic**, **Low CPU**, **Low to Moderate Risk** (depending operation)\n> All things will be fetched from the remote.\n> Similar to the %{RedFlag.Fetch.Method.FetchSmoother}, but all chunks are fetched from the remote source.\n> 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.\n> However, it is often considered the most stable method because it is the longest-established and most straightforward approach.",
"RedFlag.Fetch.Method.FetchSafer": "Create a local database once before fetching",
"RedFlag.Fetch.Method.FetchSmoother": "Create local file chunks before fetching",
"RedFlag.Fetch.Method.FetchTraditional": "Fetch everything from the remote",
"RedFlag.Fetch.Method.Title": "How do you want to fetch?",
"RedFlag.FetchRemoteConfig.Buttons.Cancel": "No, use local settings",
"RedFlag.FetchRemoteConfig.Buttons.Fetch": "Yes, fetch and apply remote settings",
"RedFlag.FetchRemoteConfig.Message": "Do you want to fetch and apply remotely stored preference settings to the device?",
"RedFlag.FetchRemoteConfig.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",
"Replicator.Dialogue.Locked.Action.Fetch": "Reset Synchronisation on This Device",
"Replicator.Dialogue.Locked.Action.Unlock": "Unlock the remote database",
"Replicator.Dialogue.Locked.Message": "Remote database is locked. This is due to a rebuild on one of the terminals.\nThe device is therefore asked to withhold the connection to avoid database corruption.\n\nThere are three options that we can do:\n\n- %{Replicator.Dialogue.Locked.Action.Fetch}\n 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.\n- %{Replicator.Dialogue.Locked.Action.Unlock}\n 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.\n- %{Replicator.Dialogue.Locked.Action.Dismiss}\n This will cancel the operation. And we will asked again on next request.\n",
"Replicator.Dialogue.Locked.Message.Fetch": "Fetch all has been scheduled. Plug-in will be restarted to perform it.",
"Replicator.Dialogue.Locked.Message.Unlocked": "The remote database has been unlocked. Please retry the operation.",
"Replicator.Dialogue.Locked.Title": "Locked",
"Replicator.Message.Cleaned": "Database cleaning up is in process. replication has been cancelled",
"Replicator.Message.InitialiseFatalError": "No replicator is available, this is the fatal error.",
"Replicator.Message.Pending": "Some file events are pending. Replication has been cancelled.",
"Replicator.Message.SomeModuleFailed": "Replication has been cancelled by some module failure",
"Replicator.Message.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",
"S3/MinIO/R2 Object Storage": "S3/MinIO/R2 Object Storage",
"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 a QR Code (Recommended for mobile)": "Scan a QR Code (Recommended for mobile)",
"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",
"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.",
"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!\n\nNote: 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.\nNote 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.\nNote 3: The public key should be configured in the remote database, and the private key should be configured in local devices.\n\n>[!FOR YOUR EYES ONLY]-\n> <div class=\"sls-keypair\">\n>\n> ### Public Key\n> ```\n${public_key}\n> ```\n>\n> ### Private Key\n> ```\n${private_key}\n> ```\n>\n> </div>\n\n>[!Both for copying]-\n>\n> <div class=\"sls-keypair\">\n>\n> ```\n${public_key}\n${private_key}\n> ```\n>\n> </div>\n\n",
"Setting.GenerateKeyPair.Title": "New key pair has been generated!",
"Setting.TroubleShooting": "TroubleShooting",
"Setting.TroubleShooting.Doctor": "Setting Doctor",
"Setting.TroubleShooting.Doctor.Desc": "Detects non optimal settings. (Same as during migration)",
"Setting.TroubleShooting.ScanBrokenFiles": "Scan for broken files",
"Setting.TroubleShooting.ScanBrokenFiles.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 URI dialog cancelled.": "Setup URI dialog cancelled.",
"Setup.Apply.Buttons.ApplyAndFetch": "Apply and Fetch",
"Setup.Apply.Buttons.ApplyAndMerge": "Apply and Merge",
"Setup.Apply.Buttons.ApplyAndRebuild": "Apply and Rebuild",
"Setup.Apply.Buttons.Cancel": "Discard and Cancel",
"Setup.Apply.Buttons.OnlyApply": "Only Apply",
"Setup.Apply.Message": "The new configuration is ready. Let us proceed to apply it.\nThere are several ways to apply this:\n\n- Apply and Fetch\n Configure this device as a new client. After applying, synchronise from the remote server.\n- Apply and Merge\n Configure on a device that already has the file. It processes the local files and transfers the differences. Conflicts may arise.\n- Apply and Rebuild\n Rebuild the remote using local files. This is typically done if the server becomes corrupted or we wish to start from scratch.\n Other devices will be locked and required to re-fetch.\n- Only Apply\n Apply only. Conflicts may arise if a rebuild is required.",
"Setup.Apply.Title": "Apply new configuration from the ${method}",
"Setup.Apply.WarningRebuildRecommended": "NOTE: after adjusting the settings, it has been determined that a rebuild is required; Just Import is not recommended.",
"Setup.Doctor.Buttons.No": "No, please use the settings in the URI as is",
"Setup.Doctor.Buttons.Yes": "Yes, please consult the doctor",
"Setup.Doctor.Message": "Self-hosted LiveSync has gradually become longer in history and some recommended settings have changed.\n\nNow, setup is a very good time to do this.\n\nDo you want to run Doctor to check if the imported settings are optimal compared to the latest state?",
"Setup.Doctor.Title": "Do you want to consult the doctor?",
"Setup.FetchRemoteConf.Buttons.Fetch": "Yes, please fetch the configuration",
"Setup.FetchRemoteConf.Buttons.Skip": "No, please use the settings in the URI",
"Setup.FetchRemoteConf.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.\n\nHowever, 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?\n\nNote: Mostly, you are safe to do this, that your remote database is hosted with a SSL certificate, and your network is not compromised.",
"Setup.FetchRemoteConf.Title": "Fetch configuration from remote database?",
"Setup.QRCode": "We have generated a QR code to transfer the settings. Please scan the QR code with your phone or other device.\nNote: The QR code is not encrypted, so be careful to open this.\n\n>[!FOR YOUR EYES ONLY]-\n> <div class=\"sls-qr\">${qr_image}</div>",
"Setup.RemoteE2EE.AdvancedTitle": "Advanced",
"Setup.RemoteE2EE.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.",
"Setup.RemoteE2EE.ButtonCancel": "Cancel",
"Setup.RemoteE2EE.ButtonProceed": "Proceed",
"Setup.RemoteE2EE.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.",
"Setup.RemoteE2EE.Guidance": "Please configure your end-to-end encryption settings.",
"Setup.RemoteE2EE.LabelEncrypt": "End-to-End Encryption",
"Setup.RemoteE2EE.LabelEncryptionAlgorithm": "Encryption Algorithm",
"Setup.RemoteE2EE.LabelObfuscateProperties": "Obfuscate Properties",
"Setup.RemoteE2EE.MultiDestinationWarning": "This setting must be the same even when connecting to multiple synchronisation destinations.",
"Setup.RemoteE2EE.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.",
"Setup.RemoteE2EE.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.",
"Setup.RemoteE2EE.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.",
"Setup.RemoteE2EE.PlaceholderPassphrase": "Enter your passphrase",
"Setup.RemoteE2EE.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.",
"Setup.RemoteE2EE.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.",
"Setup.RemoteE2EE.StronglyRecommendedTitle": "Strongly Recommended",
"Setup.RemoteE2EE.Title": "End-to-End Encryption",
"Setup.ScanQRCode.ButtonClose": "Close this dialog",
"Setup.ScanQRCode.Guidance": "Please follow the steps below to import settings from your existing device.",
"Setup.ScanQRCode.Step1": "On this device, please keep this Vault open.",
"Setup.ScanQRCode.Step2": "On the source device, open Obsidian.",
"Setup.ScanQRCode.Step3": "On the source device, from the command palette, run the 'Show settings as a QR code' command.",
"Setup.ScanQRCode.Step4": "On this device, switch to the camera app or use a QR code scanner to scan the displayed QR code.",
"Setup.ScanQRCode.Title": "Scan QR Code",
"Setup.ShowQRCode": "Show QR code",
"Setup.ShowQRCode.Desc": "Show QR code to transfer the settings.",
"Setup.UseSetupURI.ButtonCancel": "Cancel",
"Setup.UseSetupURI.ButtonProceed": "Test Settings and Continue",
"Setup.UseSetupURI.ErrorFailedToParse": "Failed to parse the Setup URI. Please check the URI and passphrase.",
"Setup.UseSetupURI.ErrorPassphraseRequired": "Please enter the vault passphrase.",
"Setup.UseSetupURI.GuidanceLine1": "Please enter the Setup URI that was generated during server installation or on another device, along with the vault passphrase.",
"Setup.UseSetupURI.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.",
"Setup.UseSetupURI.InvalidInfo": "The Setup URI is invalid. Please check it and try again.",
"Setup.UseSetupURI.LabelPassphrase": "Vault passphrase",
"Setup.UseSetupURI.LabelSetupURI": "Setup URI",
"Setup.UseSetupURI.PlaceholderPassphrase": "Enter your vault passphrase",
"Setup.UseSetupURI.Title": "Enter Setup URI",
"Setup.UseSetupURI.ValidInfo": "The Setup URI is valid and ready to use.",
"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.",
"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}).\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.",
"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",
"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.",
"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 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:\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 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 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.",
"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.",
"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.",
"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.DisableAutoAcceptCompatible": "Disable auto-accept",
"TweakMismatchResolve.Action.Dismiss": "Dismiss",
"TweakMismatchResolve.Action.EnableAutoAcceptCompatible": "Enable auto-accept",
"TweakMismatchResolve.Action.UseConfigured": "Use configured settings",
"TweakMismatchResolve.Action.UseMine": "Update remote database settings",
"TweakMismatchResolve.Action.UseMineAcceptIncompatible": "Update remote database settings but keep as is",
"TweakMismatchResolve.Action.UseMineWithRebuild": "Update remote database settings and rebuild again",
"TweakMismatchResolve.Action.UseRemote": "Apply settings to this device",
"TweakMismatchResolve.Action.UseRemoteAcceptIncompatible": "Apply settings to this device, but and ignore incompatibility",
"TweakMismatchResolve.Action.UseRemoteWithRebuild": "Apply settings to this device, and fetch again",
"TweakMismatchResolve.Message.AutoAcceptCompatibleUndefined": "\nIt appears that the settings differ for each device. You can now automatically apply compatible changes to these configurations.\nWould you like to enable this `auto-accept` setting?",
"TweakMismatchResolve.Message.Main": "\nThe settings in the remote database are as follows. These values are configured by other devices, which are synchronised with this device at least once.\n\nIf you want to use these settings, please select %{TweakMismatchResolve.Action.UseConfigured}.\nIf you want to keep the settings of this device, please select %{TweakMismatchResolve.Action.Dismiss}.\n\n${table}\n\n>[!TIP]\n> If you want to synchronise all settings, please use `Sync settings via markdown` after applying minimal configuration with this feature.\n\n${additionalMessage}",
"TweakMismatchResolve.Message.MainTweakResolving": "Your configuration has not been matched with the one on the remote server.\n\nFollowing configuration should be matched:\n\n${table}\n\nLet us know your decision.\n\n${additionalMessage}",
"TweakMismatchResolve.Message.mineUpdated": "The device configuration have been adjusted.",
"TweakMismatchResolve.Message.remoteUpdated": "The configuration stored remotely has been updated.",
"TweakMismatchResolve.Message.UseRemote.WarningRebuildRecommended": "\n>[!NOTICE]\n> 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.\n> ***Please ensure that you have time and are connected to a stable network to apply!***",
"TweakMismatchResolve.Message.UseRemote.WarningRebuildRequired": "\n>[!WARNING]\n> Some remote configurations are not compatible with the local database of this device. Rebuilding the local database will be required.\n> ***Please ensure that you have time and are connected to a stable network to apply!***",
"TweakMismatchResolve.Message.WarningIncompatibleRebuildRecommended": "\n>[!NOTICE]\n> We have detected that some of the values are different to make incompatible the local database with the remote database.\n> 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.\n> If you want to rebuild, it takes a few minutes or more. **Make sure it is safe to perform it now.**",
"TweakMismatchResolve.Message.WarningIncompatibleRebuildRequired": "\n>[!WARNING]\n> We have detected that some of the values are different to make incompatible the local database with the remote database.\n> 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.**",
"TweakMismatchResolve.Table": "| Value name | This device | On Remote |\n|: --- |: ---- :|: ---- :|\n${rows}\n\n",
"TweakMismatchResolve.Table.Row": "| ${name} | ${self} | ${remote} |",
"TweakMismatchResolve.Title": "Configuration Mismatch Detected",
"TweakMismatchResolve.Title.AutoAcceptCompatible": "Auto-Accept Available",
"TweakMismatchResolve.Title.TweakResolving": "Configuration Mismatch Detected",
"TweakMismatchResolve.Title.UseRemoteConfig": "Use Remote Configuration",
"Ui.Common.Signal.Caution": "CAUTION",
"Ui.Common.Signal.Danger": "DANGER",
"Ui.Common.Signal.Notice": "NOTICE",
"Ui.Common.Signal.Warning": "WARNING",
"Ui.Settings.Advanced.LocalDatabaseTweak": "Local Database Tweak",
"Ui.Settings.Advanced.MemoryCache": "Memory Cache",
"Ui.Settings.Advanced.TransferTweak": "Transfer Tweak",
"Ui.Settings.Common.Analyse": "Analyse",
"Ui.Settings.Common.Back": "Back",
"Ui.Settings.Common.Check": "Check",
"Ui.Settings.Common.Configure": "Configure",
"Ui.Settings.Common.Continue": "Continue",
"Ui.Settings.Common.Delete": "Delete",
"Ui.Settings.Common.Fetch": "Fetch",
"Ui.Settings.Common.Lock": "Lock",
"Ui.Settings.Common.Merge": "Merge",
"Ui.Settings.Common.Open": "Open",
"Ui.Settings.Common.Overwrite": "Overwrite",
"Ui.Settings.Common.Perform": "Perform",
"Ui.Settings.Common.ResetAll": "Reset all",
"Ui.Settings.Common.ResolveAll": "Resolve All",
"Ui.Settings.Common.Scan": "Scan",
"Ui.Settings.Common.Send": "Send",
"Ui.Settings.Common.Use": "Use",
"Ui.Settings.Common.VerifyAll": "Verify all",
"Ui.Settings.CustomizationSync.OpenDesc": "Open the dialog",
"Ui.Settings.CustomizationSync.Panel": "Customization Sync",
"Ui.Settings.CustomizationSync.WarnChangeDeviceName": "We cannot change the device name while this feature is enabled. Please disable this feature to change the device name.",
"Ui.Settings.CustomizationSync.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.",
"Ui.Settings.Hatch.AnalyseDatabaseUsage": "Analyse database usage",
"Ui.Settings.Hatch.AnalyseDatabaseUsageDesc": "Analyse database usage and generate a TSV report for diagnosis yourself. You can paste the generated report with any spreadsheet you like.",
"Ui.Settings.Hatch.BackToNonConfigured": "Back to non-configured",
"Ui.Settings.Hatch.ConvertNonObfuscated": "Check and convert non-path-obfuscated files",
"Ui.Settings.Hatch.ConvertNonObfuscatedDesc": "Check the local database for files that were stored without path obfuscation and convert them when needed.",
"Ui.Settings.Hatch.CopyIssueReport": "Copy Report to clipboard",
"Ui.Settings.Hatch.DatabaseLabel": "Database: ${details}",
"Ui.Settings.Hatch.DatabaseToStorage": "Database -> Storage",
"Ui.Settings.Hatch.DeleteCustomizationSyncData": "Delete all customization sync data",
"Ui.Settings.Hatch.GeneratedReport": "Generated report",
"Ui.Settings.Hatch.Missing": "Missing",
"Ui.Settings.Hatch.ModifiedSize": "Modified: ${modified}, Size: ${size}",
"Ui.Settings.Hatch.ModifiedSizeActual": "Modified: ${modified}, Size: ${size} (actual size: ${actualSize})",
"Ui.Settings.Hatch.PrepareIssueReport": "Prepare the 'report' to create an issue",
"Ui.Settings.Hatch.RecoveryAndRepair": "Recovery and Repair",
"Ui.Settings.Hatch.RecreateAll": "Recreate all",
"Ui.Settings.Hatch.RecreateMissingChunks": "Recreate missing chunks for all files",
"Ui.Settings.Hatch.RecreateMissingChunksDesc": "This will recreate chunks for all files. If there were missing chunks, this may fix the errors.",
"Ui.Settings.Hatch.ResetPanel": "Reset",
"Ui.Settings.Hatch.ResetRemoteUsage": "Reset notification threshold and check the remote database usage",
"Ui.Settings.Hatch.ResetRemoteUsageDesc": "Reset the remote storage size threshold and check the remote storage size again.",
"Ui.Settings.Hatch.ResolveAllConflictedFiles": "Resolve all conflicted files by the newer one",
"Ui.Settings.Hatch.ResolveAllConflictedFilesDesc": "Resolve all conflicted files by the newer one. Caution: This will overwrite the older one, and cannot resurrect the overwritten one.",
"Ui.Settings.Hatch.RunDoctor": "Run Doctor",
"Ui.Settings.Hatch.ScanBrokenFiles": "Scan for broken files",
"Ui.Settings.Hatch.ScramSwitches": "Scram Switches",
"Ui.Settings.Hatch.ShowHistory": "Show history",
"Ui.Settings.Hatch.StorageLabel": "Storage: ${details}",
"Ui.Settings.Hatch.StorageToDatabase": "Storage -> Database",
"Ui.Settings.Hatch.VerifyAndRepairAllFiles": "Verify and repair all files",
"Ui.Settings.Hatch.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.",
"Ui.Settings.Maintenance.Cleanup": "Perform cleanup",
"Ui.Settings.Maintenance.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.",
"Ui.Settings.Maintenance.DeleteLocalDatabase": "Delete local database to reset or uninstall Self-hosted LiveSync",
"Ui.Settings.Maintenance.EmergencyRestart": "Emergency restart",
"Ui.Settings.Maintenance.EmergencyRestartDesc": "Disable all synchronisation and restart.",
"Ui.Settings.Maintenance.FreshStartWipe": "Fresh Start Wipe",
"Ui.Settings.Maintenance.FreshStartWipeDesc": "Delete all data on the remote server.",
"Ui.Settings.Maintenance.GarbageCollection": "Garbage Collection V3 (Beta)",
"Ui.Settings.Maintenance.GarbageCollectionAction": "Perform Garbage Collection",
"Ui.Settings.Maintenance.GarbageCollectionDesc": "Perform Garbage Collection to remove unused chunks and reduce database size.",
"Ui.Settings.Maintenance.LockServer": "Lock Server",
"Ui.Settings.Maintenance.LockServerDesc": "Lock the remote server to prevent synchronisation with other devices.",
"Ui.Settings.Maintenance.OverwriteRemote": "Overwrite remote",
"Ui.Settings.Maintenance.OverwriteRemoteDesc": "Overwrite remote with local DB and passphrase.",
"Ui.Settings.Maintenance.OverwriteServerData": "Overwrite Server Data with This Device's Files",
"Ui.Settings.Maintenance.OverwriteServerDataDesc": "Rebuild the local and remote database with files from this device.",
"Ui.Settings.Maintenance.PurgeAllJournalCounter": "Purge all journal counter",
"Ui.Settings.Maintenance.PurgeAllJournalCounterDesc": "Purge all download and upload caches.",
"Ui.Settings.Maintenance.RebuildingOperations": "Rebuilding Operations (Remote Only)",
"Ui.Settings.Maintenance.Resend": "Resend",
"Ui.Settings.Maintenance.ResendDesc": "Resend all chunks to the remote.",
"Ui.Settings.Maintenance.Reset": "Reset",
"Ui.Settings.Maintenance.ResetAllJournalCounter": "Reset all journal counter",
"Ui.Settings.Maintenance.ResetAllJournalCounterDesc": "Initialise all journal history. On the next sync, every item will be received and sent again.",
"Ui.Settings.Maintenance.ResetJournalReceived": "Reset journal received history",
"Ui.Settings.Maintenance.ResetJournalReceivedDesc": "Initialise journal received history. On the next sync, every item except those sent by this device will be downloaded again.",
"Ui.Settings.Maintenance.ResetJournalSent": "Reset journal sent history",
"Ui.Settings.Maintenance.ResetJournalSentDesc": "Initialise journal sent history. On the next sync, every item except those received by this device will be sent again.",
"Ui.Settings.Maintenance.ResetLocalSyncInfo": "Reset Synchronisation information",
"Ui.Settings.Maintenance.ResetLocalSyncInfoDesc": "Restore or reconstruct local database from remote.",
"Ui.Settings.Maintenance.ResetReceived": "Reset received",
"Ui.Settings.Maintenance.ResetSentHistory": "Reset sent history",
"Ui.Settings.Maintenance.ResetThisDevice": "Reset Synchronisation on This Device",
"Ui.Settings.Maintenance.ScheduleAndRestart": "Schedule and Restart",
"Ui.Settings.Maintenance.Scram": "Scram!",
"Ui.Settings.Maintenance.SendChunks": "Send chunks",
"Ui.Settings.Maintenance.Syncing": "Syncing",
"Ui.Settings.Maintenance.WarningLockedReadyAction": "I am ready, unlock the database",
"Ui.Settings.Maintenance.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.",
"Ui.Settings.Maintenance.WarningLockedResolveAction": "I have made a backup, mark this device as resolved",
"Ui.Settings.Maintenance.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.",
"Ui.Settings.Maintenance.WriteRedFlagAndRestart": "Flag and restart",
"Ui.Settings.Patches.CompatibilityConflict": "Compatibility (Conflict Behaviour)",
"Ui.Settings.Patches.CompatibilityDatabase": "Compatibility (Database structure)",
"Ui.Settings.Patches.CompatibilityInternalApi": "Compatibility (Internal API Usage)",
"Ui.Settings.Patches.CompatibilityMetadata": "Compatibility (Metadata)",
"Ui.Settings.Patches.CompatibilityRemote": "Compatibility (Remote Database)",
"Ui.Settings.Patches.CompatibilityTrouble": "Compatibility (Trouble addressed)",
"Ui.Settings.Patches.CurrentAdapter": "Current adapter: ${adapter}",
"Ui.Settings.Patches.DatabaseAdapter": "Database Adapter",
"Ui.Settings.Patches.DatabaseAdapterDesc": "Select the database adapter to use.",
"Ui.Settings.Patches.EdgeCaseBehaviour": "Edge case addressing (Behaviour)",
"Ui.Settings.Patches.EdgeCaseDatabase": "Edge case addressing (Database)",
"Ui.Settings.Patches.EdgeCaseProcessing": "Edge case addressing (Processing)",
"Ui.Settings.Patches.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.",
"Ui.Settings.Patches.MigratingToIdb": "Migrating all data to IDB...",
"Ui.Settings.Patches.MigratingToIndexedDb": "Migrating all data to IndexedDB...",
"Ui.Settings.Patches.MigrationIdbCompleted": "Migration to IDB completed. Obsidian will be restarted with the new configuration immediately.",
"Ui.Settings.Patches.MigrationIdbCompletedFollowUp": "Migration to IDB completed. Please switch the adapter and restart Obsidian.",
"Ui.Settings.Patches.MigrationIndexedDbCompleted": "Migration to IndexedDB completed. Obsidian will be restarted with the new configuration immediately.",
"Ui.Settings.Patches.MigrationIndexedDbCompletedFollowUp": "Migration to IndexedDB completed. Please switch the adapter and restart Obsidian.",
"Ui.Settings.Patches.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.",
"Ui.Settings.Patches.OperationToIdb": "to IDB",
"Ui.Settings.Patches.OperationToIndexedDb": "to IndexedDB",
"Ui.Settings.Patches.Remediation": "Remediation",
"Ui.Settings.Patches.RemediationChanged": "Remediation Setting Changed",
"Ui.Settings.Patches.RemediationNoLimit": "No limit configured",
"Ui.Settings.Patches.RemediationRestarting": "Remediation setting changed. Restarting Obsidian...",
"Ui.Settings.Patches.RemediationRestartLater": "Later",
"Ui.Settings.Patches.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?",
"Ui.Settings.Patches.RemediationRestartNow": "Restart Now",
"Ui.Settings.Patches.RemediationSuffixChanged": "Suffix has been changed. Reopening database...",
"Ui.Settings.Patches.RemediationWithValue": "Limit: ${date} (${timestamp})",
"Ui.Settings.Patches.RemoteDatabaseSunset": "Remote Database Tweak (In sunset)",
"Ui.Settings.Patches.SwitchToIDB": "Switch to IDB",
"Ui.Settings.Patches.SwitchToIndexedDb": "Switch to IndexedDB",
"Ui.Settings.PowerUsers.ConfigurationEncryption": "Configuration Encryption",
"Ui.Settings.PowerUsers.ConnectionTweak": "CouchDB Connection Tweak",
"Ui.Settings.PowerUsers.ConnectionTweakDesc": "If you reached the payload size limit when using IBM Cloudant, please decrease batch size and batch limit to a lower value.",
"Ui.Settings.PowerUsers.Default": "Default",
"Ui.Settings.PowerUsers.Developer": "Developer",
"Ui.Settings.PowerUsers.EncryptSensitiveConfig": "Encrypt sensitive configuration items",
"Ui.Settings.PowerUsers.PromptPassphraseEveryLaunch": "Ask for a passphrase at every launch",
"Ui.Settings.PowerUsers.UseCustomPassphrase": "Use a custom passphrase",
"Ui.Settings.Remote.Activate": "Activate",
"Ui.Settings.Remote.ActiveSuffix": " (Active)",
"Ui.Settings.Remote.AddConnection": "Add new connection",
"Ui.Settings.Remote.AddRemoteDefaultName": "New Remote",
"Ui.Settings.Remote.ConfigureAndChangeRemote": "Configure and change remote",
"Ui.Settings.Remote.ConfigureE2EE": "Configure E2EE",
"Ui.Settings.Remote.ConfigureRemote": "Configure Remote",
"Ui.Settings.Remote.DeleteRemoteConfirm": "Delete remote configuration '${name}'?",
"Ui.Settings.Remote.DeleteRemoteTitle": "Delete Remote Configuration",
"Ui.Settings.Remote.DisplayName": "Display name",
"Ui.Settings.Remote.DuplicateRemote": "Duplicate remote",
"Ui.Settings.Remote.DuplicateRemoteSuffix": "${name} (Copy)",
"Ui.Settings.Remote.E2EEConfiguration": "E2EE Configuration",
"Ui.Settings.Remote.Export": "Export",
"Ui.Settings.Remote.FetchRemoteSettings": "Fetch remote settings",
"Ui.Settings.Remote.ImportConnection": "Import connection",
"Ui.Settings.Remote.ImportConnectionPrompt": "Paste a connection string",
"Ui.Settings.Remote.ImportedCouchDb": "Imported CouchDB",
"Ui.Settings.Remote.ImportedRemote": "Remote",
"Ui.Settings.Remote.MoreActions": "More actions",
"Ui.Settings.Remote.PeerToPeerPanel": "Peer-to-Peer Synchronisation",
"Ui.Settings.Remote.RemoteConfigurationPrefix": "Remote configuration",
"Ui.Settings.Remote.RemoteDatabases": "Remote Databases",
"Ui.Settings.Remote.RemoteName": "Remote name",
"Ui.Settings.Remote.RemoteNameCouchDb": "CouchDB ${host}",
"Ui.Settings.Remote.RemoteNameP2P": "P2P ${room}",
"Ui.Settings.Remote.RemoteNameS3": "S3 ${bucket}",
"Ui.Settings.Remote.Rename": "Rename",
"Ui.Settings.Selector.AddDefaultPatterns": "Add default patterns",
"Ui.Settings.Selector.CrossPlatform": "Cross-platform",
"Ui.Settings.Selector.Default": "Default",
"Ui.Settings.Selector.HiddenFiles": "Hidden Files",
"Ui.Settings.Selector.IgnorePatterns": "Ignore patterns",
"Ui.Settings.Selector.NonSynchronisingFiles": "Non-Synchronising files",
"Ui.Settings.Selector.NonSynchronisingFilesDesc": "(RegExp) If this is set, any changes to local and remote files that match this will be skipped.",
"Ui.Settings.Selector.NormalFiles": "Normal Files",
"Ui.Settings.Selector.OverwritePatterns": "Overwrite patterns",
"Ui.Settings.Selector.OverwritePatternsDesc": "Patterns to match files for overwriting instead of merging",
"Ui.Settings.Selector.SynchronisingFiles": "Synchronising files",
"Ui.Settings.Selector.SynchronisingFilesDesc": "(RegExp) Empty to sync all files. Set a regular expression filter to limit synchronised files.",
"Ui.Settings.Selector.TargetPatterns": "Target patterns",
"Ui.Settings.Selector.TargetPatternsDesc": "Patterns to match files for syncing",
"Ui.Settings.Setup.RerunWizardButton": "Rerun Wizard",
"Ui.Settings.Setup.RerunWizardDesc": "Rerun the onboarding wizard to set up Self-hosted LiveSync again.",
"Ui.Settings.Setup.RerunWizardName": "Rerun Onboarding Wizard",
"Ui.Settings.SyncSettings.Fetch": "Fetch",
"Ui.Settings.SyncSettings.Merge": "Merge",
"Ui.Settings.SyncSettings.Overwrite": "Overwrite",
"Ui.SetupWizard.Common.Back": "No, please take me back",
"Ui.SetupWizard.Common.Cancel": "Cancel",
"Ui.SetupWizard.Common.ProceedSelectOption": "Please select an option to proceed",
"Ui.SetupWizard.Intro.ExistingOption": "I am adding a device to an existing synchronisation setup",
"Ui.SetupWizard.Intro.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.",
"Ui.SetupWizard.Intro.Guidance": "We will now guide you through a few questions to simplify the synchronisation setup.",
"Ui.SetupWizard.Intro.NewOption": "I am setting this up for the first time",
"Ui.SetupWizard.Intro.NewOptionDesc": "Select this if you are configuring this device as the first synchronisation device.",
"Ui.SetupWizard.Intro.ProceedExisting": "Yes, I want to add this device to my existing synchronisation",
"Ui.SetupWizard.Intro.ProceedNew": "Yes, I want to set up a new synchronisation",
"Ui.SetupWizard.Intro.Question": "First, please select the option that best describes your current situation.",
"Ui.SetupWizard.Intro.Title": "Welcome to Self-hosted LiveSync",
"Ui.SetupWizard.Invitation.Start": "Start setup",
"Ui.SetupWizard.OutroAskUserMode.CompatibleOption": "The remote is already set up, and the configuration is compatible (or became compatible through this operation).",
"Ui.SetupWizard.OutroAskUserMode.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.",
"Ui.SetupWizard.OutroAskUserMode.ExistingOption": "My remote server is already set up. I want to join this device.",
"Ui.SetupWizard.OutroAskUserMode.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.",
"Ui.SetupWizard.OutroAskUserMode.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.",
"Ui.SetupWizard.OutroAskUserMode.NewOption": "I am setting up a new server for the first time / I want to reset my existing server.",
"Ui.SetupWizard.OutroAskUserMode.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.",
"Ui.SetupWizard.OutroAskUserMode.ProceedApplySettings": "Apply the settings",
"Ui.SetupWizard.OutroAskUserMode.ProceedNext": "Proceed to the next step.",
"Ui.SetupWizard.OutroAskUserMode.Question": "Please select your situation.",
"Ui.SetupWizard.OutroAskUserMode.Title": "Mostly Complete: Decision Required",
"Ui.SetupWizard.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.",
"Ui.SetupWizard.OutroNewP2PUser.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.",
"Ui.SetupWizard.OutroNewP2PUser.Important": "PLEASE NOTE",
"Ui.SetupWizard.OutroNewP2PUser.Proceed": "Restart and Prepare This Device",
"Ui.SetupWizard.OutroNewP2PUser.Question": "Please select the button below to restart and proceed to the local initialisation confirmation.",
"Ui.SetupWizard.OutroNewP2PUser.Title": "Setup Complete: Preparing This P2P Device",
"Ui.SetupWizard.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.",
"Ui.SetupWizard.OutroNewUser.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.",
"Ui.SetupWizard.OutroNewUser.Important": "IMPORTANT",
"Ui.SetupWizard.OutroNewUser.Proceed": "Restart and Initialise Server",
"Ui.SetupWizard.OutroNewUser.Question": "Please select the button below to restart and proceed to the final confirmation.",
"Ui.SetupWizard.OutroNewUser.Title": "Setup Complete: Preparing to Initialise Server",
"Ui.SetupWizard.RebuildEverythingP2P.ConfirmLocalReset": "I understand that this resets only this device's local synchronisation database.",
"Ui.SetupWizard.RebuildEverythingP2P.ConfirmLocalResetNote": "The files currently in this Vault are used to rebuild it.",
"Ui.SetupWizard.RebuildEverythingP2P.ConfirmTitle": "⚠️ Please Confirm the Following",
"Ui.SetupWizard.RebuildEverythingP2P.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.",
"Ui.SetupWizard.RebuildEverythingP2P.Note": "Keep this device online after initialisation so that another device can fetch the Vault from it.",
"Ui.SetupWizard.RebuildEverythingP2P.Proceed": "I Understand, Prepare This Device",
"Ui.SetupWizard.RebuildEverythingP2P.Title": "Final Confirmation: Prepare This Device for P2P",
"Ui.SetupWizard.SelectExisting.Guidance": "You are adding this device to an existing synchronisation setup.",
"Ui.SetupWizard.SelectExisting.ManualOption": "Configure a remote manually",
"Ui.SetupWizard.SelectExisting.ManualOptionDesc": "Configure the same remote as your other devices again manually. This is intended only for advanced users.",
"Ui.SetupWizard.SelectExisting.ProceedManual": "Proceed with manual configuration",
"Ui.SetupWizard.SelectExisting.ProceedQr": "Scan the QR code displayed on an active device using this device's camera.",
"Ui.SetupWizard.SelectExisting.ProceedSetupUri": "Proceed with Setup URI",
"Ui.SetupWizard.SelectExisting.QrOption": "Scan a QR Code (Recommended for mobile)",
"Ui.SetupWizard.SelectExisting.QrOptionDesc": "Scan the QR code displayed on an active device using this device's camera.",
"Ui.SetupWizard.SelectExisting.Question": "Please select a method to import the settings from another device.",
"Ui.SetupWizard.SelectExisting.SetupUriOption": "Use a Setup URI (Recommended)",
"Ui.SetupWizard.SelectExisting.SetupUriOptionDesc": "Paste the Setup URI generated from one of your active devices.",
"Ui.SetupWizard.SelectExisting.Title": "Device Setup Method",
"Ui.SetupWizard.SelectNew.Guidance": "We will now configure the synchronisation connection.",
"Ui.SetupWizard.SelectNew.ManualOption": "Configure a remote manually",
"Ui.SetupWizard.SelectNew.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.",
"Ui.SetupWizard.SelectNew.ProceedManual": "Proceed with manual configuration",
"Ui.SetupWizard.SelectNew.ProceedSetupUri": "Proceed with Setup URI",
"Ui.SetupWizard.SelectNew.Question": "How would you like to configure this synchronisation connection?",
"Ui.SetupWizard.SelectNew.SetupUriOption": "Use a Setup URI (Recommended)",
"Ui.SetupWizard.SelectNew.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.",
"Ui.SetupWizard.SelectNew.Title": "Connection Method",
"Ui.SetupWizard.SetupRemote.BucketOption": "S3-compatible Object Storage",
"Ui.SetupWizard.SetupRemote.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.",
"Ui.SetupWizard.SetupRemote.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.",
"Ui.SetupWizard.SetupRemote.Guidance": "Select the remote type for this synchronisation setup.",
"Ui.SetupWizard.SetupRemote.P2POption": "Peer-to-Peer (P2P)",
"Ui.SetupWizard.SetupRemote.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.",
"Ui.SetupWizard.SetupRemote.ProceedBucket": "Continue to Object Storage setup",
"Ui.SetupWizard.SetupRemote.ProceedCouchDb": "Continue to CouchDB setup",
"Ui.SetupWizard.SetupRemote.ProceedP2P": "Continue to P2P setup",
"Ui.SetupWizard.SetupRemote.Title": "Choose a synchronisation remote",
"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 a Setup URI (Recommended)": "Use a Setup URI (Recommended)",
"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.",
"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.",
"We will now proceed with the server configuration.": "We will now proceed with the server configuration.",
"Welcome to Self-hosted LiveSync": "Welcome to Self-hosted LiveSync",
"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)",
"Yes, I want to add this device to my existing synchronisation": "Yes, I want to add this device to my existing synchronisation",
"Yes, I want to set up a new synchronisation": "Yes, I want to set up a new synchronisation",
"You are adding this device to an existing synchronisation setup.": "You are adding this device to an existing synchronisation setup."
}