initial
This commit is contained in:
+357
@@ -0,0 +1,357 @@
|
||||
export default {
|
||||
common: {
|
||||
cancel: 'Cancel',
|
||||
delete: 'Delete',
|
||||
retry: 'Retry',
|
||||
optional: '(optional)',
|
||||
all: 'All',
|
||||
seeAll: 'See all',
|
||||
tryAgain: 'Please try again.',
|
||||
loading: 'Loading…',
|
||||
},
|
||||
|
||||
tabs: {
|
||||
home: 'Home',
|
||||
search: 'Search',
|
||||
profile: 'Profile',
|
||||
upload: 'Upload',
|
||||
scan: 'Scan',
|
||||
expiring: 'Expiring',
|
||||
},
|
||||
|
||||
expiring: {
|
||||
title: 'Expiring',
|
||||
subtitle: { one: '%{count} document needs attention', other: '%{count} documents need attention' },
|
||||
emptyTitle: 'Nothing expiring',
|
||||
emptySubtitle: 'All your documents are up to date.',
|
||||
},
|
||||
|
||||
login: {
|
||||
tagline: 'Every property document, organized and always within reach.',
|
||||
email: 'Email',
|
||||
emailPlaceholder: 'you@example.com',
|
||||
password: 'Password',
|
||||
passwordPlaceholder: 'Your password',
|
||||
show: 'Show',
|
||||
hide: 'Hide',
|
||||
signIn: 'Sign in',
|
||||
missingFields: 'Enter your email and password.',
|
||||
failed: 'Sign in failed. Check your credentials.',
|
||||
demoHint: 'Demo mode — any credentials sign you in.',
|
||||
forgot: 'Forgot your password?',
|
||||
noAccount: 'No account yet?',
|
||||
trust: 'Encrypted connection · secure cloud storage',
|
||||
},
|
||||
|
||||
register: {
|
||||
title: 'Create your account',
|
||||
subtitle: 'One place for every document of every property you own.',
|
||||
firstName: 'First name',
|
||||
lastName: 'Last name',
|
||||
passwordHint: 'At least %{count} characters',
|
||||
submit: 'Create account',
|
||||
haveAccount: 'Already have an account?',
|
||||
badEmail: 'Enter a valid email address.',
|
||||
shortPassword: 'The password must be at least %{count} characters.',
|
||||
emailTaken: 'That email is already registered. Try signing in instead.',
|
||||
},
|
||||
|
||||
verify: {
|
||||
title: 'Check your email',
|
||||
subtitle: 'We sent a 6-digit code to %{email}. Enter it below to finish.',
|
||||
code: 'Verification code',
|
||||
submit: 'Confirm',
|
||||
resend: 'Send a new code',
|
||||
resendIn: 'You can request a new code in %{count}s',
|
||||
invalid: 'That code is not right. Check it and try again.',
|
||||
expired: 'That code has expired. Request a new one.',
|
||||
},
|
||||
|
||||
forgot: {
|
||||
title: 'Reset your password',
|
||||
subtitle: 'Enter your email and we will send you a code to set a new password.',
|
||||
submit: 'Send code',
|
||||
},
|
||||
|
||||
reset: {
|
||||
title: 'Set a new password',
|
||||
newPassword: 'New password',
|
||||
submit: 'Save password',
|
||||
doneTitle: 'Password changed',
|
||||
doneBody: 'You have been signed out everywhere. Sign in with the new password.',
|
||||
},
|
||||
|
||||
editProfile: {
|
||||
title: 'Personal details',
|
||||
save: 'Save changes',
|
||||
phone: 'Phone',
|
||||
address: 'Address',
|
||||
emailReadOnly: 'Email cannot be changed here — contact support if you need to.',
|
||||
failed: 'Could not save your details',
|
||||
photo: 'Change photo',
|
||||
},
|
||||
|
||||
changePassword: {
|
||||
title: 'Change password',
|
||||
current: 'Current password',
|
||||
next: 'New password',
|
||||
submit: 'Change password',
|
||||
wrongCurrent: 'That is not your current password.',
|
||||
doneTitle: 'Password changed',
|
||||
doneBody: 'Other devices have been signed out.',
|
||||
failed: 'Could not change the password',
|
||||
},
|
||||
|
||||
properties: {
|
||||
title: 'My Properties',
|
||||
count: { one: '%{count} property', other: '%{count} properties' },
|
||||
loading: 'Loading properties…',
|
||||
loadError: "Couldn't load properties",
|
||||
searchPlaceholder: 'Search documents by name or category…',
|
||||
add: 'Add property',
|
||||
emptyTitle: 'No properties yet',
|
||||
emptySubtitle: 'Add your first property to start organizing its documents.',
|
||||
docCount: { one: '%{count} document', other: '%{count} documents' },
|
||||
expiringCount: '%{count} expiring',
|
||||
allValid: 'All valid',
|
||||
counting: 'Counting documents…',
|
||||
noPhoto: 'No photo',
|
||||
},
|
||||
|
||||
property: {
|
||||
fallbackTitle: 'Property',
|
||||
addDocument: 'Add document',
|
||||
needAttention: {
|
||||
one: '%{count} document needs attention',
|
||||
other: '%{count} documents need attention',
|
||||
},
|
||||
categories: 'Categories',
|
||||
folders: { one: '%{count} folder', other: '%{count} folders' },
|
||||
noDocuments: 'No documents yet. Tap “Add document” to start.',
|
||||
recent: 'Recent documents',
|
||||
addAddress: 'Add an address',
|
||||
noRecent: 'Recently uploaded documents will show up here.',
|
||||
},
|
||||
|
||||
addProperty: {
|
||||
title: 'Add property',
|
||||
name: 'Property name',
|
||||
namePlaceholder: 'e.g. Villa Bellavista',
|
||||
type: 'Type',
|
||||
address: 'Address',
|
||||
addressPlaceholder: 'Street, number',
|
||||
zip: 'ZIP',
|
||||
city: 'City',
|
||||
description: 'Description',
|
||||
descriptionPlaceholder: 'Notes about this property…',
|
||||
save: 'Save property',
|
||||
nameRequired: 'Name required',
|
||||
nameRequiredBody: 'Give the property a name.',
|
||||
saveFailed: 'Could not save',
|
||||
addPhoto: 'Add cover photo',
|
||||
photoSourceTitle: 'Property photo',
|
||||
takePhoto: 'Take a photo',
|
||||
fromGallery: 'Choose from gallery',
|
||||
changePhoto: 'Change photo',
|
||||
photoFailed: 'Property saved, but the photo failed to upload',
|
||||
},
|
||||
|
||||
location: {
|
||||
title: 'Location',
|
||||
field: 'Map location',
|
||||
set: 'Pin on map',
|
||||
change: 'Change location',
|
||||
notSet: 'No location set',
|
||||
noPin: 'Tap the map to drop a pin',
|
||||
tapHint: 'Tap the map to place the pin',
|
||||
fromAddress: 'Find from the address above',
|
||||
confirm: 'Use this location',
|
||||
notFound: 'Address not found',
|
||||
notFoundBody: 'Try a more specific address, or drop the pin by hand.',
|
||||
permission: 'Allow location access to use your current position.',
|
||||
gpsFailed: "Couldn't get your position",
|
||||
servicesOff: 'Turn on Location Services',
|
||||
servicesOffBody:
|
||||
'Location Services are off for this device. Turn them on in Settings → Privacy & Security → Location Services, then try again.',
|
||||
fillTitle: 'Use this address?',
|
||||
fillBody: 'The map knows this place as:\n\n%{address}\n\nReplace the address fields with it?',
|
||||
fillApply: 'Replace',
|
||||
fillKeep: 'Keep mine',
|
||||
},
|
||||
|
||||
editProperty: {
|
||||
title: 'Edit property',
|
||||
save: 'Save changes',
|
||||
action: 'Edit',
|
||||
delete: 'Delete property',
|
||||
deleteTitle: 'Delete this property?',
|
||||
deleteBody: '“%{name}” will be permanently deleted. This cannot be undone.',
|
||||
deleteBodyWithDocs:
|
||||
'“%{name}” and its %{count} document(s) will be permanently deleted. This cannot be undone.',
|
||||
deleteFailed: 'Could not delete the property',
|
||||
},
|
||||
|
||||
editDocument: {
|
||||
title: 'Edit document',
|
||||
save: 'Save changes',
|
||||
name: 'Document name',
|
||||
namePlaceholder: 'Leave empty to use the default name',
|
||||
note: 'Note',
|
||||
notePlaceholder: 'Anything worth remembering about this document…',
|
||||
noExpiry: 'No expiry date',
|
||||
failed: 'Could not save',
|
||||
hint: 'These details are updated without touching the stored file.',
|
||||
file: 'File',
|
||||
replace: 'Replace file',
|
||||
replaceHint: 'Re-scan, pick another file or take a new photo — the document keeps its history.',
|
||||
replacing: 'Replacing…',
|
||||
replaced: 'File replaced',
|
||||
replaceFailed: 'Could not replace the file',
|
||||
},
|
||||
|
||||
propertyTypes: {
|
||||
apartment: 'Apartment',
|
||||
house: 'House',
|
||||
villa: 'Villa',
|
||||
commercial: 'Commercial',
|
||||
land: 'Land',
|
||||
building: 'Building',
|
||||
},
|
||||
|
||||
documents: {
|
||||
allTitle: 'All documents',
|
||||
filterAttention: 'Needs attention',
|
||||
filterValid: 'Valid',
|
||||
filterExpiring: 'Expiring',
|
||||
filterExpired: 'Expired',
|
||||
emptyTitle: 'Nothing here',
|
||||
emptySubtitle: 'No documents match this filter.',
|
||||
},
|
||||
|
||||
document: {
|
||||
title: 'Document',
|
||||
expired: 'Expired',
|
||||
expiringSoon: 'Expiring soon',
|
||||
expiresOn: 'Expires %{date}.',
|
||||
checkExpiry: 'Check the expiry date.',
|
||||
loadingFile: 'Loading file…',
|
||||
pages: { one: '%{count} page', other: '%{count} pages' },
|
||||
uploaded: 'Uploaded',
|
||||
expires: 'Expires',
|
||||
fileSize: 'File size',
|
||||
format: 'Format',
|
||||
formatImage: 'Image',
|
||||
formatPdf: 'PDF',
|
||||
share: 'Save / Share',
|
||||
openOnPhone: 'Open on my phone',
|
||||
deleteTitle: 'Delete document',
|
||||
deleteBody: 'This permanently removes the file. Continue?',
|
||||
cannotOpen: 'Cannot open',
|
||||
cannotOpenBody: 'The file could not be opened.',
|
||||
cannotSave: 'Cannot save',
|
||||
cannotSaveBody: 'The file could not be shared.',
|
||||
pdfCard: 'PDF document',
|
||||
pdfTapToOpen: 'Tap to open on your phone',
|
||||
pdfPreparing: 'Preparing…',
|
||||
},
|
||||
|
||||
upload: {
|
||||
title: 'Add document',
|
||||
source: 'Source',
|
||||
scan: 'Scan',
|
||||
scanning: 'Scanning…',
|
||||
chooseFile: 'Choose file',
|
||||
gallery: 'Gallery',
|
||||
scanHint: 'Scan photographs multiple pages and combines them into a single PDF.',
|
||||
readyToUpload: 'ready to upload',
|
||||
name: 'Document name',
|
||||
namePlaceholder: 'e.g. Energy Certificate 2026',
|
||||
property: 'Property',
|
||||
selectProperty: 'Select a property',
|
||||
category: 'Category',
|
||||
requirement: 'Document type',
|
||||
selectRequirement: 'Choose a document type',
|
||||
requirementHint: 'Picking the right type keeps the document where the portal expects it.',
|
||||
noRequirementTitle: 'Choose a document type',
|
||||
noRequirementBody: 'Pick which type of document this is, so it is filed correctly.',
|
||||
expiry: 'Expiration date',
|
||||
submit: 'Upload document',
|
||||
scannedName: 'Scanned document',
|
||||
photoName: 'Photo document',
|
||||
noFileTitle: 'Add a file',
|
||||
noFileBody: 'Choose, photograph or scan a document first.',
|
||||
nameRequired: 'Name required',
|
||||
nameRequiredBody: 'Give the document a name.',
|
||||
noPropertyTitle: 'Select a property',
|
||||
noPropertyBody: 'Pick which property this belongs to.',
|
||||
failed: 'Upload failed',
|
||||
scannerUnavailable: 'Scanner unavailable',
|
||||
scannerUnavailableBody: 'Could not open the scanner.',
|
||||
permissionTitle: 'Permission needed',
|
||||
photoPermission: 'Allow photo access to attach an image.',
|
||||
},
|
||||
|
||||
profile: {
|
||||
title: 'Profile',
|
||||
account: 'Account',
|
||||
legal: 'Legal',
|
||||
personalDetails: 'Personal details',
|
||||
personalDetailsSub: 'Name, email, phone',
|
||||
security: 'Password & security',
|
||||
securitySub: 'Change password',
|
||||
biometrics: 'Biometric sign-in',
|
||||
biometricsSub: 'Faster, secure login',
|
||||
signOut: 'Sign out',
|
||||
demoMode: 'Demo mode · running on mock data',
|
||||
language: 'Language',
|
||||
languageSystem: 'System',
|
||||
languageSystemSub: 'Follow the phone’s language',
|
||||
dangerZone: 'Danger zone',
|
||||
deleteAccount: 'Delete my account',
|
||||
deleteAccountSub: 'Permanently erases your account, properties and documents',
|
||||
deleteConfirmTitle: 'Delete your account?',
|
||||
deleteConfirmBody:
|
||||
'This permanently deletes your account together with every property and document you stored. It cannot be undone.',
|
||||
deleteConfirmCta: 'Delete everything',
|
||||
deleteFailed: 'Could not delete the account',
|
||||
privacy: 'Privacy policy',
|
||||
terms: 'Terms of use',
|
||||
},
|
||||
|
||||
permissions: {
|
||||
primerTitle: 'Camera access',
|
||||
primerBody:
|
||||
'CasaDoc uses the camera to scan documents into PDF. Nothing is uploaded until you tap Upload.',
|
||||
continue: 'Continue',
|
||||
notNow: 'Not now',
|
||||
blockedTitle: 'Permission is switched off',
|
||||
photosBody:
|
||||
'Photo access is off. Tap “Open settings”, then choose Permissions › Photos and music (or Files) and allow it.',
|
||||
cameraBody:
|
||||
'Camera access is off. Tap “Open settings”, then choose Permissions › Camera and allow it.',
|
||||
locationBody:
|
||||
'Location access is off, and the address lookup needs it. Tap “Open settings”, then choose Permissions › Location and allow it. You can still place the pin by hand.',
|
||||
openSettings: 'Open settings',
|
||||
},
|
||||
|
||||
network: {
|
||||
offline: 'No connection — showing saved data',
|
||||
},
|
||||
|
||||
files: {
|
||||
noFile: 'This document has no file attached.',
|
||||
missingOnServer: 'The file is missing on the server (404).',
|
||||
downloadFailed: 'Could not download the file (HTTP %{status}).',
|
||||
noViewer: 'No app available to open this file.',
|
||||
sharingUnavailable: 'Sharing is not available on this device.',
|
||||
scannerNeedsDevBuild:
|
||||
'Native document scanner is unavailable. Run a Dev Client / EAS build (not Expo Go).',
|
||||
},
|
||||
|
||||
expiry: {
|
||||
valid: 'Valid',
|
||||
expired: 'Expired',
|
||||
expiring: 'Expiring',
|
||||
days: '%{count} days',
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user