Ver código fonte

Spell labor the same way across the English app (#528)

* Spell labor the same way across the English app

* Keep the QuickBooks item's real name, and update the Fiken settings test
Bernt Christian Egeland 1 dia atrás
pai
commit
26191d7965

+ 1 - 1
messages/en/documentLock.json

@@ -9,7 +9,7 @@
       "accepted": "This quote is locked because it has been accepted"
     }
   },
-  "lockedBody": "Its parts, labour, prices, discount, tax, number and date can no longer be changed. Payments, status changes, sending and attachments all still work.",
+  "lockedBody": "Its parts, labor, prices, discount, tax, number and date can no longer be changed. Payments, status changes, sending and attachments all still work.",
   "lockedAdminHint": "As an owner or admin you can unlock it if something genuinely needs correcting. The unlock is recorded in the audit log.",
   "lockedMemberHint": "Ask an owner or admin to unlock it if something needs correcting.",
   "unlock": "Unlock for editing",

+ 4 - 4
messages/en/integrations.json

@@ -719,8 +719,8 @@
         "startDateHelp": "Leave empty to send every issued invoice. Use the date your books moved to QuickBooks so older invoices are not entered twice.",
         "includeVehicle": "Name the vehicle on the invoice",
         "includeVehicleHelp": "A text line above the charges with the year, make, model, plate and mileage, so the books say which car.",
-        "laborItemId": "Item for labour lines",
-        "laborItemIdHelp": "Leave empty and an item named Labour is created under your income account the first time.",
+        "laborItemId": "Item for labor lines",
+        "laborItemIdHelp": "Leave empty and an item called \"Labour\" is created under your income account the first time.",
         "partsItemId": "Item for parts lines",
         "partsItemIdHelp": "Leave empty and an item named Parts is created under your income account the first time.",
         "taxAmounts": "Tax amounts",
@@ -757,7 +757,7 @@
         "startDateHelp": "Leave empty to send every issued invoice. Use the date your books moved to Fiken so older invoices are not entered twice.",
         "attachPdf": "Attach the invoice PDF",
         "attachPdfHelp": "An invoice goes into Fiken as a sale (Annet salg) under its Torqvoice number. With this on, the PDF the customer received is filed on the sale as its voucher.",
-        "laborAccount": "Income account for labour",
+        "laborAccount": "Income account for labor",
         "laborAccountHelp": "Leave empty to use 3000.",
         "partsAccount": "Income account for parts",
         "partsAccountHelp": "Leave empty to use 3000.",
@@ -769,7 +769,7 @@
         "vatExport": "Exempt, export",
         "vatReverse": "Exempt, reverse charge",
         "zeroAccount": "Income account for invoices without VAT",
-        "zeroAccountHelp": "Leave empty to use the labour and parts accounts above. If Fiken refuses the account with the VAT type, the reason is shown in the activity log.",
+        "zeroAccountHelp": "Leave empty to use the labor and parts accounts above. If Fiken refuses the account with the VAT type, the reason is shown in the activity log.",
         "pushPayments": "Record payments in Fiken",
         "paymentAccount": "Deposit payments to",
         "paymentAccountHelp": "Leave empty to use the company's first bank account.",

+ 1 - 1
messages/en/service.json

@@ -21,7 +21,7 @@
       "title": "The job needs a title before it can be saved.",
       "negative": "Quantities, hours, prices and costs cannot be negative.",
       "partName": "Every priced part needs a name.",
-      "laborDescription": "Every labour line with hours or a rate needs a description.",
+      "laborDescription": "Every labor line with hours or a rate needs a description.",
       "concernCondition": "A concern with a cause, correction or confirmation needs its condition filled in."
     }
   },

+ 6 - 6
messages/en/settings.json

@@ -617,7 +617,7 @@
     "goToTemplates": "Open Templates",
     "lockTitle": "Locking finished documents",
     "lockDescription": "Stop an invoice or quote being changed once it is settled.",
-    "lockWhatItDoes": "What it freezes: parts, labour, quantities, prices, discount, tax, the document number and its date. Deleting the document is blocked too.",
+    "lockWhatItDoes": "What it freezes: parts, labor, quantities, prices, discount, tax, the document number and its date. Deleting the document is blocked too.",
     "lockWhatItAllows": "What still works: recording payments, online card payments, status changes, sending and re-sending, attachments and internal notes. A locked invoice can always still be paid.",
     "lockUnlockNote": "Owners and admins can unlock a single document from its own page when something genuinely needs correcting. Every unlock is recorded in the audit log.",
     "lockDetailsShow": "What locking does",
