@tietokilta/ilmomasiina-client 2.0.0-alpha42

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.
Files changed (58) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +19 -0
  3. package/dist/api.d.ts +17 -0
  4. package/dist/api.d.ts.map +1 -0
  5. package/dist/api.js +63 -0
  6. package/dist/index.d.ts +8 -0
  7. package/dist/index.d.ts.map +1 -0
  8. package/dist/index.js +23 -0
  9. package/dist/locales/en.json +132 -0
  10. package/dist/locales/fi.json +132 -0
  11. package/dist/locales/index.d.ts +267 -0
  12. package/dist/locales/index.d.ts.map +1 -0
  13. package/dist/locales/index.js +14 -0
  14. package/dist/modules/editSignup/actions.d.ts +13 -0
  15. package/dist/modules/editSignup/actions.d.ts.map +1 -0
  16. package/dist/modules/editSignup/actions.js +23 -0
  17. package/dist/modules/editSignup/index.d.ts +13 -0
  18. package/dist/modules/editSignup/index.d.ts.map +1 -0
  19. package/dist/modules/editSignup/index.js +82 -0
  20. package/dist/modules/editSignup/state.d.ts +19 -0
  21. package/dist/modules/editSignup/state.d.ts.map +1 -0
  22. package/dist/modules/editSignup/state.js +6 -0
  23. package/dist/modules/eventList/index.d.ts +18 -0
  24. package/dist/modules/eventList/index.d.ts.map +1 -0
  25. package/dist/modules/eventList/index.js +59 -0
  26. package/dist/modules/singleEvent/actions.d.ts +6 -0
  27. package/dist/modules/singleEvent/actions.d.ts.map +1 -0
  28. package/dist/modules/singleEvent/actions.js +11 -0
  29. package/dist/modules/singleEvent/index.d.ts +26 -0
  30. package/dist/modules/singleEvent/index.d.ts.map +1 -0
  31. package/dist/modules/singleEvent/index.js +60 -0
  32. package/dist/utils/abortable.d.ts +29 -0
  33. package/dist/utils/abortable.d.ts.map +1 -0
  34. package/dist/utils/abortable.js +85 -0
  35. package/dist/utils/errorMessage.d.ts +16 -0
  36. package/dist/utils/errorMessage.d.ts.map +1 -0
  37. package/dist/utils/errorMessage.js +45 -0
  38. package/dist/utils/eventListUtils.d.ts +31 -0
  39. package/dist/utils/eventListUtils.d.ts.map +1 -0
  40. package/dist/utils/eventListUtils.js +68 -0
  41. package/dist/utils/localizedEvent.d.ts +10 -0
  42. package/dist/utils/localizedEvent.d.ts.map +1 -0
  43. package/dist/utils/localizedEvent.js +58 -0
  44. package/dist/utils/signupState.d.ts +20 -0
  45. package/dist/utils/signupState.d.ts.map +1 -0
  46. package/dist/utils/signupState.js +26 -0
  47. package/dist/utils/signupUtils.d.ts +26 -0
  48. package/dist/utils/signupUtils.d.ts.map +1 -0
  49. package/dist/utils/signupUtils.js +81 -0
  50. package/dist/utils/stateContext.d.ts +10 -0
  51. package/dist/utils/stateContext.d.ts.map +1 -0
  52. package/dist/utils/stateContext.js +30 -0
  53. package/dist/utils/useShallowMemo.d.ts +3 -0
  54. package/dist/utils/useShallowMemo.d.ts.map +1 -0
  55. package/dist/utils/useShallowMemo.js +32 -0
  56. package/package.json +46 -0
  57. package/src/locales/en.json +132 -0
  58. package/src/locales/fi.json +132 -0
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const react_1 = require("react");
4
+ /**
5
+ * Modified from https://github.com/reduxjs/react-redux/blob/master/src/utils/shallowEqual.ts
6
+ * @copyright 2015-present Dan Abramov
7
+ * @license MIT
8
+ */
9
+ function shallowEqual(a, b) {
10
+ if (Object.is(a, b))
11
+ return true;
12
+ if (typeof a !== "object" || a === null || typeof b !== "object" || b === null)
13
+ return false;
14
+ const keysA = Object.keys(a);
15
+ const keysB = Object.keys(b);
16
+ if (keysA.length !== keysB.length)
17
+ return false;
18
+ for (let i = 0; i < keysA.length; i++) {
19
+ const key = keysA[i];
20
+ if (!Object.prototype.hasOwnProperty.call(b, key) || !Object.is(a[key], b[key]))
21
+ return false;
22
+ }
23
+ return true;
24
+ }
25
+ /** Returns the given object. Returns a previously used object, if shallow-equal to the current one. */
26
+ function useShallowMemo(value) {
27
+ const ref = (0, react_1.useRef)();
28
+ if (!shallowEqual(ref.current, value))
29
+ ref.current = value;
30
+ return ref.current;
31
+ }
32
+ exports.default = useShallowMemo;
package/package.json ADDED
@@ -0,0 +1,46 @@
1
+ {
2
+ "name": "@tietokilta/ilmomasiina-client",
3
+ "version": "2.0.0-alpha42",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "git+https://github.com/Tietokilta/ilmomasiina.git"
7
+ },
8
+ "license": "MIT",
9
+ "main": "dist/index.js",
10
+ "types": "dist/index.d.ts",
11
+ "exports": {
12
+ ".": {
13
+ "types": "./dist/index.d.ts",
14
+ "import": "./dist/index.js"
15
+ },
16
+ "./dist/*": {
17
+ "types": "./dist/*.d.ts",
18
+ "import": "./dist/*.js"
19
+ },
20
+ "./src/*": "./src/*.ts"
21
+ },
22
+ "dependencies": {
23
+ "lodash-es": "^4.17.21",
24
+ "@tietokilta/ilmomasiina-models": "2.0.0-alpha42"
25
+ },
26
+ "peerDependencies": {
27
+ "react": "^17 || ^18"
28
+ },
29
+ "peerDependenciesMeta": {
30
+ "react": {
31
+ "optional": true
32
+ }
33
+ },
34
+ "devDependencies": {
35
+ "@types/lodash-es": "^4.17.12",
36
+ "@types/react": "^17.0.87",
37
+ "react": "^18.3.0",
38
+ "rimraf": "^5.0.10",
39
+ "typescript": "~5.2.2"
40
+ },
41
+ "scripts": {
42
+ "build": "tsc --build",
43
+ "clean": "rimraf dist",
44
+ "typecheck": "tsc --build"
45
+ }
46
+ }
@@ -0,0 +1,132 @@
1
+ {
2
+ "public": {
3
+ "dateFormat.locale": "en-FI",
4
+ "duration.days_one": "{{count}} day",
5
+ "duration.days_other": "{{count}} days",
6
+ "duration.hours_one": "{{count}} hour",
7
+ "duration.hours_other": "{{count}} hours",
8
+ "duration.mins_one": "{{count}} minute",
9
+ "duration.mins_other": "{{count}} minutes",
10
+ "duration.secs_one": "{{count}} second",
11
+ "duration.secs_other": "{{count}} seconds",
12
+ "editSignup.backToEvent": "Back to event page",
13
+ "editSignup.action.cancel": "Cancel",
14
+ "editSignup.action.edit": "Update",
15
+ "editSignup.action.save": "Save",
16
+ "editSignup.action.back": "Back",
17
+ "editSignup.delete.action": "Delete signup",
18
+ "editSignup.delete.action.confirm": "Click again to confirm\u2026",
19
+ "editSignup.delete.info1": "Are you sure you want to delete your sign up to <1>{{event}}</1>?",
20
+ "editSignup.delete.info2": "If you delete your signup you will lose your spot in the queue. If you change your mind you can always sign up again to the event later, but you will be moved to the end of the queue.",
21
+ "editSignup.delete.info3": "This cannot be undone.",
22
+ "editSignup.editInstructions.email": "The link will also be included in the confirmation email.",
23
+ "editSignup.editInstructions": "You can edit or delete your signup later by saving the URL of this page.",
24
+ "editSignup.loadError.BadEditToken.title": "Invalid verification token",
25
+ "editSignup.loadError.BadEditToken.description": "The verification token in the URL is incorrect. Please verify that you typed the URL correctly.",
26
+ "editSignup.loadError.404.title": "Signup not found",
27
+ "editSignup.loadError.404.description": "Your signup was not found. It might be already deleted, or you might have mistyped the URL.",
28
+ "editSignup.loadError.default.description": "Your signup could not be loaded.",
29
+ "editSignup.fields.email": "Email",
30
+ "editSignup.fields.email.placeholder": "Email",
31
+ "editSignup.fields.firstName": "First name",
32
+ "editSignup.fields.firstName.placeholder": "First name",
33
+ "editSignup.fields.lastName": "Last name",
34
+ "editSignup.fields.lastName.placeholder": "Last name",
35
+ "editSignup.fields.select.placeholder": "Choose\u2026",
36
+ "editSignup.namePublic": "Show name in public signup list",
37
+ "editSignup.position.openQuota": "You are in the open quota in position {{position}}.",
38
+ "editSignup.position.queue": "You are in the queue in position {{position}}.",
39
+ "editSignup.position.quota": "You are in quota {{quota}} in position {{position}}.",
40
+ "editSignup.editable.unconfirmed": "Your signup is still valid for {{duration}}. Save the form to make sure it doesn't expire.",
41
+ "editSignup.editable.confirmed": "Your signup can still be edited for: {{duration}}",
42
+ "editSignup.editable.closed": "Your signup cannot be changed anymore as the signup for the event has closed.",
43
+ "editSignup.publicQuestion": "Answers to this field are public.",
44
+ "editSignup.status.delete": "Deleting signup",
45
+ "editSignup.status.deleteSuccess": "Your signup was deleted successfully.",
46
+ "editSignup.status.edit": "Updating signup",
47
+ "editSignup.status.editSuccess": "Editing succeeded",
48
+ "editSignup.status.signup": "Saving signup",
49
+ "editSignup.status.signupSuccess": "Signup succeeded",
50
+ "editSignup.deleteError.SignupsClosed.description": "The signup for this event has closed, so your signup could no longer be deleted.",
51
+ "editSignup.deleteError.NoSuchSignup.description": "Your signup has already been deleted.",
52
+ "editSignup.deleteError.default.description": "Deletion failed",
53
+ "editSignup.editError.SignupsClosed.description": "The signup for this event has closed, so your changes could no longer be saved.",
54
+ "editSignup.editError.NoSuchSignup.description": "Your signup was not found. It might be already deleted.",
55
+ "editSignup.editError.400.description": "Editing failed. Make sure you have filled all mandatory fields and try again.",
56
+ "editSignup.editError.default.description": "Editing failed.",
57
+ "editSignup.signupError.SignupsClosed.description": "The signup for this event has closed, so your signup could no longer be saved.",
58
+ "editSignup.signupError.NoSuchSignup.description": "Your signup was not found. It might be already deleted.",
59
+ "editSignup.signupError.400.description": "Signup failed. Make sure you have filled all mandatory fields and try again.",
60
+ "editSignup.signupError.default.description": "Signup failed.",
61
+ "editSignup.fieldError.missing": "This field is mandatory.",
62
+ "editSignup.fieldError.wrongType": "The answer to this field is of the wrong type. Try refreshing the page.",
63
+ "editSignup.fieldError.tooLong": "The answer to this field is too long.",
64
+ "editSignup.fieldError.invalidEmail": "The email address is invalid.",
65
+ "editSignup.fieldError.notANumber": "The answer to this question must be a valid number.",
66
+ "editSignup.fieldError.notAnOption": "The answer to this question isn't in the allowed options. Try refreshing the page.",
67
+ "editSignup.fieldError": "The answer to this field is invalid. Try refreshing the page.",
68
+ "editSignup.title.edit": "Edit signup",
69
+ "editSignup.title.signup": "Sign up",
70
+ "editSignup.title.preview": "Preview signup form",
71
+ "errors.returnToEvents": "Return to event list",
72
+ "errors.contactAdmin": "If the problem persists, please report it to the administrators.",
73
+ "errors.default.title": "Whoops, something went wrong",
74
+ "errors.InitialSetupNeeded.title": "Initial setup needed",
75
+ "errors.InitialSetupNeeded.description": "The server seems to be freshly installed. This frontend doesn't support initial setup \u2013 please visit the admin interface to set up the server.",
76
+ "errors.500.description": "An internal error occurred on the server. $t(errors.contactAdmin)",
77
+ "errors.502.description": "The backend server seems to be down. $t(errors.contactAdmin)",
78
+ "errors.503.description": "The backend server seems to be down. $t(errors.contactAdmin)",
79
+ "errors.504.description": "The backend server seems to be unresponsive. $t(errors.contactAdmin)",
80
+ "errors.default.description": "An unknown error occurred. $t(errors.contactAdmin)",
81
+ "events.column.date": "Date",
82
+ "events.column.name": "Name",
83
+ "events.column.signupCount": "Signups",
84
+ "events.column.signupStatus": "Signup",
85
+ "events.loadError.default.description": "Failed to load events. $t(errors.contactAdmin)",
86
+ "events.openQuota": "Open",
87
+ "events.signupCount": "Signups:",
88
+ "events.title": "Events",
89
+ "signupState.disabled": "You cannot sign up for this event.",
90
+ "signupState.notOpened": "Signup opens on {{date}}.",
91
+ "signupState.notOpened.short": "Opens on {{date}}.",
92
+ "signupState.open": "Signup open until {{date}}.",
93
+ "signupState.open.short": "Until {{date}}.",
94
+ "signupState.closed": "The signup for this event has closed at {{date}}.",
95
+ "signupState.closed.short": "Closed on {{date}}.",
96
+ "singleEvent.editEvent": "Edit",
97
+ "singleEvent.info.category": "Category:",
98
+ "singleEvent.info.date": "Date:",
99
+ "singleEvent.info.endDate": "Ends:",
100
+ "singleEvent.info.facebookEvent": "Facebook event:",
101
+ "singleEvent.info.location": "Location:",
102
+ "singleEvent.info.price": "Price:",
103
+ "singleEvent.info.startDate": "Starts:",
104
+ "singleEvent.info.website": "Website:",
105
+ "singleEvent.loadError.404.title": "Event not found",
106
+ "singleEvent.loadError.404.description": "The event was not found. It may be too far in the past or deleted, or you might have mistyped the URL.",
107
+ "singleEvent.loadError.default.description": "Failed to load event details. $t(errors.contactAdmin)",
108
+ "singleEvent.quotaCounts.openQuota": "Open quota",
109
+ "singleEvent.quotaCounts.queue": "In queue: {{count}}",
110
+ "singleEvent.quotaCounts.title": "Signups",
111
+ "singleEvent.quotaCounts.unlimited": "Unlimited",
112
+ "singleEvent.returnToEvents": "Back",
113
+ "singleEvent.signupButton.singleQuota": "Sign up now",
114
+ "singleEvent.signupButton": "Sign up: {{quota}}",
115
+ "singleEvent.signupButton.preview": "Preview signup form",
116
+ "singleEvent.signupButtons.title": "Sign up",
117
+ "singleEvent.signups.emptyQuota": "No signups.",
118
+ "singleEvent.signups.quotaTitle.in-open": "Open quota",
119
+ "singleEvent.signups.quotaTitle.in-queue": "In queue",
120
+ "singleEvent.signups.nameHidden": "Hidden",
121
+ "singleEvent.signups.position": "Position",
122
+ "singleEvent.signups.name": "Name",
123
+ "singleEvent.signups.quota": "Quota",
124
+ "singleEvent.signups.signupTime": "Signup time",
125
+ "singleEvent.signups.title": "Signups",
126
+ "singleEvent.signups.unconfirmed": "Unconfirmed",
127
+ "singleEvent.signupInProgress": "Signup in progress",
128
+ "singleEvent.signupError.NoSuchQuota.description": "The quota you chose has been deleted.",
129
+ "singleEvent.signupError.SignupsClosed.description": "The signup for this event has closed.",
130
+ "singleEvent.signupError.default.description": "Signup creation failed."
131
+ }
132
+ }
@@ -0,0 +1,132 @@
1
+ {
2
+ "public": {
3
+ "dateFormat.locale": "fi-FI",
4
+ "duration.days_one": "{{count}} päivä",
5
+ "duration.days_other": "{{count}} päivää",
6
+ "duration.hours_one": "{{count}} tunti",
7
+ "duration.hours_other": "{{count}} tuntia",
8
+ "duration.mins_one": "{{count}} minuutti",
9
+ "duration.mins_other": "{{count}} minuuttia",
10
+ "duration.secs_one": "{{count}} sekunti",
11
+ "duration.secs_other": "{{count}} sekuntia",
12
+ "editSignup.backToEvent": "Takaisin tapahtumasivulle",
13
+ "editSignup.action.cancel": "Peruuta",
14
+ "editSignup.action.edit": "Päivitä",
15
+ "editSignup.action.save": "Tallenna",
16
+ "editSignup.action.back": "Takaisin",
17
+ "editSignup.delete.action": "Poista ilmoittautuminen",
18
+ "editSignup.delete.action.confirm": "Paina uudelleen varmistukseksi\u2026",
19
+ "editSignup.delete.info1": "Oletko varma, että haluat poistaa ilmoittautumisesi tapahtumaan <1>{{event}}</1>?",
20
+ "editSignup.delete.info2": "Jos poistat ilmoittautumisesi, menetät paikkasi jonossa. Jos muutat mielesi, voit aina ilmoittautua tapahtumaan uudelleen myöhemmin, mutta siirryt silloin jonon hännille.",
21
+ "editSignup.delete.info3": "Tätä toimintoa ei voi perua.",
22
+ "editSignup.editInstructions.email": "Linkki lähetetään myös sähköpostiisi vahvistusviestissä.",
23
+ "editSignup.editInstructions": "Voit muokata ilmoittautumistasi tai poistaa sen myöhemmin tallentamalla tämän sivun URL-osoitteen.",
24
+ "editSignup.loadError.BadEditToken.title": "Virheellinen vahvistuskoodi",
25
+ "editSignup.loadError.BadEditToken.description": "URL-osoitteen vahvistuskoodi on virheellinen. Tarkista, että kirjoitit URL-osoitteen oikein.",
26
+ "editSignup.loadError.404.title": "Ilmoittautumista ei löytynyt",
27
+ "editSignup.loadError.404.description": "Ilmoittautumistasi ei löytynyt. Se saattaa olla jo poistettu.",
28
+ "editSignup.loadError.default.description": "Ilmoittautumisen lataaminen epäonnistui. $t(errors.contactAdmin)",
29
+ "editSignup.fields.email": "Sähköposti",
30
+ "editSignup.fields.email.placeholder": "Sähköposti",
31
+ "editSignup.fields.firstName": "Etunimi",
32
+ "editSignup.fields.firstName.placeholder": "Etunimi",
33
+ "editSignup.fields.lastName": "Sukunimi",
34
+ "editSignup.fields.lastName.placeholder": "Sukunimi",
35
+ "editSignup.fields.select.placeholder": "Valitse\u2026",
36
+ "editSignup.namePublic": "Näytä nimi julkisessa osallistujalistassa",
37
+ "editSignup.position.openQuota": "Olet avoimessa kiintiössä sijalla {{position}}.",
38
+ "editSignup.position.queue": "Olet jonossa sijalla {{position}}.",
39
+ "editSignup.position.quota": "Olet kiintiössä {{quota}} sijalla {{position}}.",
40
+ "editSignup.editable.unconfirmed": "Ilmoittautumisesi on voimassa vielä {{duration}}. Tallenna lomake, jotta se ei vanhene.",
41
+ "editSignup.editable.confirmed": "Muokkausaikaa jäljellä: {{duration}}",
42
+ "editSignup.editable.closed": "Ilmoittautumistasi ei voi enää muokata tai perua, koska tapahtuman ilmoittautuminen on sulkeutunut.",
43
+ "editSignup.publicQuestion": "Tämän kentän vastaukset ovat julkisia.",
44
+ "editSignup.status.delete": "Ilmoittautumista poistetaan",
45
+ "editSignup.status.deleteSuccess": "Ilmoittautumisesi poistettiin onnistuneesti.",
46
+ "editSignup.status.edit": "Tallennetaan muutoksia",
47
+ "editSignup.status.editSuccess": "Muokkaus onnistui",
48
+ "editSignup.status.signup": "Tallennetaan ilmoittautumista",
49
+ "editSignup.status.signupSuccess": "Ilmoittautuminen onnistui",
50
+ "editSignup.deleteError.SignupsClosed.description": "Tapahtuman ilmoittautuminen on sulkeutunut, joten ilmoittautumistasi ei voitu enää poistaa.",
51
+ "editSignup.deleteError.NoSuchSignup.description": "Ilmoittautumistasi on jo poistettu.",
52
+ "editSignup.deleteError.default.description": "Poisto epäonnistui.",
53
+ "editSignup.editError.SignupsClosed.description": "Tapahtuman ilmoittautuminen on sulkeutunut, joten muutoksiasi ei voitu enää tallentaa.",
54
+ "editSignup.editError.NoSuchSignup.description": "Ilmoittautumistasi ei löytynyt. Se saattaa olla jo poistettu.",
55
+ "editSignup.editError.400.description": "Muokkaus epäonnistui. Tarkista, että kaikki pakolliset kentät on täytetty ja yritä uudestaan.",
56
+ "editSignup.editError.default.description": "Muokkaus epäonnistui.",
57
+ "editSignup.signupError.SignupsClosed.description": "Tapahtuman ilmoittautuminen on sulkeutunut, joten ilmoittautumistasi ei voitu enää tallentaa.",
58
+ "editSignup.signupError.NoSuchSignup.description": "Ilmoittautumistasi ei löytynyt. Se saattaa olla jo poistettu.",
59
+ "editSignup.signupError.400.description": "Ilmoittautuminen epäonnistui. Tarkista, että kaikki pakolliset kentät on täytetty ja yritä uudestaan.",
60
+ "editSignup.signupError.default.description": "Ilmoittautuminen epäonnistui.",
61
+ "editSignup.fieldError.missing": "Tämä kenttä on pakollinen.",
62
+ "editSignup.fieldError.wrongType": "Kentän vastaus on väärää tyyppiä. Kokeile päivittää sivu.",
63
+ "editSignup.fieldError.tooLong": "Kentän vastaus on liian pitkä.",
64
+ "editSignup.fieldError.invalidEmail": "Sähköpostiosoite on virheellinen.",
65
+ "editSignup.fieldError.notANumber": "Kentän vastauksen tulee olla numero.",
66
+ "editSignup.fieldError.notAnOption": "Kentän vastaus ei ole sallituissa vaihtoehdoissa. Kokeile päivittää sivu.",
67
+ "editSignup.fieldError": "Kentän vastaus on virheellinen. Kokeile päivittää sivu.",
68
+ "editSignup.title.edit": "Muokkaa ilmoittautumista",
69
+ "editSignup.title.signup": "Ilmoittaudu",
70
+ "editSignup.title.preview": "Esikatsele ilmolomaketta",
71
+ "errors.returnToEvents": "Palaa tapahtumalistaukseen",
72
+ "errors.contactAdmin": "Jos ongelma jatkuu, ota yhteyttä ylläpitäjiin.",
73
+ "errors.default.title": "Hups, jotain meni pieleen",
74
+ "errors.default.description": "Tuntematon virhe. $t(errors.contactAdmin)",
75
+ "errors.InitialSetupNeeded.title": "Käyttöönotto kesken",
76
+ "errors.InitialSetupNeeded.description": "Palvelin vaikuttaa vasta asennetulta. Tämä käyttöliittymä ei tue käyttöönottoa \u2013 ota palvelin käyttöön hallintakäyttöliittymän kautta.",
77
+ "errors.500.description": "Palvelimella tapahtui virhe. $t(errors.contactAdmin)",
78
+ "errors.502.description": "Taustapalvelimeen ei saada yhteyttä. $t(errors.contactAdmin)",
79
+ "errors.503.description": "Taustapalvelimeen ei saada yhteyttä. $t(errors.contactAdmin)",
80
+ "errors.504.description": "Taustapalvelin ei vastaa pyyntöihin. $t(errors.contactAdmin)",
81
+ "events.column.date": "Ajankohta",
82
+ "events.column.name": "Nimi",
83
+ "events.column.signupCount": "Ilmoittautuneita",
84
+ "events.column.signupStatus": "Ilmoittautuminen",
85
+ "events.loadError.default.description": "Tapahtumien lataaminen epäonnistui. $t(errors.contactAdmin)",
86
+ "events.openQuota": "Avoin",
87
+ "events.signupCount": "Ilmoittautuneita:",
88
+ "events.title": "Tapahtumat",
89
+ "signupState.disabled": "Tapahtumaan ei voi ilmoittautua.",
90
+ "signupState.notOpened": "Ilmoittautuminen alkaa {{date}}.",
91
+ "signupState.notOpened.short": "Alkaa {{date}}.",
92
+ "signupState.open": "Ilmoittautuminen auki {{date}} asti.",
93
+ "signupState.open.short": "Auki {{date}} asti.",
94
+ "signupState.closed": "Ilmoittautuminen päättyi {{date}}.",
95
+ "signupState.closed.short": "Päättyi {{date}}.",
96
+ "singleEvent.editEvent": "Muokkaa",
97
+ "singleEvent.info.category": "Kategoria:",
98
+ "singleEvent.info.date": "Ajankohta:",
99
+ "singleEvent.info.endDate": "Loppuu:",
100
+ "singleEvent.info.facebookEvent": "Facebook-tapahtuma:",
101
+ "singleEvent.info.location": "Sijainti:",
102
+ "singleEvent.info.price": "Hinta:",
103
+ "singleEvent.info.startDate": "Alkaa:",
104
+ "singleEvent.info.website": "Kotisivut:",
105
+ "singleEvent.loadError.404.title": "Tapahtumaa ei löytynyt",
106
+ "singleEvent.loadError.404.description": "Tapahtumaa ei löytynyt. Se saattaa olla menneisyydessä tai poistettu, tai olet ehkä kirjoittanut URL-osoitteen väärin.",
107
+ "singleEvent.loadError.default.description": "Tapahtuman lataaminen epäonnistui. $t(errors.contactAdmin)",
108
+ "singleEvent.quotaCounts.openQuota": "Avoin kiintiö",
109
+ "singleEvent.quotaCounts.queue": "Jonossa: {{count}}",
110
+ "singleEvent.quotaCounts.title": "Ilmoittautuneet",
111
+ "singleEvent.quotaCounts.unlimited": "Rajaton",
112
+ "singleEvent.returnToEvents": "Takaisin",
113
+ "singleEvent.signupButton.singleQuota": "Ilmoittaudu nyt",
114
+ "singleEvent.signupButton": "Ilmoittaudu: {{quota}}",
115
+ "singleEvent.signupButton.preview": "Esikatsele ilmolomaketta",
116
+ "singleEvent.signupButtons.title": "Ilmoittautuminen",
117
+ "singleEvent.signups.emptyQuota": "Ei ilmoittautumisia.",
118
+ "singleEvent.signups.quotaTitle.in-open": "Avoin kiintiö",
119
+ "singleEvent.signups.quotaTitle.in-queue": "Jonossa",
120
+ "singleEvent.signups.nameHidden": "Piilotettu",
121
+ "singleEvent.signups.position": "Sija",
122
+ "singleEvent.signups.name": "Nimi",
123
+ "singleEvent.signups.quota": "Kiintiö",
124
+ "singleEvent.signups.signupTime": "Ilmoittautumisaika",
125
+ "singleEvent.signups.title": "Ilmoittautuneet",
126
+ "singleEvent.signups.unconfirmed": "Vahvistamatta",
127
+ "singleEvent.signupInProgress": "Ilmoittautuminen käynnissä",
128
+ "singleEvent.signupError.NoSuchQuota.description": "Valitsemasi kiintiö on poistettu.",
129
+ "singleEvent.signupError.SignupsClosed.description": "Tapahtuman ilmoittautuminen on sulkeutunut.",
130
+ "singleEvent.signupError.default.description": "Ilmoittautuminen epäonnistui."
131
+ }
132
+ }