Files
Oxicloud/frontend/static/locales/en.json
T
Edouard Vanbelle 27ab392a35 i18n: fix uncontexted strings
For example jobs where translated into "employment" in other language
Remove english text in other languages
2026-08-13 00:30:55 +02:00

1828 lines
75 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"server": {
"magic_link": {
"page": {
"expired_title": "This sign-in link is no longer valid",
"expired_body": "The link may have expired or already been used. We can send you a fresh one — it'll arrive in your inbox in a few seconds.",
"resend_to": "Send a fresh link to {{email}}",
"generic_unavailable": "This sign-in link is no longer valid. It may have already been used or expired. Request a fresh link from the login page.",
"service_unavailable": "Magic-link sign-in is not enabled on this server.",
"internal_error": "Something went wrong while signing you in. Please try again.",
"resend_failure": "Something went wrong while sending the link. Please try again.",
"cross_browser_title": "Continue signing in on this device?",
"cross_browser_body": "You opened this sign-in link in a different browser or device than the one where you requested it.",
"cross_browser_warning": "If you requested this link, it's safe to continue. If you didn't, close this page — clicking Continue would sign someone else into your account.",
"cross_browser_continue": "Continue and sign in",
"resend_confirmation_title": "Check your inbox",
"resend_confirmation_body": "If the sign-in link belonged to an active account, a fresh link has just been sent. Please check your inbox.",
"return_link": "Return to OxiCloud"
},
"email": {
"invitation": {
"subject": "{{inviter}} shared a {{kind}} with you on OxiCloud",
"body": "{{inviter_full}} shared a {{kind}} with you on OxiCloud.\n\nOpen it by clicking the link below:\n{{link}}\n\nThe link works once and expires in {{ttl_hours}} hours.\nIf you didn't expect this invitation, you can safely ignore this message.\n\n— OxiCloud"
},
"login": {
"subject": "Sign in to OxiCloud",
"body": "Hello,\n\nUse the link below to sign in to OxiCloud. The link works once and expires in {{ttl_minutes}} minutes. Open it on the same device where you requested it.\n\n{{link}}\n\nIf you didn't request this sign-in link, you can safely ignore this message — no further action is needed.\n\n— OxiCloud"
},
"kind_file": "file",
"kind_folder": "folder",
"english_fallback_divider": "--- English version below ---"
}
},
"notification": {
"share": {
"subject": "{{inviter}} shared a {{kind}} with you on OxiCloud",
"body": "{{inviter_full}} shared a {{kind}} with you on OxiCloud.\n\nOpen OxiCloud to see your new share:\n{{login_link}}\n\nYou may have additional new shares from {{inviter}} — sign in to see all your shared items.\n\n— OxiCloud\n\nYou're receiving this message because you have an OxiCloud account and your share-notification preference is on. You can turn it off in your profile (Email me when someone shares with me)."
}
},
"security": {
"password_changed": {
"subject": "Your OxiCloud password was changed",
"body": "Hello,\n\nYour OxiCloud password was just changed at {{timestamp}} (UTC) from IP address {{ip}}.\n\nIf this was you, no action is needed — you can ignore this message.\n\nIf this was NOT you, contact your administrator immediately. Someone may have gained access to your account.\n\n— OxiCloud"
}
}
},
"server_status": {
"readonly_banner_aria": "Server maintenance in progress",
"readonly_title": "Server maintenance in progress",
"readonly_progress": "Migrating storage to `{{target}}` — {{percent}}% ({{migrated}} / {{total}} blobs). Uploads, renames, deletes, and shares are refused; reads and downloads work as normal.",
"readonly_body": "Uploads, renames, deletes, and shares are refused temporarily. Reads and downloads work as normal."
},
"app": {
"title": "OxiCloud",
"description": "Minimalist cloud storage system"
},
"myshares": {
"resendInvitation": "Resend invitation email",
"notifyByEmail": "Notify by email",
"notifyGroupMembers": "Notify group members",
"notifyRateLimited": "Too many notifications for this recipient — try again later.",
"notifyFailed": "Could not send notification.",
"removeAccess": "Remove access",
"copyLink": "Copy link",
"deleteLink": "Delete link",
"editSharing": "Edit sharing",
"emptyStateDesc": "Items you share with others will appear here",
"emptyStateTitle": "You haven't shared anything yet",
"manageAccess": "Manage access",
"notifySent": "Notification sent.",
"passwordLinks": "Password-protected links",
"publicLinks": "Public links",
"filter": {
"button": "Kinds",
"title": "Filter by kind",
"files": "Files",
"folders": "Folders",
"drives": "Drives",
"emptyTitle": "No shares match the current filter",
"emptyHint": "Adjust the kind filter or reset it to the default (Files + Folders).",
"reset": "Reset filter"
}
},
"nav": {
"files": "Files",
"shared": "My shares",
"sharedwithme": "Shared with me",
"recent": "Recent",
"favorites": "Favorites",
"photos": "Photos",
"music": "Music",
"trash": "Trash",
"groups": "Groups",
"primary": "Primary",
"admin_sections": "Admin sections",
"back_to_app": "Back to OxiCloud",
"profile": "Profile",
"shared_with_me": "Shared with me",
"toggle": "Toggle navigation menu"
},
"photos": {
"empty_state": "No photos yet",
"empty_hint": "Upload images or videos to see them here",
"empty_hidden": "{{n}} photo(s) hidden by your dotfile preference",
"empty_hidden_hint": "Turn off \"Hide dotfiles\" in your profile to see them.",
"items_selected": "selected",
"view_daily": "Day",
"view_monthly": "Month",
"view_yearly": "Year",
"confirm_delete": "Move {{n}} photos to trash?",
"confirm_delete_one": "Delete {{name}}?",
"delete": "Delete photos",
"empty": "No photos yet.",
"full_resolution": "Full resolution",
"group_by": "Group by",
"trash_partial": "{{ok}} of {{total}} moved to trash.",
"trashed": "{{n}} moved to trash.",
"layout_square": "Grid",
"layout_justified": "Justified",
"tab_moments": "Moments",
"tab_places": "Places",
"tab_people": "People",
"map_loading": "Loading map…",
"map_error": "Could not load the map"
},
"people": {
"unnamed": "Unnamed",
"empty": "No people yet",
"disabled": "Face recognition is disabled",
"rename_title": "Name this person",
"name_label": "Name",
"back": "Back"
},
"music": {
"create_playlist": "Create Playlist",
"playlists": "Playlists",
"no_playlists": "No playlists yet",
"empty_hint": "Create your first playlist to start organizing your music",
"select_playlist": "Select a playlist",
"select_hint": "Choose a playlist from the sidebar or create a new one",
"add_tracks": "Add Tracks",
"add_to_playlist": "Add to Playlist",
"add": "Add",
"added": "Added!",
"added_to_playlist": "added to playlist",
"load_error": "Error loading playlists",
"add_error": "Could not add tracks to playlist",
"no_playlists_yet": "No playlists yet. Create one first!",
"selected_files": "Selected:",
"no_tracks": "No tracks in this playlist",
"unknown_artist": "Unknown Artist",
"unknown_title": "Unknown",
"confirm_delete": "Delete this playlist?",
"playlist_name": "Playlist name",
"create": "Create",
"delete": "Delete",
"share": "Share",
"edit": "Edit",
"play_all": "Play All",
"shuffle": "Shuffle",
"repeat": "Repeat",
"repeat_one": "Repeat One",
"queue": "Queue",
"queue_empty": "Queue is empty",
"not_playing": "Not playing",
"play": "Play",
"pause": "Pause",
"previous": "Previous",
"next": "Next",
"volume": "Volume",
"mute": "Mute",
"unmute": "Unmute",
"title": "Title",
"artist": "Artist",
"album": "Album",
"tracks": "tracks",
"share_with_user": "User ID or email",
"playback_error": "Playback failed",
"error": "Error",
"remove": "Remove",
"track_removed": "Track removed",
"manage_shares": "Manage Shares",
"no_shares": "No shares yet",
"remove_share": "Remove share",
"can_write": "Can edit",
"read_only": "Read only",
"public": "Public",
"private": "Private",
"toggle_public": "Visibility",
"make_public": "Make public",
"make_private": "Make private",
"set_cover": "Set cover",
"cover_updated": "Cover updated",
"search_audio": "Search audio files…",
"no_audio_files": "No audio files found",
"selected": "selected",
"loading": "Loading…",
"search_error": "Could not load audio files",
"adding": "Adding…",
"add_selected": "Add selected",
"create_playlist_hint": "Type a playlist name to create one.",
"created": "Created “{{name}}”.",
"delete_playlist": "Delete playlist",
"deleted": "Deleted “{{name}}”.",
"edit_description": "Edit description",
"empty_playlist": "This playlist has no tracks yet.",
"new_playlist": "New playlist",
"no_audio": "No audio files found.",
"now_private": "Playlist is now private.",
"now_public": "Playlist is now public.",
"pick_or_create": "Existing: {{list}}. Type a name to add or create.",
"prev": "Previous",
"rename_playlist": "Rename playlist",
"reordered": "Playlist reordered.",
"seek": "Seek",
"selected_count": "{{n}} selected",
"share_added": "Shared.",
"track_count": "{{n}} tracks",
"tracks_added": "Added {{n}} track(s)."
},
"actions": {
"search": "Search files...",
"new_folder": "New folder",
"upload": "Upload",
"upload_files": "Upload files",
"upload_folder": "Upload folder",
"upload.uploading": "Uploading...",
"upload.complete": "{count} / {total} uploaded",
"upload.files": "files",
"rename": "Rename",
"move": "Move to...",
"move_to": "Move to",
"delete": "Delete",
"download": "Download",
"view": "View",
"cancel": "Cancel",
"confirm": "Confirm",
"share": "Share",
"favorite": "Add to favorites",
"unfavorite": "Remove from favorites",
"copy": "Copy",
"notify": "Notify",
"send": "Send",
"clear_recent": "Clear recent",
"logout": "Log out",
"create": "Create",
"search_btn": "Search",
"close": "Close",
"delete_permanently": "Delete permanently",
"empty_trash": "Empty trash",
"open_parent_folder": "Go to parent folder",
"add": "Add",
"apply": "Apply",
"clear": "Clear",
"remove": "Remove"
},
"user_menu": {
"appearance": "Appearance",
"about": "About OxiCloud",
"about_description": "Cloud storage platform built with Rust & Clean Architecture. Fast, secure, and private.",
"admin_panel": "Admin Panel",
"profile": "My Profile",
"role_user": "User",
"theme": {
"light": "Light",
"dark": "Dark",
"auto": "Like OS"
},
"manage_groups": "Manage groups",
"admin": "Admin",
"mit_license": "MIT License",
"title": "User menu"
},
"share": {
"dialogTitle": "Share Link",
"linkLabel": "Share Link:",
"copyLink": "Copy",
"permissions": "Permissions:",
"permissionRead": "Read",
"permissionWrite": "Write",
"permissionReshare": "Reshare",
"password": "Password Protection:",
"generatePassword": "Generate",
"expiration": "Expiration Date:",
"update": "Update Share",
"remove": "Remove Share",
"notifyTitle": "Send Notification",
"notifyEmailLabel": "Email Address:",
"notifyMessageLabel": "Message (optional):",
"notifySend": "Send Notification",
"shareWithOthers": "Share with others",
"sharePublicly": "Share publicly",
"shareSettings": "Sharing settings",
"shareCopied": "Link copied to clipboard",
"shareCreated": "Share link created successfully",
"shareUpdated": "Share settings updated successfully",
"shareRemoved": "Share removed successfully",
"inviteByEmail": "Invite by email — invitation will be sent",
"directoryUnavailable": "User directory unavailable",
"linkNamePlaceholder": "Link name (optional)",
"newLink": "New link",
"noExpiry": "No expiry",
"pending": "Pending",
"people": "People",
"publicLinks": "Public links",
"role": {
"canEdit": "Can edit",
"canManage": "Can manage",
"canView": "Can view"
},
"searchPlaceholder": "Search people…",
"shareOf": "Share of:",
"sharedLink": "Shared link",
"addPassword": "Add password",
"add_people": "Add people, groups, or email…",
"bad_password": "Incorrect password. Please try again.",
"changePassword": "Change password",
"copied": "Link copied",
"copy": "Copy",
"copy_failed": "Could not copy link",
"create_link": "Create link",
"created": "Public link created",
"dialog_title": "Share “{{name}}”",
"download": "Download",
"download_zip": "Download ZIP",
"empty_folder": "This folder is empty.",
"error": "Something went wrong. Please try again.",
"expired": "This share link is no longer available.",
"expires_optional": "Expires (optional)",
"expiry": "Expiry",
"files": "Files",
"folders": "Folders",
"invalid": "This share link is invalid.",
"link": "Link",
"link_name": "Link name (optional)",
"no_people": "Not shared with anyone yet.",
"none": "No public links yet.",
"notify": {
"coalesced": "{{n}} already notified recently.",
"rateLimited": "{{n}} hit the rate limit — try later.",
"sent": "{{n}} notified by email.",
"skipped": "{{n}} skipped (no email / opted out)."
},
"notifyByEmail": "Notify by email",
"passwordPrompt": "Set a password:",
"passwordPrompt_clear": "New password (blank to remove):",
"password_cleared": "Password removed",
"password_optional": "Password (optional)",
"password_set": "Password updated",
"password_title": "Password required",
"public_link": "Public link",
"revoke": "Remove",
"set_expiry": "Set expiry",
"title": "Shared",
"unlock": "Unlock",
"role_label": "Role",
"col_shared_by": "Shared by",
"col_shared": "Shared"
},
"share_dialogTitle": "Share Link",
"share_linkLabel": "Share Link:",
"share_copyLink": "Copy",
"share_permissions": "Permissions:",
"share_permissionRead": "Read",
"share_permissionWrite": "Write",
"share_permissionReshare": "Reshare",
"share_password": "Password Protection:",
"share_generatePassword": "Generate",
"share_expiration": "Expiration Date:",
"share_update": "Update Share",
"share_remove": "Remove Share",
"share_notifyTitle": "Send Notification",
"share_notifyEmailLabel": "Email Address:",
"share_notifyMessageLabel": "Message (optional):",
"share_notifySend": "Send Notification",
"shared": {
"backToFiles": "Back to Files",
"pageTitle": "Shared Resources",
"pageDescription": "Manage your shared files and folders",
"filterType": "Type:",
"filterAll": "All",
"filterFiles": "Files",
"filterFolders": "Folders",
"sortBy": "Sort by:",
"sortByName": "Name",
"sortByDate": "Date shared",
"sortByExpiration": "Expiration",
"search": "Search",
"colName": "Name",
"colType": "Type",
"colDateShared": "Date Shared",
"colExpiration": "Expiration",
"colPermissions": "Permissions",
"colPassword": "Password",
"colActions": "Actions",
"emptyStateTitle": "No shared resources yet",
"emptyStateDesc": "When you share files or folders, they will appear here",
"goToFiles": "Go to Files",
"typeFile": "File",
"typeFolder": "Folder",
"noExpiration": "No expiration",
"hasPassword": "Yes",
"noPassword": "No",
"editShare": "Edit Share",
"notifyShare": "Notify Someone",
"copyLink": "Copy Link",
"removeShare": "Remove Share",
"linkCopied": "Link copied to clipboard!",
"linkCopyFailed": "Failed to copy link",
"itemUpdated": "Share settings updated successfully",
"itemRemoved": "Share removed successfully",
"invalidEmail": "Please enter a valid email address",
"notificationSent": "Notification sent successfully",
"notificationFailed": "Failed to send notification",
"shared_backToFiles": "Back to Files",
"shared_pageTitle": "Shared Resources",
"shared_pageDescription": "Manage your shared files and folders",
"shared_filterType": "Type:",
"shared_filterAll": "All",
"shared_filterFiles": "Files",
"shared_filterFolders": "Folders",
"shared_sortBy": "Sort by:",
"shared_sortByName": "Name",
"shared_sortByDate": "Date shared",
"shared_sortByExpiration": "Expiration",
"shared_search": "Search",
"shared_colName": "Name",
"shared_colType": "Type",
"shared_colDateShared": "Date Shared",
"shared_colExpiration": "Expiration",
"shared_colPermissions": "Permissions",
"shared_colPassword": "Password",
"shared_colActions": "Actions",
"shared_emptyStateTitle": "No shared resources yet",
"shared_emptyStateDesc": "When you share files or folders, they will appear here",
"shared_goToFiles": "Go to Files",
"shared_typeFile": "File",
"shared_typeFolder": "Folder",
"shared_noExpiration": "No expiration",
"shared_hasPassword": "Yes",
"shared_noPassword": "No",
"shared_editShare": "Edit Share",
"shared_notifyShare": "Notify Someone",
"shared_copyLink": "Copy Link",
"shared_removeShare": "Remove Share",
"shared_linkCopied": "Link copied to clipboard!",
"shared_linkCopyFailed": "Failed to copy link",
"shared_itemUpdated": "Share settings updated successfully",
"shared_itemRemoved": "Share removed successfully",
"shared_invalidEmail": "Please enter a valid email address",
"shared_notificationSent": "Notification sent successfully",
"shared_notificationFailed": "Failed to send notification"
},
"files": {
"name": "Name",
"type": "Type",
"size": "Size",
"modified": "Modified",
"no_files": "No files in this folder",
"empty_hint": "Upload files or create folders to get started",
"drop_to_upload": "Drop files here to upload",
"loading": "Loading files…",
"view_grid": "Grid view",
"view_list": "List view",
"file_types": {
"document": "Document",
"image": "Image",
"video": "Video",
"audio": "Audio",
"pdf": "PDF",
"text": "Text",
"folder": "Folder",
"spreadsheet": "Spreadsheet",
"presentation": "Presentation",
"archive": "Archive",
"installer": "Installer",
"code": "Code"
},
"owner": "Owner",
"add_favorites": "Add to favorites",
"added_favorites": "Added to favorites",
"already_favorites": "All selected items are already favorites",
"batch_delete": "Delete selected",
"breadcrumb": "Breadcrumb",
"cancel_selection": "Cancel selection",
"col_modified": "Modified",
"col_added": "Added",
"col_created_by": "Created by",
"col_opened": "Opened",
"col_name": "Name",
"col_owner": "Owner",
"col_path": "Location",
"col_size": "Size",
"col_type": "Type",
"confirm_batch_delete": "Move {{n}} items to trash?",
"confirm_delete": "Move \"{{name}}\" to trash?",
"confirm_delete_n": "Delete {{count}} item(s)?",
"copied": "Copied",
"copy": "Copy",
"copy_here": "Copy here",
"copy_n": "Copy {{n}} items",
"copy_title": "Copy “{{name}}”",
"download_zip": "Download as ZIP",
"edit": "Edit",
"edit_new_tab": "Edit in new tab",
"editor": "Document editor",
"empty_title": "This folder is empty",
"favorite": "Add favorite",
"favorited": "Favorite",
"file": "File",
"folder": "Folder",
"grid": "Grid",
"list": "List",
"more_actions": "More actions",
"move": "Move",
"move_here": "Move here",
"move_n": "Move {{n}} items",
"move_title": "Move “{{name}}”",
"moved": "Moved",
"new_folder": "New folder",
"new_folder_prompt": "New folder name",
"new_elements": "New elements",
"no_home": "No home folder available.",
"no_preview": "No preview available for this file type.",
"no_subfolders": "No subfolders here.",
"open": "Open",
"open_parent": "Open parent folder",
"owner_me": "Me",
"preview_failed": "Could not load preview.",
"select_all": "Select all",
"selected_count": "{{count}} selected",
"selection": "Selection",
"share": "Share",
"shared": "Shared",
"unfavorite": "Remove favorite",
"uploaded": "Upload complete",
"uploaded_saved": "Upload complete — {{mb}} MB deduplicated",
"uploaded_partial": "{{ok}} uploaded, {{failed}} failed",
"uploaded_skipped": "{{ok}} uploaded · {{skipped}} skipped (not regular files)",
"upload_failed": "Upload failed",
"uploading": "Uploading…",
"uploading_file": "Uploading {{name}}…",
"uploading_n": "Uploading {{done}}/{{total}} files…",
"view": "View",
"empty_hidden_title": "{{n}} hidden item(s) in this folder",
"empty_hidden_hint": "Files whose name starts with '.' are hidden. Toggle the setting to see them.",
"show_hidden": "Show hidden files",
"upload_dotfile_hidden": "{{n}} file(s) uploaded but hidden by your dotfile preference.",
"rename_dotfile_hidden": "Renamed to '{{name}}' — now hidden by your preference.",
"new_folder_dotfile_hidden": "Created folder '{{name}}' — hidden by your dotfile preference.",
"dotfiles_hidden_toast": "Dotfiles hidden",
"dotfiles_shown_toast": "Dotfiles shown"
},
"dialogs": {
"rename_folder": "Rename folder",
"rename_file": "Rename file",
"new_name": "New name",
"new_folder_title": "New folder",
"folder_name": "Folder name",
"folder_placeholder": "My folder",
"rename_title": "Rename",
"move_file": "Move file",
"move_folder": "Move folder",
"select_destination": "Select destination folder:",
"select_this_folder": "Select this folder",
"go_to_parent": ".. (parent folder)",
"no_subfolders": "No subfolders",
"root": "Root",
"delete_confirmation": "Are you sure you want to delete",
"and_contents": "and all its contents",
"no_undo": "This action cannot be undone",
"confirm_title": "Confirm action",
"confirm_delete": "Move to trash",
"confirm_delete_file": "Are you sure you want to move the file \"{{name}}\" to trash?",
"confirm_delete_folder": "Are you sure you want to move the folder \"{{name}}\" and all its contents to trash?",
"confirm_permanent_delete": "Delete permanently",
"confirm_permanent_delete_msg": "Are you sure you want to permanently delete this item? This action cannot be undone.",
"confirm_empty_trash": "Empty trash",
"confirm_delete_share": "Delete share link",
"confirm_delete_share_msg": "Are you sure you want to delete this shared link?",
"share_file": "Share File",
"share_folder": "Share Folder",
"existing_shares": "Existing Shares",
"share_options": "Share Options",
"password": "Password",
"expiration": "Expiration",
"permissions": "Permissions",
"generated_link": "Generated Link",
"notify": "Send Notification",
"recipient": "Recipient",
"message": "Message",
"move_to_home": "Move to Home folder"
},
"dropzone": {
"drag_files": "Drag files here or click to select",
"drop_files": "Drop files to upload"
},
"permissions": {
"read": "Read",
"write": "Write",
"reshare": "Reshare"
},
"errors": {
"file_not_found": "File not found",
"folder_not_found": "Folder not found",
"delete_error": "Error deleting",
"upload_error": "Error uploading file",
"rename_error": "Error renaming",
"move_error": "Error moving",
"empty_name": "Name cannot be empty",
"name_exists": "A file or folder with that name already exists",
"generic_error": "An error has occurred",
"group_name_invalid": "Group name must match the email-prefix format (letters, digits, dot, dash, underscore; 1–64 chars).",
"group_cycle": "This member would create a circular group reference.",
"group_depth_exceeded": "This nesting depth exceeds the maximum allowed (8).",
"group_virtual_immutable": "The 'Internal' group is system-managed and cannot be modified.",
"group_not_found": "Group not found.",
"group_name_taken": "A group with this name already exists.",
"forbidden": "Could not load files"
},
"breadcrumb": {
"home": "Home",
"aria": "Breadcrumb",
"root": {
"personal_drive": "Personal drive: {{name}}",
"shared_drive": "Shared drive: {{name}}",
"direct_share": "Shared with you",
"token": "Via shared link"
}
},
"trash": {
"empty_trash": "Empty Trash",
"empty_state": "Trash is empty",
"original_location": "Original location",
"deleted_date": "Deletion date",
"remaining": "Remaining",
"actions": "Actions",
"restore": "Restore",
"delete_permanently": "Delete permanently",
"empty_confirm": "Are you sure you want to empty the trash? This will permanently delete all items.",
"groupby": {
"remaining_days": "Remaining days",
"trashed_time": "Trashed time"
},
"confirm_delete": "Permanently delete this item? This cannot be undone.",
"confirm_empty": "Empty the trash? This cannot be undone.",
"delete": "Delete permanently",
"empty_action": "Empty trash",
"restored": "Restored",
"expires_at": "Expires at"
},
"daysRemaining": {
"expired": "Expired",
"today": "Today",
"tomorrow": "Tomorrow",
"inDays": "{{count}} days"
},
"expiryChip": {
"never": "Never expires",
"expired": "Expired",
"today": "Expires today",
"tomorrow": "Expires tomorrow",
"inDays": "Expires in {{count}} days",
"onDate": "Expires {{date}}"
},
"auth": {
"login_title": "Sign in",
"username": "Username",
"username_placeholder": "Enter your username",
"login_identifier": "Username or email",
"login_identifier_placeholder": "Enter your username or email",
"password": "Password",
"password_placeholder": "Enter your password",
"password_or_link_hint": "Password (leave blank for a sign-in link)",
"login_button": "Sign in",
"no_account": "Don't have an account?",
"register": "Sign up",
"admin_setup": "First time?",
"setup": "Setup administrator",
"register_title": "Create account",
"email": "Email",
"email_placeholder": "Enter your email",
"confirm_password": "Confirm password",
"confirm_password_placeholder": "Confirm your password",
"register_button": "Create account",
"have_account": "Already have an account?",
"login": "Sign in",
"setup_title": "Initial setup",
"setup_step1": "Admin",
"setup_step2": "System",
"setup_step3": "Complete",
"admin_username": "Admin username",
"admin_email": "Admin email",
"admin_password": "Admin password",
"create_admin": "Create administrator",
"back_to_login": "Already set up?",
"admin_success": "Administrator account created successfully! You can now sign in.",
"account_success": "Account created successfully! You can now sign in.",
"passwords_mismatch": "Passwords do not match",
"admin_create_error": "Error creating administrator account",
"or": "or",
"sso_login": "Sign in with SSO",
"sso_login_provider": "Sign in with {{provider}}",
"magicLinkHint": "No password? Enter your email and we'll send you a one-time sign-in link.",
"magicLinkEmailLabel": "Email address",
"magicLinkEmailPlaceholder": "you@example.com",
"magicLinkSubmit": "Send sign-in link",
"magicLinkSent": "If an account exists for that email, a sign-in link has been sent. Check your inbox.",
"magicLinkUnavailable": "Sign-in by email is not available on this server.",
"magicLinkNetworkError": "Could not reach the server: {{message}}",
"magicLinkToggle": "No password? Email me a sign-in link",
"passwordsMatch": "Passwords match",
"capsLock": "Caps Lock is on",
"caps_lock": "Caps Lock is on",
"cookie_rejected": "Login succeeded but the browser rejected the session cookie. If you are on HTTP, set OXICLOUD_COOKIE_SECURE=false or use HTTPS.",
"login_error": "Error logging in",
"magic_email_label": "Email address",
"magic_error": "Something went wrong. Try again.",
"magic_hint": "No password? Enter your email and we'll send you a one-time sign-in link.",
"magic_prompt": "No password? Sign in with an email link",
"magic_send": "Send link",
"magic_sent": "If an account exists, a sign-in link has been sent. Check your inbox.",
"magic_unavailable": "Sign-in by email is not available on this server.",
"passwords_match": "Passwords match",
"register_error": "Registration failed",
"session_expired": "Your session expired. Please sign in again.",
"logged_out": "Successfully signed out.",
"sign_in": "Sign in",
"signing_in": "Signing in…",
"sending": "Sending…",
"toggle_password": "Show password",
"login_error_title": "Sign-in failed",
"login_error_back_to_login": "Back to login",
"login_error_auto_link_disabled": "This server does not auto-link SSO accounts. Sign in with your existing credentials, then connect SSO from your profile.",
"login_error_auto_link_email_not_verified": "Your SSO provider did not confirm your email address. Verify your email at your identity provider, then try again.",
"login_error_already_linked_elsewhere": "A local account with this email already exists and is linked to a different SSO identity. Contact your administrator.",
"login_error_email_ambiguous": "Multiple local accounts match this email address. Contact your administrator to resolve.",
"login_error_callback_denied": "Your sign-in link expired or was already used. Please try signing in again.",
"login_error_callback_failed": "SSO sign-in couldn't complete. Please try again.",
"login_error_generic": "SSO sign-in was refused. Please try again."
},
"storage": {
"title": "Storage",
"calculating": "Calculating...",
"used": "{{percentage}}% used ({{used}} / {{total}})"
},
"viewer": {
"unsupported_file": "This file type cannot be previewed.",
"download_file": "Download file",
"zoom_in": "Zoom in",
"zoom_out": "Zoom out",
"zoom_reset": "Reset zoom",
"zoom": "Zoom"
},
"language_selector": {
"title": "Welcome!",
"subtitle": "Select your language to continue",
"continue": "Continue",
"languages": {
"en": "English",
"es": "Español",
"zh": "中文",
"fa": "فارسی",
"fr": "Français",
"de": "Deutsch",
"pt": "Português",
"ar": "العربية",
"hi": "हिन्दी",
"it": "Italiano",
"ja": "日本語",
"ko": "한국어",
"nl": "Nederlands",
"ru": "Русский"
}
},
"favorites": {
"empty_state": "No favorites yet",
"empty_hint": "Star files or folders to add them to your favorites",
"add": "Add to favorites",
"remove": "Remove from favorites",
"added_title": "Added to favorites",
"added_msg": "added to favorites",
"removed_title": "Removed from favorites",
"removed_msg": "removed from favorites"
},
"recent": {
"title": "Recent",
"clear": "Clear recent",
"accessed": "Accessed",
"empty_state": "No recent files",
"empty_hint": "Files you open will appear here",
"empty_hidden_state": "{{n}} recent item(s) hidden by your dotfile preference",
"empty_hidden_hint": "Turn off \"Hide dotfiles\" in your profile to see them.",
"loadMore": "Load more",
"confirm_clear": "Clear your recent items?",
"remove_item": "Remove from recent"
},
"notifications": {
"file_renamed": "File renamed",
"file_renamed_to": "File renamed to \"{{name}}\"",
"folder_renamed": "Folder renamed",
"folder_renamed_to": "Folder renamed to \"{{name}}\"",
"file_uploaded": "File uploaded",
"file_deleted": "File moved to trash",
"folder_deleted": "Folder moved to trash",
"item_deleted_permanently": "Item permanently deleted",
"trash_emptied": "Trash emptied successfully",
"title": "Notifications",
"empty": "No notifications",
"link_created": "Link created",
"share_success": "Shared link created successfully",
"upload_files_section_title": "Upload not available here",
"upload_files_section_body": "Go to the Files section to upload files",
"clear": "Clear all"
},
"batch": {
"one_selected": "1 item selected",
"n_selected": "{{count}} items selected",
"confirm_delete": "Are you sure you want to move {{count}} items to trash?",
"move_title": "Move {{count}} item(s)",
"add_favorites": "Add to favorites",
"move_copy": "Move or copy"
},
"admin": {
"page_title": "Admin Panel",
"back_to_app": "Back to OxiCloud",
"loading": "Loading…",
"access_denied": "Access Denied",
"access_denied_desc": "Administrator privileges required to access this panel.",
"sign_in": "Sign in",
"tab_dashboard": "Dashboard",
"tab_users": "Users",
"tab_oidc": "SSO / OIDC",
"total_users": "Total Users",
"active_users": "Active Users",
"admins": "Admins",
"version": "Version",
"storage_overview": "Storage Overview",
"used": "Used",
"total_quota": "Total Quota",
"usage_pct": "Usage %",
"users_over_80": "Users >80% quota",
"users_over_quota": "Users over quota",
"system": "System",
"auth_label": "Auth",
"oidc_label": "OIDC",
"quotas_label": "Quotas",
"enabled": "Enabled",
"disabled": "Disabled",
"active": "Active",
"off": "Off",
"allow_registration": "Allow public self-registration",
"registration_warning": "Public registration is disabled. Only admins can create new users.",
"user_management": "User Management",
"create_user": "Create User",
"col_user": "User",
"col_role": "Role",
"col_auth": "Auth",
"col_status": "Status",
"col_storage": "Storage",
"col_last_login": "Last Login",
"col_actions": "Actions",
"loading_users": "Loading users…",
"failed_load_users": "Failed to load users",
"no_users_found": "No users found",
"showing_users": "Showing {{from}}-{{to}} of {{total}}",
"prev": "Prev",
"next": "Next",
"inactive": "Inactive",
"you_badge": "(you)",
"local": "Local",
"never": "Never",
"just_now": "Just now",
"minutes_ago": "{{n}}m ago",
"hours_ago": "{{n}}h ago",
"days_ago": "{{n}}d ago",
"edit_quota_title": "Edit quota",
"reset_password_title": "Reset password",
"toggle_role_title": "Toggle role",
"deactivate_title": "Deactivate",
"activate_title": "Activate",
"delete_title": "Delete",
"sso_title": "Single Sign-On (OIDC / SSO)",
"enable_sso": "Enable SSO Authentication",
"provider_name": "Provider Name",
"issuer_url": "Issuer URL",
"issuer_url_hint": "OpenID Connect issuer URL of your identity provider",
"auto_discover": "Auto-discover",
"discovering": "Discovering…",
"client_id": "Client ID",
"client_secret": "Client Secret",
"client_secret_placeholder": "Leave empty to keep current value",
"secret_configured": "A client secret is already configured",
"callback_url": "Callback URL",
"callback_url_hint": "(register in your IdP)",
"advanced_settings": "Advanced Settings",
"scopes": "Scopes",
"auto_provision": "Auto-provision users on first login",
"admin_groups": "Admin Groups",
"admin_groups_hint": "Comma-separated OIDC group names that map to admin role",
"disable_password": "Disable password login (OIDC only)",
"password_warning": "This will prevent ALL password-based logins!",
"test_btn": "Test",
"save_btn": "Save",
"saving": "Saving…",
"settings_saved": "Settings saved — OIDC is now {{status}}",
"quota_modal_title": "Update Storage Quota",
"quota_user_label": "User:",
"new_quota": "New Quota",
"quota_unlimited_hint": "Set to 0 for unlimited",
"cancel": "Cancel",
"create_user_title": "Create New User",
"username_label": "Username",
"username_placeholder": "johndoe",
"username_hint": "3–32 characters",
"password_label": "Password",
"password_placeholder": "Min 8 characters",
"email_label": "Email",
"email_optional": "(optional)",
"email_placeholder": "user@example.com (auto-generated if empty)",
"role_label": "Role",
"role_user": "User",
"role_admin": "Admin",
"quota_label": "Quota",
"creating": "Creating…",
"reset_pw_title": "Reset Password",
"new_password_label": "New Password",
"resetting": "Resetting…",
"reset_btn": "Reset",
"confirm_role_change": "Change role to {{role}}?",
"confirm_deactivate": "Are you sure you want to deactivate this user?",
"confirm_activate": "Are you sure you want to activate this user?",
"confirm_delete_user": "DELETE user \"{{name}}\"? This cannot be undone!",
"confirm_action": "Confirm Action",
"confirm_yes": "Confirm",
"confirm_no": "Cancel",
"error_username_short": "Username must be at least 3 characters",
"error_password_short": "Password must be at least 8 characters",
"error_generic": "Failed",
"error_network": "Network error: {{message}}",
"error_create_user": "Failed to create user",
"tab_storage": "Storage",
"storage_title": "Storage Backend",
"storage_current_backend": "Active Backend",
"storage_total_blobs": "Total Blobs",
"storage_total_size": "Total Size",
"storage_dedup_ratio": "Dedup Ratio",
"storage_backend": "Backend Type",
"storage_local": "Local Filesystem",
"storage_s3": "S3-Compatible",
"storage_provider_preset": "Provider Preset",
"storage_preset_custom": "Custom",
"storage_endpoint_url": "Endpoint URL",
"storage_endpoint_hint": "Leave empty for Amazon S3 default",
"storage_bucket": "Bucket",
"storage_region": "Region",
"storage_access_key": "Access Key ID",
"storage_secret_key": "Secret Access Key",
"storage_secret_configured": "A secret key is already configured",
"storage_key_placeholder": "Leave empty to keep current value",
"storage_path_style": "Force Path Style",
"storage_path_style_hint": "Required for MinIO and some S3-compatible providers",
"storage_test_connection": "Test Connection",
"storage_test_success": "Connection successful",
"storage_test_failure": "Connection failed",
"storage_save": "Save",
"storage_saved": "Storage settings saved successfully",
"storage_migration": "Backend Migration",
"storage_migration_coming_soon": "Backend migration will be available in a future update.",
"migration_status_label": "Status:",
"migration_start": "Start Migration",
"migration_pause": "Pause",
"migration_resume": "Resume",
"migration_verify": "Verify Integrity",
"migration_complete": "Finalize",
"migration_started": "Migration started",
"migration_paused_msg": "Migration paused",
"migration_resumed_msg": "Migration resumed",
"migration_completed_msg": "Migration finalized. Restart the server to use the new backend.",
"migration_verifying": "Verifying…",
"migration_verify_passed": "Verification passed",
"migration_verify_failed": "Verification failed",
"migration_failed_blobs": "failed blobs",
"testing": "Testing…",
"tab_plugins": "Plugins",
"plugins_title": "Plugins",
"plugins_disabled": "Plugins are disabled on this server. Set OXICLOUD_ENABLE_PLUGINS=true (and build with the \"plugins\" feature) to manage WASM plugins here.",
"plugins_install_title": "Install a plugin",
"plugins_install_intro": "Upload a plugin bundle (.zip) containing plugin.toml and its compiled WebAssembly module (.wasm). The manifest is validated and the module is probed before installation.",
"plugins_bundle_label": "Plugin bundle (.zip)",
"plugins_install": "Install plugin",
"plugins_installed_title": "Installed plugins",
"plugins_col_name": "Name",
"plugins_col_id": "ID",
"plugins_col_version": "Version",
"plugins_col_events": "Events",
"plugins_col_status": "Status",
"plugins_col_actions": "Actions",
"plugins_loading": "Loading plugins…",
"plugins_none": "No plugins installed.",
"plugins_enabled": "Enabled",
"plugins_disabled_badge": "Disabled",
"plugins_enable": "Enable",
"plugins_disable": "Disable",
"plugins_delete": "Delete",
"plugins_confirm_delete": "Delete plugin \"{{name}}\"? Its files will be removed from the server.",
"plugins_installing": "Installing…",
"plugins_installed": "Installed {{name}}.",
"plugins_install_missing_bundle": "Select a plugin bundle (.zip).",
"plugins_details": "Logs & details",
"plugins_back": "Back to plugins",
"plugins_retention_title": "Log retention",
"plugins_retention_intro": "Rotated log segments older than the retention window, or beyond the size cap, are pruned on a schedule.",
"plugins_retention_days": "Retention (days)",
"plugins_retention_max_mb": "Max log size (MB)",
"plugins_retention_save": "Save retention",
"plugins_retention_saved": "Retention saved.",
"plugins_retention_invalid": "Enter non-negative numbers.",
"plugins_logs_title": "Logs",
"plugins_logs_level_all": "All levels",
"plugins_logs_search": "Search messages…",
"plugins_logs_live": "Live",
"plugins_logs_clear": "Clear",
"plugins_logs_confirm_clear": "Clear all logs for this plugin?",
"plugins_logs_none": "No log entries.",
"plugins_logs_col_time": "Time",
"plugins_logs_col_level": "Level",
"plugins_logs_col_kind": "Kind",
"plugins_logs_col_invocation": "Invocation",
"plugins_logs_col_message": "Message",
"plugins_logs_showing": "Showing {{from}}–{{to}} of {{total}}",
"tab_smtp": "SMTP",
"smtp_title": "Outbound Email (SMTP)",
"smtp_intro": "SMTP is configured exclusively via environment variables (OXICLOUD_SMTP_*). The values below are read from the running server — to change them, edit the environment and restart OxiCloud.",
"smtp_enabled_label": "Status",
"smtp_enabled": "Enabled",
"smtp_disabled": "Disabled (host unset)",
"smtp_test_title": "Send a test email",
"smtp_test_intro": "Sends a hardcoded diagnostic message to the recipient below and reports the SMTP server's response so you can correlate it with your relay logs.",
"smtp_test_to": "Recipient address",
"smtp_send_test": "Send test email",
"smtp_sending": "Sending…",
"smtp_sent": "Test email sent.",
"smtp_send_failed": "Send failed.",
"smtp_server_code": "Server replied",
"smtp_test_missing_to": "Enter a recipient address.",
"smtp_not_configured": "SMTP is not configured on this server.",
"admin_users": "Admins",
"auth": "Authentication",
"available": "available",
"confirm_delete_plugin": "Delete plugin {{name}}?",
"confirm_role": "Change role to {{role}}?",
"dashboard": "Dashboard",
"disable": "Disable",
"email": "Email",
"email_auto": "Auto-generated if left blank",
"enable": "Enable",
"env_locked": "Set by an environment variable",
"last_login": "Last login",
"logs_all": "All levels",
"logs_empty": "No log entries.",
"logs_invocation": "Invocation",
"logs_kind": "Kind",
"logs_level": "Level",
"logs_live": "Live",
"logs_message": "Message",
"logs_search": "Search…",
"logs_showing": "Showing {{from}}–{{to}} of {{total}}",
"logs_time": "Time",
"mig_complete": "Finalize",
"mig_eta": "~{{min}} min remaining",
"mig_failed": "{{n}} failed blobs",
"mig_pause": "Pause",
"mig_resume": "Resume",
"mig_start": "Start",
"mig_verify": "Verify integrity",
"mig_verify_failed": "Verification failed",
"mig_verify_mismatch": "{{n}} size mismatches",
"mig_verify_missing": "{{n}} missing",
"mig_verify_passed": "Verification passed",
"mig_verify_summary": "{{checked}} blobs checked, {{total}} total in database",
"mig_verifying": "Verifying…",
"migration": "Storage migration",
"new_password": "New password",
"no_plugins": "No plugins installed.",
"oidc": "OIDC / SSO",
"oidc_admin_groups": "Admin groups",
"oidc_auth_endpoint": "Auth endpoint",
"oidc_auto_provision": "Auto-provision users on first login",
"oidc_callback": "Callback URL",
"oidc_client_id": "Client ID",
"oidc_client_secret": "Client secret",
"oidc_disable_pw": "Disable password login (OIDC only)",
"oidc_discover": "Test / discover",
"oidc_enabled": "Enable OIDC login",
"oidc_issuer": "Issuer URL",
"oidc_provider_name": "Provider name",
"oidc_scopes": "Scopes",
"oidc_secret_set": "A client secret is already configured.",
"over_80": "{{n}} users over 80% quota",
"over_quota": "{{n}} users over quota",
"password": "Password",
"password_reset": "Password reset",
"plugin": "Plugin",
"plugin_logs": "Plugin logs",
"plugins": "Plugins",
"plugins_clear_logs": "Clear logs",
"plugins_install_hint": "Upload a plugin bundle (.zip).",
"plugins_retention": "Log retention",
"plugins_retention_max": "Max size (MB)",
"plugins_upload": "Upload .zip",
"quota": "Storage usage",
"quota_for": "Quota for",
"quotas": "Quotas",
"registration": "Registration",
"registration_disabled_warning": "Public registration is disabled. Only admins can create new accounts.",
"reset_pw_for": "New password for",
"role": "Role",
"sessions": {
"filter_user": "User (UUID)",
"include_revoked": "Include revoked / expired",
"refresh": "Refresh",
"col_user": "User",
"col_origin": "Origin",
"col_created": "Created",
"col_expires": "Expires",
"col_ip": "IP",
"col_user_agent": "User agent",
"col_bound": "Bound",
"col_status": "Status",
"current_tooltip": "This is the session you're using right now — revoking it will log you out.",
"bound_tooltip": "DPoP-bound (jkt {{prefix}}…)",
"unbound": "unbound",
"revoked": "revoked",
"expired": "expired",
"active": "active",
"revoke": "Revoke",
"empty": "No sessions match the current filter.",
"revoke_self_confirm": "⚠️ This is YOUR current session. Revoking it will log YOU out immediately and you'll have to sign back in. Continue?",
"revoke_confirm": "Revoke this session? The next request from that browser will 401.",
"revoke_lag_notice": "Revoking a session breaks its refresh path immediately, but any JWT already in the browser stays valid for up to {{secs}} seconds until the next refresh attempt.",
"origin": {
"password": "Password",
"opaque": "OPAQUE",
"magic_link": "Magic link",
"oidc": "SSO",
"device": "Device",
"unknown": "Unknown"
}
},
"settings_saved_ok": "Settings saved.",
"smtp": "Email (SMTP)",
"smtp_fail": "Send failed.",
"smtp_from": "From",
"smtp_host": "Host",
"smtp_port": "Port",
"smtp_send": "Send",
"smtp_status": "SMTP status",
"smtp_test": "Send test email",
"smtp_to": "recipient@example.com",
"smtp_user_state": "Auth",
"status": "Status",
"storage": "Storage",
"storage_blobs": "Blobs",
"storage_current": "Current backend",
"storage_dedup": "Dedup ratio",
"storage_endpoint": "Endpoint URL",
"storage_preset": "Preset",
"storage_size": "Stored",
"storage_tab": "Storage",
"storage_test": "Test",
"storage_backend_audit": "Backend consistency",
"storage_backend_audit_triggered": "backend_consistency triggered for `{{name}}` — watch it on the Background tasks tab.",
"time_day_ago": "{{n}} d ago",
"time_hour_ago": "{{n}} h ago",
"time_just_now": "just now",
"time_min_ago": "{{n}} min ago",
"title": "Admin",
"unchanged": "Leave blank to keep current",
"user": "User",
"username": "Username",
"users": "Users",
"running": "Running…",
"maintenance": "Maintenance",
"maintenance_hint": "Re-scan existing files to backfill metadata. Safe to re-run; processes the whole library and may take a while.",
"reextract_audio": "Re-extract audio metadata",
"reextract_photos": "Re-extract photo & video capture dates",
"reextract_done": "{{processed}}/{{total}} processed · {{failed}} failed",
"encryption": "Encryption",
"encryption_hint": "Generate an AES-256 key for at-rest blob encryption, then set it as OXICLOUD_STORAGE_ENCRYPTION_KEY in your server environment.",
"gen_key": "Generate key",
"gen_key_warning": "Store this key securely. If it is lost, the encrypted data is irrecoverably lost.",
"drive_manage_policies": "Manage policies",
"drive_manage_policies_for": "Manage policies — {{name}}",
"drive_manage_policies_help": "Policies are admin-only — drive owners cannot mutate them. Each toggle controls one enforcement gate.",
"drive_policy": {
"forbid_sharing": "Forbid per-resource sharing",
"forbid_sharing_help": "Block per-file / per-folder grants (covers public links and external sharing as well). Drive-level membership still works.",
"forbid_public_links": "Forbid public links",
"forbid_public_links_help": "Block anonymous share links on resources in this drive.",
"forbid_external_sharing": "Forbid external sharing",
"forbid_external_sharing_help": "Block grants to external users (email invitations and pre-existing external accounts).",
"forbid_cross_drive_move": "Forbid cross-drive move",
"forbid_cross_drive_move_help": "Block moving files or folders out to another drive. Does not stop download + re-upload.",
"forbid_owner_role_change": "Lock Owner roster",
"forbid_owner_role_change_help": "Only admin can add, remove, or demote drive Owners while this is on.",
"include_in_photo_index": "Include in Photos",
"include_in_photo_index_help": "Show image and video files from this drive in the Photos timeline and on the Places map. Default personal drives are opted in automatically; turn on for shared drives that genuinely hold photos (e.g. \"Family Photos\").",
"include_in_music_index": "Include in Music",
"include_in_music_index_help": "Include audio files from this drive in the Music library. Default personal drives are opted in automatically; turn on for shared drives that genuinely hold a music collection (e.g. \"Family Music\", \"Band Collaboration\").",
"implied_by_forbid_sharing": "Already enforced by Forbid per-resource sharing.",
"read_only": "Read-only (freeze)",
"read_only_help": "Freeze the drive entirely — every mutation is refused (uploads, edits, deletes, renames, sharing, membership changes). Reads and downloads keep working. The trash-retention janitor also pauses. Use for archives, legal holds, or account wind-downs. Only an admin can un-freeze."
},
"drives": "Drives",
"drive_name": "Name",
"drive_kind": "Kind",
"drive_owners": "Owners",
"drive_usage": "Usage",
"drive_created_at": "Created",
"drive_kind_shared": "Shared",
"drive_kind_personal": "Personal",
"drive_kind_default_suffix": "(default)",
"drive_manage_owners": "Manage owners",
"drive_manage_owners_for": "Manage owners — {{name}}",
"drive_edit_quota": "Edit quota",
"drive_delete": "Delete drive",
"drive_delete_confirm": "Delete drive \"{{name}}\"? This cannot be undone.",
"drive_deleted": "Drive deleted.",
"drive_created": "Drive created.",
"drive_add_owner": "Add owner",
"drive_current_owners": "Current owners",
"drive_no_owners": "No owners",
"drive_owner": "Owner",
"drive_owner_hint": "Pick a user (sole Owner) or a group (every member becomes Owner via subject expansion).",
"drive_owner_picked": "Owner: {{name}}",
"drive_owner_placeholder": "Search a user or group…",
"drive_owner_remove_confirm": "Remove this owner from the drive?",
"drive_name_placeholder": "e.g. Engineering",
"drive_error_name_required": "Drive name is required.",
"drive_error_owner_required": "Pick a user or group as the drive owner.",
"create_drive": "Create shared drive",
"no_drives": "No drives yet.",
"external_user": "external",
"external_user_hint": "Grant-only account (magic-link or OCM). Cannot be admin and has no storage envelope.",
"no_storage_for_external": "External accounts have no storage envelope.",
"promote_to_internal_title": "Promote to internal user",
"confirm_promote_user": "Promote {{name}} to an internal user? This provisions a home drive and gives the account a normal storage envelope. The account keeps its identity; magic-link login stays the way in unless a password is set later.",
"delete_user_title": "Delete user",
"delete_user_warning": "You are about to permanently delete \"{{name}}\". This will remove the account, revoke every session, and reap the personal drive. This cannot be undone.",
"delete_user_confirm_hint": "To confirm, type the account email below: {{email}}",
"deleting": "Deleting…",
"jobs": {
"tab": "Background tasks",
"title": "Background tasks",
"hint": "This section concerns internal background tasks: periodic + on-demand tasks. Consistency checks are safe to run at any time — they are read-only.",
"run_all_consistency": "Run all consistency checks",
"run_deep": "Run deep",
"run_deep_hint": "Also runs slow variants (blob re-hash, bitrot detection).",
"col_name": "Name",
"col_cadence": "Cadence",
"col_last_run": "Last run",
"col_outcome": "Outcome",
"col_state": "State",
"col_actions": "Actions",
"col_started_at": "Started",
"col_status": "Status",
"col_duration": "Duration",
"col_scanned": "Scanned",
"col_progress": "Progress",
"col_findings": "Findings",
"progress_exact_tooltip": "{{pct}} ({{scanned}} / {{total}})",
"progress_approx_tooltip": "{{pct}} ({{scanned}} / {{total}} — approximate, backend proxy)",
"progress_scanned_only": "{{n}} scanned",
"progress_scanned_only_tooltip": "No total available for this run (pre-progress-bar deploy or the tenant does not report a countable subject).",
"findings_present_tooltip": "Expand this run to see per-finding detail.",
"col_error": "Error",
"col_kind": "Kind",
"col_severity": "Severity",
"col_resource": "Resource",
"col_detail": "Detail",
"run": "Run",
"cancel": "Cancel",
"refresh": "Refresh",
"runs_title": "Recent runs",
"run_json": "Run summary (JSON)",
"findings_title": "Findings",
"no_runs": "No runs yet.",
"no_findings": "No findings — clean run.",
"none_registered": "No background tasks registered.",
"on_demand": "on-demand",
"every_h": "every {{n}} h",
"every_min": "every {{n}} min",
"every_sec": "every {{n}} s",
"outcome_ok": "ok",
"outcome_err": "err",
"outcome_issues": "issues",
"outcome_notices": "notices",
"n_findings": "{{n}} findings",
"n_notices": "{{n}} notices",
"notices_present_tooltip": "Informational findings — no action required. Expand for detail.",
"purge": "Purge old runs",
"purge_hint": "Delete completed and failed run history older than the chosen retention window. Findings drop with their parent runs. Non-terminal runs are always preserved.",
"purge_title": "Purge old task history",
"purge_body": "Delete completed and failed run history older than the chosen number of days. Findings drop with their parent runs. Non-terminal runs (running, paused, cancel-requested) are always preserved.",
"purge_days_label": "Retention (days)",
"purge_confirm": "Purge",
"purge_done": "{{n}} old run(s) purged (retention {{days}} days)",
"state_running": "running",
"never": "never",
"just_now": "just now",
"n_min_ago": "{{n}} min ago",
"n_h_ago": "{{n}} h ago",
"n_d_ago": "{{n}} d ago",
"triggered_ok": "{{name}} triggered successfully",
"triggered_err": "{{name}} failed: {{message}}",
"cancel_requested": "Cancel requested — {{name}} will pause at the next safe boundary",
"cancel_noop": "Nothing to cancel — {{name}} is not running"
}
},
"profile": {
"page_title": "Profile",
"back_to_app": "Back to OxiCloud",
"loading": "Loading…",
"not_authenticated": "Not Authenticated",
"not_authenticated_desc": "Please sign in to view your profile.",
"sign_in": "Sign in",
"role_admin": "Administrator",
"role_user": "User",
"account_details": "Account Details",
"username": "Username",
"email": "Email",
"role": "Role",
"last_login": "Last Login",
"storage": "Storage",
"used": "Used",
"quota": "Quota",
"usage": "Usage",
"unlimited": "Unlimited",
"app_passwords": "App Passwords",
"app_pw_desc": "Generate passwords for WebDAV, CalDAV, and CardDAV clients. Each password is shown only once.",
"app_pw_label_placeholder": "Label (e.g. Thunderbird, macOS)",
"generate": "Generate",
"generating": "Generating…",
"new_password_for": "New password for",
"copy_warning": "Copy this password now. You won't be able to see it again.",
"copy_to_clipboard": "Copy to clipboard",
"col_label": "Label",
"col_created": "Created",
"col_last_used": "Last Used",
"col_status": "Status",
"active": "Active",
"revoked": "Revoked",
"revoke_title": "Revoke",
"no_app_passwords": "No app passwords yet.",
"client_sessions": "Client sessions",
"client_sessions_desc": "Auto-generated when you connect a Nextcloud-compatible client.",
"col_client": "Client",
"never": "Never",
"just_now": "Just now",
"minutes_ago": "{{n}} min ago",
"hours_ago": "{{n}}h ago",
"days_ago": "{{n}} days ago",
"edit_profile": "Edit Profile",
"edit_oidc_managed": "To change your information (name, first name, profile picture, …), please update it at your identity provider. Your changes will appear on your next sign-in.",
"username_claim_hint": "2–64 characters, letters/digits/dot/dash/underscore. Once chosen, the username can't be changed (DAV/NextCloud clients depend on it).",
"username_already_claimed": "Username is set and can't be changed (DAV/NextCloud clients depend on it).",
"given_name": "First name",
"family_name": "Last name",
"notify_on_share": "Email me when someone shares with me",
"notify_on_share_hint": "When unchecked, shares still appear in your account — you just won't get an email about them.",
"hide_dotfiles": "Hide files whose name starts with a dot (.env, .git, …)",
"save_profile": "Save changes",
"profile_saved": "Profile updated",
"profile_no_changes": "No changes to save.",
"profile_save_failed": "Save failed",
"username_taken_error": "That username is already taken.",
"username_immutable_error": "Your username is already set and can't be changed here. Contact an administrator if you need a rename.",
"change_password": "Change Password",
"current_password": "Current Password",
"new_password": "New Password",
"min_8_chars": "At least 8 characters",
"confirm_password": "Confirm New Password",
"update_password": "Update Password",
"updating": "Updating…",
"password_updated": "Password updated successfully",
"passwords_no_match": "Passwords do not match",
"password_too_short": "Password must be at least 8 characters",
"password_change_failed": "Failed to change password",
"error_network": "Network error: {{message}}",
"error_label_required": "Please enter a label",
"error_create_pw": "Failed to create app password",
"confirm_revoke": "Revoke app password \"{{label}}\"? Clients using this password will stop working.",
"error_revoke": "Failed to revoke app password",
"edit_photo": "Edit photo",
"photo_tab_url": "URL",
"photo_tab_upload": "Upload",
"photo_url_placeholder": "https://example.com/photo.jpg",
"photo_url_hint": "https://, http://, or data:image/…;base64,… accepted",
"photo_choose_file": "Choose a photo (PNG, JPEG, WebP)",
"photo_resize_note": "Images larger than 512 × 512 px are automatically resized.",
"photo_save": "Save photo",
"photo_remove": "Remove photo",
"photo_cancel": "Cancel",
"photo_save_failed": "Failed to save photo",
"photo_no_file": "Please select a file first",
"photo_managed_by_oidc": "Photo managed by your identity provider.",
"app_pw_revoke": "Revoke app password",
"avatar": "Avatar",
"copied": "Copied",
"copy_failed": "Could not copy",
"language": "Language",
"language_auto": "Automatic",
"password_mismatch": "Passwords do not match",
"saved": "Profile saved",
"sso_connect_title": "Connect Single Sign-On",
"sso_connect_description": "Link your account to {{provider}} so you can sign in with SSO instead of your password.",
"sso_connect_button": "Connect with {{provider}}",
"sso_disconnect_title": "Single Sign-On",
"sso_disconnect_description": "Your account is connected to {{provider}}. Disconnecting will require you to sign in with your password from now on.",
"sso_disconnect_button": "Disconnect Single Sign-On",
"sso_disconnect_confirm_title": "Disconnect Single Sign-On?",
"sso_disconnect_confirm_message": "You'll only be able to sign in with your password or OPAQUE credential after this.",
"sso_disconnect_confirm_button": "Disconnect",
"sso_unlinked_success": "Single sign-on disconnected.",
"sso_unlink_no_alt_auth": "Set a password first — otherwise you would be locked out."
},
"upload": {
"uploading": "Uploading...",
"files": "files",
"complete": "{{count}} / {{total}} uploaded",
"files_counter": "{{completed}} / {{total}} files"
},
"storage_quota_exceeded": "Storage quota exceeded",
"sharedwithme": {
"pageTitle": "Shared with me",
"pageDescription": "Files and folders others have shared with you",
"emptyStateTitle": "Nothing shared with you yet",
"emptyStateDesc": "Items shared with you by other users will appear here",
"loadMore": "Load more",
"sharedBy": "Shared by",
"colName": "Name",
"colType": "Type",
"colSharedBy": "Shared by",
"colDate": "Date shared",
"colPermissions": "Permissions"
},
"groupby": {
"none": "None",
"byFiles": "By files",
"sharedWith": "Shared with",
"title": "Group by",
"type": "Type",
"type.folders": "Folders",
"owner": "Owner",
"shareDate": "Share date",
"favoriteDate": "Favorite date",
"accessedAt": "Accessed date",
"modifiedAt": "Modified date",
"createdAt": "Created date",
"size": "Size",
"justAdded": "New",
"folders": "Folders"
},
"dateBucket": {
"today": "Today",
"last7days": "Last 7 days",
"last30days": "Last 30 days",
"unknown": "Unknown"
},
"groups": {
"title": "Manage groups",
"create_button": "Create group",
"create_dialog_title": "New group",
"edit_dialog_title": "Rename group",
"name_label": "Name",
"name_placeholder": "engineering",
"description_label": "Description (optional)",
"members_section": "Members",
"members_loading": "Loading members…",
"members_empty": "No members",
"add_member_placeholder": "Add a user or group…",
"no_members": "No members yet.",
"remove_member": "Remove",
"delete_group": "Delete group",
"delete_confirm": "Delete the group \"{name}\"? Grants referencing this group will be revoked.",
"empty_state": "No groups yet.",
"load_more": "Load more",
"back_to_list": "Back",
"loading": "Loading…",
"virtual_badge": "System",
"member_count_zero": "no members",
"member_count_one": "1 member",
"member_count_other": "{count} members",
"delete_confirm_label": "Type the group name to confirm:",
"delete_confirm_mismatch": "Type the group name exactly to confirm.",
"virtual_internal_name": "Internal",
"virtual_internal_explanation": "Every internal user on this server",
"add_member_search": "Search users or groups to add…",
"create": "Create group",
"empty": "No groups yet.",
"members": "Members",
"nested": "Group"
},
"sort": {
"asc": "ascending",
"desc": "descending",
"direction": "Sort direction"
},
"notif": {
"errorTitle": "Error",
"searchError": "Error performing search",
"cleanupCompleted": "Cleanup completed",
"cleanupCompletedBody": "Recent files history has been cleared",
"batchCopy": "Batch copy",
"batchCopyBody": "{{success}} copied, {{errors}} failed",
"itemsCopied": "Items copied",
"itemsCopiedBody": "{{count}} items copied successfully",
"batchMove": "Batch move",
"batchMoveBody": "{{success}} moved, {{errors}} failed",
"itemsMoved": "Items moved",
"itemsMovedBody": "{{count}} items moved successfully",
"batchDelete": "Batch delete",
"batchDeleteBody": "{{success}} moved to trash, {{errors}} failed",
"movedToTrash": "Moved to trash",
"movedToTrashBody": "{{count}} items moved to trash",
"trashItemsError": "Could not move items to trash",
"preparingDownload": "Preparing download",
"preparingDownloadBody": "Preparing your download…",
"downloadItemsError": "Could not download selected items",
"favoritesAddError": "Could not add items to favorites",
"invalidEmail": "Please enter a valid email address",
"notificationSendError": "Could not send notification",
"folderCreated": "Folder created",
"folderCreatedBody": "\"{{name}}\" created successfully",
"fileMoved": "File moved",
"fileMovedBody": "File moved successfully",
"fileMoveError": "Error moving the file: {{error}}",
"fileMoveErrorGeneric": "Error moving the file",
"folderMoved": "Folder moved",
"folderMovedBody": "Folder moved successfully",
"folderMoveError": "Error moving the folder: {{error}}",
"folderMoveErrorGeneric": "Error moving the folder",
"fileCopied": "File copied",
"fileCopiedBody": "File copied successfully",
"fileCopyError": "Error copying the file: {{error}}",
"fileCopyErrorGeneric": "Error copying the file",
"folderRenamed": "Folder renamed",
"folderRenamedBody": "Folder renamed to \"{{name}}\"",
"fileTrashed": "File moved to trash",
"fileTrashedBody": "\"{{name}}\" moved to trash",
"fileDeleted": "File deleted",
"fileDeletedBody": "\"{{name}}\" deleted successfully",
"fileDeleteError": "Error deleting the file",
"folderTrashed": "Folder moved to trash",
"folderTrashedBody": "\"{{name}}\" moved to trash",
"folderDeleted": "Folder deleted",
"folderDeletedBody": "\"{{name}}\" deleted successfully",
"folderDeleteError": "Error deleting the folder",
"itemRestored": "Item restored",
"itemRestoredBody": "Item restored successfully",
"itemRestoreError": "Error restoring the item",
"itemDeleted": "Item deleted",
"itemDeletedBody": "Item permanently deleted",
"itemDeleteError": "Error deleting the item",
"trashEmptied": "Trash emptied",
"trashEmptiedBody": "The trash has been emptied successfully",
"trashEmptyError": "Error emptying the trash",
"cacheCleared": "Cache cleared",
"cacheClearedBody": "Search cache cleared successfully",
"cacheClearError": "Error clearing search cache",
"wopiOpenError": "Could not open the document editor.",
"linkCopied": "Link copied",
"linkCopiedBody": "Link copied to clipboard",
"linkCopyError": "Could not copy link",
"notificationSent": "Notification sent",
"notificationSentBody": "Notification sent to {{email}}"
},
"about": {
"description": "OxiCloud — a fast, self-hosted file storage and sync server."
},
"category": {
"archives": "Archives",
"audio": "Audio",
"code": "Code",
"documents": "Documents",
"images": "Images",
"installers": "Installers",
"markdown": "Markdown",
"presentations": "Presentations",
"spreadsheets": "Spreadsheets",
"text": "Text",
"videos": "Videos"
},
"cmdk": {
"no_results": "No matching commands",
"placeholder": "Type a command or search…",
"title": "Command palette",
"toggle_theme": "Toggle theme"
},
"common": {
"add": "Add",
"cancel": "Cancel",
"clear": "Clear",
"close": "Close",
"confirm": "Confirm",
"copied": "Copied to clipboard",
"copy": "Copy",
"copy_failed": "Copy failed",
"create": "Create",
"delete": "Delete",
"download": "Download",
"empty": "Nothing here yet.",
"error": "unknown error",
"favorite": "Favorite",
"load_more": "Load more",
"loading": "Loading…",
"next": "Next",
"no": "No",
"ok": "OK",
"optional": "optional",
"previous": "Previous",
"remove": "Remove",
"rename": "Rename",
"retry": "Try Again",
"save": "Save",
"search": "Search",
"select": "Select",
"select_all": "Select all",
"yes": "Yes",
"dismiss": "Dismiss",
"saving": "Saving…",
"deleting": "Deleting…"
},
"device": {
"approve": "Approve",
"approved": "Device approved. You can return to your device.",
"client": "Application",
"continue": "Continue",
"denied": "Device access denied.",
"deny": "Deny",
"enter_code": "Enter the code shown on your device",
"lookup_failed": "Failed to verify code. Please try again.",
"not_found": "Code not found or expired. Please check and try again.",
"scopes": "Access",
"title": "Device verification",
"unauthorized": "You must be logged in to authorize a device. Please log in first.",
"unknown": "Unknown"
},
"errors_loadFailed": "Failed to load items",
"expiryBucket": {
"expired": "Expired",
"later": "Later",
"month": "In less than 30 days",
"noExpiry": "No expiration",
"today": "Today",
"tomorrow": "Tomorrow",
"week": "In less than 7 days"
},
"nextcloud": {
"close_window": "Close Window",
"error_expired_body": "Your session has expired. Please try again.",
"error_expired_title": "Session Expired",
"error_generic_body": "An unexpected error occurred. Please try again.",
"error_invalid_body": "Invalid username or password. Please check your credentials and try again.",
"error_invalid_title": "Login Failed",
"error_notfound_body": "The requested page was not found.",
"error_notfound_title": "Not Found",
"error_title": "Error",
"grant": "Grant access",
"grant_subtitle": "A Nextcloud client is requesting access to your account.",
"grant_title": "Grant access",
"invalid_token": "Invalid session token.",
"sign_in_with": "Sign in with {{provider}}",
"success_body": "You can now return to your application — it is connected.",
"success_title": "Access granted"
},
"search": {
"clear_filters": "Clear filters",
"date": {
"all": "Any time",
"day": "Past 24 hours",
"month": "Past month",
"week": "Past week",
"year": "Past year"
},
"date_label": "Date",
"everywhere": "Everywhere",
"no_results": "No results found for this search",
"prompt": "Type a query in the search bar above.",
"results_for": "Results for “{{q}}”",
"scope": "Scope",
"searching_for": "Searching for “{{q}}”…",
"see_all": "See all results",
"size": {
"all": "Any size",
"large": "> 100 MB",
"medium": "1–100 MB",
"small": "< 1 MB"
},
"size_label": "Size",
"sort": {
"largest": "Largest",
"name_asc": "Name A-Z",
"name_desc": "Name Z-A",
"newest": "Newest",
"oldest": "Oldest",
"relevance": "Relevance",
"smallest": "Smallest"
},
"sort_by": "Sort by",
"this_folder": "This folder",
"title": "Search",
"type": {
"all": "All types",
"archive": "Archives",
"audio": "Audio",
"document": "Documents",
"image": "Images",
"video": "Videos"
},
"type_label": "Type",
"results_summary": "Results for “{{q}}” · {{n}} results in {{ms}} ms",
"results_summary_no_total": "Results for “{{q}}” · {{ms}} ms",
"this_folder_disabled": "Open a folder in Files to scope search to it"
},
"settings": {
"language": "Language"
},
"shared_with_me": {
"empty": "Nothing has been shared with you yet.",
"from": "Shared by {{who}}"
},
"sizeBucket": {
"empty": "Empty (0 B)",
"folders": "Folders",
"huge": "> 5 GB",
"large": "1 – 5 GB",
"medium": "100 MB – 1 GB",
"small": "1 – 100 MB",
"tiny": "< 1 MB"
},
"sortdir": {
"title": "Sort direction"
},
"view": {
"grid": "Grid view",
"label": "View options",
"list": "List view",
"hide_dotfiles": "Hide hidden files",
"show_dotfiles": "Show hidden files"
},
"preferences": {
"save_failed": "Couldn't save your preference. Please try again."
},
"upgrade": {
"title": "Upgrade to a full account",
"lede": "Get your own storage and start uploading files. Your existing shares stay untouched.",
"busy": "Upgrading…",
"submit": "Upgrade my account",
"cancel": "Not now — back to shared with me",
"success": "Your account has been upgraded. Redirecting to your files…",
"error": "Upgrade failed.",
"password_required": "Password is required — this deployment does not offer email-link login.",
"password_too_short": "Password must be at least 8 characters long.",
"oidc_user": "SSO/OIDC accounts are managed by your identity provider. Upgrade is not available.",
"domain_not_allowed": "This deployment does not accept new accounts from your email domain. Contact the administrator to enable it.",
"banner_aria": "Upgrade prompt",
"banner_title": "Get your own storage",
"banner_body": "You're using a guest account. Upgrade to get a personal drive and start uploading files.",
"banner_cta": "Upgrade"
},
"drive": {
"read_only_banner": {
"title": "This drive is read-only",
"title_named": "Drive \"{{name}}\" is read-only",
"body": "Uploads, edits, deletes, renames, sharing and membership changes are refused. Reads and downloads keep working. Contact an administrator to un-freeze the drive.",
"aria": "This drive is read-only"
},
"back_to_files": "Back to Files",
"danger_zone": "Danger zone",
"delete": "Delete drive",
"delete_confirm": "Delete drive \"{{name}}\"? This cannot be undone — the drive must be empty first or the server will refuse.",
"delete_hint": "Deleting a drive removes it permanently. The drive must be empty (no live files or folders) before delete is allowed.",
"deleted": "Drive deleted.",
"field": {
"created": "Created",
"default": "Default",
"default_yes": "This is your home drive",
"id": "Identifier",
"kind": "Kind",
"updated": "Last updated"
},
"info": "Drive info",
"kind_personal": "Personal drive",
"kind_shared": "Shared drive",
"manage_members": "Manage members",
"members": "Members",
"members_empty": "No members.",
"not_found_body": "This drive doesn't exist or you don't have access to it.",
"not_found_title": "Drive not found",
"policies": "Policies",
"policies_help": "Rules an OxiCloud admin has set for this drive. Only admins can change them; you're seeing the current state.",
"quota": "Quota",
"rename": "Rename drive",
"role": {
"commenter": "Commenter",
"contributor": "Contributor",
"editor": "Editor",
"owner": "Owner",
"viewer": "Viewer"
},
"storage": "Storage",
"usage": "Usage",
"used": "Used",
"members_personal_immutable": "Personal drives have a fixed single-owner membership."
},
"group": {
"members_empty": "No members",
"member_count": "{{n}} members"
},
"resource_list": {
"location": "Location",
"wrong_drop_zone_msg": "Uploads only work in Files — open the Files section and drop there.",
"wrong_drop_zone_action": "Go to Files"
}
}