@bigbinary/neeto-email-notifications-frontend 2.2.14 → 2.2.16

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 (45) hide show
  1. package/README.md +89 -18
  2. package/app/javascript/src/translations/ar.json +17 -0
  3. package/app/javascript/src/translations/bg.json +17 -0
  4. package/app/javascript/src/translations/ca.json +17 -0
  5. package/app/javascript/src/translations/cs.json +17 -0
  6. package/app/javascript/src/translations/da.json +17 -0
  7. package/app/javascript/src/translations/de.json +2 -2
  8. package/app/javascript/src/translations/en.json +1 -1
  9. package/app/javascript/src/translations/es-MX.json +17 -0
  10. package/app/javascript/src/translations/es.json +2 -2
  11. package/app/javascript/src/translations/et.json +17 -0
  12. package/app/javascript/src/translations/fi.json +17 -0
  13. package/app/javascript/src/translations/fil.json +17 -0
  14. package/app/javascript/src/translations/fr.json +2 -2
  15. package/app/javascript/src/translations/hi.json +17 -0
  16. package/app/javascript/src/translations/hr.json +17 -0
  17. package/app/javascript/src/translations/id.json +17 -0
  18. package/app/javascript/src/translations/it.json +17 -0
  19. package/app/javascript/src/translations/ja.json +17 -0
  20. package/app/javascript/src/translations/ko.json +17 -0
  21. package/app/javascript/src/translations/nl.json +17 -0
  22. package/app/javascript/src/translations/pl.json +17 -0
  23. package/app/javascript/src/translations/pt-BR.json +17 -0
  24. package/app/javascript/src/translations/pt.json +17 -0
  25. package/app/javascript/src/translations/ro.json +17 -0
  26. package/app/javascript/src/translations/ru.json +17 -0
  27. package/app/javascript/src/translations/sk.json +17 -0
  28. package/app/javascript/src/translations/sl.json +17 -0
  29. package/app/javascript/src/translations/sv.json +17 -0
  30. package/app/javascript/src/translations/th.json +17 -0
  31. package/app/javascript/src/translations/tr.json +17 -0
  32. package/app/javascript/src/translations/uk.json +17 -0
  33. package/app/javascript/src/translations/vi.json +17 -0
  34. package/app/javascript/src/translations/zh-CN.json +17 -0
  35. package/app/javascript/src/translations/zh-TW.json +17 -0
  36. package/dist/NeetoEmailNotificationForm.js +91 -51
  37. package/dist/NeetoEmailNotificationForm.js.map +1 -1
  38. package/dist/cjs/NeetoEmailNotificationForm.js +90 -50
  39. package/dist/cjs/NeetoEmailNotificationForm.js.map +1 -1
  40. package/dist/cjs/index.js +1 -0
  41. package/dist/cjs/index.js.map +1 -1
  42. package/dist/index.js +1 -0
  43. package/dist/index.js.map +1 -1
  44. package/package.json +16 -15
  45. package/types.d.ts +18 -15
package/README.md CHANGED
@@ -73,8 +73,12 @@ bundle exec rails db:migrate
73
73
  Add the engine's routes to your application's `config/routes.rb`:
74
74
  ```ruby
75
75
  # config/routes.rb
76
- mount NeetoEmailNotificationsEngine::Engine, at: "/neeto_email_notifications" # Or your preferred mount point
76
+ mount NeetoEmailNotificationsEngine::Engine, at: "/neeto_email_notifications"
77
77
  ```
