@rapidd/core 2.1.0

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 (59) hide show
  1. package/.dockerignore +71 -0
  2. package/.env.example +70 -0
  3. package/.gitignore +11 -0
  4. package/LICENSE +15 -0
  5. package/README.md +231 -0
  6. package/bin/cli.js +145 -0
  7. package/config/app.json +166 -0
  8. package/config/rate-limit.json +12 -0
  9. package/dist/main.js +26 -0
  10. package/dockerfile +57 -0
  11. package/locales/ar_SA.json +179 -0
  12. package/locales/de_DE.json +179 -0
  13. package/locales/en_US.json +180 -0
  14. package/locales/es_ES.json +179 -0
  15. package/locales/fr_FR.json +179 -0
  16. package/locales/it_IT.json +179 -0
  17. package/locales/ja_JP.json +179 -0
  18. package/locales/pt_BR.json +179 -0
  19. package/locales/ru_RU.json +179 -0
  20. package/locales/tr_TR.json +179 -0
  21. package/main.ts +25 -0
  22. package/package.json +126 -0
  23. package/prisma/schema.prisma +9 -0
  24. package/prisma.config.ts +12 -0
  25. package/public/static/favicon.ico +0 -0
  26. package/public/static/image/logo.png +0 -0
  27. package/routes/api/v1/index.ts +113 -0
  28. package/src/app.ts +197 -0
  29. package/src/auth/Auth.ts +446 -0
  30. package/src/auth/stores/ISessionStore.ts +19 -0
  31. package/src/auth/stores/MemoryStore.ts +70 -0
  32. package/src/auth/stores/RedisStore.ts +92 -0
  33. package/src/auth/stores/index.ts +149 -0
  34. package/src/config/acl.ts +9 -0
  35. package/src/config/rls.ts +38 -0
  36. package/src/core/dmmf.ts +226 -0
  37. package/src/core/env.ts +183 -0
  38. package/src/core/errors.ts +87 -0
  39. package/src/core/i18n.ts +144 -0
  40. package/src/core/middleware.ts +123 -0
  41. package/src/core/prisma.ts +236 -0
  42. package/src/index.ts +112 -0
  43. package/src/middleware/model.ts +61 -0
  44. package/src/orm/Model.ts +881 -0
  45. package/src/orm/QueryBuilder.ts +2078 -0
  46. package/src/plugins/auth.ts +162 -0
  47. package/src/plugins/language.ts +79 -0
  48. package/src/plugins/rateLimit.ts +210 -0
  49. package/src/plugins/response.ts +80 -0
  50. package/src/plugins/rls.ts +51 -0
  51. package/src/plugins/security.ts +23 -0
  52. package/src/plugins/upload.ts +299 -0
  53. package/src/types.ts +308 -0
  54. package/src/utils/ApiClient.ts +526 -0
  55. package/src/utils/Mailer.ts +348 -0
  56. package/src/utils/index.ts +25 -0
  57. package/templates/email/example.ejs +17 -0
  58. package/templates/layouts/email.ejs +35 -0
  59. package/tsconfig.json +33 -0
