settings.json 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786
  1. {
  2. "title": "Settings",
  3. "subtitle": "Manage your workshop, invoices, and preferences",
  4. "nav": {
  5. "categories": {
  6. "general": "General",
  7. "billing": "Billing & Documents",
  8. "communications": "Communications",
  9. "workshop": "Workshop",
  10. "system": "System"
  11. },
  12. "items": {
  13. "company": { "title": "Company", "description": "Business details & branding" },
  14. "subscription": { "title": "Subscription", "description": "Plan & billing" },
  15. "account": { "title": "Account", "description": "Name, email & password" },
  16. "team": { "title": "Team", "description": "Members & roles" },
  17. "invoice": { "title": "Invoice", "description": "Invoice layout & fields" },
  18. "templates": { "title": "Templates", "description": "Invoice, quote & inspection templates" },
  19. "payment": { "title": "Payment", "description": "Payment terms & accounts" },
  20. "currency": { "title": "Currency", "description": "Currency & tax defaults" },
  21. "customFields": { "title": "Custom Fields", "description": "Define custom data fields" },
  22. "email": { "title": "Email", "description": "Email provider & sending" },
  23. "sms": { "title": "SMS", "description": "SMS provider & messaging" },
  24. "customerPortal": { "title": "Customer Portal", "description": "Customer self-service portal" },
  25. "workshop": { "title": "Workshop", "description": "Technician & labor defaults" },
  26. "maintenance": { "title": "Maintenance", "description": "Predicted service intervals" },
  27. "appearance": { "title": "Appearance", "description": "Theme & display" },
  28. "data": { "title": "Data", "description": "Export & import backup" },
  29. "license": { "title": "License", "description": "White-label license" },
  30. "about": { "title": "About", "description": "Version & info" }
  31. },
  32. "pro": "PRO"
  33. },
  34. "readOnly": {
  35. "banner": "You have view-only access to settings. Contact an admin to make changes."
  36. },
  37. "featureLocked": {
  38. "requiresPro": "Requires a Pro license",
  39. "upgradePlan": "Upgrade Plan",
  40. "activateLicense": "Activate License"
  41. },
  42. "company": {
  43. "logoTitle": "Company Logo",
  44. "logoAlt": "Company logo",
  45. "upload": "Upload",
  46. "remove": "Remove",
  47. "logoHint": "JPG, PNG, WebP, SVG — max 2MB",
  48. "uploadingLogo": "Uploading logo...",
  49. "logoUpdated": "Logo updated",
  50. "failedUploadLogo": "Failed to upload logo",
  51. "detailsTitle": "Company Details",
  52. "shopName": "Company / Shop Name",
  53. "shopNamePlaceholder": "Joe's Auto Repair",
  54. "orgNumber": "Organization Number",
  55. "orgNumberPlaceholder": "123 456 789",
  56. "phone": "Phone",
  57. "phonePlaceholder": "(555) 123-4567",
  58. "email": "Email",
  59. "emailPlaceholder": "service@example.com",
  60. "address": "Address",
  61. "addressPlaceholder": "123 Main Street\nSuite 100\nCity, State 12345",
  62. "saveCompany": "Save Company Details",
  63. "addNewCompany": "Add New Company",
  64. "companyName": "Company Name",
  65. "companyNamePlaceholder": "e.g. Joe's Auto Repair",
  66. "cancel": "Cancel",
  67. "createCompany": "Create Company",
  68. "settingsSaved": "Company settings saved",
  69. "failedSave": "Failed to save settings",
  70. "companyCreated": "Company created successfully"
  71. },
  72. "account": {
  73. "profileTitle": "Profile",
  74. "profileDescription": "Update your display name and email address.",
  75. "emailVerified": "Verified",
  76. "emailNotVerified": "Not verified",
  77. "sendVerificationEmail": "Send verification email",
  78. "verificationEmailSent": "Verification email sent. Check your inbox.",
  79. "verificationEmailFailed": "Failed to send verification email",
  80. "resendCooldown": "Resend in {seconds}s",
  81. "emailChangeSent": "A confirmation link has been sent to your new email address. Your email will be updated once you click the link.",
  82. "name": "Name",
  83. "namePlaceholder": "Your name",
  84. "emailLabel": "Email",
  85. "emailPlaceholder": "Your email",
  86. "saveProfile": "Save Profile",
  87. "profileUpdated": "Profile updated",
  88. "failedUpdateProfile": "Failed to update profile",
  89. "failedUpdateEmail": "Failed to update email",
  90. "changePasswordTitle": "Change Password",
  91. "changePasswordDescription": "Enter your current password and choose a new one.",
  92. "currentPassword": "Current Password",
  93. "newPassword": "New Password",
  94. "confirmNewPassword": "Confirm New Password",
  95. "changePassword": "Change Password",
  96. "passwordChanged": "Password changed",
  97. "passwordsNoMatch": "Passwords do not match",
  98. "passwordMinLength": "Password must be at least 8 characters",
  99. "failedChangePassword": "Failed to change password",
  100. "twoFactorTitle": "Two-Factor Authentication",
  101. "twoFactorEnabled": "Two-factor authentication is enabled",
  102. "twoFactorDisablePrompt": "Enter your password to disable two-factor authentication.",
  103. "twoFactorEnablePrompt": "Add an extra layer of security to your account by enabling two-factor authentication with an authenticator app.",
  104. "password": "Password",
  105. "enterPassword": "Enter your password",
  106. "disable2FA": "Disable 2FA",
  107. "enable2FA": "Enable 2FA",
  108. "twoFactorDisabled": "Two-factor authentication disabled",
  109. "failedEnable2FA": "Failed to enable 2FA",
  110. "failedDisable2FA": "Failed to disable 2FA",
  111. "enterPasswordError": "Please enter your password",
  112. "setupDialogTitle": "Enable Two-Factor Authentication",
  113. "setupDialogDescription": "Enter your password to begin setting up 2FA with an authenticator app.",
  114. "continue": "Continue",
  115. "scanQRTitle": "Scan QR Code",
  116. "scanQRDescription": "Scan this QR code with your authenticator app (Google Authenticator, Authy, etc.)",
  117. "verifyCodeTitle": "Verify Code",
  118. "verifyCodeDescription": "Enter the 6-digit code from your authenticator app to verify it's set up correctly.",
  119. "authCode": "Authentication Code",
  120. "authCodePlaceholder": "000000",
  121. "back": "Back",
  122. "verify": "Verify",
  123. "enterCodeError": "Please enter the code from your authenticator app",
  124. "invalidCode": "Invalid code. Please try again.",
  125. "verificationFailed": "Verification failed",
  126. "backupCodesTitle": "Save Backup Codes",
  127. "backupCodesDescription": "Save these codes in a safe place. You can use them to sign in if you lose access to your authenticator app. Each code can only be used once.",
  128. "copyCodes": "Copy Codes",
  129. "copied": "Copied",
  130. "backupCodesCopied": "Backup codes copied to clipboard",
  131. "savedBackupCodes": "I've saved my backup codes",
  132. "twoFactorEnabledSuccess": "Two-factor authentication enabled",
  133. "dangerZone": "Danger Zone",
  134. "deleteContentTitle": "Delete Content",
  135. "deleteContentDescription": "Selectively delete organization data such as vehicles, customers, quotes, or inventory. Your account and settings will remain intact.",
  136. "deleteContentButton": "Delete Content",
  137. "deleteAccountTitle": "Delete Account",
  138. "deleteAccountDescription": "Permanently delete your account and all associated data including vehicles, service records, work orders, invoices, customers, files, and payments. This action cannot be undone.",
  139. "deleteAccountButton": "Delete Account",
  140. "deleteAccountDialogTitle": "Delete Account",
  141. "deleteAccountDialogDescription": "This will permanently delete your account and all data associated with it. This action is irreversible. All your vehicles, service records, work orders, quotes, customers, files, and payment history will be permanently removed.",
  142. "deleteAccountConfirmPhrase": "delete me",
  143. "deleteAccountConfirmPrompt": "Type <bold>delete me</bold> to confirm",
  144. "permanentlyDelete": "Permanently Delete",
  145. "deleting": "Deleting...",
  146. "failedDeleteAccount": "Failed to delete account",
  147. "deleteContentDialogTitle": "Delete Content",
  148. "deleteContentDialogDescription": "Select the content you want to permanently delete. This action cannot be undone.",
  149. "contentVehicles": "Vehicles",
  150. "contentVehiclesDescription": "All vehicles and their service records, notes, reminders, fuel logs, and recurring invoices",
  151. "contentCustomers": "Customers",
  152. "contentCustomersDescription": "All customer records. Vehicles linked to deleted customers will be unlinked.",
  153. "contentQuotes": "Quotes",
  154. "contentQuotesDescription": "All quotes and their line items",
  155. "contentInventory": "Inventory",
  156. "contentInventoryDescription": "All inventory parts and their images",
  157. "deleteContentConfirmPhrase": "delete my data",
  158. "deleteContentConfirmPrompt": "Type <bold>delete my data</bold> to confirm",
  159. "deleteSelected": "Delete {count} selected",
  160. "contentDeleted": "Selected content has been permanently deleted",
  161. "failedDeleteContent": "Failed to delete content",
  162. "passkey": {
  163. "title": "Passkeys",
  164. "description": "Sign in with biometrics or a security key instead of a password.",
  165. "noPasskeys": "No passkeys registered yet.",
  166. "unnamed": "Unnamed passkey",
  167. "singleDevice": "This device only",
  168. "multiDevice": "Synced across devices",
  169. "register": "Register Passkey",
  170. "registering": "Registering...",
  171. "registerSuccess": "Passkey registered successfully",
  172. "registerFailed": "Failed to register passkey",
  173. "delete": "Delete",
  174. "deleteSuccess": "Passkey deleted",
  175. "deleteFailed": "Failed to delete passkey",
  176. "rename": "Rename Passkey",
  177. "renameFailed": "Failed to rename passkey",
  178. "nameLabel": "Name",
  179. "namePlaceholder": "e.g. MacBook Pro, iPhone",
  180. "cancel": "Cancel",
  181. "save": "Save",
  182. "confirmDeleteTitle": "Delete Passkey",
  183. "confirmDelete": "Are you sure you want to delete this passkey? You won't be able to sign in with it anymore."
  184. }
  185. },
  186. "team": {
  187. "title": "Team",
  188. "noOrgDescription": "Create a team to share data with other users.",
  189. "orgDescription": "Manage your organization members and their roles.",
  190. "createOrg": "Create Organization",
  191. "createOrgDescription": "Create an organization to invite team members. You will be the owner.",
  192. "orgName": "Organization Name",
  193. "orgNamePlaceholder": "My Workshop",
  194. "create": "Create",
  195. "orgCreated": "Organization created",
  196. "failedCreateOrg": "Failed to create organization",
  197. "memberCount": "{count} member",
  198. "memberCountPlural": "{count} members",
  199. "admin": "Admin",
  200. "member": "Member",
  201. "inviteByEmail": "Invite by Email",
  202. "inviteEmailPlaceholder": "user@example.com",
  203. "invite": "Invite",
  204. "invited": "Member invited successfully.",
  205. "userNotFoundTitle": "User Not Found",
  206. "userNotFoundDescription": "No account found for \"{email}\". Send them an invitation email to sign up and join your team?",
  207. "sendInvitation": "Send Invitation",
  208. "invitationSentTitle": "Invitation Sent",
  209. "invitationSentDescription": "An invitation email has been sent to {email}.",
  210. "failedInvite": "Failed to invite member",
  211. "failedSendInvitation": "Failed to send invitation",
  212. "pendingInvitations": "Pending Invitations",
  213. "invitedAs": "Invited as {role}",
  214. "expires": "Expires {date}",
  215. "pending": "Pending",
  216. "copyInviteLink": "Copy invite link",
  217. "inviteLinkCopied": "Invite link copied to clipboard",
  218. "cancelInvitation": "Cancel Invitation",
  219. "cancelInvitationDescription": "Cancel the invitation to {email}? They will no longer be able to use this link to join.",
  220. "invitationCancelled": "Invitation cancelled",
  221. "failedCancelInvitation": "Failed to cancel invitation",
  222. "customRoles": "Custom Roles",
  223. "newRole": "New Role",
  224. "roleName": "Role Name",
  225. "roleNamePlaceholder": "e.g. Technician",
  226. "fullAdminAccess": "Full admin access (bypasses all permission checks)",
  227. "permissions": "Permissions",
  228. "createRole": "Create Role",
  229. "updateRole": "Update Role",
  230. "roleCreated": "Role created",
  231. "roleUpdated": "Role updated",
  232. "failedSaveRole": "Failed to save role",
  233. "deleteRole": "Delete Role",
  234. "deleteRoleDescription": "Delete the \"{name}\" role? Members with this role will lose their custom permissions.",
  235. "roleDeleted": "Role deleted",
  236. "failedDeleteRole": "Failed to delete role",
  237. "fullAccess": "Full access",
  238. "permissionCount": "{count} permission",
  239. "permissionCountPlural": "{count} permissions",
  240. "noCustomRoles": "No custom roles yet. Create one to define granular permissions for team members.",
  241. "builtInRoles": "Built-in Roles",
  242. "ownerLabel": "Owner",
  243. "ownerDescription": "Full access. Can manage members, change roles, and delete the organization.",
  244. "adminLabel": "Admin",
  245. "adminDescription": "Can invite/remove members and manage shared data.",
  246. "memberLabel": "Member",
  247. "memberDescription": "Permissions determined by assigned custom role. No custom role means read-only access.",
  248. "roleAssigned": "Role updated",
  249. "failedAssignRole": "Failed to update role",
  250. "removeMemberTitle": "Remove Member",
  251. "removeMemberDescription": "Remove {name} from the team? They will lose access to shared data.",
  252. "removeButton": "Remove",
  253. "memberRemoved": "Member removed",
  254. "failedRemoveMember": "Failed to remove member",
  255. "memberRoleUpdated": "Member role updated",
  256. "failedUpdateRole": "Failed to update role"
  257. },
  258. "invoice": {
  259. "title": "Invoice Layout",
  260. "description": "Configure what appears on generated PDF invoices.",
  261. "invoiceNumberFormat": "Invoice Number Format",
  262. "invoiceNumberFormatHint": "Use <code>{year}</code> for the current year. Preview: <bold>{preview}</bold>",
  263. "nextInvoiceNumber": "Next Invoice Number",
  264. "nextInvoiceNumberPlaceholder": "e.g. 94",
  265. "nextInvoiceNumberHint": "Next invoice will use this number (e.g. {example})",
  266. "dueDays": "Due Days",
  267. "dueDaysHint": "Number of days until invoice is due",
  268. "visibilityTitle": "Visibility on Invoice",
  269. "companyLogo": "Company Logo",
  270. "companyLogoHint": "Display company logo in invoice header",
  271. "companyName": "Company Name",
  272. "companyNameHint": "Display company name text in invoice header",
  273. "bankAccount": "Bank Account",
  274. "bankAccountHint": "Show bank account / IBAN on invoice",
  275. "organizationNumber": "Organization Number",
  276. "organizationNumberHint": "Show org number on invoice header",
  277. "customFooter": "Custom Invoice Footer",
  278. "footerPlaceholder": "Thank you for your business!",
  279. "footerHint": "This text appears at the bottom of every invoice",
  280. "saveInvoice": "Save Invoice Settings",
  281. "saved": "Invoice settings saved"
  282. },
  283. "templates": {
  284. "title": "Templates",
  285. "invoiceDescription": "Customize the appearance of your PDF invoices and quotes.",
  286. "inspectionsDescription": "Manage inspection checklists and multi-point templates.",
  287. "smsDescription": "Customize the SMS messages sent to customers.",
  288. "tabs": {
  289. "invoice": "Invoice",
  290. "quotation": "Quotation",
  291. "inspections": "Inspections",
  292. "sms": "SMS"
  293. },
  294. "presets": "Template Presets",
  295. "primaryColor": "Primary Color",
  296. "fontAndLayout": "Font & Layout",
  297. "fontFamily": "Font Family",
  298. "helveticaDefault": "Helvetica (Default)",
  299. "timesRoman": "Times Roman",
  300. "courier": "Courier",
  301. "headerStyle": "Header Style",
  302. "standard": "Standard",
  303. "compact": "Compact",
  304. "modern": "Modern",
  305. "preview": "{name} Preview",
  306. "billTo": "Bill To",
  307. "preparedFor": "Prepared For",
  308. "vehicle": "Vehicle",
  309. "part": "Part",
  310. "qty": "Qty",
  311. "price": "Price",
  312. "total": "Total",
  313. "labor": "Labor",
  314. "hours": "Hours",
  315. "rate": "Rate",
  316. "subtotal": "Subtotal",
  317. "tax": "Tax ({rate}%)",
  318. "saveInvoiceTemplate": "Save Invoice Template",
  319. "saveQuotationTemplate": "Save Quotation Template",
  320. "invoiceTemplateSaved": "Invoice template settings saved",
  321. "quotationTemplateSaved": "Quotation template settings saved",
  322. "failedSave": "Failed to save settings",
  323. "smsTemplates": "SMS Message Templates",
  324. "smsTemplatesDescription": "Customize the text messages sent to customers. Use variables like <code>{companyName}</code> to insert dynamic values.",
  325. "reset": "Reset",
  326. "invoiceReady": "Invoice Ready",
  327. "invoiceReadyDescription": "Sent when sharing an invoice with a customer.",
  328. "quoteReady": "Quote Ready",
  329. "quoteReadyDescription": "Sent when sharing a quote with a customer.",
  330. "inspectionReady": "Inspection Ready",
  331. "inspectionReadyDescription": "Sent when sharing an inspection report with a customer.",
  332. "statusInProgress": "Status: In Progress",
  333. "statusInProgressDescription": "Sent when a work order status changes to In Progress.",
  334. "statusWaitingParts": "Status: Waiting for Parts",
  335. "statusWaitingPartsDescription": "Sent when a work order status changes to Waiting for Parts.",
  336. "statusReady": "Status: Ready for Pickup",
  337. "statusReadyDescription": "Sent when a work order status changes to Ready.",
  338. "statusCompleted": "Status: Completed",
  339. "statusCompletedDescription": "Sent when a work order status changes to Completed.",
  340. "paymentReceived": "Payment Received",
  341. "paymentReceivedDescription": "Sent when a payment is recorded for an invoice.",
  342. "saveSmsTemplates": "Save SMS Templates",
  343. "smsTemplateSaved": "SMS template settings saved",
  344. "smsDefaults": {
  345. "invoiceReady": "Your invoice is ready. View it here: {share_link}",
  346. "quoteReady": "Your quote is ready for review. View it here: {share_link}",
  347. "inspectionReady": "Your vehicle inspection report is ready. View it here: {share_link}",
  348. "statusInProgress": "Work has started on your vehicle. We'll keep you updated.",
  349. "statusWaitingParts": "Your vehicle is waiting for parts. We'll notify you when work resumes.",
  350. "statusReady": "Your vehicle is ready for pickup!",
  351. "statusCompleted": "Your service is complete. Thank you for your business!",
  352. "paymentReceived": "Payment of {amount} received for invoice {invoice_number}. Thank you!"
  353. },
  354. "colorPresets": {
  355. "amber": "Amber",
  356. "blue": "Blue",
  357. "emerald": "Emerald",
  358. "red": "Red",
  359. "purple": "Purple",
  360. "slate": "Slate",
  361. "rose": "Rose",
  362. "indigo": "Indigo"
  363. }
  364. },
  365. "payment": {
  366. "detailsTitle": "Payment Details",
  367. "detailsDescription": "Bank account and payment terms shown on invoices.",
  368. "bankAccount": "Bank Account (IBAN / Til Konto)",
  369. "bankAccountPlaceholder": "NO93 8601 1117 947",
  370. "bankAccountHint": "Your bank account number or IBAN for receiving payments",
  371. "paymentTerms": "Payment Terms",
  372. "paymentTermsPlaceholder": "Net 14 days",
  373. "paymentTermsHint": "Payment terms text displayed on invoices (e.g. \"Net 14 days\", \"Due on receipt\")",
  374. "onlinePayments": "Online Payments",
  375. "onlinePaymentsDescription": "Allow customers to pay invoices online via shared invoice links.",
  376. "stripe": "Stripe",
  377. "stripeDescription": "Accept credit/debit card payments",
  378. "secretKey": "Secret Key",
  379. "publishableKey": "Publishable Key",
  380. "webhookSecret": "Webhook Secret",
  381. "webhookUrl": "Webhook URL",
  382. "stripeWebhookHint": "Add this URL in your Stripe Dashboard under Webhooks. Subscribe to <code>checkout.session.completed</code>.",
  383. "vipps": "Vipps",
  384. "vippsDescription": "Accept Vipps mobile payments (Norway)",
  385. "clientId": "Client ID",
  386. "clientSecret": "Client Secret",
  387. "subscriptionKey": "Subscription Key",
  388. "merchantSerialNumber": "Merchant Serial Number",
  389. "testMode": "Test Mode",
  390. "callbackUrl": "Callback URL",
  391. "termsOfSale": "Terms of Sale (Salgsvilkar)",
  392. "termsOfSaleDescription": "Required by Vipps. Customers can view these from the invoice page.",
  393. "externalTermsUrl": "External Terms URL (optional)",
  394. "externalTermsUrlHint": "Link to an external page with your terms. If set, the invoice will link here instead of the built-in terms page.",
  395. "publicTermsUrl": "Public Terms URL",
  396. "publicTermsUrlHint": "Share this URL with Vipps or link it from your website.",
  397. "paypal": "PayPal",
  398. "paypalDescription": "Accept PayPal payments",
  399. "sandboxMode": "Sandbox Mode",
  400. "paypalWebhookHint": "Add this URL in your PayPal Developer Dashboard under Webhooks. Subscribe to <code>PAYMENT.CAPTURE.COMPLETED</code>.",
  401. "savePayment": "Save Payment Settings",
  402. "saved": "Payment settings saved"
  403. },
  404. "currency": {
  405. "title": "Currency & Tax",
  406. "description": "Default currency and tax rate used across invoices and service records.",
  407. "currencyLabel": "Currency",
  408. "previewLabel": "Preview: {value}",
  409. "enableTax": "Enable Tax",
  410. "enableTaxHint": "Show tax calculation on invoices and service records",
  411. "defaultTaxRate": "Default Tax Rate (%)",
  412. "defaultTaxRateHint": "Auto-populated when creating new service records",
  413. "saveSettings": "Save Settings",
  414. "saved": "Settings saved",
  415. "currencies": {
  416. "USD": "US Dollar",
  417. "EUR": "Euro",
  418. "GBP": "British Pound",
  419. "NOK": "Norwegian Krone",
  420. "SEK": "Swedish Krona",
  421. "DKK": "Danish Krone",
  422. "CHF": "Swiss Franc",
  423. "CAD": "Canadian Dollar",
  424. "AUD": "Australian Dollar",
  425. "NZD": "New Zealand Dollar",
  426. "JPY": "Japanese Yen",
  427. "CNY": "Chinese Yuan",
  428. "INR": "Indian Rupee",
  429. "BRL": "Brazilian Real",
  430. "MXN": "Mexican Peso",
  431. "PLN": "Polish Zloty",
  432. "CZK": "Czech Koruna",
  433. "HUF": "Hungarian Forint",
  434. "TRY": "Turkish Lira",
  435. "ZAR": "South African Rand",
  436. "KRW": "South Korean Won",
  437. "SGD": "Singapore Dollar",
  438. "HKD": "Hong Kong Dollar",
  439. "THB": "Thai Baht",
  440. "ISK": "Icelandic Krona",
  441. "RON": "Romanian Leu",
  442. "ILS": "Israeli Shekel",
  443. "PHP": "Philippine Peso",
  444. "IDR": "Indonesian Rupiah",
  445. "MYR": "Malaysian Ringgit",
  446. "AED": "UAE Dirham",
  447. "SAR": "Saudi Riyal"
  448. }
  449. },
  450. "customFields": {
  451. "title": "Custom Fields",
  452. "description": "Define custom fields that appear on service records and quotes.",
  453. "addField": "Add Field",
  454. "filterAll": "All",
  455. "serviceRecord": "Service Record",
  456. "quote": "Quote",
  457. "emptyState": "No custom fields defined yet. Click \"Add Field\" to create one.",
  458. "required": "Required",
  459. "inactive": "Inactive",
  460. "editField": "Edit Field",
  461. "newField": "New Custom Field",
  462. "label": "Label",
  463. "labelPlaceholder": "e.g. Warranty Expiry",
  464. "fieldName": "Field Name (ID)",
  465. "fieldNamePlaceholder": "warranty_expiry",
  466. "fieldNameHint": "Lowercase letters, numbers, and underscores only.",
  467. "fieldType": "Field Type",
  468. "entityType": "Entity Type",
  469. "fieldTypes": {
  470. "text": "Text",
  471. "number": "Number",
  472. "date": "Date",
  473. "select": "Select (Dropdown)",
  474. "checkbox": "Checkbox",
  475. "textarea": "Text Area"
  476. },
  477. "optionsLabel": "Options (comma-separated)",
  478. "optionsPlaceholder": "Option 1, Option 2, Option 3",
  479. "active": "Active",
  480. "cancel": "Cancel",
  481. "update": "Update",
  482. "create": "Create",
  483. "deleteTitle": "Delete Custom Field",
  484. "deleteDescription": "This will permanently delete \"{label}\" and all its saved values. This cannot be undone.",
  485. "fieldCreated": "Custom field created",
  486. "fieldUpdated": "Custom field updated",
  487. "fieldDeleted": "Custom field deleted",
  488. "failedSave": "Failed to save field",
  489. "failedDelete": "Failed to delete"
  490. },
  491. "workshop": {
  492. "title": "Workshop Defaults",
  493. "description": "Default values used when creating new service records.",
  494. "defaultTechnician": "Default Technician Name",
  495. "technicianPlaceholder": "John Smith",
  496. "defaultLaborRate": "Default Labor Rate (per hour)",
  497. "laborRatePlaceholder": "75.00",
  498. "workingHours": "Working Hours",
  499. "workingHoursPlaceholder": "Mon-Fri 8:00 AM - 5:00 PM",
  500. "unitsTitle": "Units",
  501. "unitsDescription": "Choose between metric (km, liters) and imperial (miles, gallons) units.",
  502. "unitSystem": "Unit System",
  503. "metric": "Metric (km, liters)",
  504. "imperial": "Imperial (miles, gallons)",
  505. "distanceLabel": "Distance",
  506. "volumeLabel": "Volume",
  507. "kilometers": "kilometers (km)",
  508. "liters": "liters (L)",
  509. "miles": "miles (mi)",
  510. "gallons": "gallons (gal)",
  511. "saveWorkshop": "Save Workshop Settings",
  512. "saved": "Workshop settings saved"
  513. },
  514. "maintenance": {
  515. "title": "Predicted Maintenance",
  516. "description": "Predict each vehicle's current mileage from its service history and surface vehicles that are due or approaching their next service.",
  517. "enablePredicted": "Enable predicted maintenance",
  518. "enablePredictedHint": "Show predictions on vehicle details and dashboard",
  519. "serviceInterval": "Service interval ({unit})",
  520. "serviceIntervalHint": "Distance between recommended services",
  521. "approachingThreshold": "Approaching threshold ({unit})",
  522. "approachingThresholdHint": "Show warning when within this distance of next service",
  523. "saveMaintenance": "Save Maintenance Settings",
  524. "saved": "Maintenance settings saved"
  525. },
  526. "appearance": {
  527. "title": "Appearance",
  528. "description": "Customize how Torqvoice looks and feels.",
  529. "darkMode": "Dark Mode",
  530. "darkModeHint": "Switch between light and dark themes",
  531. "dateTimeTitle": "Date & Time",
  532. "dateTimeDescription": "Configure how dates and times are displayed across the application.",
  533. "dateFormat": "Date Format",
  534. "timeFormat": "Time Format",
  535. "time12h": "12-hour (2:30 PM)",
  536. "time24h": "24-hour (14:30)",
  537. "timezone": "Timezone",
  538. "timezoneAuto": "Auto-detect (browser)",
  539. "timezoneHint": "When set to auto-detect, each user sees dates in their browser's timezone.",
  540. "previewLabel": "Preview",
  541. "dateLabel": "Date",
  542. "dateTimeLabel": "Date & Time",
  543. "saveSettings": "Save Settings",
  544. "saved": "Settings saved"
  545. },
  546. "data": {
  547. "title": "Data Management",
  548. "description": "Export your data as a backup or import a previously exported file.",
  549. "exportTitle": "Export Data",
  550. "exportDescription": "Download your data as a zip file. Select which categories to include in the backup.",
  551. "includeInBackup": "Include in backup:",
  552. "selectAll": "Select All",
  553. "deselectAll": "Deselect All",
  554. "optSettings": "Settings",
  555. "optSettingsDesc": "Workshop info, invoice config, payment providers",
  556. "optCustomers": "Customers",
  557. "optCustomersDesc": "Customer records and contact info",
  558. "optVehicles": "Vehicles & Service Records",
  559. "optVehiclesDesc": "Vehicles, notes, fuel logs, reminders, service records",
  560. "optQuotes": "Quotes",
  561. "optQuotesDesc": "Quotes with parts and labor",
  562. "optInventory": "Inventory",
  563. "optInventoryDesc": "Inventory parts and stock levels",
  564. "optCustomFields": "Custom Fields",
  565. "optCustomFieldsDesc": "Custom field definitions and values",
  566. "optFiles": "Uploaded Files",
  567. "optFilesDesc": "Images, service attachments, logo",
  568. "filesWarning": "Includes uploaded files — backup may be larger",
  569. "downloadBackup": "Download Backup",
  570. "exportComplete": "Export Complete",
  571. "exportCompleteMessage": "Your backup file has been downloaded.",
  572. "exportFailed": "Export Failed",
  573. "exportFailedMessage": "Could not export your data. Please try again.",
  574. "importTitle": "Import Data",
  575. "importWarning": "Importing will <bold>replace all existing data</bold> with the contents of the backup file. This action cannot be undone.",
  576. "importFileHint": "Supports both .zip (v2) and .json (v1) backup files.",
  577. "uploadRestore": "Upload & Restore",
  578. "importComplete": "Import Complete",
  579. "importCompleteMessage": "All data has been restored from the backup file.",
  580. "importFailed": "Import Failed",
  581. "importFromOther": "Import from Other Services",
  582. "importFromOtherDescription": "Migrate your data from another platform. Select a service to get started.",
  583. "lubelogTitle": "Import from LubeLog",
  584. "lubelogExportSteps": "How to export your LubeLog data:",
  585. "lubelogStep1": "Open your LubeLog instance",
  586. "lubelogStep2": "Go to <bold>Settings</bold>",
  587. "lubelogStep3": "Click <bold>Make Backup</bold> to download a zip file",
  588. "lubelogStep4": "Upload the downloaded zip file below",
  589. "lubelogAddNote": "This will <bold>add data alongside</bold> your existing records — nothing will be deleted.",
  590. "lubelogImported": "What will be imported:",
  591. "lubelogVehicles": "Vehicles",
  592. "lubelogServiceRecords": "Service records with attachments",
  593. "lubelogNotes": "Notes",
  594. "lubelogFileHint": "Files up to 200MB supported.",
  595. "lubelogImportComplete": "LubeLog Import Complete",
  596. "cancel": "Cancel",
  597. "import": "Import",
  598. "invoiceNinjaTitle": "Import from Invoice Ninja",
  599. "invoiceNinjaExportSteps": "How to export your Invoice Ninja data:",
  600. "invoiceNinjaStep1": "Open your Invoice Ninja instance",
  601. "invoiceNinjaStep2": "Go to <bold>Settings > Import | Export</bold>",
  602. "invoiceNinjaStep3": "Click <bold>Export</bold> to download a zip file",
  603. "invoiceNinjaStep4": "Upload the downloaded zip file below",
  604. "invoiceNinjaAddNote": "This will <bold>add data alongside</bold> your existing records — nothing will be deleted.",
  605. "invoiceNinjaImported": "What will be imported:",
  606. "invoiceNinjaCustomers": "Customers (clients)",
  607. "invoiceNinjaProducts": "Products (inventory)",
  608. "invoiceNinjaInvoices": "Invoices as service records (parts & labor)",
  609. "invoiceNinjaDocuments": "Documents & attachments",
  610. "invoiceNinjaPayments": "Payments",
  611. "invoiceNinjaFileHint": "Upload an Invoice Ninja zip export file. Files up to 200MB supported.",
  612. "invoiceNinjaImportComplete": "Invoice Ninja Import Complete"
  613. },
  614. "license": {
  615. "title": "White-Label License",
  616. "description": "Activate a white-label license to remove Torqvoice branding from invoices and the application.",
  617. "purchaseWhiteLabel": "Purchase White-Label",
  618. "status": "Status:",
  619. "active": "Active",
  620. "inactive": "Inactive",
  621. "lastChecked": "Last checked: {date}",
  622. "enterLicenseKey": "Enter license key",
  623. "validate": "Validate",
  624. "validated": "License validated successfully",
  625. "invalid": "Invalid license key",
  626. "failedValidate": "Failed to validate license",
  627. "keyHint": "Each license key is tied to this organization and cannot be shared across multiple organizations."
  628. },
  629. "about": {
  630. "title": "About Torqvoice",
  631. "description": "Torqvoice is your complete vehicle service management solution. Track service history, repairs and more.",
  632. "version": "Version",
  633. "website": "Website",
  634. "documentation": "Documentation",
  635. "changelog": "Changelog"
  636. },
  637. "portal": {
  638. "title": "Customer Portal",
  639. "description": "Allow your customers to log in and view their vehicles, invoices, quotes, and inspections. Customers can also submit service requests.",
  640. "enablePortal": "Enable customer portal",
  641. "enablePortalHint": "Customers with an email address can log in via magic link",
  642. "enabled": "Customer portal enabled",
  643. "disabled": "Customer portal disabled",
  644. "failedUpdate": "Failed to update setting",
  645. "customSlug": "Custom portal slug",
  646. "save": "Save",
  647. "slugSaved": "Portal slug saved",
  648. "slugRemoved": "Portal slug removed",
  649. "failedUpdateSlug": "Failed to update slug",
  650. "slugHint": "Lowercase letters, numbers, hyphens, and underscores. 3-48 characters. Leave blank to use the default URL.",
  651. "portalUrl": "Portal URL",
  652. "urlCopied": "Portal URL copied",
  653. "shareHint": "Share this link with your customers so they can log in to their portal."
  654. },
  655. "email": {
  656. "title": "Email Provider",
  657. "description": "Configure your organization's email provider for sending invoices and quotes. If not configured, the platform's default email provider will be used.",
  658. "useCustomLabel": "Use custom email provider",
  659. "useCustomHint": "Enable to configure your own email provider instead of using the platform default",
  660. "platformDefaultInfo": "Your organization is using the platform's default email provider. Invoices and quotes will be sent using the platform-configured email settings.",
  661. "smtpHost": "SMTP Host",
  662. "smtpHostPlaceholder": "smtp.example.com",
  663. "smtpPort": "SMTP Port",
  664. "smtpPortPlaceholder": "587",
  665. "username": "Username",
  666. "usernamePlaceholder": "user@example.com",
  667. "password": "Password",
  668. "fromEmail": "From Email",
  669. "fromEmailPlaceholder": "noreply@example.com",
  670. "fromEmailDomainPlaceholder": "noreply@yourdomain.com",
  671. "fromName": "From Name",
  672. "fromNamePlaceholder": "Your Workshop",
  673. "tlsConnection": "TLS Connection (Port 465)",
  674. "tlsConnectionHint": "Enable for implicit TLS. Disable for STARTTLS (port 587/25).",
  675. "verifyTlsCerts": "Verify TLS Certificates",
  676. "verifyTlsCertsHint": "Disable to allow self-signed certificates (not recommended for production)",
  677. "requireTlsUpgrade": "Require TLS Upgrade",
  678. "requireTlsUpgradeHint": "Force TLS upgrade on STARTTLS connections",
  679. "apiKey": "API Key",
  680. "apiKeyHintResend": "Get your API key from",
  681. "serverToken": "Server Token",
  682. "serverTokenHintPostmark": "Get your Server Token from",
  683. "apiKeyHintMailgun": "Get your API key from",
  684. "domain": "Domain",
  685. "domainPlaceholder": "mg.yourdomain.com",
  686. "region": "Region",
  687. "apiKeyHintSendGrid": "Get your API key from",
  688. "accessKeyId": "Access Key ID",
  689. "secretAccessKey": "Secret Access Key",
  690. "awsRegion": "AWS Region",
  691. "awsRegionPlaceholder": "us-east-1",
  692. "awsRegionHint": "The AWS region where SES is configured (e.g. us-east-1, eu-west-1)",
  693. "sendTestEmail": "Send Test Email",
  694. "testEmailHint": "Save settings first, then send a test email to your account",
  695. "saveSettings": "Save Settings",
  696. "savedDefault": "Email settings saved — using platform default",
  697. "saved": "Email settings saved",
  698. "failedSave": "Failed to save settings",
  699. "testSentTo": "Test email sent to {email}",
  700. "testFailed": "Email test failed"
  701. },
  702. "sms": {
  703. "title": "SMS Provider",
  704. "description": "Configure your SMS provider for two-way messaging with customers. Each organization uses their own SMS vendor and phone number.",
  705. "enableLabel": "Enable SMS messaging",
  706. "enableHint": "Send and receive SMS messages with customers",
  707. "disabledInfo": "SMS messaging is disabled. Enable it to send and receive text messages with your customers.",
  708. "phoneNumber": "Phone Number",
  709. "phoneNumberPlaceholder": "+15551234567",
  710. "phoneNumberHint": "Your SMS-enabled phone number in E.164 format (e.g. +15551234567)",
  711. "accountSid": "Account SID",
  712. "authToken": "Auth Token",
  713. "apiKey": "API Key",
  714. "apiSecret": "API Secret",
  715. "webhookUrl": "Webhook URL",
  716. "webhookUrlHint": "Configure this URL in your {provider} dashboard to receive inbound SMS messages.",
  717. "webhookCopied": "Webhook URL copied",
  718. "testPhoneNumber": "Test Phone Number",
  719. "testPhonePlaceholder": "+15559876543",
  720. "sendTestSms": "Send Test SMS",
  721. "testSmsHint": "Save settings first, then enter a recipient number to send a test SMS",
  722. "enterTestPhone": "Enter a phone number to send the test SMS to",
  723. "saveSettings": "Save Settings",
  724. "savedDisabled": "SMS settings saved — SMS disabled",
  725. "saved": "SMS settings saved",
  726. "failedSave": "Failed to save settings",
  727. "testSentTo": "Test SMS sent to {phone}",
  728. "testFailed": "SMS test failed"
  729. },
  730. "subscription": {
  731. "title": "Subscription Plan",
  732. "description": "Your organization's current Torqvoice subscription tier and available features.",
  733. "currentPlan": "Current Plan",
  734. "planFree": "Free",
  735. "planPro": "Torq Pro",
  736. "planEnterprise": "Enterprise",
  737. "price": "{price}/{interval}",
  738. "perYear": "yr",
  739. "perMonth": "mo",
  740. "statusActive": "Active",
  741. "statusCanceling": "Canceling",
  742. "statusPastDue": "Past Due",
  743. "statusCanceled": "Canceled",
  744. "billingPeriod": "Billing Period",
  745. "billingPeriodDates": "{start} — {end}",
  746. "nextRenewal": "Next Renewal",
  747. "cancelingWarning": "Your subscription will cancel on {date}. After that, you'll be downgraded to Free.",
  748. "pastDueWarning": "Your payment is past due. Please update your payment method to avoid service interruption.",
  749. "featuresTitle": "Plan Features",
  750. "featuresDescription": "What's included in your current plan.",
  751. "featureCustomers": "Customers",
  752. "featureTeamMembers": "Team Members",
  753. "featureSmtp": "Custom Email (SMTP)",
  754. "featureApi": "API Access",
  755. "featurePayments": "Online Payments",
  756. "featureCustomFields": "Custom Fields",
  757. "featureSms": "SMS Messaging",
  758. "featureCustomerPortal": "Customer Portal",
  759. "featureCustomTemplates": "Custom Templates",
  760. "featureBrandingRemoved": "Branding Removed",
  761. "usageOf": "{used} / {limit}",
  762. "usageUnlimited": "{used} / Unlimited",
  763. "included": "Included",
  764. "notIncluded": "Not Included",
  765. "manageTitle": "Manage Subscription",
  766. "manageBilling": "Manage Billing",
  767. "manageBillingDescription": "Update payment method, view invoices, and manage billing details.",
  768. "cancelSubscription": "Cancel Subscription",
  769. "resumeSubscription": "Resume Subscription",
  770. "cancelDialogTitle": "Cancel Subscription",
  771. "cancelDialogDescription": "Your subscription will remain active until {date}. After that, you'll be downgraded to Free.",
  772. "cancelDialogConfirm": "Yes, Cancel",
  773. "cancelDialogCancel": "Keep Subscription",
  774. "cancelSuccess": "Subscription will cancel at end of billing period",
  775. "cancelError": "Failed to cancel subscription",
  776. "resumeSuccess": "Subscription resumed successfully",
  777. "resumeError": "Failed to resume subscription",
  778. "billingPortalError": "Failed to open billing portal",
  779. "upgradeTitle": "Upgrade Plan",
  780. "upgradeDescription": "Unlock more features by upgrading your plan.",
  781. "upgradeToProDescription": "Upgrade to unlock unlimited customers, team members, reports, SMTP, API access, and more.",
  782. "upgradeToEnterpriseDescription": "Need more than 5 team members? Upgrade to Enterprise for up to 50 users.",
  783. "upgradeToPro": "Upgrade to Pro — $99/yr",
  784. "upgradeToEnterprise": "Enterprise — $140/yr"
  785. }
  786. }