@@ -1024,7 +1024,7 @@
     "modeExclusiveExample": "Example: $100 + {rate}% tax = $100 + tax on top.",
     "modeInclusiveExample": "Example: $100 entered already includes {rate}% tax — the tax portion is reverse-calculated.",
     "lineItemsInclTaxLabel": "Show line prices including tax on invoices and quotes",
-    "lineItemsInclTaxHint": "Only changes what is printed on invoices and quotes, including their PDFs and the copies customers open from a link. On, each part and labour line and the subtotal are shown with tax included, and the tax row says how much of it is tax. Off shows prices before tax and adds the tax at the bottom. Work orders and the prices you enter are not affected.",
+    "lineItemsInclTaxHint": "Only changes what is printed on invoices and quotes, including their PDFs and the copies customers open from a link. On, each part and labor line and the subtotal are shown with tax included, and the tax row says how much of it is tax. Off shows prices before tax and adds the tax at the bottom. Work orders and the prices you enter are not affected.",
     "labelLabel": "Tax label",
     "labelHint": "Custom name shown on invoices and quotes (e.g. VAT, GST, MVA, MwSt.). Leave blank to use the localized default.",
     "labelPlaceholder": "VAT",
@@ -1284,7 +1284,7 @@
     "mileage": "Distance limit ({unit})",
     "mileageHint": "Leave empty for no distance limit.",
     "terms": "Warranty terms",
-    "termsPlaceholder": "e.g. 12 months on parts and labour. Wear parts are not covered.",
+    "termsPlaceholder": "e.g. 12 months on parts and labor. Wear parts are not covered.",
     "termsHint": "Printed under the warranty on quotes and invoices.",
     "notIncludedTitle": "When no warranty is included",
     "notIncludedHint": "What the customer reads when a document says no warranty is included.",
@@ -1448,7 +1448,7 @@
     "optTireHotel": "Tire hotel",
     "optTireHotelDesc": "Stored tire sets, shelves, prep work and storage agreements",
     "optWorkshopConfig": "Workshop setup",
-    "optWorkshopConfigDesc": "Labour presets, roles, webhooks and scheduled reports",
+    "optWorkshopConfigDesc": "Labor presets, roles, webhooks and scheduled reports",
     "importHubDescription": "Pick where your data is today. Spreadsheet and app imports add to what you have and can be undone; restoring a backup replaces everything.",
     "sourceSpreadsheet": "Spreadsheet or CSV",
     "sourceSpreadsheetDesc": "Exports from any shop system, accounting tool, Google Contacts, Outlook or Excel. You confirm the column mapping and see a dry run before anything is written.",
@@ -1579,7 +1579,7 @@
       "sections": {
         "concerns": "Concerns",
         "partItems": "Parts",
-        "laborItems": "Labour",
+        "laborItems": "Labor",
         "attachments": "Photos and documents",
         "payments": "Payments",
         "statusReports": "Status reports",
@@ -2353,7 +2353,7 @@
       "findingPadsNote": "{unit, select, mi {Replace within 3,000 mi} other {Replace within 5,000 km}}",
       "findingOilWeep": "Small oil weep at valve cover",
       "notes": "Thank you for choosing our workshop. Contact us if you have any questions.",
-      "warranty": "12 months warranty on parts and labour.",
+      "warranty": "12 months warranty on parts and labor.",
       "serviceTitle": "Annual service and brakes",
       "serviceType": "Repair",
       "companyName": "Your Workshop",

+ 1 - 1
messages/en/tireHotel.json

@@ -350,7 +350,7 @@
     "workOrderUpdated": "Added to the work order",
     "unlink": "Unlink",
     "unlinkTitle": "Unlink these tires from the job?",
-    "unlinkBody": "The job stops pointing at the tire set. The parts and labour lines already on it stay, so remove them separately if they should not be billed.",
+    "unlinkBody": "The job stops pointing at the tire set. The parts and labor lines already on it stay, so remove them separately if they should not be billed.",
     "unlinked": "Tires unlinked",
     "unlinkFailed": "Could not unlink the tires",
     "prep": "Prep work",

+ 1 - 1
src/__tests__/features/integrations/setting-changes.test.ts

@@ -27,7 +27,7 @@ describe('integration setting changes', () => {
     expect(describeSettingChanges(fiken, before, after)).toEqual([
       'Send issued invoices to Fiken: off → on',
       'Only invoices dated on or after: empty → 2026-10-01',
-      'Income account for labour: empty → 3020',
+      'Income account for labor: empty → 3020',
       'VAT type for invoices without VAT: None (no VAT handling) → Exempt (fritatt)',
       'Income account for invoices without VAT: empty → 3100',
       'Record a payment when an invoice is marked paid by hand: off → on',