mirror of
https://github.com/FoggedLens/deflock-app.git
synced 2026-03-07 03:41:47 +00:00
258 lines
10 KiB
JSON
258 lines
10 KiB
JSON
{
|
||
"language": {
|
||
"name": "English"
|
||
},
|
||
"app": {
|
||
"title": "DeFlock"
|
||
},
|
||
"actions": {
|
||
"tagNode": "New Node",
|
||
"download": "Download",
|
||
"settings": "Settings",
|
||
"edit": "Edit",
|
||
"delete": "Delete",
|
||
"cancel": "Cancel",
|
||
"ok": "OK",
|
||
"close": "Close",
|
||
"submit": "Submit",
|
||
"saveEdit": "Save Edit",
|
||
"clear": "Clear"
|
||
},
|
||
"followMe": {
|
||
"off": "Enable follow-me (north up)",
|
||
"northUp": "Enable follow-me (rotating)",
|
||
"rotating": "Disable follow-me"
|
||
},
|
||
"settings": {
|
||
"title": "Settings",
|
||
"language": "Language",
|
||
"systemDefault": "System Default",
|
||
"aboutInfo": "About / Info",
|
||
"aboutThisApp": "About This App",
|
||
"maxNodes": "Max nodes fetched/drawn",
|
||
"maxNodesSubtitle": "Set an upper limit for the number of nodes on the map (default: 250).",
|
||
"maxNodesWarning": "You probably don't want to do that unless you are absolutely sure you have a good reason for it.",
|
||
"offlineMode": "Offline Mode",
|
||
"offlineModeSubtitle": "Disable all network requests except for local/offline areas.",
|
||
"offlineModeWarningTitle": "Active Downloads",
|
||
"offlineModeWarningMessage": "Enabling offline mode will cancel any active area downloads. Do you want to continue?",
|
||
"enableOfflineMode": "Enable Offline Mode"
|
||
},
|
||
"node": {
|
||
"title": "Node #{}",
|
||
"tagSheetTitle": "Surveillance Device Tags",
|
||
"queuedForUpload": "Node queued for upload",
|
||
"editQueuedForUpload": "Node edit queued for upload",
|
||
"deleteQueuedForUpload": "Node deletion queued for upload",
|
||
"confirmDeleteTitle": "Delete Node",
|
||
"confirmDeleteMessage": "Are you sure you want to delete node #{}? This action cannot be undone."
|
||
},
|
||
"addNode": {
|
||
"profile": "Profile",
|
||
"direction": "Direction {}°",
|
||
"profileNoDirectionInfo": "This profile does not require a direction.",
|
||
"mustBeLoggedIn": "You must be logged in to submit new nodes. Please log in via Settings.",
|
||
"enableSubmittableProfile": "Enable a submittable profile in Settings to submit new nodes.",
|
||
"profileViewOnlyWarning": "This profile is for map viewing only. Please select a submittable profile to submit new nodes.",
|
||
"refineTags": "Refine Tags",
|
||
"refineTagsWithProfile": "Refine Tags ({})"
|
||
},
|
||
"editNode": {
|
||
"title": "Edit Node #{}",
|
||
"profile": "Profile",
|
||
"direction": "Direction {}°",
|
||
"profileNoDirectionInfo": "This profile does not require a direction.",
|
||
"mustBeLoggedIn": "You must be logged in to edit nodes. Please log in via Settings.",
|
||
"sandboxModeWarning": "Cannot submit edits on production nodes to sandbox. Switch to Production mode in Settings to edit nodes.",
|
||
"enableSubmittableProfile": "Enable a submittable profile in Settings to edit nodes.",
|
||
"profileViewOnlyWarning": "This profile is for map viewing only. Please select a submittable profile to edit nodes.",
|
||
"refineTags": "Refine Tags",
|
||
"refineTagsWithProfile": "Refine Tags ({})"
|
||
},
|
||
"download": {
|
||
"title": "Download Map Area",
|
||
"maxZoomLevel": "Max zoom level",
|
||
"storageEstimate": "Storage estimate:",
|
||
"tilesAndSize": "{} tiles, {} MB",
|
||
"minZoom": "Min zoom:",
|
||
"maxRecommendedZoom": "Max recommended zoom: Z{}",
|
||
"withinTileLimit": "Within {} tile limit",
|
||
"exceedsTileLimit": "Current selection exceeds {} tile limit",
|
||
"offlineModeWarning": "Downloads disabled while in offline mode. Disable offline mode to download new areas.",
|
||
"downloadStarted": "Download started! Fetching tiles and cameras...",
|
||
"downloadFailed": "Failed to start download: {}"
|
||
},
|
||
"uploadMode": {
|
||
"title": "Upload Destination",
|
||
"subtitle": "Choose where cameras are uploaded",
|
||
"production": "Production",
|
||
"sandbox": "Sandbox",
|
||
"simulate": "Simulate",
|
||
"productionDescription": "Upload to the live OSM database (visible to all users)",
|
||
"sandboxDescription": "Uploads go to the OSM Sandbox (safe for testing, resets regularly).",
|
||
"simulateDescription": "Simulate uploads (does not contact OSM servers)"
|
||
},
|
||
"auth": {
|
||
"loggedInAs": "Logged in as {}",
|
||
"loginToOSM": "Log in to OpenStreetMap",
|
||
"tapToLogout": "Tap to logout",
|
||
"requiredToSubmit": "Required to submit camera data",
|
||
"loggedOut": "Logged out",
|
||
"testConnection": "Test Connection",
|
||
"testConnectionSubtitle": "Verify OSM credentials are working",
|
||
"connectionOK": "Connection OK - credentials are valid",
|
||
"connectionFailed": "Connection failed - please re-login"
|
||
},
|
||
"queue": {
|
||
"pendingUploads": "Pending uploads: {}",
|
||
"simulateModeEnabled": "Simulate mode enabled – uploads simulated",
|
||
"sandboxMode": "Sandbox mode – uploads go to OSM Sandbox",
|
||
"tapToViewQueue": "Tap to view queue",
|
||
"clearUploadQueue": "Clear Upload Queue",
|
||
"removeAllPending": "Remove all {} pending uploads",
|
||
"clearQueueTitle": "Clear Queue",
|
||
"clearQueueConfirm": "Remove all {} pending uploads?",
|
||
"queueCleared": "Queue cleared",
|
||
"uploadQueueTitle": "Upload Queue ({} items)",
|
||
"queueIsEmpty": "Queue is empty",
|
||
"cameraWithIndex": "Camera {}",
|
||
"error": " (Error)",
|
||
"completing": " (Completing...)",
|
||
"destination": "Dest: {}",
|
||
"latitude": "Lat: {}",
|
||
"longitude": "Lon: {}",
|
||
"direction": "Direction: {}°",
|
||
"attempts": "Attempts: {}",
|
||
"uploadFailedRetry": "Upload failed. Tap retry to try again.",
|
||
"retryUpload": "Retry upload",
|
||
"clearAll": "Clear All"
|
||
},
|
||
"tileProviders": {
|
||
"title": "Tile Providers",
|
||
"noProvidersConfigured": "No tile providers configured",
|
||
"tileTypesCount": "{} tile types",
|
||
"apiKeyConfigured": "API Key configured",
|
||
"needsApiKey": "Needs API key",
|
||
"editProvider": "Edit Provider",
|
||
"addProvider": "Add Provider",
|
||
"deleteProvider": "Delete Provider",
|
||
"deleteProviderConfirm": "Are you sure you want to delete \"{}\"?",
|
||
"providerName": "Provider Name",
|
||
"providerNameHint": "e.g., Custom Maps Inc.",
|
||
"providerNameRequired": "Provider name is required",
|
||
"apiKey": "API Key (Optional)",
|
||
"apiKeyHint": "Enter API key if required by tile types",
|
||
"tileTypes": "Tile Types",
|
||
"addType": "Add Type",
|
||
"noTileTypesConfigured": "No tile types configured",
|
||
"atLeastOneTileTypeRequired": "At least one tile type is required",
|
||
"manageTileProviders": "Manage Providers"
|
||
},
|
||
"tileTypeEditor": {
|
||
"editTileType": "Edit Tile Type",
|
||
"addTileType": "Add Tile Type",
|
||
"name": "Name",
|
||
"nameHint": "e.g., Satellite",
|
||
"nameRequired": "Name is required",
|
||
"urlTemplate": "URL Template",
|
||
"urlTemplateHint": "https://example.com/{z}/{x}/{y}.png",
|
||
"urlTemplateRequired": "URL template is required",
|
||
"urlTemplatePlaceholders": "URL must contain {z}, {x}, and {y} placeholders",
|
||
"attribution": "Attribution",
|
||
"attributionHint": "© Map Provider",
|
||
"attributionRequired": "Attribution is required",
|
||
"fetchPreview": "Fetch Preview",
|
||
"previewTileLoaded": "Preview tile loaded successfully",
|
||
"previewTileFailed": "Failed to fetch preview: {}",
|
||
"save": "Save"
|
||
},
|
||
"profiles": {
|
||
"nodeProfiles": "Node Profiles",
|
||
"newProfile": "New Profile",
|
||
"builtIn": "Built-in",
|
||
"custom": "Custom",
|
||
"view": "View",
|
||
"deleteProfile": "Delete Profile",
|
||
"deleteProfileConfirm": "Are you sure you want to delete \"{}\"?",
|
||
"profileDeleted": "Profile deleted"
|
||
},
|
||
"mapTiles": {
|
||
"title": "Map Tiles",
|
||
"manageProviders": "Manage Providers"
|
||
},
|
||
"profileEditor": {
|
||
"viewProfile": "View Profile",
|
||
"newProfile": "New Profile",
|
||
"editProfile": "Edit Profile",
|
||
"profileName": "Profile name",
|
||
"profileNameHint": "e.g., Custom ALPR Camera",
|
||
"profileNameRequired": "Profile name is required",
|
||
"requiresDirection": "Requires Direction",
|
||
"requiresDirectionSubtitle": "Whether cameras of this type need a direction tag",
|
||
"submittable": "Submittable",
|
||
"submittableSubtitle": "Whether this profile can be used for camera submissions",
|
||
"osmTags": "OSM Tags",
|
||
"addTag": "Add tag",
|
||
"saveProfile": "Save Profile",
|
||
"keyHint": "key",
|
||
"valueHint": "value",
|
||
"atLeastOneTagRequired": "At least one tag is required",
|
||
"profileSaved": "Profile \"{}\" saved"
|
||
},
|
||
"operatorProfileEditor": {
|
||
"newOperatorProfile": "New Operator Profile",
|
||
"editOperatorProfile": "Edit Operator Profile",
|
||
"operatorName": "Operator name",
|
||
"operatorNameHint": "e.g., Austin Police Department",
|
||
"operatorNameRequired": "Operator name is required",
|
||
"operatorProfileSaved": "Operator profile \"{}\" saved"
|
||
},
|
||
"operatorProfiles": {
|
||
"title": "Operator Profiles",
|
||
"noProfilesMessage": "No operator profiles defined. Create one to apply operator tags to node submissions.",
|
||
"tagsCount": "{} tags",
|
||
"deleteOperatorProfile": "Delete Operator Profile",
|
||
"deleteOperatorProfileConfirm": "Are you sure you want to delete \"{}\"?",
|
||
"operatorProfileDeleted": "Operator profile deleted"
|
||
},
|
||
"offlineAreas": {
|
||
"noAreasTitle": "No offline areas",
|
||
"noAreasSubtitle": "Download a map area for offline use.",
|
||
"provider": "Provider",
|
||
"maxZoom": "Max zoom",
|
||
"zoomLevels": "Z{}-{}",
|
||
"latitude": "Lat",
|
||
"longitude": "Lon",
|
||
"tiles": "Tiles",
|
||
"size": "Size",
|
||
"cameras": "Cameras",
|
||
"areaIdFallback": "Area {}...",
|
||
"renameArea": "Rename area",
|
||
"refreshWorldTiles": "Refresh/re-download world tiles",
|
||
"deleteOfflineArea": "Delete offline area",
|
||
"cancelDownload": "Cancel download",
|
||
"renameAreaDialogTitle": "Rename Offline Area",
|
||
"areaNameLabel": "Area Name",
|
||
"renameButton": "Rename",
|
||
"megabytes": "MB",
|
||
"kilobytes": "KB",
|
||
"progress": "{}%"
|
||
},
|
||
"refineTagsSheet": {
|
||
"title": "Refine Tags",
|
||
"operatorProfile": "Operator Profile",
|
||
"done": "Done",
|
||
"none": "None",
|
||
"noAdditionalOperatorTags": "No additional operator tags",
|
||
"additionalTags": "additional tags",
|
||
"additionalTagsTitle": "Additional Tags",
|
||
"noTagsDefinedForProfile": "No tags defined for this operator profile.",
|
||
"noOperatorProfiles": "No operator profiles defined",
|
||
"noOperatorProfilesMessage": "Create operator profiles in Settings to apply additional tags to your node submissions."
|
||
},
|
||
"layerSelector": {
|
||
"cannotChangeTileTypes": "Cannot change tile types while downloading offline areas",
|
||
"selectMapLayer": "Select Map Layer",
|
||
"noTileProvidersAvailable": "No tile providers available"
|
||
}
|
||
} |