This commit is contained in:
2026-08-26 23:01:07 +03:00
commit 015b528127
67 changed files with 20201 additions and 0 deletions
+357
View File
@@ -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',
},
};