@mrfylke/contact-form 0.1.31 → 0.1.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -3
- package/lib/components/form/file-input.js +1 -1
- package/lib/components/form/textarea.d.ts +3 -2
- package/lib/components/form/textarea.d.ts.map +1 -1
- package/lib/components/form/textarea.js +6 -4
- package/lib/components/icon/generated-icons.d.ts +6 -6
- package/lib/components/icon/generated-icons.js +16 -16
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +3 -2
- package/lib/lines/use-lines.d.ts +2 -2
- package/lib/lines/use-lines.d.ts.map +1 -1
- package/lib/lines/use-lines.js +14 -21
- package/lib/means-of-transport/forms/injuryForm.d.ts.map +1 -1
- package/lib/means-of-transport/forms/injuryForm.js +1 -1
- package/lib/means-of-transport/means-of-transport-form-machine.d.ts +2 -2
- package/lib/modules/config/context.d.ts.map +1 -1
- package/lib/modules/config/types.d.ts +46 -21
- package/lib/modules/config/types.d.ts.map +1 -1
- package/lib/refund/events.d.ts +1 -1
- package/lib/refund/events.d.ts.map +1 -1
- package/lib/refund/forms/refund-and-travel-guarantee/index.d.ts.map +1 -1
- package/lib/refund/forms/refund-and-travel-guarantee/index.js +2 -2
- package/lib/refund/forms/refund-and-travel-guarantee/refundCarForm.d.ts.map +1 -1
- package/lib/refund/forms/refund-and-travel-guarantee/refundCarForm.js +5 -2
- package/lib/refund/forms/refund-and-travel-guarantee/refundTaxiForm.d.ts.map +1 -1
- package/lib/refund/forms/refund-and-travel-guarantee/refundTaxiForm.js +7 -4
- package/lib/refund/forms/refund-ticket/appTicketRefund.d.ts.map +1 -1
- package/lib/refund/forms/refund-ticket/appTicketRefund.js +17 -9
- package/lib/refund/forms/refund-ticket/index.d.ts.map +1 -1
- package/lib/refund/forms/refund-ticket/index.js +2 -5
- package/lib/refund/forms/refund-ticket/otherTicketRefund.d.ts.map +1 -1
- package/lib/refund/forms/refund-ticket/otherTicketRefund.js +14 -5
- package/lib/refund/forms/residualValueOnTravelCard/index.d.ts.map +1 -1
- package/lib/refund/forms/residualValueOnTravelCard/index.js +2 -7
- package/lib/refund/index.d.ts.map +1 -1
- package/lib/refund/index.js +12 -6
- package/lib/refund/refundFormMachine.d.ts +19 -10
- package/lib/refund/refundFormMachine.d.ts.map +1 -1
- package/lib/refund/refundFormMachine.js +42 -15
- package/lib/ticketing/forms/app/appTravelSuggestionForm.d.ts.map +1 -1
- package/lib/ticketing/forms/app/appTravelSuggestionForm.js +5 -1
- package/lib/ticketing/forms/priceAndTicketTypesForm.d.ts.map +1 -1
- package/lib/ticketing/forms/priceAndTicketTypesForm.js +5 -1
- package/lib/ticketing/forms/travel-card/orderTravelCard.d.ts.map +1 -1
- package/lib/ticketing/forms/travel-card/orderTravelCard.js +2 -11
- package/lib/ticketing/index.d.ts.map +1 -1
- package/lib/ticketing/index.js +8 -2
- package/lib/ticketing/ticketingStateMachine.d.ts +6 -4
- package/lib/ticketing/ticketingStateMachine.d.ts.map +1 -1
- package/lib/ticketing/ticketingStateMachine.js +4 -1
- package/lib/translations/commons.d.ts +8 -2
- package/lib/translations/commons.d.ts.map +1 -1
- package/lib/translations/commons.js +4 -0
- package/lib/translations/index.d.ts +3 -2
- package/lib/translations/index.d.ts.map +1 -1
- package/lib/translations/index.js +5 -1
- package/lib/translations/language-context.d.ts +4 -10
- package/lib/translations/language-context.d.ts.map +1 -1
- package/lib/translations/language-context.js +12 -5
- package/lib/translations/lobot.d.ts +9 -0
- package/lib/translations/lobot.d.ts.map +1 -0
- package/lib/translations/lobot.js +6 -0
- package/lib/translations/merge-overrides.d.ts +2 -0
- package/lib/translations/merge-overrides.d.ts.map +1 -1
- package/lib/translations/merge-overrides.js +2 -0
- package/lib/translations/pages/contact.d.ts +19 -22
- package/lib/translations/pages/contact.d.ts.map +1 -1
- package/lib/translations/pages/contact.js +52 -40
- package/lib/translations/terms/default-terms.d.ts +23 -0
- package/lib/translations/terms/default-terms.d.ts.map +1 -0
- package/lib/translations/terms/default-terms.js +25 -0
- package/lib/translations/terms/index.d.ts +4 -0
- package/lib/translations/terms/index.d.ts.map +1 -0
- package/lib/translations/terms/index.js +9 -0
- package/lib/translations/terms/placeholders.d.ts +16 -0
- package/lib/translations/terms/placeholders.d.ts.map +1 -0
- package/lib/translations/terms/placeholders.js +16 -0
- package/lib/translations/terms/types.d.ts +17 -0
- package/lib/translations/terms/types.d.ts.map +1 -0
- package/lib/translations/terms/types.js +2 -0
- package/lib/translations/translations-context.d.ts +6 -0
- package/lib/translations/translations-context.d.ts.map +1 -1
- package/lib/translations/translations-context.js +25 -0
- package/lib/translations/types.d.ts +12 -5
- package/lib/translations/types.d.ts.map +1 -1
- package/lib/types.d.ts +3 -3
- package/lib/types.d.ts.map +1 -1
- package/lib/utils/rich-text.d.ts +9 -0
- package/lib/utils/rich-text.d.ts.map +1 -0
- package/lib/utils/rich-text.js +33 -0
- package/lib/utils/rich-text.module.css +5 -0
- package/lib/validation/validationRules.d.ts.map +1 -1
- package/lib/validation/validationRules.js +2 -1
- package/package.json +2 -1
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Contact = void 0;
|
|
4
4
|
const commons_1 = require("../../translations/commons");
|
|
5
|
+
const terms_1 = require("../terms");
|
|
5
6
|
const types_1 = require("../../types");
|
|
6
7
|
exports.Contact = {
|
|
7
8
|
pageTitle: (0, commons_1.translation)('Kontakt', 'Contact', 'Kontakt'),
|
|
@@ -18,7 +19,7 @@ exports.Contact = {
|
|
|
18
19
|
info: (0, commons_1.translation)('Hvis du har fått gebyr på feil grunnlag, kan du sende oss en skriftlig klage.', 'If you have received a fee on incorrect grounds, you can submit a written complaint to us.', 'Dersom du har fått gebyr på feil grunnlag, kan du sende oss ei skriftleg klage.'),
|
|
19
20
|
ticketStorage: {
|
|
20
21
|
question: (0, commons_1.translation)('Hvor pleier du å ha billetten din?', 'Where do you usually keep your ticket?', 'Kor pleier du å ha billetten din?'),
|
|
21
|
-
app: { title: (0, commons_1.translation)(
|
|
22
|
+
app: { title: (0, commons_1.translation)(terms_1.T.ticketApp.Base, terms_1.T.ticketApp.Base, terms_1.T.ticketApp.Base) },
|
|
22
23
|
},
|
|
23
24
|
firstAgreement: {
|
|
24
25
|
title: (0, commons_1.translation)('Har du fått gebyr etter billettkontroll?', 'Have you received a fine after a ticket inspection?', 'Har du fått gebyr etter billettkontroll?'),
|
|
@@ -40,7 +41,7 @@ exports.Contact = {
|
|
|
40
41
|
(0, commons_1.translation)('Kunden kjøper billett til seg selv eller andre for seint, for eksempel etter ombordstiging.', 'The customer buys a ticket for themselves or others too late, for example, after boarding.', 'Kunden kjøper billett til seg sjølv eller andre for seint, for eksempel etter ombordstiging.'),
|
|
41
42
|
(0, commons_1.translation)('Kunden har glemt å fornye periodebillett.', 'The customer has forgotten to renew the ticket.', 'Kunden har gløymt å fornye periodebillett.'),
|
|
42
43
|
(0, commons_1.translation)('Kunden reiser med gyldig billett på mobilen, men mobiltelefonen har gått tom for strøm.', 'The customer travels with a valid ticket on their mobile phone, but the phone has run out of battery.', 'Kunden reiser med gyldig billett på mobilen, men mobiltelefonen har gått tom for straum.'),
|
|
43
|
-
(0, commons_1.translation)(
|
|
44
|
+
(0, commons_1.translation)(`${terms_1.T.travelCard.Definite} ligger igjen hjemme.`, `${terms_1.T.travelCard.Definite} is left at home.`, `${terms_1.T.travelCard.Definite} ligg igjen heime.`),
|
|
44
45
|
],
|
|
45
46
|
checkbox: (0, commons_1.translation)('Jeg forstår reglene og ønsker å klage på gebyret.', 'I understand the rules and want to complain about the fine.', 'Eg forstår reglane og ønsker å klage på gebyret.'),
|
|
46
47
|
},
|
|
@@ -75,37 +76,39 @@ exports.Contact = {
|
|
|
75
76
|
description: (0, commons_1.translation)('Billett kjøpt på buss', 'Ticket bought on bus', 'Billett kjøpt på buss'),
|
|
76
77
|
},
|
|
77
78
|
residualValueOnTravelCard: {
|
|
78
|
-
description: (0, commons_1.translation)(
|
|
79
|
+
description: (0, commons_1.translation)(`Restverdi på ${terms_1.T.travelCard.base} (reisepenger)`, `Residual value on ${terms_1.T.travelCard.base} (travel allowance)`, `Restverdi på ${terms_1.T.travelCard.base} (reisepengar)`),
|
|
79
80
|
webshopRefundLabel: (0, commons_1.translation)('Billett kjøpt i nettbutikk', 'Ticket purchased in webshop', 'Billett kjøpt i nettbutikk'),
|
|
80
|
-
title: (0, commons_1.translation)(
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
81
|
+
title: (0, commons_1.translation)(`Søk refusjon av restverdien på ${terms_1.T.travelCard.indefinite}`, `Apply for a refund of the residual value on ${terms_1.T.travelCard.indefinite}`, `Søk refusjon av restverdien på ${terms_1.T.travelCard.indefinite}`),
|
|
82
|
+
text: (0, commons_1.richTranslation)(`[Skjema for refusjon av restverdien på ${terms_1.T.travelCard.indefinite}](https://forms.office.com/Pages/ResponsePage.aspx?id=5-wyud-clE20wRUlbkPH6qGF2mFbrapOg9lnALAiJk9UMkROS0dORUdaTTZURzJHNFNSSVhVTzE4Ti4u)
|
|
83
|
+
|
|
84
|
+
Restverdien blir betalt ut i slutten av hver måned (med forbehold). Hvis du har flere ${terms_1.T.travelCard.plural} du vil ha refundert, må du sende inn ett skjema per ${terms_1.T.travelCard.base}.`, `[Form for refund of residual value on ${terms_1.T.travelCard.indefinite}](https://forms.office.com/Pages/ResponsePage.aspx?id=5-wyud-clE20wRUlbkPH6qGF2mFbrapOg9lnALAiJk9UMkROS0dORUdaTTZURzJHNFNSSVhVTzE4Ti4u)
|
|
85
|
+
|
|
86
|
+
The residual value is paid out at the end of each month (with reservations). If you have multiple ${terms_1.T.travelCard.plural} that you want refunded, you must submit one form per ${terms_1.T.travelCard.base}.`, `[Skjema for refusjon av restverdien på ${terms_1.T.travelCard.indefinite}](https://forms.office.com/Pages/ResponsePage.aspx?id=5-wyud-clE20wRUlbkPH6qGF2mFbrapOg9lnALAiJk9UMkROS0dORUdaTTZURzJHNFNSSVhVTzE4Ti4u)
|
|
87
|
+
|
|
88
|
+
Restverdien blir betalt ut i slutten av kvar månad (med atterhald). Viss du har fleire ${terms_1.T.travelCard.plural} du vil ha refundert, må du sende inn eitt skjema per ${terms_1.T.travelCard.base}.`),
|
|
86
89
|
paymentWhen: (0, commons_1.translation)('Du får tilbakebetalt det beløpet som gjenstår i kortet, minus et administrasjonsgebyr på 100,- kr. Beløpet må være satt inn i løpet av de tre siste årene.', 'You will be reimbursed the amount remaining on the card, minus an administration fee of NOK 100,-. The amount must have been deposited within the last three years.', 'Du får tilbakebetalt det beløpet som gjenstår i kortet, minus eit administrasjonsgebyr på 100,- kr. Beløpet må være satt inn i løpet av dei siste tre åra.'),
|
|
87
90
|
automatedProcessNotice: {
|
|
88
91
|
note: (0, commons_1.translation)('Merk!', 'Note!', 'Merk!'),
|
|
89
|
-
text: (0, commons_1.translation)(
|
|
92
|
+
text: (0, commons_1.translation)(`Dette skjemaet gjelder bare for refusjon av restverdi på ${terms_1.T.travelCard.plural}. Det er en automatisert prosess som bare fungerer for denne typen refusjon.`, `This form only applies to refunds of residual value on ${terms_1.T.travelCard.plural}. It is an automated process that only works for this type of refund.`, `Dette skjemaet gjeld berre for refusjon av restverdi på ${terms_1.T.travelCard.plural}. Det er ein automatisert prosess som berre fungerar for denne typen refusjon.`),
|
|
90
93
|
},
|
|
91
94
|
},
|
|
92
95
|
agreement: {
|
|
93
96
|
title: (0, commons_1.translation)('Refusjon og reisegaranti', 'Refund and travel guarantee', 'Refusjon og reisegaranti'),
|
|
94
97
|
delayedRefundText: (0, commons_1.translation)('Ble du forsinket fordi vi ikke var i rute? Du kan ha krav på å få refundert utgifter til alternativ transport som for eksempel drosje, bil og annen kollektivtransport.', 'Were you delayed because we were not on schedule? You may be entitled to reimbursement for expenses related to alternative transportation such as taxi, car, and other public transportation.', 'Vart du forseinka fordi vi ikkje var i rute? Du kan du ha krav på å få refundert utlegg til alternativ transport som for eksempel drosje, bil og annan kollektivtransport.'),
|
|
95
|
-
ticketRefundText: (0, commons_1.
|
|
98
|
+
ticketRefundText: (0, commons_1.richTranslation)('Ønsker du refusjon av feilkjøpt eller ikke brukt billett, skal du ikke søke reisegaranti, men refusjon. Dette finner du under [Refusjon av billett](?type=refundOfTicket).', 'If you want a refund for a mistakenly purchased or unused ticket, you should not apply for travel guarantee, but rather for a refund. You can find this under [Refund of ticket](?type=refundOfTicket).', 'Ønsker du refusjon av feilkjøpt eller ikkje brukt billett, skal du ikkje søke reisegaranti, men refusjon. Dette finn du under [Refusjon av billett](?type=refundOfTicket).'),
|
|
96
99
|
travelGuaranteeExceptions: {
|
|
97
100
|
label: (0, commons_1.translation)('I hvilke tilfeller gjelder ikke reisegarantien?', 'In which cases does the travel guarentee not apply?', 'I kva tilfelle gjeld ikkje reisegarantien?'),
|
|
98
101
|
exceptions: [
|
|
99
102
|
{
|
|
100
|
-
text: (0, commons_1.
|
|
103
|
+
text: (0, commons_1.richTranslation)('Reisegarantien gjelder ikke for fergene. Reisegarantien gjelder heller ikke for flybussen i Ålesund eller andre kommersielle busslinjer.', 'The travel guarantee does not apply to the ferries. The travel guarantee also does not apply to the airport bus in Ålesund or other commercial bus lines.', 'Reisegarantien gjeld ikkje for ferjene. Reisegarantien gjeld heller ikkje for flybussen i Ålesund eller andre kommersielle busslinjer.'),
|
|
101
104
|
examples: [],
|
|
102
105
|
},
|
|
103
106
|
{
|
|
104
|
-
text: (0, commons_1.
|
|
107
|
+
text: (0, commons_1.richTranslation)('Reisegarantien gjelder ikke dersom det er 20 minutter eller mindre til neste avgang i henhold til rutetabellen.', 'The travel guarantee does not apply if there are 20 minutes or less until the next departure according to the timetable.', 'Reisegarantien gjeld ikkje dersom det er 20 minutt eller mindre til neste avgang i følgje rutetabellen.'),
|
|
105
108
|
examples: [],
|
|
106
109
|
},
|
|
107
110
|
{
|
|
108
|
-
text: (0, commons_1.
|
|
111
|
+
text: (0, commons_1.richTranslation)('Reisegarantien gjelder heller ikke hvis forsinkelsen eller innstillingen skyldes forhold utenfor kontrollen til operatøren. Dette inkluderer situasjoner som (for eksempel):', 'The travel guarantee also does not apply if the delay or cancellation is due to circumstances beyond the control of the operator. These are cases such as (for example):', 'Reisegarantien gjeld heller ikkje dersom forseinkinga eller innstillinga skjer på grunn av forhold utanfor kontrollen til operatøren. Dette er tilfelle som (for eksempel):'),
|
|
109
112
|
examples: [
|
|
110
113
|
(0, commons_1.translation)('offentlige påbud og forbud', 'public orders and prohibitions', 'offentlege påbod og forbod'),
|
|
111
114
|
(0, commons_1.translation)('streik og lignende', 'strikes and similar situations', 'streik og liknande'),
|
|
@@ -126,7 +129,6 @@ exports.Contact = {
|
|
|
126
129
|
},
|
|
127
130
|
},
|
|
128
131
|
refundTaxi: {
|
|
129
|
-
description: (0, commons_1.translation)('Jeg ønsker refusjon for drosje', 'I would like refund for taxi', 'Eg ønsker refusjon for drosje'),
|
|
130
132
|
taxiReceipt: {
|
|
131
133
|
title: (0, commons_1.translation)('Informasjon fra drosjekvitteringen', 'Information from the taxi receipt', 'Informasjon frå drosjekvitteringa'),
|
|
132
134
|
info: (0, commons_1.translation)('Last opp en kopi eller et bilde av kvitteringen fra drosjeturen. Kvitteringen må inneholde informasjon om hvor du reiste fra og til.', 'Upload a copy or a photo of the receipt from the taxi ride. The receipt must contain information about where you traveled from and to.', 'Last opp ein kopi eller eit bilde av kvitteringa frå drosjeturen. Kvitteringa må innehalde informasjon om kor du reiste frå og til.'),
|
|
@@ -136,6 +138,11 @@ exports.Contact = {
|
|
|
136
138
|
title: (0, commons_1.translation)('Om den planlagte reisen din', 'About your planned trip', 'Om den planlagde reisa di'),
|
|
137
139
|
},
|
|
138
140
|
},
|
|
141
|
+
otherTicketRefund: {
|
|
142
|
+
receipt: {
|
|
143
|
+
info: (0, commons_1.translation)('Last opp en kopi eller et bilde av kvitteringen fra billettkjøpet. Kvittering/billett må inneholde produkt kjøpt, dato og salgsreferanse.', 'Upload a copy or a photo of the receipt from the ticket purchase. The receipt/ticket must include the product purchased, the date and the sales reference.', 'Last opp ein kopi eller eit bilete av kvitteringa frå billettkjøpet. Kvittering/billett må innehalde produkt kjøpt, dato og salsreferanse.'),
|
|
144
|
+
},
|
|
145
|
+
},
|
|
139
146
|
refundCar: {
|
|
140
147
|
description: (0, commons_1.translation)('Jeg ønsker refusjon for bruk av bil', 'I would like refund for the use of a car', 'Eg ønsker refusjon for bruk av en bil'),
|
|
141
148
|
info: (0, commons_1.translation)('Hvis du ikke kommer frem med et annet rutetilbud, refunderer vi dokumenterte utgifter for bruk av bil. Vi betaler kilometergodtgjørelse etter statens satser. Refusjonen dekker ikke bompenger, parkering eller andre utgifter knyttet til leiebil/delebil.', 'If you are unable to reach your destination by an alternative service, we will refund documented expenses for the use of a car. We pay compensation per kilometer according to government rates. The refund does not cover tolls, parking, or other expenses related to rental cars/sharing cars', 'Viss du ikkje kjem fram med eit anna rutetilbod, refunderer vi dokumenterte utlegg for bruk av bil. Vi betalar kilometergodtgjersle etter statens satsar. Refusjonen dekker ikkje bompengar, parkering eller andre utgifter knytt til leigebil/delebil.'),
|
|
@@ -195,6 +202,7 @@ exports.Contact = {
|
|
|
195
202
|
injury: {
|
|
196
203
|
description: (0, commons_1.translation)('Melde fra om personskade eller ulykke', 'Report of personal injury or accident', 'Melde frå om personskade eller ulykke'),
|
|
197
204
|
info: (0, commons_1.translation)('Skadet du deg selv eller noe du eier om bord eller på stoppestedet/kai? Gi tilbakemelding her, så hjelper vi deg.', 'Did you injure yourself or something you own on board or at the stop/dock? Give feedback here, and we will help you.', 'Skada du deg sjølv eller noko du eig om bord eller på haldeplass/kai? Gje tilbakemelding her, så hjelper vi deg.'),
|
|
205
|
+
feedbackDescription: (0, commons_1.translation)('Unngå å oppgi personlig informasjon som bankkortnummer eller helseopplysninger. Vi vil spørre deg senere om det er nødvendig.', 'Avoid providing personal information such as bank card numbers or health information. We will ask you later if it is necessary.', 'Unngå å oppgi personopplysningar som bankkortnummer eller helseopplysningar. Vi spør deg seinare viss det er nødvendig.'),
|
|
198
206
|
about: {
|
|
199
207
|
title: (0, commons_1.translation)('Om reisen', 'About the trip', 'Om reisa'),
|
|
200
208
|
description: (0, commons_1.translation)('Vi trenger å vite litt om reisen din. Da er det lettere for oss å følge opp saken.', 'We need to know a bit about your trip. Then it is easier for us to follow up on the case.', 'Vi treng å vite litt om reisa di. Då er det enklare for oss å følgje opp saka.'),
|
|
@@ -210,7 +218,7 @@ exports.Contact = {
|
|
|
210
218
|
},
|
|
211
219
|
},
|
|
212
220
|
ticketing: {
|
|
213
|
-
title: (0, commons_1.translation)(
|
|
221
|
+
title: (0, commons_1.translation)(`Billetter og ${terms_1.T.orgApp.base}`, `Tickets and ${terms_1.T.orgApp.base}`, `Billettar og ${terms_1.T.orgApp.base}`),
|
|
214
222
|
additionalTicketingInfo: {
|
|
215
223
|
detail: (0, commons_1.translation)('For informasjon om betaling på ferge, se', 'For information on payment on the ferry, see', 'For informasjon om betaling på ferje, sjå'),
|
|
216
224
|
linkText: (0, commons_1.translation)('betaling for ferge', 'payment on the ferry', 'betaling for ferje'),
|
|
@@ -220,7 +228,7 @@ exports.Contact = {
|
|
|
220
228
|
description: (0, commons_1.translation)('Priser og billettyper', 'Prices and ticket types', 'Prisar og billettypar'),
|
|
221
229
|
},
|
|
222
230
|
app: {
|
|
223
|
-
description: (0, commons_1.translation)(
|
|
231
|
+
description: (0, commons_1.translation)(terms_1.T.orgApp.Base, terms_1.T.orgApp.Base, terms_1.T.orgApp.Base),
|
|
224
232
|
appTicketing: {
|
|
225
233
|
title: (0, commons_1.translation)('Hvilken billett gjelder det?', 'Which ticket is it about?', 'Kva billett gjeld det?'),
|
|
226
234
|
label: (0, commons_1.translation)('Kjøp billett', 'Purchase ticket', 'Kjøp billett'),
|
|
@@ -243,22 +251,18 @@ exports.Contact = {
|
|
|
243
251
|
},
|
|
244
252
|
},
|
|
245
253
|
travelCard: {
|
|
246
|
-
description: (0, commons_1.translation)(
|
|
254
|
+
description: (0, commons_1.translation)(terms_1.T.travelCard.Base, terms_1.T.travelCard.Base, terms_1.T.travelCard.Base),
|
|
247
255
|
question: (0, commons_1.translation)('Hva gjelder forespørselen?', 'What is the request about?', 'Kva gjeld førespurnaden'),
|
|
248
256
|
orderTravelCard: {
|
|
249
|
-
label: (0, commons_1.translation)(
|
|
257
|
+
label: (0, commons_1.translation)(`Bestill ${terms_1.T.travelCard.base}`, `Order ${terms_1.T.travelCard.base}`, `Bestill ${terms_1.T.travelCard.base}`),
|
|
250
258
|
detailsList: [
|
|
251
|
-
(0, commons_1.
|
|
252
|
-
(0, commons_1.
|
|
259
|
+
(0, commons_1.richTranslation)(`${terms_1.T.travelCard.Indefinite} er et fysisk plastkort. På ${terms_1.T.travelCard.definite} kan du legge periodebilletter.`, `${terms_1.T.travelCard.Indefinite} is a physical plastic card. You can add period tickets to ${terms_1.T.travelCard.definite}`, `${terms_1.T.travelCard.Indefinite} er eit fysisk plastkort. På ${terms_1.T.travelCard.definite} kan du legge periodebillettar.`),
|
|
260
|
+
(0, commons_1.richTranslation)(`${terms_1.T.travelCard.Base} får du tak i hos sjåføren om bord i bussen, eller matrosen om bord i hurtigbåten.`, `${terms_1.T.travelCard.Base} is available from the bus driver, or the sailor on board the express boat.`, `${terms_1.T.travelCard.Base} får du tak i hos sjåføren om bord i bussen, eller matrosen om bord i hurtigbåten.`),
|
|
261
|
+
(0, commons_1.richTranslation)('Du trenger ikke kjøpe produktet hos sjåfør. Du kan ta med deg et kort og fylle på det produktet du vil i nettbutikken', 'You don’t need to purchase the product from the driver. You can take a card with you and top up the desired product later in the webshop', 'Du treng ikkje kjøpe produktet hos sjåfør. Du kan ta med deg eit kort og fylle på det produktet du vil i nettbutikken'),
|
|
253
262
|
],
|
|
254
|
-
detailWithUrl: {
|
|
255
|
-
detail: (0, commons_1.translation)('Du trenger ikke kjøpe produktet hos sjåfør. Du kan ta med deg et kort og fylle på det produktet du vil i', 'You don’t need to purchase the product from the driver. You can take a card with you and top up the desired product later in the', 'Du treng ikkje kjøpe produktet hos sjåfør. Du kan ta med deg eit kort og fylle på det produktet du vil i'),
|
|
256
|
-
linkText: (0, commons_1.translation)('nettbutikken', 'webshop', 'nettbutikken'),
|
|
257
|
-
href: (0, commons_1.translation)('', '', ''),
|
|
258
|
-
},
|
|
259
263
|
},
|
|
260
264
|
travelCardQuestion: {
|
|
261
|
-
label: (0, commons_1.translation)(
|
|
265
|
+
label: (0, commons_1.translation)(`Andre spørsmål om ${terms_1.T.travelCard.base}`, `Other questions regarding ${terms_1.T.travelCard.base}`, `Andre spørsmål om ${terms_1.T.travelCard.base}`),
|
|
262
266
|
},
|
|
263
267
|
},
|
|
264
268
|
refund: {
|
|
@@ -277,13 +281,12 @@ exports.Contact = {
|
|
|
277
281
|
(0, commons_1.translation)('Periodebillett 7 dager: Du får refusjon for antall resterende døgn.', 'Period ticket 7 days: You will receive a refund for the number of days remaining.', 'Periodebillett 7 dagar: Du får refusjon for antall resterande døgn.'),
|
|
278
282
|
(0, commons_1.translation)('Periodebillett 30 dager: Du får refusjon for antall resterende døgn.', 'Period ticket 30 days: You will receive a refund for the number of remaining days.', 'Periodebillett 30 dagar: Du får refusjon for antall resterande døgn.'),
|
|
279
283
|
(0, commons_1.translation)('Periodebillettene for hele fylket: Du får refusjon for antall resterende døgn.', 'The period tickets for the entire county: You will receive a refund for numbers remaining on the day.', 'Periodebillettane for heile fylket: Du får refusjon for antall resterande døgn. '),
|
|
280
|
-
(0, commons_1.translation)(
|
|
284
|
+
(0, commons_1.translation)(`${terms_1.T.travelCard.Base}: Du får tilbakebetalt verdien som gjenstår på ${terms_1.T.travelCard.definite}. `, `${terms_1.T.travelCard.Base}: You will be reimbursed the value remaining on ${terms_1.T.travelCard.definite}.`, `${terms_1.T.travelCard.Base}: Du får tilbakebetalt verdien som gjenstår på ${terms_1.T.travelCard.definite}. `),
|
|
281
285
|
(0, commons_1.translation)('Enkeltbilletter etter feilkjøp og når ny, riktig billett er kjøpt. ', 'Single tickets after incorrect purchase and when a new, correct ticket has been purchased.', 'Enkeltbillettar etter feilkjøp og når ny, riktig billett er kjøpt. '),
|
|
282
286
|
(0, commons_1.translation)('Klippekort: Du får refusjon for antall gjenværende klipp.', 'Carnet: You will receive a refund for the number of remaining clips.', 'Klippekort: Du får refusjon for tal resterande klipp.'),
|
|
283
287
|
],
|
|
284
288
|
info: {
|
|
285
|
-
text: (0, commons_1.
|
|
286
|
-
link: (0, commons_1.translation)('reisegaranti.', 'travel guarantee.', 'reisegaranti.'),
|
|
289
|
+
text: (0, commons_1.richTranslation)('Gjelder kravet reisegaranti, dvs refusjon for utgifter til andre transportmiddel fordi buss eller hurtigbåt ikke var i rute? Da skal du søke om [reisegaranti](?type=refundAndTravelGuarantee&agreed=true).', 'Does the claim apply to a travel guarantee, i.e. refund for expenses for other means of transport because the bus or express boat was not on schedule? Then you should not apply for [travel guarantee](?type=refundAndTravelGuarantee&agreed=true).', 'Gjeld kravet reisegaranti, dvs refusjon for utgifter til andre transportmiddel fordi buss eller hurtigbåt ikkje var i rute? Då skal du søke om [reisegaranti](?type=refundAndTravelGuarantee&agreed=true).'),
|
|
287
290
|
note: (0, commons_1.translation)('', '', ''),
|
|
288
291
|
},
|
|
289
292
|
checkbox: (0, commons_1.translation)('Jeg forstår', 'I understand', 'Eg forstår'),
|
|
@@ -293,9 +296,11 @@ exports.Contact = {
|
|
|
293
296
|
rules: [],
|
|
294
297
|
},
|
|
295
298
|
},
|
|
299
|
+
/* eslint-disable terms/no-hardcoded -- any app, incl. Entur */
|
|
296
300
|
appTicketRefund: {
|
|
297
301
|
label: (0, commons_1.translation)('Billett kjøpt i app eller nettbutikk', 'Ticket purchased in an app or webshop', 'Billett kjøpt i app eller nettbutikk'),
|
|
298
302
|
},
|
|
303
|
+
/* eslint-enable terms/no-hardcoded */
|
|
299
304
|
otherTicketRefund: {
|
|
300
305
|
label: (0, commons_1.translation)('Billett kjøpt om bord eller på trafikkterminal', 'Ticket purchased onboard or at a terminal', 'Billett kjøpt om bord eller på trafikkterminal'),
|
|
301
306
|
},
|
|
@@ -423,6 +428,7 @@ exports.Contact = {
|
|
|
423
428
|
optionLabel: (0, commons_1.translation)('Velg transportmiddel', 'Select transport mode', 'Vel transportmiddel'),
|
|
424
429
|
modes: {
|
|
425
430
|
bus: (0, commons_1.translation)('Buss', 'Bus', 'Buss'),
|
|
431
|
+
tram: (0, commons_1.translation)('Trikk', 'Tram', 'Trikk'),
|
|
426
432
|
expressboat: (0, commons_1.translation)('Hurtigbåt', 'Express boat', 'Hurtigbåt'),
|
|
427
433
|
ferry: (0, commons_1.translation)('Ferge', 'Ferry', 'Ferje'),
|
|
428
434
|
bestillingstransport: (0, commons_1.translation)('Bestillingstransport', 'On-demand transport', 'Bestillingstransport'),
|
|
@@ -431,19 +437,22 @@ exports.Contact = {
|
|
|
431
437
|
empty: (0, commons_1.translation)('Velg transportmiddel', 'Select transport mode', 'Vel transportmiddel'),
|
|
432
438
|
},
|
|
433
439
|
},
|
|
440
|
+
/* eslint-disable terms/no-hardcoded -- lists the Entur app alongside the org's own, so "app" is generic here */
|
|
434
441
|
purchasePlatform: {
|
|
435
442
|
label: (0, commons_1.translation)('Kjøpsplattform', 'Purchase platform', 'Kjøpsplattform'),
|
|
436
443
|
optionLabel: (0, commons_1.translation)('Velg app eller nettbutikk billetten ble kjøpt i', 'Select the app or webshop where the ticket was purchased', 'Vel app eller nettbutikk der billetten vart kjøpt'),
|
|
437
444
|
platforms: {
|
|
438
445
|
enturApp: (0, commons_1.translation)('Entur-appen', 'Entur app', 'Entur-appen'),
|
|
439
|
-
framApp: (0, commons_1.translation)(
|
|
446
|
+
framApp: (0, commons_1.translation)(terms_1.T.orgApp.Base, terms_1.T.orgApp.Base, terms_1.T.orgApp.Base),
|
|
440
447
|
enturWeb: (0, commons_1.translation)('Entur nettbutikk', 'Entur webshop', 'Entur nettbutikk'),
|
|
441
448
|
framWeb: (0, commons_1.translation)('Nettbutikk', 'Webshop', 'Nettbutikk'),
|
|
449
|
+
sms: (0, commons_1.translation)('SMS', 'SMS', 'SMS'),
|
|
442
450
|
},
|
|
443
451
|
errorMessages: {
|
|
444
452
|
empty: (0, commons_1.translation)('Velg app eller nettbutikk', 'Select app or webshop', 'Vel app eller nettbutikk'),
|
|
445
453
|
},
|
|
446
454
|
},
|
|
455
|
+
/* eslint-enable terms/no-hardcoded */
|
|
447
456
|
line: {
|
|
448
457
|
label: (0, commons_1.translation)('Linje', 'Line', 'Linje'),
|
|
449
458
|
optionLabel: (0, commons_1.translation)('Velg linje', 'Choose line', 'Vel linje'),
|
|
@@ -521,7 +530,7 @@ exports.Contact = {
|
|
|
521
530
|
},
|
|
522
531
|
{
|
|
523
532
|
id: 'incorrectAppInformation',
|
|
524
|
-
name: (0, commons_1.translation)(
|
|
533
|
+
name: (0, commons_1.translation)(`Feil informasjon i ${terms_1.T.orgApp.base} eller reiseplanlegger`, `Incorrect information in ${terms_1.T.orgApp.base} or travel planner`, `Feil informasjon i ${terms_1.T.orgApp.base} eller reiseplanlegger`),
|
|
525
534
|
},
|
|
526
535
|
],
|
|
527
536
|
errorMessages: { empty: (0, commons_1.translation)('Velg årsak', 'Select reason', 'Vel årsak') },
|
|
@@ -582,19 +591,19 @@ exports.Contact = {
|
|
|
582
591
|
customerNumber: {
|
|
583
592
|
label: (0, commons_1.translation)('Kundenummer', 'Customer number', 'Kundenummer'),
|
|
584
593
|
labelOptional: (0, commons_1.translation)('Kundenummer - (valgfritt)', 'Customer number - (optional)', 'Kundenummer - (valfritt)'),
|
|
585
|
-
description: (0, commons_1.translation)(
|
|
594
|
+
description: (0, commons_1.translation)(`Kundenummeret består av 7 siffer og du finner det under Min bruker i ${terms_1.T.orgApp.definite}, eller i nettbutikken.`, `The customer number consists of 7 digits and can be found under My user in ${terms_1.T.orgApp.definite}, or in the webshop`, `Kundenummeret består av 7 siffer og du finn det under Min bruker i ${terms_1.T.orgApp.definite}, eller i nettbutikken.`),
|
|
586
595
|
errorMessages: {
|
|
587
596
|
empty: (0, commons_1.translation)('Fyll inn kundenummer', 'Enter customer number', 'Fyll inn kundenummer'),
|
|
588
597
|
invalidFormat: (0, commons_1.translation)('Ugyldig kundenummer. Skriv inn et gyldig kundenummer med 7 eller 8 siffer.', 'Invalid customer number. Please enter a valid 7 or 8-digit number.', 'Ugyldig kundenummer. Skriv inn eit gyldig kundenummer med 7 eller 8 siffer.'),
|
|
589
598
|
},
|
|
590
599
|
},
|
|
591
600
|
travelCardNumber: {
|
|
592
|
-
labelRadioButton: (0, commons_1.translation)(
|
|
593
|
-
label: (0, commons_1.translation)(
|
|
594
|
-
info: (0, commons_1.translation)(
|
|
601
|
+
labelRadioButton: (0, commons_1.translation)(terms_1.T.travelCard.Base, terms_1.T.travelCard.Base, terms_1.T.travelCard.Base),
|
|
602
|
+
label: (0, commons_1.translation)(terms_1.T.travelCardNumber.Base, terms_1.T.travelCardNumber.Base, terms_1.T.travelCardNumber.Base),
|
|
603
|
+
info: (0, commons_1.translation)(`Legg inn ${terms_1.T.travelCardNumber.definite} her hvis du allerede har ${terms_1.T.travelCard.indefinite}. ${terms_1.T.travelCardNumber.Definite} består av 9 siffer og du finner det på baksiden av ${terms_1.T.travelCard.definite} ditt`, `Enter ${terms_1.T.travelCardNumber.definite} here if you already have ${terms_1.T.travelCard.indefinite}. ${terms_1.T.travelCardNumber.Definite} consists of 9 digits and can be found on the back of your ${terms_1.T.travelCard.base}`, `Legg inn ${terms_1.T.travelCardNumber.definite} her viss du allereie har ${terms_1.T.travelCard.indefinite}. ${terms_1.T.travelCardNumber.Definite} består av 9 siffer, og du finn det bak på ${terms_1.T.travelCard.definite} ditt.`),
|
|
595
604
|
errorMessages: {
|
|
596
|
-
empty: (0, commons_1.translation)(
|
|
597
|
-
invalidFormat: (0, commons_1.translation)(
|
|
605
|
+
empty: (0, commons_1.translation)(`Legg til ${terms_1.T.travelCardNumber.base}`, `Enter ${terms_1.T.travelCardNumber.base}`, `Legg til ${terms_1.T.travelCardNumber.base}`),
|
|
606
|
+
invalidFormat: (0, commons_1.translation)(`Ugyldig ${terms_1.T.travelCardNumber.base}. Skriv inn et gyldig ${terms_1.T.travelCardNumber.base} med 9 siffer.`, `Invalid ${terms_1.T.travelCardNumber.base}. Please enter a valid 9-digit number.`, `Ugyldig ${terms_1.T.travelCardNumber.base}. Skriv inn eit gyldig ${terms_1.T.travelCardNumber.base} med 9 siffer.`),
|
|
598
607
|
},
|
|
599
608
|
},
|
|
600
609
|
question: {
|
|
@@ -621,7 +630,7 @@ exports.Contact = {
|
|
|
621
630
|
: (0, commons_1.translation)('Ordre-id(er)', 'Order ID(s)', 'Ordre-id(er)'),
|
|
622
631
|
description: (0, commons_1.translation)('Hvis du vil ha hjelp med en billett du allerede har kjøpt, trenger vi å vite ordre-id. Ordre-id finner du følgende steder:', 'If you want help with a ticket you have already bought, we need to know the order ID. You can find the order ID in the following places:', 'Viss du vil ha hjelp med ein billett du allereie har kjøpt, treng vi å vite ordre-id. Ordre-id finn du følgende stadar:'),
|
|
623
632
|
descriptionBulletPoints: [
|
|
624
|
-
(0, commons_1.translation)(
|
|
633
|
+
(0, commons_1.translation)(`På billetten i ${terms_1.T.orgApp.definite}.`, `On the ticket in ${terms_1.T.orgApp.definite}.`, `På billetten i ${terms_1.T.orgApp.definite}.`),
|
|
625
634
|
(0, commons_1.translation)('På kvitteringen din.', 'On your receipt.', 'På kvitteringa di.'),
|
|
626
635
|
(0, commons_1.translation)('Du finner også ordre-id på utgåtte billetter.', 'You can also find the order ID on expired tickets.', 'Du finn også ordre-id på utgåtte billettar.'),
|
|
627
636
|
],
|
|
@@ -634,9 +643,12 @@ exports.Contact = {
|
|
|
634
643
|
},
|
|
635
644
|
},
|
|
636
645
|
},
|
|
646
|
+
identificationAttachments: {
|
|
647
|
+
label: (0, commons_1.translation)('Gyldig legitimasjon (førerkort, pass, ID-kort etc)', "Valid identification (driver's licence, passport, ID card etc)", 'Gyldig legitimasjon (førarkort, pass, ID-kort etc)'),
|
|
648
|
+
},
|
|
637
649
|
refundReason: {
|
|
638
|
-
label: (0, commons_1.translation)('Refusjonen gjelder', 'The refund applies', 'Refusjonen gjeld'),
|
|
639
650
|
question: (0, commons_1.translation)('Hva er grunnen til at du ønsker refusjon?', 'What is the reason you want a refund?', 'Kva er grunnen til at du ønsker refusjon?'),
|
|
651
|
+
description: (0, commons_1.translation)('', '', ''),
|
|
640
652
|
errorMessages: {
|
|
641
653
|
empty: (0, commons_1.translation)('Grunn for refusjon mangler', 'Reason for refund is missing', 'Grunn for refusjon manglar'),
|
|
642
654
|
},
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { TranslatedString } from '../commons';
|
|
2
|
+
export declare const defaultTerms: {
|
|
3
|
+
travelCard: {
|
|
4
|
+
base: TranslatedString;
|
|
5
|
+
indefinite: TranslatedString;
|
|
6
|
+
definite: TranslatedString;
|
|
7
|
+
plural: TranslatedString;
|
|
8
|
+
};
|
|
9
|
+
travelCardNumber: {
|
|
10
|
+
base: TranslatedString;
|
|
11
|
+
definite: TranslatedString;
|
|
12
|
+
};
|
|
13
|
+
/** The org's own app. */
|
|
14
|
+
orgApp: {
|
|
15
|
+
base: TranslatedString;
|
|
16
|
+
definite: TranslatedString;
|
|
17
|
+
};
|
|
18
|
+
/** The app the customer keeps their ticket in. */
|
|
19
|
+
ticketApp: {
|
|
20
|
+
base: TranslatedString;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
//# sourceMappingURL=default-terms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-terms.d.ts","sourceRoot":"","sources":["../../../src/translations/terms/default-terms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEhE,eAAO,MAAM,YAAY;;;;;;;;;;;IAevB,yBAAyB;;;;;IAKzB,kDAAkD;;;;CAIQ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultTerms = void 0;
|
|
4
|
+
const commons_1 = require("../commons");
|
|
5
|
+
exports.defaultTerms = {
|
|
6
|
+
travelCard: {
|
|
7
|
+
base: (0, commons_1.translation)('reisekort', 'travel card', 'reisekort'),
|
|
8
|
+
indefinite: (0, commons_1.translation)('et reisekort', 'a travel card', 'eit reisekort'),
|
|
9
|
+
definite: (0, commons_1.translation)('reisekortet', 'the travel card', 'reisekortet'),
|
|
10
|
+
plural: (0, commons_1.translation)('reisekort', 'travel cards', 'reisekort'),
|
|
11
|
+
},
|
|
12
|
+
travelCardNumber: {
|
|
13
|
+
base: (0, commons_1.translation)('reisekortnummer', 'travel card number', 'reisekortnummer'),
|
|
14
|
+
definite: (0, commons_1.translation)('reisekortnummeret', 'the travel card number', 'reisekortnummeret'),
|
|
15
|
+
},
|
|
16
|
+
/** The org's own app. */
|
|
17
|
+
orgApp: {
|
|
18
|
+
base: (0, commons_1.translation)('app', 'app', 'app'),
|
|
19
|
+
definite: (0, commons_1.translation)('appen', 'the app', 'appen'),
|
|
20
|
+
},
|
|
21
|
+
/** The app the customer keeps their ticket in. */
|
|
22
|
+
ticketApp: {
|
|
23
|
+
base: (0, commons_1.translation)('mobilapp', 'mobile app', 'mobilapp'),
|
|
24
|
+
},
|
|
25
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/translations/terms/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.capitalize = exports.TERM_PLACEHOLDER = exports.T = exports.defaultTerms = void 0;
|
|
4
|
+
var default_terms_1 = require("./default-terms");
|
|
5
|
+
Object.defineProperty(exports, "defaultTerms", { enumerable: true, get: function () { return default_terms_1.defaultTerms; } });
|
|
6
|
+
var placeholders_1 = require("./placeholders");
|
|
7
|
+
Object.defineProperty(exports, "T", { enumerable: true, get: function () { return placeholders_1.T; } });
|
|
8
|
+
Object.defineProperty(exports, "TERM_PLACEHOLDER", { enumerable: true, get: function () { return placeholders_1.TERM_PLACEHOLDER; } });
|
|
9
|
+
Object.defineProperty(exports, "capitalize", { enumerable: true, get: function () { return placeholders_1.capitalize; } });
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { defaultTerms } from './default-terms';
|
|
2
|
+
export declare const capitalize: (text: string) => string;
|
|
3
|
+
type DefaultTerms = typeof defaultTerms;
|
|
4
|
+
type TermPlaceholders = {
|
|
5
|
+
[G in keyof DefaultTerms]: {
|
|
6
|
+
[F in keyof DefaultTerms[G]]: `{${G}.${F & string}}`;
|
|
7
|
+
} & {
|
|
8
|
+
[F in keyof DefaultTerms[G] as Capitalize<F & string>]: `{${G}.${Capitalize<F & string>}}`;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
/** Placeholders for use inside translation template literals. */
|
|
12
|
+
export declare const T: TermPlaceholders;
|
|
13
|
+
/** Matches the placeholders produced by `T`, capturing group and form. */
|
|
14
|
+
export declare const TERM_PLACEHOLDER: RegExp;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=placeholders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"placeholders.d.ts","sourceRoot":"","sources":["../../../src/translations/terms/placeholders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,eAAO,MAAM,UAAU,GAAI,MAAM,MAAM,WACO,CAAC;AAE/C,KAAK,YAAY,GAAG,OAAO,YAAY,CAAC;AAGxC,KAAK,gBAAgB,GAAG;KACrB,CAAC,IAAI,MAAM,YAAY,GAAG;SACxB,CAAC,IAAI,MAAM,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG;KACrD,GAAG;SAEA,CAAC,IAAI,MAAM,YAAY,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,GACnD,IAAI,CAAC,IAAI,UAAU,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG;KACtC;CACF,CAAC;AAEF,iEAAiE;AACjE,eAAO,MAAM,CAAC,EAUT,gBAAgB,CAAC;AAEtB,0EAA0E;AAC1E,eAAO,MAAM,gBAAgB,QAAqB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TERM_PLACEHOLDER = exports.T = exports.capitalize = void 0;
|
|
4
|
+
const default_terms_1 = require("./default-terms");
|
|
5
|
+
const capitalize = (text) => text.charAt(0).toUpperCase() + text.slice(1);
|
|
6
|
+
exports.capitalize = capitalize;
|
|
7
|
+
/** Placeholders for use inside translation template literals. */
|
|
8
|
+
exports.T = Object.fromEntries(Object.entries(default_terms_1.defaultTerms).map(([group, forms]) => [
|
|
9
|
+
group,
|
|
10
|
+
Object.fromEntries(Object.keys(forms).flatMap((form) => [
|
|
11
|
+
[form, `{${group}.${form}}`],
|
|
12
|
+
[(0, exports.capitalize)(form), `{${group}.${(0, exports.capitalize)(form)}}`],
|
|
13
|
+
])),
|
|
14
|
+
]));
|
|
15
|
+
/** Matches the placeholders produced by `T`, capturing group and form. */
|
|
16
|
+
exports.TERM_PLACEHOLDER = /\{(\w+)\.(\w+)}/g;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { TranslatedString } from '../commons';
|
|
2
|
+
import type { defaultTerms } from './default-terms';
|
|
3
|
+
type DefaultTerms = typeof defaultTerms;
|
|
4
|
+
export type TermGroup = keyof DefaultTerms;
|
|
5
|
+
export type TermForm<G extends TermGroup> = keyof DefaultTerms[G] & string;
|
|
6
|
+
/**
|
|
7
|
+
* Every form of a term. `capitalized` overrides the derived capitalization
|
|
8
|
+
* for forms where upper-casing the first letter is wrong.
|
|
9
|
+
*/
|
|
10
|
+
export type TermForms<G extends TermGroup> = Record<TermForm<G>, TranslatedString> & {
|
|
11
|
+
capitalized?: Partial<Record<TermForm<G>, TranslatedString>>;
|
|
12
|
+
};
|
|
13
|
+
export type Terms = {
|
|
14
|
+
[G in TermGroup]: TermForms<G>;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/translations/terms/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,KAAK,YAAY,GAAG,OAAO,YAAY,CAAC;AAExC,MAAM,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC;AAC3C,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,SAAS,IAAI,MAAM,YAAY,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;AAE3E;;;GAGG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,SAAS,IAAI,MAAM,CACjD,QAAQ,CAAC,CAAC,CAAC,EACX,gBAAgB,CACjB,GAAG;IACF,WAAW,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC;CAC9D,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;KAAG,CAAC,IAAI,SAAS,GAAG,SAAS,CAAC,CAAC,CAAC;CAAE,CAAC"}
|
|
@@ -8,5 +8,11 @@ export declare function TranslationsProvider({ overrides, children, }: {
|
|
|
8
8
|
}): import("react").JSX.Element;
|
|
9
9
|
export declare function useMergedTranslations(): MergedTranslations;
|
|
10
10
|
export declare function usePageText(): typeof PageText;
|
|
11
|
+
/**
|
|
12
|
+
* Returns a function that fills `{group.form}` term placeholders in translated
|
|
13
|
+
* text. A capitalized form (`Definite`) uses the org's `capitalized` value, or
|
|
14
|
+
* else upper-cases the first letter. Unknown placeholders are kept.
|
|
15
|
+
*/
|
|
16
|
+
export declare function useFillTerms(): (text: string) => string;
|
|
11
17
|
export {};
|
|
12
18
|
//# sourceMappingURL=translations-context.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translations-context.d.ts","sourceRoot":"","sources":["../../src/translations/translations-context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,QAAQ,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"translations-context.d.ts","sourceRoot":"","sources":["../../src/translations/translations-context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,QAAQ,MAAM,SAAS,CAAC;AAUpC,KAAK,kBAAkB,GAAG,UAAU,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAIvE,wBAAgB,oBAAoB,CAAC,EACnC,SAAS,EACT,QAAQ,GACT,EAAE;IACD,SAAS,EAAE,+BAA+B,CAAC;IAC3C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,+BAWA;AAED,wBAAgB,qBAAqB,IAAI,kBAAkB,CAS1D;AAED,wBAAgB,WAAW,IAAI,OAAO,QAAQ,CAG7C;AAMD;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAgBvD"}
|
|
@@ -36,10 +36,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.TranslationsProvider = TranslationsProvider;
|
|
37
37
|
exports.useMergedTranslations = useMergedTranslations;
|
|
38
38
|
exports.usePageText = usePageText;
|
|
39
|
+
exports.useFillTerms = useFillTerms;
|
|
39
40
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
40
41
|
const react_1 = require("react");
|
|
41
42
|
const merge_overrides_1 = require("./merge-overrides");
|
|
42
43
|
const PageText = __importStar(require("./pages"));
|
|
44
|
+
const commons_1 = require("./commons");
|
|
45
|
+
const terms_1 = require("./terms");
|
|
46
|
+
const lobot_1 = require("./lobot");
|
|
43
47
|
const TranslationsContext = (0, react_1.createContext)(null);
|
|
44
48
|
function TranslationsProvider({ overrides, children, }) {
|
|
45
49
|
const merged = (0, react_1.useMemo)(() => (0, merge_overrides_1.mergeTranslationOverrides)(overrides), [overrides]);
|
|
@@ -57,3 +61,24 @@ function usePageText() {
|
|
|
57
61
|
const context = (0, react_1.useContext)(TranslationsContext);
|
|
58
62
|
return context ? context.PageText : PageText;
|
|
59
63
|
}
|
|
64
|
+
/**
|
|
65
|
+
* Returns a function that fills `{group.form}` term placeholders in translated
|
|
66
|
+
* text. A capitalized form (`Definite`) uses the org's `capitalized` value, or
|
|
67
|
+
* else upper-cases the first letter. Unknown placeholders are kept.
|
|
68
|
+
*/
|
|
69
|
+
function useFillTerms() {
|
|
70
|
+
const context = (0, react_1.useContext)(TranslationsContext);
|
|
71
|
+
const { t } = lobot_1.lobot.useTranslation();
|
|
72
|
+
const terms = context ? context.terms : terms_1.defaultTerms;
|
|
73
|
+
return (text) => text.replace(terms_1.TERM_PLACEHOLDER, (match, group, form) => {
|
|
74
|
+
const forms = terms[group];
|
|
75
|
+
const lowerForm = form.charAt(0).toLowerCase() + form.slice(1);
|
|
76
|
+
const value = forms?.[lowerForm];
|
|
77
|
+
if (!forms || !value || !(0, commons_1.isTranslatedString)(value))
|
|
78
|
+
return match;
|
|
79
|
+
if (form === lowerForm)
|
|
80
|
+
return t(value);
|
|
81
|
+
const capitalized = forms.capitalized?.[lowerForm];
|
|
82
|
+
return capitalized ? t(capitalized) : (0, terms_1.capitalize)(t(value));
|
|
83
|
+
});
|
|
84
|
+
}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import * as PageText from './pages';
|
|
3
|
+
import type { Terms } from './terms';
|
|
4
|
+
import type { RichTranslatedString, TranslatedString } from './commons';
|
|
3
5
|
export declare enum LanguageAndTextLanguagesEnum {
|
|
4
6
|
nob = "nob",
|
|
5
7
|
nno = "nno",
|
|
@@ -18,16 +20,21 @@ export declare const languageAndTextSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
18
20
|
}, z.core.$strip>]>;
|
|
19
21
|
export type LanguageAndTextType = z.infer<typeof languageAndTextSchema>;
|
|
20
22
|
/**
|
|
21
|
-
*
|
|
23
|
+
* Override shape for the page dictionaries. Each translation must be complete
|
|
24
|
+
* (all languages), and `richTranslation` values are only accepted where the
|
|
25
|
+
* default is rich, since plain keys render Markdown literally.
|
|
22
26
|
*/
|
|
23
|
-
export type
|
|
24
|
-
|
|
25
|
-
}
|
|
27
|
+
export type TranslationOverride<T> = T extends RichTranslatedString ? TranslatedString : T extends TranslatedString ? TranslatedString & {
|
|
28
|
+
readonly __rich?: never;
|
|
29
|
+
} : T extends string | ((...args: never[]) => unknown) ? T : T extends readonly (infer E)[] ? TranslationOverride<E>[] : T extends object ? {
|
|
30
|
+
[P in keyof T]?: TranslationOverride<T[P]>;
|
|
31
|
+
} : T;
|
|
26
32
|
/**
|
|
27
33
|
* Optional, structured translation overrides that consumers can pass to
|
|
28
34
|
* tweak or extend the built-in dictionaries.
|
|
29
35
|
*/
|
|
30
36
|
export type ContactFormTranslationsOverride = {
|
|
31
|
-
pages?:
|
|
37
|
+
pages?: TranslationOverride<typeof PageText>;
|
|
38
|
+
terms?: Partial<Terms>;
|
|
32
39
|
};
|
|
33
40
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/translations/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,QAAQ,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/translations/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,QAAQ,MAAM,SAAS,CAAC;AACpC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAExE,oBAAY,4BAA4B;IACtC,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,GAAG,QAAQ;IACX,EAAE,OAAO;IACT,GAAG,QAAQ;IACX,EAAE,OAAO;CACV;AAED,eAAO,MAAM,qBAAqB;;;;;;mBAShC,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAExE;;;;GAIG;AACH,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS,oBAAoB,GAC/D,gBAAgB,GAChB,CAAC,SAAS,gBAAgB,GACxB,gBAAgB,GAAG;IAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,CAAA;CAAE,GAC9C,CAAC,SAAS,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,OAAO,CAAC,GAChD,CAAC,GACD,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,GAC5B,mBAAmB,CAAC,CAAC,CAAC,EAAE,GACxB,CAAC,SAAS,MAAM,GACd;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GAC9C,CAAC,CAAC;AAEd;;;GAGG;AACH,MAAM,MAAM,+BAA+B,GAAG;IAC5C,KAAK,CAAC,EAAE,mBAAmB,CAAC,OAAO,QAAQ,CAAC,CAAC;IAC7C,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACxB,CAAC"}
|
package/lib/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TranslatedString } from './translations';
|
|
2
|
-
export type TransportModeType = 'bus' | 'expressboat' | 'ferry' | 'bestillingstransport';
|
|
2
|
+
export type TransportModeType = 'bus' | 'tram' | 'expressboat' | 'ferry' | 'bestillingstransport';
|
|
3
3
|
export type ReasonForTransportFailure = {
|
|
4
4
|
id: string;
|
|
5
5
|
name: TranslatedString;
|
|
@@ -9,8 +9,8 @@ export declare enum TicketTypeId {
|
|
|
9
9
|
PeriodTicket = "periodTicket"
|
|
10
10
|
}
|
|
11
11
|
export type TicketType = {
|
|
12
|
-
id: TicketTypeId;
|
|
12
|
+
id: TicketTypeId | (string & {});
|
|
13
13
|
name: TranslatedString;
|
|
14
14
|
};
|
|
15
|
-
export type PurchasePlatformType = 'framApp' | 'enturApp' | 'framWeb' | 'enturWeb';
|
|
15
|
+
export type PurchasePlatformType = 'framApp' | 'enturApp' | 'framWeb' | 'enturWeb' | 'sms';
|
|
16
16
|
//# sourceMappingURL=types.d.ts.map
|
package/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,MAAM,iBAAiB,GAC3B,KAAK,GAAG,aAAa,GAAG,OAAO,GAAG,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,MAAM,iBAAiB,GAC3B,KAAK,GAAG,MAAM,GAAG,aAAa,GAAG,OAAO,GAAG,sBAAsB,CAAC;AACpE,MAAM,MAAM,yBAAyB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAA;CAAE,CAAC;AAE/E,oBAAY,YAAY;IACtB,YAAY,iBAAiB;IAC7B,YAAY,iBAAiB;CAC9B;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,YAAY,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACjC,IAAI,EAAE,gBAAgB,CAAC;CACxB,CAAC;AACF,MAAM,MAAM,oBAAoB,GAC9B,SAAS,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Renders a translated string with `[text](href)` as links opening in a new
|
|
3
|
+
* tab and `**text**` as bold. A blank line (`\n\n`) starts a new paragraph,
|
|
4
|
+
* a single `\n` is a line break.
|
|
5
|
+
*/
|
|
6
|
+
export declare function RichText({ children }: {
|
|
7
|
+
children: string;
|
|
8
|
+
}): import("react").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=rich-text.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rich-text.d.ts","sourceRoot":"","sources":["../../src/utils/rich-text.tsx"],"names":[],"mappings":"AAKA;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,+BAkB1D"}
|