@@ -0,0 +1,179 @@
1
+ {
2
+ "save": "Salva",
3
+ "edit": "Modifica",
4
+ "cancel": "Annulla",
5
+ "close": "Chiudi",
6
+ "done": "Fatto",
7
+ "yes": "Sì",
8
+ "no": "No",
9
+ "next": "Avanti",
10
+ "error": "Errore",
11
+ "download": "Scarica",
12
+ "submit": "Invia",
13
+ "clear": "Cancella",
14
+ "searchClear": "Cancella ricerca",
15
+ "search": "Cerca",
16
+ "actions": "Azioni",
17
+ "signIn": "Accedi",
18
+ "signUp": "Registrati",
19
+ "signOut": "Esci",
20
+ "Remove": "Rimuovi",
21
+ "removeUser": "Rimuovi utente",
22
+ "sortBy": "Ordina per",
23
+ "name": "Nome",
24
+ "firstName": "Nome",
25
+ "lastName": "Cognome",
26
+ "email": "Email",
27
+ "password": "Password",
28
+ "passwordRepeat": "Ripeti password",
29
+ "account": "Account",
30
+ "role": "Ruolo",
31
+ "status": "Stato",
32
+ "reason": "Motivo",
33
+ "lastUpdateDate": "Ultimo aggiornamento",
34
+ "sortByFieldAscending": "{field} crescente",
35
+ "sortByFieldDescending": "{field} decrescente",
36
+ "couldNotLoadDataMsg": "Impossibile caricare i dati: stato \"{data}\"",
37
+ "FAQ": "FAQ",
38
+ "frequentlyAskedQuestions": "Domande frequenti",
39
+ "settings": "Impostazioni",
40
+ "eventsRewards": "Eventi e ricompense",
41
+ "hostname": "Nome host",
42
+ "version": "Versione",
43
+ "profile": "Profilo",
44
+ "security": "Sicurezza e accesso",
45
+ "changePassword": "Cambia password",
46
+ "securitySettings": "Impostazioni di sicurezza",
47
+ "requestData": "Richiedi dati",
48
+ "deleteProfile": "Elimina account",
49
+ "username": "Nome utente",
50
+ "loginMethod": "Metodo di accesso",
51
+ "delete": "Elimina",
52
+ "currentPassword": "Password attuale",
53
+ "newPassword": "Nuova password",
54
+ "signUp_haveAnAccount": "Hai già un account?",
55
+ "slots_not_available": "Nessun orario disponibile",
56
+ "footer_contact_us": "Contattaci",
57
+ "footer_contact_us_url": "url",
58
+ "privacy_policy": "Informativa sulla privacy",
59
+ "footer_legal_notice_url": "url",
60
+ "footer_company_details": "Informazioni legali",
61
+ "footer_company_details_url": "url",
62
+ "under_construction_notice": "Questo sito è attualmente in costruzione",
63
+ "signInFailStackLocked_message": "Il tuo account è stato bloccato dopo 5 tentativi falliti. Reimposta la tua password!",
64
+ "signOut_message": "Disconnessione avvenuta con successo",
65
+ "signOutForce_message": "Sei stato disconnesso",
66
+ "signOutNotLatest_message": "Sei stato disconnesso perché è stata rilevata una sessione più recente.",
67
+ "code_of_conduct": "Codice di condotta",
68
+ "student": "Studente",
69
+ "teacher": "Insegnante",
70
+ "emailVerified": "Email verificata",
71
+ "emailAlreadyVerified": "Email già verificata",
72
+ "redirectNotice": "Verrai reindirizzato tra 5 secondi oppure <a href=\"{uri}\">clicca qui</a>",
73
+ "mailNotShowingProperly": "L'email non viene visualizzata correttamente?",
74
+ "viewInBrowser": "Visualizza nel browser",
75
+ "welcomeMail": "Benvenuto in rapidd",
76
+ "resetPassordMail": "Reimposta la tua password rapidd",
77
+ "appointmentScheduled": "Appuntamento programmato",
78
+ "appointmentChanged": "Appuntamento modificato",
79
+ "appointmentCancelled": "Appuntamento annullato",
80
+ "appointmentRejected": "Appuntamento rifiutato",
81
+ "salutationMail": "Ciao {first_name},",
82
+ "briefWelcomeTextMail": "è stato creato un account per te sulla piattaforma rapidd. Conferma il tuo indirizzo email cliccando su <b>{{confirmMail}}</b>.",
83
+ "yourUsername": "Il tuo nome utente è <b>{username}</b>",
84
+ "yourPassword": "La tua password iniziale<span style=\"display: inline-block;margin: 0 .8em;padding: .4em .8em;border: 3px dashed #fecb5a;border-radius: .8em;\"><b>{password}</b></span>",
85
+ "changePasswordAfterLogin": "Ti chiediamo di cambiare la password dopo il primo accesso.",
86
+ "passwordResetTextMail": "hai richiesto di reimpostare la password del tuo account rapidd. Clicca su <b>{{confirmResetPassword}}</b> per reimpostarla. Ignora questo messaggio se non hai fatto questa richiesta.",
87
+ "studentAppointmentTextMail": "è stato programmato un appuntamento per la materia <b>{subject}</b>.<br><br>{{studentAppointmentInfoMail}}<br><br>{{studentAppointmentRejectInfoMail}}<br><br>",
88
+ "studentAppointmentUpdateTextMail": "il tuo appuntamento per la materia <b>{subject}</b> è stato aggiornato.<br><br>{{studentAppointmentInfoMail}}<br><br>{{studentAppointmentRejectInfoMail}}<br><br>",
89
+ "studentAppointmentCancelledTextMail": "il tuo appuntamento per la materia <b>{subject}</b> è stato annullato.<br><br>{{studentAppointmentInfoMail}}<br><br>",
90
+ "studentAppointmentInfoMail": "{{teacher}}: <b>{teacher}</b><br>Data: <b>{date}</b><br>Ora: <b>{time}</b><br>Durata: <b>{duration}</b><br>Luogo / link online: <b>{location_url}</b>",
91
+ "studentAppointmentRejectInfoMail": "<i>Puoi annullare l'appuntamento fino a 24 ore prima.</i>",
92
+ "teacherAppointmentCancelledTextMail": "il tuo appuntamento per la materia <b>{subject}</b> è stato annullato.<br><br>{{teacherAppointmentInfoMail}}<br><br>",
93
+ "teacherAppointmentRejectedTextMail": "il tuo studente {{student}} ha rifiutato l'appuntamento per la materia <b>{subject}</b>.<br><br>{{teacherAppointmentInfoMail}}<br><br>",
94
+ "teacherAppointmentInfoMail": "{{student}}: <b>{student}</b><br>Data: <b>{date}</b><br>Ora: <b>{time}</b><br>Durata: <b>{duration}</b><br>Luogo / link online: <b>{location_url}</b>",
95
+ "confirmMail": "Conferma email",
96
+ "confirmResetPassword": "Reimposta password",
97
+ "viewAppointment": "Visualizza appuntamento",
98
+ "footerText": "Il nostro obiettivo è aiutare tutti a raggiungere il proprio potenziale.",
99
+ "footerCopyright": "© {year}, rapidd GmbH. Tutti i diritti riservati.",
100
+ "insufficient_permissions": "Permessi insufficienti",
101
+ "rate_limit_exceeded": "Limite di richieste superato",
102
+ "record_not_found": "Record non trovato",
103
+ "no_permission": "Nessun permesso",
104
+ "invalid_sort_field": "Il parametro sortBy '{sortBy}' non è un campo valido di {modelName}",
105
+ "invalid_filter_field": "Campo filtro non valido: {field}",
106
+ "relation_not_exist": "La relazione '{relation}' non esiste in {modelName}",
107
+ "between_requires_two_values": "L'operatore between richiede due valori separati da punto e virgola",
108
+ "invalid_date_range": "Data non valida nell'intervallo: {start} o {end}",
109
+ "invalid_date_format": "Formato data non valido nel filtro: {value}. Errore: {error}",
110
+ "invalid_limit": "Limite non valido",
111
+ "sortby_must_be_string": "sortBy deve essere una stringa. '{type}' fornito",
112
+ "sortorder_invalid": "sortOrder può essere solo 'asc' o 'desc'. '{value}' fornito",
113
+ "unexpected_key": "La chiave '{key}' non è prevista",
114
+ "string_expected": "Stringa prevista, {type} fornito",
115
+ "auth_credentials_missing": "Credenziali di autenticazione mancanti",
116
+ "account_suspended": "Il tuo account è stato sospeso",
117
+ "email_not_verified": "L'indirizzo email non è ancora stato verificato",
118
+ "auth_failed_invalid_credentials": "Autenticazione fallita: credenziali non valide",
119
+ "user_not_found": "Utente non trovato",
120
+ "no_active_session": "Nessuna sessione attiva",
121
+ "email_not_string": "'email' nel body non è di tipo 'string'. '{type}' fornito",
122
+ "password_change_failed": "Impossibile cambiare la password",
123
+ "token_invalid": "Il token non è valido",
124
+ "password_not_string": "password nel body non è di tipo 'string'. '{type}' fornito",
125
+ "token_not_string": "token nel body non è di tipo 'string'. '{type}' fornito",
126
+ "file_type_not_allowed": "Tipo di file {mimetype} non consentito",
127
+ "file_extension_not_allowed": "Estensione file {extension} non consentita per il tipo MIME {mimetype}",
128
+ "invalid_file_name": "Nome file non valido",
129
+ "file_size_exceeds_limit": "La dimensione del file supera il limite di {limit}MB",
130
+ "cors_blocked": "Bloccato dalla policy CORS: {origin}",
131
+ "activation_link_expired": "Link di attivazione scaduto",
132
+ "password_reset_email_sent": "Email di reimpostazione password inviata",
133
+ "password_changed_successfully": "La password è stata cambiata con successo",
134
+ "username_password_invalid": "Nome utente o password non validi",
135
+ "activation_mail_sent": "Email di attivazione inviata",
136
+ "session_terminated": "Il token di sessione è stato terminato",
137
+ "no_valid_session": "Nessuna sessione valida",
138
+ "object_deleted_successfully": "{modelName} eliminato con successo",
139
+ "auth_required": "Autenticazione richiesta",
140
+ "auth_required_message": "È necessario effettuare l'accesso per accedere a questa risorsa",
141
+ "forbidden": "Vietato",
142
+ "forbidden_role_message": "Questa risorsa richiede uno dei seguenti ruoli: {roles}",
143
+ "email_verification_required": "Verifica e-mail richiesta",
144
+ "email_verification_required_message": "Si prega di verificare il proprio indirizzo e-mail prima di accedere a questa risorsa",
145
+ "company_account_required": "Account aziendale richiesto",
146
+ "company_verification_required": "Verifica aziendale richiesta",
147
+ "company_verification_required_message": "La tua azienda deve essere verificata da un amministratore prima di accedere a questa risorsa",
148
+ "missing_required_fields": "Campi obbligatori mancanti",
149
+ "required_fields": "Campi obbligatori: {fields}",
150
+ "invalid_role": "Ruolo non valido",
151
+ "invalid_role_message": "Il ruolo deve essere STUDENT o COMPANY",
152
+ "email_already_registered": "E-mail già registrata",
153
+ "email_already_registered_message": "Esiste già un utente con questo indirizzo e-mail",
154
+ "registration_failed": "Registrazione fallita",
155
+ "invalid_credentials": "Credenziali non valide",
156
+ "invalid_credentials_message": "L'e-mail o la password non sono corrette",
157
+ "invalid_login_method": "Metodo di accesso non valido",
158
+ "invalid_login_method_message": "Si prega di accedere con {provider}",
159
+ "login_failed": "Accesso fallito",
160
+ "refresh_token_required": "Token di aggiornamento richiesto",
161
+ "invalid_refresh_token": "Token di aggiornamento non valido",
162
+ "session_expired_or_invalid": "Sessione scaduta o non valida",
163
+ "token_refresh_failed": "Aggiornamento token fallito",
164
+ "logged_out_successfully": "Disconnessione avvenuta con successo",
165
+ "logout_failed": "Disconnessione fallita",
166
+ "not_authenticated": "Non autenticato",
167
+ "missing_required_field": "Campo obbligatorio mancante",
168
+ "field_required": "{field} è obbligatorio",
169
+ "invalid_token": "Token {provider} non valido",
170
+ "invalid_token_message": "{message}",
171
+ "role_required_for_new_users": "Ruolo richiesto per nuovi utenti",
172
+ "role_required_for_new_users_message": "Si prega di specificare se sei STUDENT o COMPANY",
173
+ "google_auth_failed": "Autenticazione Google fallita",
174
+ "facebook_auth_failed": "Autenticazione Facebook fallita",
175
+ "token_missing_email": "Il token non contiene informazioni e-mail",
176
+ "oauth_config_missing": "L'ID applicazione e il segreto di {provider} devono essere configurati nelle variabili d'ambiente",
177
+ "token_app_mismatch": "Il token non appartiene a questa applicazione",
178
+ "oauth_email_permission_missing": "L'utente {provider} non ha concesso il permesso e-mail"
179
+ }
@@ -0,0 +1,179 @@
1
+ {
2
+ "save": "保存",
3
+ "edit": "編集",
4
+ "cancel": "キャンセル",
5
+ "close": "閉じる",
6
+ "done": "完了",
7
+ "yes": "はい",
8
+ "no": "いいえ",
9
+ "next": "次へ",
10
+ "error": "エラー",
11
+ "download": "ダウンロード",
12
+ "submit": "送信",
13
+ "clear": "クリア",
14
+ "searchClear": "検索をクリア",
15
+ "search": "検索",
16
+ "actions": "アクション",
17
+ "signIn": "ログイン",
18
+ "signUp": "登録",
19
+ "signOut": "ログアウト",
20
+ "Remove": "削除",
21
+ "removeUser": "ユーザーを削除",
22
+ "sortBy": "並び替え",
23
+ "name": "名前",
24
+ "firstName": "名",
25
+ "lastName": "姓",
26
+ "email": "メール",
27
+ "password": "パスワード",
28
+ "passwordRepeat": "パスワード再入力",
29
+ "account": "アカウント",
30
+ "role": "役割",
31
+ "status": "ステータス",
32
+ "reason": "理由",
33
+ "lastUpdateDate": "最終更新日",
34
+ "sortByFieldAscending": "{field} 昇順",
35
+ "sortByFieldDescending": "{field} 降順",
36
+ "couldNotLoadDataMsg": "データを読み込めませんでした:ステータス \"{data}\"",
37
+ "FAQ": "よくある質問",
38
+ "frequentlyAskedQuestions": "よくある質問",
39
+ "settings": "設定",
40
+ "eventsRewards": "イベントと報酬",
41
+ "hostname": "ホスト名",
42
+ "version": "バージョン",
43
+ "profile": "プロフィール",
44
+ "security": "セキュリティとアクセス",
45
+ "changePassword": "パスワード変更",
46
+ "securitySettings": "セキュリティ設定",
47
+ "requestData": "データをリクエスト",
48
+ "deleteProfile": "アカウント削除",
49
+ "username": "ユーザー名",
50
+ "loginMethod": "ログイン方法",
51
+ "delete": "削除",
52
+ "currentPassword": "現在のパスワード",
53
+ "newPassword": "新しいパスワード",
54
+ "signUp_haveAnAccount": "すでにアカウントをお持ちですか?",
55
+ "slots_not_available": "利用可能な時間がありません",
56
+ "footer_contact_us": "お問い合わせ",
57
+ "footer_contact_us_url": "url",
58
+ "privacy_policy": "プライバシーポリシー",
59
+ "footer_legal_notice_url": "url",
60
+ "footer_company_details": "法的情報",
61
+ "footer_company_details_url": "url",
62
+ "under_construction_notice": "このサイトは現在構築中です",
63
+ "signInFailStackLocked_message": "5回の失敗した試行の後、アカウントがロックされました。パスワードをリセットしてください!",
64
+ "signOut_message": "ログアウトに成功しました",
65
+ "signOutForce_message": "ログアウトされました",
66
+ "signOutNotLatest_message": "より新しいセッションが検出されたため、自動的にログアウトされました。",
67
+ "code_of_conduct": "行動規範",
68
+ "student": "学生",
69
+ "teacher": "教師",
70
+ "emailVerified": "メールが確認されました",
71
+ "emailAlreadyVerified": "メールはすでに確認済みです",
72
+ "redirectNotice": "5秒後にリダイレクトされます。または<a href=\"{uri}\">こちら</a>をクリックしてください",
73
+ "mailNotShowingProperly": "メールが正しく表示されませんか?",
74
+ "viewInBrowser": "ブラウザで表示",
75
+ "welcomeMail": "rapiddへようこそ",
76
+ "resetPassordMail": "rapiddパスワードのリセット",
77
+ "appointmentScheduled": "予約がスケジュールされました",
78
+ "appointmentChanged": "予約が変更されました",
79
+ "appointmentCancelled": "予約がキャンセルされました",
80
+ "appointmentRejected": "予約が拒否されました",
81
+ "salutationMail": "こんにちは、{first_name}さん",
82
+ "briefWelcomeTextMail": "rapiddプラットフォームでアカウントが作成されました。<b>{{confirmMail}}</b>をクリックしてメールアドレスを確認してください。",
83
+ "yourUsername": "あなたのユーザー名は<b>{username}</b>です",
84
+ "yourPassword": "初期パスワード<span style=\"display: inline-block;margin: 0 .8em;padding: .4em .8em;border: 3px dashed #fecb5a;border-radius: .8em;\"><b>{password}</b></span>",
85
+ "changePasswordAfterLogin": "初回ログイン後にパスワードを変更してください。",
86
+ "passwordResetTextMail": "rapiddアカウントのパスワードリセットをリクエストしました。<b>{{confirmResetPassword}}</b>をクリックしてパスワードをリセットしてください。このリクエストを行っていない場合は、このメッセージを無視してください。",
87
+ "studentAppointmentTextMail": "科目<b>{subject}</b>の予約がスケジュールされました。<br><br>{{studentAppointmentInfoMail}}<br><br>{{studentAppointmentRejectInfoMail}}<br><br>",
88
+ "studentAppointmentUpdateTextMail": "科目<b>{subject}</b>の予約が更新されました。<br><br>{{studentAppointmentInfoMail}}<br><br>{{studentAppointmentRejectInfoMail}}<br><br>",
89
+ "studentAppointmentCancelledTextMail": "科目<b>{subject}</b>の予約がキャンセルされました。<br><br>{{studentAppointmentInfoMail}}<br><br>",
90
+ "studentAppointmentInfoMail": "{{teacher}}: <b>{teacher}</b><br>日付: <b>{date}</b><br>時間: <b>{time}</b><br>期間: <b>{duration}</b><br>場所 / オンラインリンク: <b>{location_url}</b>",
91
+ "studentAppointmentRejectInfoMail": "<i>予約の24時間前までキャンセルできます。</i>",
92
+ "teacherAppointmentCancelledTextMail": "科目<b>{subject}</b>の予約がキャンセルされました。<br><br>{{teacherAppointmentInfoMail}}<br><br>",
93
+ "teacherAppointmentRejectedTextMail": "あなたの生徒{{student}}が科目<b>{subject}</b>の予約を拒否しました。<br><br>{{teacherAppointmentInfoMail}}<br><br>",
94
+ "teacherAppointmentInfoMail": "{{student}}: <b>{student}</b><br>日付: <b>{date}</b><br>時間: <b>{time}</b><br>期間: <b>{duration}</b><br>場所 / オンラインリンク: <b>{location_url}</b>",
95
+ "confirmMail": "メールを確認",
96
+ "confirmResetPassword": "パスワードをリセット",
97
+ "viewAppointment": "予約を表示",
98
+ "footerText": "私たちの目標は、すべての人が自分の可能性を発揮できるように支援することです。",
99
+ "footerCopyright": "© {year}、rapidd GmbH。無断複写・転載を禁じます。",
100
+ "insufficient_permissions": "権限が不足しています",
101
+ "rate_limit_exceeded": "リクエスト制限を超えました",
102
+ "record_not_found": "レコードが見つかりません",
103
+ "no_permission": "権限がありません",
104
+ "invalid_sort_field": "パラメータsortBy '{sortBy}'は{model}の有効なフィールドではありません",
105
+ "invalid_filter_field": "無効なフィルタフィールド: {field}",
106
+ "relation_not_exist": "リレーション'{relation}'は{model}に存在しません",
107
+ "between_requires_two_values": "between演算子にはセミコロンで区切られた2つの値が必要です",
108
+ "invalid_date_range": "範囲内の無効な日付: {start}または{end}",
109
+ "invalid_date_format": "フィルタ内の無効な日付形式: {value}。エラー: {error}",
110
+ "invalid_limit": "無効な制限",
111
+ "sortby_must_be_string": "sortByは文字列である必要があります。'{type}'が指定されました",
112
+ "sortorder_invalid": "sortOrderは'asc'または'desc'のみ可能です。'{value}'が指定されました",
113
+ "unexpected_key": "キー'{key}'は予期されていません",
114
+ "string_expected": "文字列が必要です、{type}が指定されました",
115
+ "auth_credentials_missing": "認証資格情報がありません",
116
+ "account_suspended": "アカウントが停止されました",
117
+ "email_not_verified": "メールアドレスがまだ確認されていません",
118
+ "auth_failed_invalid_credentials": "認証に失敗しました:無効な資格情報",
119
+ "user_not_found": "ユーザーが見つかりません",
120
+ "no_active_session": "アクティブなセッションがありません",
121
+ "email_not_string": "body内の'email'は'string'型ではありません。'{type}'が指定されました",
122
+ "password_change_failed": "パスワードを変更できませんでした",
123
+ "token_invalid": "トークンが無効です",
124
+ "password_not_string": "body内のpasswordは'string'型ではありません。'{type}'が指定されました",
125
+ "token_not_string": "body内のtokenは'string'型ではありません。'{type}'が指定されました",
126
+ "file_type_not_allowed": "ファイルタイプ{mimetype}は許可されていません",
127
+ "file_extension_not_allowed": "ファイル拡張子{extension}はMIMEタイプ{mimetype}に許可されていません",
128
+ "invalid_file_name": "無効なファイル名",
129
+ "file_size_exceeds_limit": "ファイルサイズが{limit}MBの制限を超えています",
130
+ "cors_blocked": "CORSポリシーによってブロックされました: {origin}",
131
+ "activation_link_expired": "アクティベーションリンクの有効期限が切れました",
132
+ "password_reset_email_sent": "パスワードリセットメールを送信しました",
133
+ "password_changed_successfully": "パスワードが正常に変更されました",
134
+ "username_password_invalid": "ユーザー名またはパスワードが無効です",
135
+ "activation_mail_sent": "アクティベーションメールを送信しました",
136
+ "session_terminated": "セッショントークンが終了しました",
137
+ "no_valid_session": "有効なセッションがありません",
138
+ "object_deleted_successfully": "{object}が正常に削除されました",
139
+ "auth_required": "認証が必要です",
140
+ "auth_required_message": "このリソースにアクセスするにはログインする必要があります",
141
+ "forbidden": "禁止",
142
+ "forbidden_role_message": "このリソースには次のいずれかのロールが必要です:{roles}",
143
+ "email_verification_required": "メール確認が必要です",
144
+ "email_verification_required_message": "このリソースにアクセスする前にメールアドレスを確認してください",
145
+ "company_account_required": "企業アカウントが必要です",
146
+ "company_verification_required": "企業確認が必要です",
147
+ "company_verification_required_message": "このリソースにアクセスする前に、管理者による企業の確認が必要です",
148
+ "missing_required_fields": "必須フィールドが不足しています",
149
+ "required_fields": "必須フィールド:{fields}",
150
+ "invalid_role": "無効なロール",
151
+ "invalid_role_message": "ロールはSTUDENTまたはCOMPANYである必要があります",
152
+ "email_already_registered": "メールアドレスは既に登録されています",
153
+ "email_already_registered_message": "このメールアドレスを持つユーザーは既に存在します",
154
+ "registration_failed": "登録に失敗しました",
155
+ "invalid_credentials": "無効な資格情報",
156
+ "invalid_credentials_message": "メールアドレスまたはパスワードが正しくありません",
157
+ "invalid_login_method": "無効なログイン方法",
158
+ "invalid_login_method_message": "{provider}でログインしてください",
159
+ "login_failed": "ログインに失敗しました",
160
+ "refresh_token_required": "リフレッシュトークンが必要です",
161
+ "invalid_refresh_token": "無効なリフレッシュトークン",
162
+ "session_expired_or_invalid": "セッションの期限切れまたは無効",
163
+ "token_refresh_failed": "トークンの更新に失敗しました",
164
+ "logged_out_successfully": "正常にログアウトしました",
165
+ "logout_failed": "ログアウトに失敗しました",
166
+ "not_authenticated": "認証されていません",
167
+ "missing_required_field": "必須フィールドが不足しています",
168
+ "field_required": "{field}は必須です",
169
+ "invalid_token": "無効な{provider}トークン",
170
+ "invalid_token_message": "{message}",
171
+ "role_required_for_new_users": "新規ユーザーにはロールが必要です",
172
+ "role_required_for_new_users_message": "STUDENTまたはCOMPANYのいずれかを指定してください",
173
+ "google_auth_failed": "Google認証に失敗しました",
174
+ "facebook_auth_failed": "Facebook認証に失敗しました",
175
+ "token_missing_email": "トークンにメール情報が含まれていません",
176
+ "oauth_config_missing": "{provider}のアプリIDとシークレットを環境変数で設定する必要があります",
177
+ "token_app_mismatch": "トークンはこのアプリケーションに属していません",
178
+ "oauth_email_permission_missing": "{provider}ユーザーがメール許可を付与していません"
179
+ }
@@ -0,0 +1,179 @@
1
+ {
2
+ "save": "Salvar",
3
+ "edit": "Editar",
4
+ "cancel": "Cancelar",
5
+ "close": "Fechar",
6
+ "done": "Concluído",
7
+ "yes": "Sim",
8
+ "no": "Não",
9
+ "next": "Próximo",
10
+ "error": "Erro",
11
+ "download": "Baixar",
12
+ "submit": "Enviar",
13
+ "clear": "Limpar",
14
+ "searchClear": "Limpar busca",
15
+ "search": "Buscar",
16
+ "actions": "Ações",
17
+ "signIn": "Entrar",
18
+ "signUp": "Cadastrar",
19
+ "signOut": "Sair",
20
+ "Remove": "Remover",
21
+ "removeUser": "Remover usuário",
22
+ "sortBy": "Ordenar por",
23
+ "name": "Nome",
24
+ "firstName": "Primeiro nome",
25
+ "lastName": "Sobrenome",
26
+ "email": "E-mail",
27
+ "password": "Senha",
28
+ "passwordRepeat": "Repetir senha",
29
+ "account": "Conta",
30
+ "role": "Função",
31
+ "status": "Status",
32
+ "reason": "Motivo",
33
+ "lastUpdateDate": "Data da última atualização",
34
+ "sortByFieldAscending": "{field} crescente",
35
+ "sortByFieldDescending": "{field} decrescente",
36
+ "couldNotLoadDataMsg": "Não foi possível carregar os dados: status \"{data}\"",
37
+ "FAQ": "FAQ",
38
+ "frequentlyAskedQuestions": "Perguntas frequentes",
39
+ "settings": "Configurações",
40
+ "eventsRewards": "Eventos e recompensas",
41
+ "hostname": "Nome do host",
42
+ "version": "Versão",
43
+ "profile": "Perfil",
44
+ "security": "Segurança e acesso",
45
+ "changePassword": "Alterar senha",
46
+ "securitySettings": "Configurações de segurança",
47
+ "requestData": "Solicitar dados",
48
+ "deleteProfile": "Excluir conta",
49
+ "username": "Nome de usuário",
50
+ "loginMethod": "Método de login",
51
+ "delete": "Excluir",
52
+ "currentPassword": "Senha atual",
53
+ "newPassword": "Nova senha",
54
+ "signUp_haveAnAccount": "Já tem uma conta?",
55
+ "slots_not_available": "Nenhum horário disponível",
56
+ "footer_contact_us": "Entre em contato",
57
+ "footer_contact_us_url": "url",
58
+ "privacy_policy": "Política de privacidade",
59
+ "footer_legal_notice_url": "url",
60
+ "footer_company_details": "Informações legais",
61
+ "footer_company_details_url": "url",
62
+ "under_construction_notice": "Este site está em construção",
63
+ "signInFailStackLocked_message": "Sua conta foi bloqueada após 5 tentativas falhadas. Redefina sua senha!",
64
+ "signOut_message": "Você saiu com sucesso",
65
+ "signOutForce_message": "Você foi desconectado",
66
+ "signOutNotLatest_message": "Você foi desconectado automaticamente porque uma sessão mais recente foi detectada.",
67
+ "code_of_conduct": "Código de conduta",
68
+ "student": "Estudante",
69
+ "teacher": "Professor",
70
+ "emailVerified": "E-mail verificado",
71
+ "emailAlreadyVerified": "E-mail já verificado",
72
+ "redirectNotice": "Você será redirecionado em 5 segundos ou <a href=\"{uri}\">clique aqui</a>",
73
+ "mailNotShowingProperly": "O e-mail não está sendo exibido corretamente?",
74
+ "viewInBrowser": "Ver no navegador",
75
+ "welcomeMail": "Bem-vindo ao rapidd",
76
+ "resetPassordMail": "Redefinir sua senha do rapidd",
77
+ "appointmentScheduled": "Agendamento marcado",
78
+ "appointmentChanged": "Agendamento alterado",
79
+ "appointmentCancelled": "Agendamento cancelado",
80
+ "appointmentRejected": "Agendamento recusado",
81
+ "salutationMail": "Olá {first_name},",
82
+ "briefWelcomeTextMail": "uma conta foi criada para você na plataforma rapidd. Confirme seu endereço de e-mail clicando em <b>{{confirmMail}}</b>.",
83
+ "yourUsername": "Seu nome de usuário é <b>{username}</b>",
84
+ "yourPassword": "Sua senha inicial<span style=\"display: inline-block;margin: 0 .8em;padding: .4em .8em;border: 3px dashed #fecb5a;border-radius: .8em;\"><b>{password}</b></span>",
85
+ "changePasswordAfterLogin": "Solicitamos que você altere sua senha após o primeiro login.",
86
+ "passwordResetTextMail": "você solicitou a redefinição da senha da sua conta rapidd. Clique em <b>{{confirmResetPassword}}</b> para redefini-la. Ignore esta mensagem se você não fez esta solicitação.",
87
+ "studentAppointmentTextMail": "um agendamento foi marcado para a matéria <b>{subject}</b>.<br><br>{{studentAppointmentInfoMail}}<br><br>{{studentAppointmentRejectInfoMail}}<br><br>",
88
+ "studentAppointmentUpdateTextMail": "seu agendamento para a matéria <b>{subject}</b> foi atualizado.<br><br>{{studentAppointmentInfoMail}}<br><br>{{studentAppointmentRejectInfoMail}}<br><br>",
89
+ "studentAppointmentCancelledTextMail": "seu agendamento para a matéria <b>{subject}</b> foi cancelado.<br><br>{{studentAppointmentInfoMail}}<br><br>",
90
+ "studentAppointmentInfoMail": "{{teacher}}: <b>{teacher}</b><br>Data: <b>{date}</b><br>Horário: <b>{time}</b><br>Duração: <b>{duration}</b><br>Local / link online: <b>{location_url}</b>",
91
+ "studentAppointmentRejectInfoMail": "<i>Você pode cancelar o agendamento até 24 horas antes.</i>",
92
+ "teacherAppointmentCancelledTextMail": "seu agendamento para a matéria <b>{subject}</b> foi cancelado.<br><br>{{teacherAppointmentInfoMail}}<br><br>",
93
+ "teacherAppointmentRejectedTextMail": "seu aluno {{student}} recusou o agendamento para a matéria <b>{subject}</b>.<br><br>{{teacherAppointmentInfoMail}}<br><br>",
94
+ "teacherAppointmentInfoMail": "{{student}}: <b>{student}</b><br>Data: <b>{date}</b><br>Horário: <b>{time}</b><br>Duração: <b>{duration}</b><br>Local / link online: <b>{location_url}</b>",
95
+ "confirmMail": "Confirmar e-mail",
96
+ "confirmResetPassword": "Redefinir senha",
97
+ "viewAppointment": "Ver agendamento",
98
+ "footerText": "Nosso objetivo é ajudar todos a alcançar seu potencial.",
99
+ "footerCopyright": "© {year}, rapidd GmbH. Todos os direitos reservados.",
100
+ "insufficient_permissions": "Permissões insuficientes",
101
+ "rate_limit_exceeded": "Limite de requisições excedido",
102
+ "record_not_found": "Registro não encontrado",
103
+ "no_permission": "Sem permissão",
104
+ "invalid_sort_field": "O parâmetro sortBy '{sortBy}' não é um campo válido de {model}",
105
+ "invalid_filter_field": "Campo de filtro inválido: {field}",
106
+ "relation_not_exist": "A relação '{relation}' não existe em {model}",
107
+ "between_requires_two_values": "O operador between requer dois valores separados por ponto e vírgula",
108
+ "invalid_date_range": "Data inválida no intervalo: {start} ou {end}",
109
+ "invalid_date_format": "Formato de data inválido no filtro: {value}. Erro: {error}",
110
+ "invalid_limit": "Limite inválido",
111
+ "sortby_must_be_string": "sortBy deve ser uma string. '{type}' fornecido",
112
+ "sortorder_invalid": "sortOrder só pode ser 'asc' ou 'desc'. '{value}' fornecido",
113
+ "unexpected_key": "A chave '{key}' não é esperada",
114
+ "string_expected": "String esperada, {type} fornecido",
115
+ "auth_credentials_missing": "Credenciais de autenticação ausentes",
116
+ "account_suspended": "Sua conta foi suspensa",
117
+ "email_not_verified": "O endereço de e-mail ainda não foi verificado",
118
+ "auth_failed_invalid_credentials": "Autenticação falhou: credenciais inválidas",
119
+ "user_not_found": "Usuário não encontrado",
120
+ "no_active_session": "Nenhuma sessão ativa",
121
+ "email_not_string": "'email' no body não é do tipo 'string'. '{type}' fornecido",
122
+ "password_change_failed": "Não foi possível alterar a senha",
123
+ "token_invalid": "O token é inválido",
124
+ "password_not_string": "password no body não é do tipo 'string'. '{type}' fornecido",
125
+ "token_not_string": "token no body não é do tipo 'string'. '{type}' fornecido",
126
+ "file_type_not_allowed": "Tipo de arquivo {mimetype} não permitido",
127
+ "file_extension_not_allowed": "Extensão de arquivo {extension} não permitida para o tipo MIME {mimetype}",
128
+ "invalid_file_name": "Nome de arquivo inválido",
129
+ "file_size_exceeds_limit": "O tamanho do arquivo excede o limite de {limit}MB",
130
+ "cors_blocked": "Bloqueado pela política CORS: {origin}",
131
+ "activation_link_expired": "Link de ativação expirado",
132
+ "password_reset_email_sent": "E-mail de redefinição de senha enviado",
133
+ "password_changed_successfully": "A senha foi alterada com sucesso",
134
+ "username_password_invalid": "Nome de usuário ou senha inválidos",
135
+ "activation_mail_sent": "E-mail de ativação enviado",
136
+ "session_terminated": "O token de sessão foi terminado",
137
+ "no_valid_session": "Nenhuma sessão válida",
138
+ "object_deleted_successfully": "{object} excluído com sucesso",
139
+ "auth_required": "Autenticação necessária",
140
+ "auth_required_message": "Você deve estar conectado para acessar este recurso",
141
+ "forbidden": "Proibido",
142
+ "forbidden_role_message": "Este recurso requer uma das seguintes funções: {roles}",
143
+ "email_verification_required": "Verificação de e-mail necessária",
144
+ "email_verification_required_message": "Por favor, verifique seu endereço de e-mail antes de acessar este recurso",
145
+ "company_account_required": "Conta empresarial necessária",
146
+ "company_verification_required": "Verificação da empresa necessária",
147
+ "company_verification_required_message": "Sua empresa deve ser verificada por um administrador antes de acessar este recurso",
148
+ "missing_required_fields": "Campos obrigatórios ausentes",
149
+ "required_fields": "Campos obrigatórios: {fields}",
150
+ "invalid_role": "Função inválida",
151
+ "invalid_role_message": "A função deve ser STUDENT ou COMPANY",
152
+ "email_already_registered": "E-mail já registrado",
153
+ "email_already_registered_message": "Já existe um usuário com este endereço de e-mail",
154
+ "registration_failed": "Falha no registro",
155
+ "invalid_credentials": "Credenciais inválidas",
156
+ "invalid_credentials_message": "E-mail ou senha incorretos",
157
+ "invalid_login_method": "Método de login inválido",
158
+ "invalid_login_method_message": "Por favor, faça login com {provider}",
159
+ "login_failed": "Falha no login",
160
+ "refresh_token_required": "Token de atualização necessário",
161
+ "invalid_refresh_token": "Token de atualização inválido",
162
+ "session_expired_or_invalid": "Sessão expirada ou inválida",
163
+ "token_refresh_failed": "Falha na atualização do token",
164
+ "logged_out_successfully": "Desconectado com sucesso",
165
+ "logout_failed": "Falha ao desconectar",
166
+ "not_authenticated": "Não autenticado",
167
+ "missing_required_field": "Campo obrigatório ausente",
168
+ "field_required": "{field} é obrigatório",
169
+ "invalid_token": "Token {provider} inválido",
170
+ "invalid_token_message": "{message}",
171
+ "role_required_for_new_users": "Função necessária para novos usuários",
172
+ "role_required_for_new_users_message": "Por favor, especifique se você é STUDENT ou COMPANY",
173
+ "google_auth_failed": "Falha na autenticação do Google",
174
+ "facebook_auth_failed": "Falha na autenticação do Facebook",
175
+ "token_missing_email": "O token não contém informações de e-mail",
176
+ "oauth_config_missing": "O ID do aplicativo e o segredo do {provider} devem ser configurados nas variáveis de ambiente",
177
+ "token_app_mismatch": "O token não pertence a esta aplicação",
178
+ "oauth_email_permission_missing": "O usuário do {provider} não concedeu permissão de e-mail"
179
+ }