78
+ **NOTE: The mount point & base URL must be `/neeto_email_notifications` and cannot be changed to any other path.**
79
+ > **Note:** The engine uses the [`liquid`](https://github.com/Shopify/liquid)
80
+ > gem for template rendering. This will be installed automatically as a
81
+ > dependency.
78
82
 
79
83
  ## Configuration (Backend Engine)
80
84
 
@@ -231,6 +235,34 @@ The engine creates a table `neeto_email_notifications_engine_email_notifications
231
235
  - `is_enabled`: Boolean flag to enable/disable notifications.
232
236
  - `custom_fields`: JSONB column for additional metadata.
233
237
  - `reply_to_id`: Optional reference for reply-to configuration.
238
+ - `type`: String column for Single Table Inheritance (STI) support.
239
+
240
+ #### Default Attributes Class Method
241
+
242
+ **Important:** Host applications must define the `default_attributes` class method in their custom notification models that inherit from `NeetoEmailNotificationsEngine::EmailNotification`. This method is required and will receive the `notification_holder` as a parameter. This method should return a hash with the default attributes for the email notification.
243
+
244
+ Variables in the subject and message must always be wrapped like this:
245
+ ```html
246
+ <span data-variable data-label="label" data-id="key">{{key}}</span>
247
+ ```
248
+
249
+ **Example Implementation**
250
+
251
+ ```ruby
252
+ def self.default_attributes(quiz)
253
+ {
254
+ send_from: Rails.application.secrets.mailer[:default_from_email],
255
+ notify_emails: [quiz.user.email],
256
+ is_enabled: true,
257
+ subject: "A new submission has arrived for {{quiz-name}}",
258
+ message: <<~HTML.squish
259
+ <b><span data-variable data-label="Quiz name" data-id="quiz-name">{{quiz-name}}</span></b>
260
+ has a new submission.<br/><br/>
261
+ <span data-variable data-label="All answers" data-id="all-answers">{{all-answers}}</span>
262
+ HTML
263
+ }
264
+ end
265
+ ```
234
266
 
235
267
  ## Frontend Integration
236
268
 
@@ -256,21 +288,39 @@ yarn add @babel/runtime@^7.26.10 @bigbinary/neeto-cist@^1.0.17 @bigbinary/neeto-
256
288
 
257
289
  **Props**
258
290
 
259
- | Prop | Type | Default | Description |
260
- |------|------|---------|-------------|
261
- | `emailNotificationParams` | Object | `{}` | **Required.** Parameters for fetching email notification data |
262
- | `title` | String | `"Email notification"` | Title displayed above the notification toggle |
263
- | `subTitle` | String | `"Send an email notification when a new event occurred"` | Subtitle text below the title |
264
- | `disabled` | Boolean | `false` | Disables the entire component |
265
- | `onSuccess` | Function | `noop` | Callback function triggered after successful notification update |
266
- | `breadcrumbs` | Array | `[]` | Breadcrumb navigation data |
267
- | `children` | ReactNode | `undefined` | Additional content rendered when notifications are enabled |
268
- | `blockNavigation` | Boolean | `false` | Shows block navigation alert for unsaved changes |
269
- | `helpPopoverProps` | Object | `{}` | Props for the help popover component |
270
- | `tooltipProps` | Object | `{}` | Props for tooltip shown when component is disabled |
271
- | `emailFormProps` | Object | `{}` | Props passed to the underlying EmailForm component |
272
- | `emailFormikProps` | Object | `{}` | Props passed to the EmailFormProvider component |
273
- | `emailPreviewProps` | Object | `{}` | Props passed to the EmailPreview component |
291
+ | Prop | Type | Default | Description |
292
+ | ------------------------- | --------- | -------------------------------------------------------- | ---------------------------------------------------------------- |
293
+ | `emailNotificationParams` | Object | `{}` | **Required.** Parameters for fetching email notification data |
294
+ | `title` | String | `"Email notification"` | Title displayed above the notification toggle |
295
+ | `notificationToggleLabel` | String | `"Send an email notification when a new event occurred"` | The label displayed beside the notification toggle switch |
296
+ | `disabled` | Boolean | `false` | Disables the entire component |
297
+ | `onSuccess` | Function | `noop` | Callback function triggered after successful notification update |
298
+ | `breadcrumbs` | Array | `[]` | Breadcrumb navigation data |
299
+ | `children` | ReactNode | `undefined` | Additional content rendered when notifications are enabled |
300
+ | `blockNavigation` | Boolean | `false` | Shows block navigation alert for unsaved changes |
301
+ | `helpPopoverProps` | Object | `{}` | Props for the help popover component |
302
+ | `tooltipProps` | Object | `{}` | Props for tooltip shown when component is disabled |
303
+ | `emailFormProps` | Object | `{}` | Props passed to the underlying EmailForm component |
304
+ | `emailFormikProps` | Object | `{}` | Props passed to the EmailFormProvider component |
305
+ | `emailPreviewProps` | Object | `{}` | Props passed to the EmailPreview component |
306
+ | `fieldsVisibility` | Object | `{}` | Controls which fields are visible in the email form |
307
+
308
+ #### FieldsVisibility
309
+
310
+ Default visibility for each field is as follows:
311
+
312
+ ```js
313
+ {
314
+ showSendToField: true,
315
+ showReplyToField: false,
316
+ showSendToAsRadio: false,
317
+ showCcField: false,
318
+ showBccField: false,
319
+ }
320
+ ```
321
+
322
+ You can override any of these by passing a `fieldsVisibility` prop with your
323
+ desired values.
274
324
 
275
325
  **emailNotificationParams Object Structure**
276
326
  ```javascript
@@ -296,14 +346,14 @@ const FormSettingsPage = ({ formId }) => {
296
346
  return (
297
347
  <NeetoEmailNotificationForm
298
348
  title="Form Submission Notification"
299
- subTitle="Get notified when someone submits your form"
349
+ notificationToggleLabel="Get notified when someone submits your form"
300
350
  emailNotificationParams={{
301
351
  notificationHolderId: formId,
302
352
  notificationHolderType: "Form",
303
353
  customFields: { notificationType: "submission" }
304
354
  }}
305
355
  emailPreviewProps={{
306
- productName: "NeetoForm"
356
+ formatBody: message => replaceVariablesWithDummyValues(message, values),
307
357
  }}
308
358
  breadcrumbs={[
309
359
  { text: "Forms", link: "/forms" },
@@ -405,6 +455,27 @@ class Meeting < ApplicationRecord
405
455
  end
406
456
  ```
407
457
 
458
+ ### Seeding Default Email Notification Content
459
+ It is recommended to automatically create a default email notification record for each instance of your model. This ensures the notification UI and API always have a record to fetch and update, preventing errors and missing functionality. You can use an `after_create` callback in your model to seed this record.
460
+
461
+ ##### Example:
462
+
463
+ ```ruby
464
+ class Quiz < ApplicationRecord
465
+ has_many :email_notifications, as: :notification_holder,
466
+ class_name: "NeetoEmailNotificationsEngine::EmailNotification", dependent: :destroy
467
+ has_one :push_email_notification, as: :notification_holder
468
+
469
+ after_create :create_default_email_notification
470
+
471
+ private
472
+
473
+ def create_default_email_notification
474
+ self.create_push_email_notification!(PushEmailNotification.default_attributes(self))
475
+ end
476
+ end
477
+ ```
478
+
408
479
  ### Using the Email Notification Service
409
480
  Create service classes that include the email notification functionality:
410
481
 
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "مرحبًا بك في نيتو ويل نانو",
4
+ "errors": {
5
+ "invalidEmailAddress": "يرجى إدخال عنوان بريد إلكتروني صالح",
6
+ "sendFromRequired": "'البريد الإلكتروني المرسل من' مطلوب",
7
+ "sendToRequired": "'البريد الإلكتروني المرسل إلى' مطلوب",
8
+ "subjectRequired": "الموضوع مطلوب",
9
+ "messageRequired": "الرسالة مطلوبة"
10
+ },
11
+ "emailNotification": {
12
+ "title": "إشعار البريد الإلكتروني",
13
+ "notificationToggleLabel": "إرسال إشعار عبر البريد الإلكتروني عند حدوث حدث جديد"
14
+ },
15
+ "preview": "معاينة"
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Добре дошли в neeto wheel nano",
4
+ "errors": {
5
+ "invalidEmailAddress": "Моля, въведете валиден имейл адрес",
6
+ "sendFromRequired": "'Изпратено от' имейл адрес е задължителен",
7
+ "sendToRequired": "'Изпратено до' имейл адрес е задължителен",
8
+ "subjectRequired": "Темата е задължителна",
9
+ "messageRequired": "Съобщението е задължително"
10
+ },
11
+ "emailNotification": {
12
+ "title": "Имейл известие",
13
+ "notificationToggleLabel": "Изпратете имейл известие, когато се случи ново събитие"
14
+ },
15
+ "preview": "Преглед"
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Benvingut a neeto wheel nano",
4
+ "errors": {
5
+ "invalidEmailAddress": "Si us plau, introduceix una adreça de correu electrònic vàlida",
6
+ "sendFromRequired": "L'adreça de correu electrònic 'Enviar des de' és requerida",
7
+ "sendToRequired": "L'adreça de correu electrònic 'Enviar a' és requerida",
8
+ "subjectRequired": "El tema és requerit",
9
+ "messageRequired": "El missatge és requerit"
10
+ },
11
+ "emailNotification": {
12
+ "title": "Notificació per correu electrònic",
13
+ "notificationToggleLabel": "Enviar una notificació per correu electrònic quan es produeixi un nou esdeveniment"
14
+ },
15
+ "preview": "Previsualització"
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Vítejte v neeto wheel nano",
4
+ "errors": {
5
+ "invalidEmailAddress": "Zadejte platnou e-mailovou adresu",
6
+ "sendFromRequired": "E-mailová adresa 'Odesílatel' je povinná",
7
+ "sendToRequired": "E-mailová adresa 'Příjemce' je povinná",
8
+ "subjectRequired": "Předmět je povinný",
9
+ "messageRequired": "Zpráva je povinná"
10
+ },
11
+ "emailNotification": {
12
+ "title": "E-mailová notifikace",
13
+ "notificationToggleLabel": "Odeslat e-mailovou notifikaci, když dojde k nové události"
14
+ },
15
+ "preview": "Náhled"
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Velkommen til neeto wheel nano",
4
+ "errors": {
5
+ "invalidEmailAddress": "Indtast venligst en gyldig e-mailadresse",
6
+ "sendFromRequired": "'Send fra' e-mailadresse er påkrævet",
7
+ "sendToRequired": "'Send til' e-mailadresse er påkrævet",
8
+ "subjectRequired": "Emne er påkrævet",
9
+ "messageRequired": "Besked er påkrævet"
10
+ },
11
+ "emailNotification": {
12
+ "title": "E-mailnotifikation",
13
+ "notificationToggleLabel": "Send en e-mailnotifikation, når der opstår en ny begivenhed"
14
+ },
15
+ "preview": "Forhåndsvisning"
16
+ }
17
+ }
@@ -10,8 +10,8 @@
10
10
  },
11
11
  "emailNotification": {
12
12
  "title": "E-Mail-Benachrichtigung",
13
- "subTitle": "Senden Sie eine E-Mail-Benachrichtigung, wenn ein neues Ereignis auftritt"
13
+ "notificationToggleLabel": "Eine E-Mail-Benachrichtigung senden, wenn ein neues Ereignis aufgetreten ist"
14
14
  },
15
15
  "preview": "Vorschau"
16
16
  }
17
- }
17
+ }
@@ -10,7 +10,7 @@
10
10
  },
11
11
  "emailNotification": {
12
12
  "title": "Email notification",
13
- "subTitle": "Send an email notification when a new event occurred"
13
+ "notificationToggleLabel": "Send an email notification when a new event occurred"
14
14
  },
15
15
  "preview": "Preview"
16
16
  }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Bienvenido a neeto wheel nano",
4
+ "errors": {
5
+ "invalidEmailAddress": "Por favor, introduce una dirección de correo electrónico válida",
6
+ "sendFromRequired": "Se requiere una dirección de correo electrónico 'De'",
7
+ "sendToRequired": "Se requiere una dirección de correo electrónico 'Para'",
8
+ "subjectRequired": "Se requiere el asunto",
9
+ "messageRequired": "Se requiere el mensaje"
10
+ },
11
+ "emailNotification": {
12
+ "title": "Notificación por correo electrónico",
13
+ "notificationToggleLabel": "Enviar una notificación por correo electrónico cuando ocurra un nuevo evento"
14
+ },
15
+ "preview": "Vista previa"
16
+ }
17
+ }
@@ -10,8 +10,8 @@
10
10
  },
11
11
  "emailNotification": {
12
12
  "title": "Notificación por correo electrónico",
13
- "subTitle": "Envía una notificación por correo electrónico cuando ocurra un nuevo evento"
13
+ "notificationToggleLabel": "Enviar una notificación por correo electrónico cuando ocurra un nuevo evento"
14
14
  },
15
15
  "preview": "Vista previa"
16
16
  }
17
- }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Tere tulemast neeto wheel nano",
4
+ "errors": {
5
+ "invalidEmailAddress": "Palun sisestage kehtiv e-posti aadress",
6
+ "sendFromRequired": "'Saatja' e-posti aadress on kohustuslik",
7
+ "sendToRequired": "'Saaja' e-posti aadress on kohustuslik",
8
+ "subjectRequired": "Pealkiri on kohustuslik",
9
+ "messageRequired": "Sõnum on kohustuslik"
10
+ },
11
+ "emailNotification": {
12
+ "title": "E-posti teade",
13
+ "notificationToggleLabel": "Saada e-posti teade, kui uus sündmus toimub"
14
+ },
15
+ "preview": "Eelvaade"
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Tervetuloa neeto wheel nanoon",
4
+ "errors": {
5
+ "invalidEmailAddress": "Anna voimassa oleva sähköpostiosoite",
6
+ "sendFromRequired": "'Lähettäjä' sähköpostiosoite on pakollinen",
7
+ "sendToRequired": "'Vastaanottaja' sähköpostiosoite on pakollinen",
8
+ "subjectRequired": "Aihe on pakollinen",
9
+ "messageRequired": "Viesti on pakollinen"
10
+ },
11
+ "emailNotification": {
12
+ "title": "Sähköpostilähetys",
13
+ "notificationToggleLabel": "Lähetä sähköpostilähetys, kun uusi tapahtuma tapahtuu"
14
+ },
15
+ "preview": "Esikatselu"
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Maligayang pagdating sa neeto wheel nano",
4
+ "errors": {
5
+ "invalidEmailAddress": "Mangyaring maglagay ng wastong email address",
6
+ "sendFromRequired": "Kailangan ang 'Send from' email address",
7
+ "sendToRequired": "Kailangan ang 'Send to' email address",
8
+ "subjectRequired": "Kailangan ang paksa",
9
+ "messageRequired": "Kailangan ang mensahe"
10
+ },
11
+ "emailNotification": {
12
+ "title": "Abiso sa email",
13
+ "notificationToggleLabel": "Magpadala ng abiso sa email kapag may bagong kaganapan"
14
+ },
15
+ "preview": "Tingnan"
16
+ }
17
+ }
@@ -10,8 +10,8 @@
10
10
  },
11
11
  "emailNotification": {
12
12
  "title": "Notification par e-mail",
13
- "subTitle": "Envoyer une notification par e-mail lorsqu'un nouvel événement se produit"
13
+ "notificationToggleLabel": "Envoyer une notification par e-mail lorsqu'un nouvel événement se produit"
14
14
  },
15
15
  "preview": "Aperçu"
16
16
  }
17
- }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "नीटो व्हील नैनो में आपका स्वागत है",
4
+ "errors": {
5
+ "invalidEmailAddress": "कृपया एक मान्य ईमेल पता दर्ज करें",
6
+ "sendFromRequired": "'भेजने वाले' ईमेल पते की आवश्यकता है",
7
+ "sendToRequired": "'प्राप्तकर्ता' ईमेल पते की आवश्यकता है",
8
+ "subjectRequired": "विषय की आवश्यकता है",
9
+ "messageRequired": "संदेश की आवश्यकता है"
10
+ },
11
+ "emailNotification": {
12
+ "title": "ईमेल सूचना",
13
+ "notificationToggleLabel": "जब एक नया घटना होती है तो एक ईमेल सूचना भेजें"
14
+ },
15
+ "preview": "पूर्वावलोकन"
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Dobrodošli u neeto wheel nano",
4
+ "errors": {
5
+ "invalidEmailAddress": "Molimo unesite važeću email adresu",
6
+ "sendFromRequired": "Adresu email 'Pošaljitelja' je potrebno unijeti",
7
+ "sendToRequired": "Adresu email 'Primatelja' je potrebno unijeti",
8
+ "subjectRequired": "Predmet je obavezan",
9
+ "messageRequired": "Poruka je obavezna"
10
+ },
11
+ "emailNotification": {
12
+ "title": "Email obavijest",
13
+ "notificationToggleLabel": "Pošalji email obavijest kada se dogodi novi događaj"
14
+ },
15
+ "preview": "Pregled"
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Selamat datang di neeto wheel nano",
4
+ "errors": {
5
+ "invalidEmailAddress": "Silakan masukkan alamat email yang valid",
6
+ "sendFromRequired": "Alamat email 'Kirim dari' diperlukan",
7
+ "sendToRequired": "Alamat email 'Kirim ke' diperlukan",
8
+ "subjectRequired": "Subjek diperlukan",
9
+ "messageRequired": "Pesan diperlukan"
10
+ },
11
+ "emailNotification": {
12
+ "title": "Notifikasi email",
13
+ "notificationToggleLabel": "Kirim notifikasi email ketika terjadi acara baru"
14
+ },
15
+ "preview": "Prabaca"
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Benvenuto in neeto wheel nano",
4
+ "errors": {
5
+ "invalidEmailAddress": "Si prega di inserire un indirizzo email valido",
6
+ "sendFromRequired": "L'indirizzo email 'Inviato da' è obbligatorio",
7
+ "sendToRequired": "L'indirizzo email 'Inviato a' è obbligatorio",
8
+ "subjectRequired": "Il soggetto è obbligatorio",
9
+ "messageRequired": "Il messaggio è obbligatorio"
10
+ },
11
+ "emailNotification": {
12
+ "title": "Notifica email",
13
+ "notificationToggleLabel": "Invia una notifica email quando si verifica un nuovo evento"
14
+ },
15
+ "preview": "Anteprima"
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "neeto wheel nanoへようこそ",
4
+ "errors": {
5
+ "invalidEmailAddress": "有効なメールアドレスを入力してください",
6
+ "sendFromRequired": "'送信元'メールアドレスは必須です",
7
+ "sendToRequired": "'送信先'メールアドレスは必須です",
8
+ "subjectRequired": "件名は必須です",
9
+ "messageRequired": "メッセージは必須です"
10
+ },
11
+ "emailNotification": {
12
+ "title": "メール通知",
13
+ "notificationToggleLabel": "新しいイベントが発生したときにメール通知を送信する"
14
+ },
15
+ "preview": "プレビュー"
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "neeto wheel nano에 오신 것을 환영합니다",
4
+ "errors": {
5
+ "invalidEmailAddress": "유효한 이메일 주소를 입력하십시오",
6
+ "sendFromRequired": "'보내는 사람' 이메일 주소는 필수입니다",
7
+ "sendToRequired": "'받는 사람' 이메일 주소는 필수입니다",
8
+ "subjectRequired": "제목은 필수입니다",
9
+ "messageRequired": "메시지는 필수입니다"
10
+ },
11
+ "emailNotification": {
12
+ "title": "이메일 알림",
13
+ "notificationToggleLabel": "새 이벤트가 발생할 때 이메일 알림 보내기"
14
+ },
15
+ "preview": "미리보기"
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Welkom bij neeto wheel nano",
4
+ "errors": {
5
+ "invalidEmailAddress": "Voer een geldig e-mailadres in",
6
+ "sendFromRequired": "'Verstuur van'-e-mailadres is vereist",
7
+ "sendToRequired": "'Verstuur naar'-e-mailadres is vereist",
8
+ "subjectRequired": "Onderwerp is vereist",
9
+ "messageRequired": "Bericht is vereist"
10
+ },
11
+ "emailNotification": {
12
+ "title": "E-mailmelding",
13
+ "notificationToggleLabel": "Stuur een e-mailmelding wanneer er een nieuwe gebeurtenis plaatsvond"
14
+ },
15
+ "preview": "Voorbeeld"
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Witamy w neeto wheel nano",
4
+ "errors": {
5
+ "invalidEmailAddress": "Proszę wpisać prawidłowy adres e-mail",
6
+ "sendFromRequired": "Adres e-mail 'Wyślij z' jest wymagany",
7
+ "sendToRequired": "Adres e-mail 'Wyślij do' jest wymagany",
8
+ "subjectRequired": "Temat jest wymagany",
9
+ "messageRequired": "Wiadomość jest wymagana"
10
+ },
11
+ "emailNotification": {
12
+ "title": "Powiadomienie e-mail",
13
+ "notificationToggleLabel": "Wyślij powiadomienie e-mail, gdy wystąpi nowe zdarzenie"
14
+ },
15
+ "preview": "Podgląd"
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Bem-vindo ao neeto wheel nano",
4
+ "errors": {
5
+ "invalidEmailAddress": "Por favor, insira um endereço de e-mail válido",
6
+ "sendFromRequired": "O endereço de e-mail 'De' é obrigatório",
7
+ "sendToRequired": "O endereço de e-mail 'Para' é obrigatório",
8
+ "subjectRequired": "O assunto é obrigatório",
9
+ "messageRequired": "A mensagem é obrigatória"
10
+ },
11
+ "emailNotification": {
12
+ "title": "Notificação por e-mail",
13
+ "notificationToggleLabel": "Envie uma notificação por e-mail quando um novo evento ocorrer"
14
+ },
15
+ "preview": "Pré-visualização"
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Bem-vindo ao neeto wheel nano",
4
+ "errors": {
5
+ "invalidEmailAddress": "Por favor, insira um endereço de e-mail válido",
6
+ "sendFromRequired": "O endereço de e-mail 'Enviar de' é obrigatório",
7
+ "sendToRequired": "O endereço de e-mail 'Enviar para' é obrigatório",
8
+ "subjectRequired": "O assunto é obrigatório",
9
+ "messageRequired": "A mensagem é obrigatória"
10
+ },
11
+ "emailNotification": {
12
+ "title": "Notificação por e-mail",
13
+ "notificationToggleLabel": "Enviar uma notificação por e-mail quando um novo evento ocorrer"
14
+ },
15
+ "preview": "Pré-visualização"
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Bine ați venit la neeto wheel nano",
4
+ "errors": {
5
+ "invalidEmailAddress": "Vă rugăm să introduceți o adresă de email validă",
6
+ "sendFromRequired": "Adresa de email 'Trimite de la' este obligatorie",
7
+ "sendToRequired": "Adresa de email 'Trimite către' este obligatorie",
8
+ "subjectRequired": "Subiectul este obligatoriu",
9
+ "messageRequired": "Mesajul este obligatoriu"
10
+ },
11
+ "emailNotification": {
12
+ "title": "Notificare prin email",
13
+ "notificationToggleLabel": "Trimite o notificare prin email când are loc un nou eveniment"
14
+ },
15
+ "preview": "Previzualizare"
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Добро пожаловать в neeto wheel nano",
4
+ "errors": {
5
+ "invalidEmailAddress": "Пожалуйста, введите действительный адрес электронной почты",
6
+ "sendFromRequired": "Адрес электронной почты 'От' обязателен",
7
+ "sendToRequired": "Адрес электронной почты 'Кому' обязателен",
8
+ "subjectRequired": "Тема обязательна",
9
+ "messageRequired": "Сообщение обязательно"
10
+ },
11
+ "emailNotification": {
12
+ "title": "Уведомление по электронной почте",
13
+ "notificationToggleLabel": "Отправить уведомление по электронной почте, когда произойдет новое событие"
14
+ },
15
+ "preview": "Предварительный просмотр"
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Vitajte v neeto wheel nano",
4
+ "errors": {
5
+ "invalidEmailAddress": "Zadajte platnú e-mailovú adresu",
6
+ "sendFromRequired": "E-mailová adresa 'Odoslať z' je povinná",
7
+ "sendToRequired": "E-mailová adresa 'Odoslať na' je povinná",
8
+ "subjectRequired": "Predmet je povinný",
9
+ "messageRequired": "Správa je povinná"
10
+ },
11
+ "emailNotification": {
12
+ "title": "E-mailové oznámenie",
13
+ "notificationToggleLabel": "Poslať e-mailové oznámenie, keď dôjde k novej udalosti"
14
+ },
15
+ "preview": "Náhľad"
16
+ }
17
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "neetoEmailNotifications": {
3
+ "welcomeScreen": "Dobrodošli v neeto wheel nano",
4
+ "errors": {
5
+ "invalidEmailAddress": "Prosim, vnesite veljavne e-poštni naslov",
6
+ "sendFromRequired": "'Pošlji iz' e-poštni naslov je obvezen",
7
+ "sendToRequired": "'Pošlji na' e-poštni naslov je obvezen",
8
+ "subjectRequired": "Zadeva je obvezna",
9
+ "messageRequired": "Sporočilo je obvezno"
10
+ },
11
+ "emailNotification": {
12
+ "title": "E-poštno obvestilo",
13
+ "notificationToggleLabel": "Pošlji e-poštno obvestilo, ko se zgodi nova dogodka"
14
+ },
15
+ "preview": "Predogled"
16
+ }
17
+ }