@seedgrid/fe-security 2026.7.0 → 2026.7.2

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 (125) hide show
  1. package/README.md +113 -0
  2. package/dist/client/index.d.ts +4 -0
  3. package/dist/client/index.d.ts.map +1 -0
  4. package/dist/client/index.js +5 -0
  5. package/dist/client/permission-provider.d.ts +18 -0
  6. package/dist/client/permission-provider.d.ts.map +1 -0
  7. package/dist/client/permission-provider.js +57 -0
  8. package/dist/client/pick-list-field.d.ts +15 -0
  9. package/dist/client/pick-list-field.d.ts.map +1 -0
  10. package/dist/client/pick-list-field.js +30 -0
  11. package/dist/client/status-badge.d.ts +6 -0
  12. package/dist/client/status-badge.d.ts.map +1 -0
  13. package/dist/client/status-badge.js +6 -0
  14. package/dist/config.d.ts +34 -0
  15. package/dist/config.d.ts.map +1 -0
  16. package/dist/config.js +4 -0
  17. package/dist/dtos.d.ts +88 -0
  18. package/dist/dtos.d.ts.map +1 -0
  19. package/dist/dtos.js +3 -0
  20. package/dist/index.d.ts +8 -0
  21. package/dist/index.d.ts.map +1 -1
  22. package/dist/index.js +10 -0
  23. package/dist/menu.d.ts +19 -0
  24. package/dist/menu.d.ts.map +1 -0
  25. package/dist/menu.js +41 -0
  26. package/dist/messages.d.ts +1858 -0
  27. package/dist/messages.d.ts.map +1 -0
  28. package/dist/messages.js +990 -0
  29. package/dist/module.d.ts +3 -0
  30. package/dist/module.d.ts.map +1 -0
  31. package/dist/module.js +37 -0
  32. package/dist/module.json +21 -0
  33. package/dist/paths.d.ts +1 -0
  34. package/dist/paths.d.ts.map +1 -1
  35. package/dist/paths.js +3 -0
  36. package/dist/permissions.d.ts +14 -0
  37. package/dist/permissions.d.ts.map +1 -0
  38. package/dist/permissions.js +39 -0
  39. package/dist/server/action.d.ts +3 -0
  40. package/dist/server/action.d.ts.map +1 -0
  41. package/dist/server/action.js +21 -0
  42. package/dist/server/create-security-server.d.ts +4 -0
  43. package/dist/server/create-security-server.d.ts.map +1 -0
  44. package/dist/server/create-security-server.js +166 -0
  45. package/dist/server/errors.d.ts +13 -0
  46. package/dist/server/errors.d.ts.map +1 -0
  47. package/dist/server/errors.js +26 -0
  48. package/dist/server/index.d.ts +8 -0
  49. package/dist/server/index.d.ts.map +1 -0
  50. package/dist/server/index.js +8 -0
  51. package/dist/server/problem-response.d.ts +3 -0
  52. package/dist/server/problem-response.d.ts.map +1 -0
  53. package/dist/server/problem-response.js +28 -0
  54. package/dist/server/route.d.ts +3 -0
  55. package/dist/server/route.d.ts.map +1 -0
  56. package/dist/server/route.js +22 -0
  57. package/dist/server/to-problem.d.ts +3 -0
  58. package/dist/server/to-problem.d.ts.map +1 -0
  59. package/dist/server/to-problem.js +22 -0
  60. package/dist/server-contract.d.ts +23 -0
  61. package/dist/server-contract.d.ts.map +1 -0
  62. package/dist/server-contract.js +4 -0
  63. package/dist/session-contract.d.ts +36 -0
  64. package/dist/session-contract.d.ts.map +1 -0
  65. package/dist/session-contract.js +8 -0
  66. package/dist/session-result.d.ts +22 -0
  67. package/dist/session-result.d.ts.map +1 -0
  68. package/dist/session-result.js +14 -0
  69. package/package.json +38 -3
  70. package/scaffold/README.md +97 -0
  71. package/scaffold/src/app/api/security/session/2fa/resend/route.ts +8 -0
  72. package/scaffold/src/app/api/security/session/2fa/verify/route.ts +8 -0
  73. package/scaffold/src/app/api/security/session/login/route.ts +7 -0
  74. package/scaffold/src/app/api/security/session/logout/route.ts +5 -0
  75. package/scaffold/src/app/api/security/session/refresh/route.ts +7 -0
  76. package/scaffold/src/app/api/security/users/[publicId]/avatar/route.ts +15 -0
  77. package/scaffold/src/app/auth/2fa/verify/page.tsx +286 -0
  78. package/scaffold/src/app/auth/forgot-password/confirm/page.tsx +96 -0
  79. package/scaffold/src/app/auth/forgot-password/page.tsx +165 -0
  80. package/scaffold/src/app/auth/forgot-password/success/page.tsx +31 -0
  81. package/scaffold/src/app/auth/login/page.tsx +386 -0
  82. package/scaffold/src/app/auth/welcome/page.tsx +90 -0
  83. package/scaffold/src/app/login/page.tsx +7 -0
  84. package/scaffold/src/app/page.tsx +12 -0
  85. package/scaffold/src/app/security/2fa/page.tsx +370 -0
  86. package/scaffold/src/app/security/companies/(create)/new/page.tsx +12 -0
  87. package/scaffold/src/app/security/companies/(edit)/[publicId]/page.tsx +18 -0
  88. package/scaffold/src/app/security/companies/(list)/page.tsx +298 -0
  89. package/scaffold/src/app/security/companies/editors/CompanyEditor.tsx +754 -0
  90. package/scaffold/src/app/security/profile/page.tsx +492 -0
  91. package/scaffold/src/app/security/roles/(create)/new/page.tsx +11 -0
  92. package/scaffold/src/app/security/roles/(edit)/[publicId]/page.tsx +17 -0
  93. package/scaffold/src/app/security/roles/(list)/page.tsx +269 -0
  94. package/scaffold/src/app/security/roles/editors/RoleEditor.tsx +328 -0
  95. package/scaffold/src/app/security/users/(create)/new/page.tsx +10 -0
  96. package/scaffold/src/app/security/users/(edit)/[publicId]/page.tsx +16 -0
  97. package/scaffold/src/app/security/users/(list)/page.tsx +289 -0
  98. package/scaffold/src/app/security/users/editors/UserEditor.tsx +478 -0
  99. package/scaffold/src/app/users/change-password/page.tsx +172 -0
  100. package/scaffold/src/modules/security/AuthProvider.tsx +405 -0
  101. package/scaffold/src/modules/security/components/AppShell.tsx.hbs +889 -0
  102. package/scaffold/src/modules/security/components/CompanyManagementGuard.tsx +59 -0
  103. package/scaffold/src/modules/security/components/PageFrame.tsx +105 -0
  104. package/scaffold/src/modules/security/components/RouteGuard.tsx +114 -0
  105. package/scaffold/src/modules/security/components/SecurityDashboard.tsx.hbs +315 -0
  106. package/scaffold/src/modules/security/config.ts +55 -0
  107. package/scaffold/src/modules/security/hooks/useAuth.ts +7 -0
  108. package/scaffold/src/modules/security/hooks/useDebouncedSearch.ts +13 -0
  109. package/scaffold/src/modules/security/hooks/usePermission.ts +35 -0
  110. package/scaffold/src/modules/security/host-access.ts +59 -0
  111. package/scaffold/src/modules/security/index.ts +44 -0
  112. package/scaffold/src/modules/security/navigation.ts +41 -0
  113. package/scaffold/src/modules/security/server/avatar-routes.ts +86 -0
  114. package/scaffold/src/modules/security/server/public-api-base-url.ts +26 -0
  115. package/scaffold/src/modules/security/server/session-routes.ts.hbs +322 -0
  116. package/scaffold/src/modules/security/server/session-server.ts.hbs +30 -0
  117. package/scaffold/src/modules/security/services/auth-service.ts +332 -0
  118. package/scaffold/src/modules/security/services/security-api.test.ts +178 -0
  119. package/scaffold/src/modules/security/services/security-api.ts +281 -0
  120. package/scaffold/src/modules/security/services/security-service.test.ts +71 -0
  121. package/scaffold/src/modules/security/services/security-service.ts +727 -0
  122. package/scaffold/src/modules/security/services/session-storage.ts +80 -0
  123. package/scaffold/src/modules/security/types.ts +295 -0
  124. package/scaffold/src/modules/security/useSecurityAppShellSections.tsx.hbs +180 -0
  125. package/scaffold/src/modules/security/utils.ts +194 -0
@@ -0,0 +1,990 @@
1
+ const en = {
2
+ "security.guard.loading.title": "Checking access",
3
+ "security.guard.loading.description": "The security module is restoring the current session.",
4
+ "security.guard.loading.message": "Loading authentication and permissions.",
5
+ "security.guard.redirecting.title": "Redirecting to sign in",
6
+ "security.guard.redirecting.description": "This screen requires an authenticated session.",
7
+ "security.guard.redirecting.message": "Redirecting to the login flow.",
8
+ "security.guard.unauthorized.title": "Access denied",
9
+ "security.guard.unauthorized.description": "Your current permissions do not allow access to this screen.",
10
+ "security.guard.unauthorized.message": "Request the required permission or use another account.",
11
+ "security.guard.unauthorized.action": "Go to login",
12
+ "security.common.readonly": "Read-only access",
13
+ "security.common.loading": "Loading...",
14
+ "security.common.actions": "Actions",
15
+ "security.common.search": "Search",
16
+ "security.common.no_results": "No records found.",
17
+ "security.common.back": "Back",
18
+ "security.common.cancel": "Cancel",
19
+ "security.common.save": "Save",
20
+ "security.common.field_required": "Fill in this field.",
21
+ "security.common.delete": "Delete",
22
+ "security.common.create": "Create",
23
+ "security.common.refresh": "Refresh",
24
+ "security.common.enabled": "Enabled",
25
+ "security.common.disabled": "Disabled",
26
+ "security.common.server_connection_error": "Could not connect to the server",
27
+ "security.common.yes": "Yes",
28
+ "security.common.no": "No",
29
+ "security.common.search_hint": "Type at least 3 characters to search.",
30
+ "security.common.confirm.title": "Confirm action",
31
+ "security.common.missing_numeric_ids": "The backend response did not expose numeric identifiers required to save this association.",
32
+ "security.dashboard.title": "Dashboard",
33
+ "security.dashboard.description": "Use the navigation menu to access the modules available for your profile.",
34
+ "security.dashboard.hero.title": "Welcome, {user}",
35
+ "security.dashboard.hero.description": "Select a module from the menu on the left or use the quick access cards below.",
36
+ "security.dashboard.menu.group.access": "Access management",
37
+ "security.dashboard.menu.group.workspace": "Workspace",
38
+ "security.dashboard.menu.search_placeholder": "Search module...",
39
+ "security.dashboard.menu.empty": "No modules with read access are available for this account.",
40
+ "security.dashboard.quick_access.title": "Quick access",
41
+ "security.dashboard.open": "Open",
42
+ "security.dashboard.user.subtitle": "Authenticated user",
43
+ "security.login.title": "Sign in",
44
+ "security.login.description": "Access the platform with your credentials and permissions.",
45
+ "security.login.processing": "Processing...",
46
+ "security.login.signin": "Sign in",
47
+ "security.login.signout": "Sign out",
48
+ "security.login.email": "Email",
49
+ "security.login.password": "Password",
50
+ "security.login.validation.email_required": "Enter your email to continue.",
51
+ "security.login.validation.password_required": "Enter your password to continue.",
52
+ "security.login.submit": "Start session",
53
+ "security.login.forgot_password": "Forgot password?",
54
+ "security.login.branding_message": "Welcome to {productName}.",
55
+ "security.login.logo_alt": "{productName} logo",
56
+ "security.login.signup_prompt": "Don't have an account yet?",
57
+ "security.login.signup_action": "Sign up",
58
+ "security.login.success": "Session started successfully.",
59
+ "security.login.error": "We could not start the session with the provided credentials.",
60
+ "security.login.two_factor_required": "A second authentication factor is required to continue.",
61
+ "security.login.change_password_required": "You must change your password before continuing.",
62
+ "security.forgot_password.title": "Forgot password",
63
+ "security.forgot_password.description": "Request a password reset confirmation email.",
64
+ "security.forgot_password.email": "Email",
65
+ "security.forgot_password.new_password": "New password",
66
+ "security.forgot_password.confirm_password": "Confirm new password",
67
+ "security.forgot_password.validation.email_required": "Enter the email used by your account.",
68
+ "security.forgot_password.validation.new_password_required": "Enter the new password.",
69
+ "security.forgot_password.validation.confirm_password_required": "Confirm the new password.",
70
+ "security.forgot_password.submit": "Send request",
71
+ "security.forgot_password.success": "Password reset request sent successfully.",
72
+ "security.forgot_password.error": "We could not submit the password reset request.",
73
+ "security.forgot_password.mismatch": "The password confirmation must match the new password.",
74
+ "security.forgot_password.confirm.title": "Confirming password change",
75
+ "security.forgot_password.confirm.description": "We are validating your reset token and updating your password.",
76
+ "security.forgot_password.confirm.loading": "Completing password change...",
77
+ "security.forgot_password.confirm.error": "We could not confirm the password change with this link.",
78
+ "security.forgot_password.confirm.invalid_token": "The confirmation link is invalid or has expired. Request a new password reset to continue.",
79
+ "security.forgot_password.confirm.request_new": "Request a new reset",
80
+ "security.forgot_password.success_page.title": "Password changed successfully",
81
+ "security.forgot_password.success_page.description": "Your password has been updated. You can now sign in with the new password.",
82
+ "security.forgot_password.success_page.enter": "Sign in",
83
+ "security.welcome.title": "Welcome",
84
+ "security.welcome.description": "We are validating your account confirmation link.",
85
+ "security.welcome.loading": "Confirming your account...",
86
+ "security.welcome.success": "Your email has been confirmed. You can now sign in.",
87
+ "security.welcome.error": "We could not confirm your account with this link.",
88
+ "security.welcome.invalid_token": "The confirmation link is invalid or has expired.",
89
+ "security.welcome.enter": "Go to login",
90
+ "security.auth.two_factor.title": "Two-factor verification",
91
+ "security.auth.two_factor.description": "Enter the verification code to finish signing in.",
92
+ "security.auth.two_factor.code": "Verification code",
93
+ "security.auth.two_factor.hint": "We sent a 6-digit code to your email. Enter it to continue.",
94
+ "security.auth.two_factor.hint_email": "An email was sent with your verification code. Check your inbox and enter the code to continue.",
95
+ "security.auth.two_factor.hint_totp": "Check your authenticator app and enter the generated code to continue.",
96
+ "security.auth.two_factor.hint_whatsapp": "Check the code sent to your WhatsApp and enter it to continue.",
97
+ "security.auth.two_factor.hint_generic": "Enter the verification code to continue.",
98
+ "security.auth.two_factor.validation.code_required": "Enter the verification code.",
99
+ "security.auth.two_factor.submit": "Verify code",
100
+ "security.auth.two_factor.resend": "Resend email",
101
+ "security.auth.two_factor.resend_success": "A new verification email was sent successfully.",
102
+ "security.auth.two_factor.resend_error": "We could not resend the verification email.",
103
+ "security.auth.two_factor.success": "Two-factor verification completed successfully.",
104
+ "security.auth.two_factor.error": "We could not verify the two-factor code.",
105
+ "security.auth.two_factor.missing": "No pending two-factor challenge was found.",
106
+ "security.users.list.title": "Users",
107
+ "security.users.list.description": "Manage users, access state and role associations.",
108
+ "security.users.list.search_placeholder": "Search by name or email",
109
+ "security.users.list.new": "New user",
110
+ "security.users.list.empty": "No users available.",
111
+ "security.users.list.column.name": "Name",
112
+ "security.users.list.column.email": "Email",
113
+ "security.users.list.column.whatsapp": "WhatsApp",
114
+ "security.users.list.column.roles": "Roles",
115
+ "security.users.list.column.status": "Status",
116
+ "security.users.list.action.view": "View",
117
+ "security.users.list.action.edit": "Edit",
118
+ "security.users.list.action.delete": "Delete",
119
+ "security.users.list.delete_title": "Delete user",
120
+ "security.users.list.delete_message": "Delete the selected user?",
121
+ "security.users.list.delete_success": "User deleted successfully.",
122
+ "security.users.list.delete_error": "We could not delete the selected user.",
123
+ "security.users.form.title_new": "Create user",
124
+ "security.users.form.title_edit": "Edit user",
125
+ "security.users.form.description_new": "Create a user and associate roles and companies.",
126
+ "security.users.form.description_edit": "Update the user fields, roles and company scope.",
127
+ "security.users.form.email": "Email",
128
+ "security.users.form.name": "Name",
129
+ "security.users.form.password": "Password",
130
+ "security.users.form.whatsapp": "WhatsApp",
131
+ "security.users.form.name_min_words": "Enter at least first and last name.",
132
+ "security.users.form.active": "Active",
133
+ "security.users.form.change_password_required": "Require password change",
134
+ "security.users.form.roles": "Roles",
135
+ "security.users.form.roles_available": "Available roles",
136
+ "security.users.form.roles_selected": "Selected roles",
137
+ "security.users.form.companies": "Companies",
138
+ "security.users.form.companies_available": "Available companies",
139
+ "security.users.form.companies_selected": "Selected companies",
140
+ "security.users.form.roles_required": "Select at least one role.",
141
+ "security.users.form.companies_required": "Select at least one company.",
142
+ "security.users.form.save_success": "User saved successfully.",
143
+ "security.users.form.save_error": "We could not save the user.",
144
+ "security.users.form.delete_success": "User deleted successfully.",
145
+ "security.users.form.load_error": "We could not load the user.",
146
+ "security.roles.list.title": "Roles",
147
+ "security.roles.list.description": "Manage roles and the permissions assigned to each profile.",
148
+ "security.roles.list.search_placeholder": "Search by role name",
149
+ "security.roles.list.new": "New role",
150
+ "security.roles.list.empty": "No roles available.",
151
+ "security.roles.list.column.name": "Role",
152
+ "security.roles.list.column.permissions": "Permissions",
153
+ "security.roles.list.column.integration": "Integration",
154
+ "security.roles.list.action.view": "View",
155
+ "security.roles.list.action.edit": "Edit",
156
+ "security.roles.list.action.delete": "Delete",
157
+ "security.roles.list.delete_title": "Delete role",
158
+ "security.roles.list.delete_message": "Delete the selected role?",
159
+ "security.roles.list.delete_success": "Role deleted successfully.",
160
+ "security.roles.list.delete_error": "We could not delete the selected role.",
161
+ "security.roles.form.title_new": "Create role",
162
+ "security.roles.form.title_edit": "Edit role",
163
+ "security.roles.form.description_new": "Create a role and choose the permissions available to it.",
164
+ "security.roles.form.description_edit": "Update the role data and its assigned permissions.",
165
+ "security.roles.form.name": "Role name",
166
+ "security.roles.form.description": "Description",
167
+ "security.roles.form.for_integration": "Available for integrations",
168
+ "security.roles.form.permissions": "Permissions",
169
+ "security.roles.form.permissions_hint": "Select one or more permissions for this role.",
170
+ "security.roles.form.permissions_required": "Select at least one permission.",
171
+ "security.roles.form.save_success": "Role saved successfully.",
172
+ "security.roles.form.save_error": "We could not save the role.",
173
+ "security.roles.form.delete_success": "Role deleted successfully.",
174
+ "security.roles.form.load_error": "We could not load the role.",
175
+ "security.roles.form.permissions_empty": "No permissions were returned by the backend.",
176
+ "security.profile.title": "My profile",
177
+ "security.profile.description": "Review account details and access your personal security settings.",
178
+ "security.profile.login": "Login",
179
+ "security.profile.roles": "Current roles",
180
+ "security.profile.account_actions": "Account actions",
181
+ "security.profile.edit_account": "Edit my profile",
182
+ "security.profile.enable_two_factor": "Enable two-factor",
183
+ "security.profile.disable_two_factor": "Disable two-factor",
184
+ "security.profile.change_password": "Change password",
185
+ "security.profile.no_user_record": "The current account is not linked to a user record exposed by the backend.",
186
+ "security.profile.load_error": "We could not load the current account details.",
187
+ "security.profile.save_success": "Profile updated successfully.",
188
+ "security.profile.save_error": "We could not update the current profile.",
189
+ "security.profile.email": "Email",
190
+ "security.profile.name": "Name",
191
+ "security.profile.name_min_words": "Enter at least first and last name.",
192
+ "security.profile.whatsapp": "WhatsApp",
193
+ "security.profile.avatar": "Profile photo",
194
+ "security.profile.avatar_hint": "Upload an avatar to personalize your account.",
195
+ "security.profile.avatar_upload": "Upload avatar",
196
+ "security.profile.avatar_invalid_file": "Select a valid image file.",
197
+ "security.profile.avatar_upload_success": "Avatar updated successfully.",
198
+ "security.profile.avatar_upload_error": "We could not update your avatar.",
199
+ "security.companies.list.title": "Companies",
200
+ "security.companies.list.description": "Manage companies and representative data.",
201
+ "security.companies.list.search_placeholder": "Search by company name or CNPJ",
202
+ "security.companies.list.new": "New company",
203
+ "security.companies.list.empty": "No companies available.",
204
+ "security.companies.list.column.trade_name": "Trade name",
205
+ "security.companies.list.column.corporate_name": "Corporate name",
206
+ "security.companies.list.column.cnpj": "CNPJ",
207
+ "security.companies.list.column.location": "Location",
208
+ "security.companies.list.column.status": "Status",
209
+ "security.companies.list.action.view": "View",
210
+ "security.companies.list.action.edit": "Edit",
211
+ "security.companies.list.action.delete": "Delete",
212
+ "security.companies.list.delete_title": "Delete company",
213
+ "security.companies.list.delete_message": "Delete the selected company?",
214
+ "security.companies.list.delete_success": "Company deleted successfully.",
215
+ "security.companies.list.delete_error": "We could not delete the selected company.",
216
+ "security.companies.form.title_new": "Create company",
217
+ "security.companies.form.title_edit": "Edit company",
218
+ "security.companies.form.description_new": "Register a company and its representative information.",
219
+ "security.companies.form.description_edit": "Update company registration and representative information.",
220
+ "security.companies.form.address_section": "Address",
221
+ "security.companies.form.legal_representative_section": "Legal representative",
222
+ "security.companies.form.cnpj": "CNPJ",
223
+ "security.companies.form.cnpj_lookup_error": "CNPJ not found in the public database.",
224
+ "security.companies.form.corporate_name": "Corporate name",
225
+ "security.companies.form.trade_name": "Trade name",
226
+ "security.companies.form.active": "Active",
227
+ "security.companies.form.addr_street": "Street",
228
+ "security.companies.form.addr_number": "Number",
229
+ "security.companies.form.addr_complement": "Complement",
230
+ "security.companies.form.addr_postal_code": "Postal code",
231
+ "security.companies.form.postal_code_lookup_error": "Postal code not found in ViaCEP.",
232
+ "security.companies.form.addr_city": "City",
233
+ "security.companies.form.addr_state": "State",
234
+ "security.companies.form.addr_district": "District",
235
+ "security.companies.form.addr_phone": "Phone",
236
+ "security.companies.form.rep_first_name": "Representative first name",
237
+ "security.companies.form.rep_last_name": "Representative last name",
238
+ "security.companies.form.rep_cpf": "Representative CPF",
239
+ "security.companies.form.rep_phone": "Representative phone",
240
+ "security.companies.form.rep_whatsapp": "Representative WhatsApp",
241
+ "security.companies.form.rep_email": "Representative email",
242
+ "security.companies.form.save_success": "Company saved successfully.",
243
+ "security.companies.form.save_error": "We could not save the company.",
244
+ "security.companies.form.delete_success": "Company deleted successfully.",
245
+ "security.companies.form.load_error": "We could not load the company.",
246
+ "security.change_password.title": "Change password",
247
+ "security.change_password.description": "Update the current account password.",
248
+ "security.change_password.current_password": "Current password",
249
+ "security.change_password.new_password": "New password",
250
+ "security.change_password.confirm_password": "Confirm new password",
251
+ "security.change_password.validation.current_password_required": "Enter the current password.",
252
+ "security.change_password.validation.new_password_required": "Enter the new password.",
253
+ "security.change_password.validation.confirm_password_required": "Confirm the new password.",
254
+ "security.change_password.submit": "Update password",
255
+ "security.change_password.success": "Password updated successfully.",
256
+ "security.change_password.error": "We could not update the password.",
257
+ "security.change_password.mismatch": "The new password confirmation must match.",
258
+ "security.two_factor.title": "Two-factor authentication",
259
+ "security.two_factor.description": "Enable, confirm or disable the second factor for the current account.",
260
+ "security.two_factor.status": "Current status",
261
+ "security.two_factor.primary_method": "Primary method",
262
+ "security.two_factor.available_methods": "Available methods",
263
+ "security.two_factor.backup_codes": "Backup codes",
264
+ "security.two_factor.backup_codes_hint": "Store these codes in a safe place. They are shown only once.",
265
+ "security.two_factor.download_backup_codes_csv": "Download CSV",
266
+ "security.two_factor.method": "Method",
267
+ "security.two_factor.enable": "Enable 2FA",
268
+ "security.two_factor.confirm_totp": "Confirm TOTP",
269
+ "security.two_factor.disable": "Disable 2FA",
270
+ "security.two_factor.code": "2FA code",
271
+ "security.two_factor.password": "Password",
272
+ "security.two_factor.backup_code": "Backup code",
273
+ "security.two_factor.disable_hint": "Provide the account password or a backup code to disable two-factor authentication.",
274
+ "security.two_factor.disable_validation": "Enter the account password or a backup code to continue.",
275
+ "security.two_factor.disable_hint_totp": "Provide the TOTP code, the account password, or a backup code to disable two-factor authentication.",
276
+ "security.two_factor.disable_validation_totp": "Enter the TOTP code, the account password, or a backup code to continue.",
277
+ "security.two_factor.qr_code": "QR code",
278
+ "security.two_factor.otpauth_url": "Authenticator URL",
279
+ "security.two_factor.success_enable": "Two-factor authentication enabled successfully.",
280
+ "security.two_factor.success_confirm": "TOTP setup confirmed successfully.",
281
+ "security.two_factor.success_disable": "Two-factor authentication disabled successfully.",
282
+ "security.two_factor.error": "We could not complete the requested 2FA action.",
283
+ "security.self_enter.public.title": "Request access",
284
+ "security.self_enter.public.description": "Submit a self-registration request for review.",
285
+ "security.self_enter.public.name": "Name",
286
+ "security.self_enter.public.email": "Email",
287
+ "security.self_enter.public.password": "Password",
288
+ "security.self_enter.public.submit": "Send request",
289
+ "security.self_enter.public.success": "Self-registration request sent successfully.",
290
+ "security.self_enter.public.error": "We could not send the self-registration request.",
291
+ "security.self_enter.public.disabled": "Self-registration is not enabled in this environment.",
292
+ "security.self_enter.public.confirm.description": "Enter the verification code sent to {email} to continue.",
293
+ "security.self_enter.public.confirm.code": "Verification code",
294
+ "security.self_enter.public.confirm.submit": "Confirm code",
295
+ "security.self_enter.public.confirm.resend": "Resend code",
296
+ "security.self_enter.public.confirm.code_sent": "We sent a verification code to your email.",
297
+ "security.self_enter.public.confirm.resend_success": "A new verification code was sent successfully.",
298
+ "security.self_enter.public.confirm.resend_error": "We could not resend the verification code.",
299
+ "security.self_enter.public.confirm.error": "We could not confirm the verification code.",
300
+ "security.self_enter.public.confirm.validation.code_required": "Enter the verification code.",
301
+ "security.self_enter.public.approval_pending": "Registration submitted for approval.",
302
+ "security.self_enter.invitation.title": "Complete invited registration",
303
+ "security.self_enter.invitation.description": "Finish the registration started from your invitation link.",
304
+ "security.self_enter.invitation.notice": "This registration was started by invitation. Your email is locked to the invited address.",
305
+ "security.self_enter.invitation.loading": "Validating invitation link...",
306
+ "security.self_enter.invitation.submit": "Complete registration",
307
+ "security.self_enter.invitation.success": "Registration completed successfully.",
308
+ "security.self_enter.invitation.error": "We could not complete the invited registration.",
309
+ "security.self_enter.invitation.approval_pending": "Registration completed, awaiting approval.",
310
+ "security.self_enter.invitation.invalid": "The invitation link is invalid or has expired.",
311
+ "security.self_enter.invitation.consumed": "This invitation link has already been used.",
312
+ "security.self_enter.invitation.email_mismatch": "The invited email does not match the registration request.",
313
+ "security.self_enter.invitation_admin.title": "Send invitation",
314
+ "security.self_enter.menu.title": "Self-enter",
315
+ "security.self_enter.invitation_admin.nav_title": "Invitation sending",
316
+ "security.self_enter.invitation_admin.page_description": "Create and resend self-enter invitations.",
317
+ "security.self_enter.invitation_admin.description": "Start a self-registration request for a specific email and send the invitation link.",
318
+ "security.self_enter.invitation_admin.form_title": "Send invitation",
319
+ "security.self_enter.invitation_admin.email": "Email",
320
+ "security.self_enter.invitation_admin.name": "Name",
321
+ "security.self_enter.invitation_admin.submit": "Send invitation",
322
+ "security.self_enter.invitation_admin.success": "Invitation sent successfully.",
323
+ "security.self_enter.invitation_admin.error": "We could not send the invitation.",
324
+ "security.self_enter.invitation_admin.duplicate_email": "A user or active self-registration request already exists for this email.",
325
+ "security.self_enter.invitation_admin.list_title": "Pending invitations",
326
+ "security.self_enter.invitation_admin.list_empty": "No pending invitations were found.",
327
+ "security.self_enter.invitation_admin.column.invited_by": "Invited by",
328
+ "security.self_enter.invitation_admin.column.expires_at": "Invitation expires at",
329
+ "security.self_enter.invitation_admin.resend": "Resend invitation",
330
+ "security.self_enter.invitation_admin.resend_success": "Invitation resent successfully.",
331
+ "security.self_enter.invitation_admin.resend_error": "We could not resend the invitation.",
332
+ "security.self_enter.approval.title": "Self-enter approvals",
333
+ "security.self_enter.approval.description": "Review and approve or reject pending self-registration requests.",
334
+ "security.self_enter.approval.search_placeholder": "Search by name or email",
335
+ "security.self_enter.approval.empty": "No self-registration requests are pending.",
336
+ "security.self_enter.approval.column.name": "Name",
337
+ "security.self_enter.approval.column.email": "Email",
338
+ "security.self_enter.approval.column.requested_at": "Requested at",
339
+ "security.self_enter.approval.load_error": "We could not load the pending self-registration requests.",
340
+ "security.self_enter.approval.action_error": "We could not complete the requested approval action.",
341
+ "security.self_enter.approval.approve": "Approve",
342
+ "security.self_enter.approval.reject": "Reject",
343
+ "security.self_enter.approval.approve_title": "Approve request",
344
+ "security.self_enter.approval.approve_message": "Approve the selected self-registration request?",
345
+ "security.self_enter.approval.reject_title": "Reject request",
346
+ "security.self_enter.approval.reject_message": "Reject the selected self-registration request?",
347
+ "security.self_enter.approval.approve_success": "Self-registration request approved successfully.",
348
+ "security.self_enter.approval.reject_success": "Self-registration request rejected successfully.",
349
+ "security.api_keys.title": "API keys",
350
+ "security.api_keys.description": "Create and revoke integration keys for allowed roles.",
351
+ "security.api_keys.search_placeholder": "Search by description",
352
+ "security.api_keys.empty": "No API keys available.",
353
+ "security.api_keys.filter_role": "Filter by role",
354
+ "security.api_keys.form.name": "Description",
355
+ "security.api_keys.form.role": "Role",
356
+ "security.api_keys.form.expires_days": "Expires in days",
357
+ "security.api_keys.form.create": "Create API key",
358
+ "security.api_keys.form.success": "API key created successfully.",
359
+ "security.api_keys.form.error": "We could not create the API key.",
360
+ "security.api_keys.form.secret": "Copy the generated key now. It will not be shown again.",
361
+ "security.api_keys.column.name": "Description",
362
+ "security.api_keys.column.role": "Role",
363
+ "security.api_keys.column.status": "Status",
364
+ "security.api_keys.column.expires_at": "Expires at",
365
+ "security.api_keys.column.last_used_at": "Last used",
366
+ "security.api_keys.revoke": "Revoke",
367
+ "security.api_keys.revoke_title": "Revoke API key",
368
+ "security.api_keys.revoke_message": "Revoke the selected API key?",
369
+ "security.api_keys.revoke_success": "API key revoked successfully.",
370
+ "security.api_keys.revoke_error": "We could not revoke the API key.",
371
+ };
372
+ const ptBr = {
373
+ "security.guard.loading.title": "Validando acesso",
374
+ "security.guard.loading.description": "O modulo de seguranca esta restaurando a sessao atual.",
375
+ "security.guard.loading.message": "Carregando autenticacao e permissoes.",
376
+ "security.guard.redirecting.title": "Redirecionando para o login",
377
+ "security.guard.redirecting.description": "Esta tela exige uma sessao autenticada.",
378
+ "security.guard.redirecting.message": "Redirecionando para o fluxo de login.",
379
+ "security.guard.unauthorized.title": "Acesso negado",
380
+ "security.guard.unauthorized.description": "As permissoes atuais nao permitem acessar esta tela.",
381
+ "security.guard.unauthorized.message": "Solicite a permissao necessaria ou use outra conta.",
382
+ "security.guard.unauthorized.action": "Ir para o login",
383
+ "security.common.readonly": "Acesso somente leitura",
384
+ "security.common.loading": "Carregando...",
385
+ "security.common.actions": "Acoes",
386
+ "security.common.search": "Buscar",
387
+ "security.common.no_results": "Nenhum registro encontrado.",
388
+ "security.common.back": "Voltar",
389
+ "security.common.cancel": "Cancelar",
390
+ "security.common.save": "Salvar",
391
+ "security.common.field_required": "Preencha este campo.",
392
+ "security.common.delete": "Excluir",
393
+ "security.common.create": "Criar",
394
+ "security.common.refresh": "Atualizar",
395
+ "security.common.enabled": "Ativo",
396
+ "security.common.disabled": "Inativo",
397
+ "security.common.server_connection_error": "Erro ao conectar ao servidor",
398
+ "security.common.yes": "Sim",
399
+ "security.common.no": "Nao",
400
+ "security.common.search_hint": "Digite pelo menos 3 caracteres para buscar.",
401
+ "security.common.confirm.title": "Confirmar acao",
402
+ "security.dashboard.title": "Dashboard",
403
+ "security.dashboard.description": "Use o menu de navegacao para acessar os modulos disponiveis para o seu perfil.",
404
+ "security.dashboard.hero.title": "Bem-vindo, {user}",
405
+ "security.dashboard.hero.description": "Selecione um modulo no menu lateral ou use os atalhos abaixo.",
406
+ "security.dashboard.menu.group.access": "Gestao de acesso",
407
+ "security.dashboard.menu.group.workspace": "Workspace",
408
+ "security.dashboard.menu.search_placeholder": "Buscar modulo...",
409
+ "security.dashboard.menu.empty": "Nenhum modulo com permissao de leitura esta disponivel para esta conta.",
410
+ "security.dashboard.quick_access.title": "Acesso rapido",
411
+ "security.dashboard.open": "Abrir",
412
+ "security.dashboard.user.subtitle": "Usuario autenticado",
413
+ "security.login.title": "Entrar",
414
+ "security.login.description": "Acesse a plataforma com suas credenciais e permissoes.",
415
+ "security.login.email": "Email",
416
+ "security.login.password": "Senha",
417
+ "security.login.validation.email_required": "Informe o email para continuar.",
418
+ "security.login.validation.password_required": "Informe a senha para continuar.",
419
+ "security.login.submit": "Iniciar sessao",
420
+ "security.login.forgot_password": "Esqueceu a senha?",
421
+ "security.login.branding_message": "Bem-vindo ao {productName}.",
422
+ "security.login.logo_alt": "Logo do {productName}",
423
+ "security.login.signup_prompt": "Ainda nao tem uma conta?",
424
+ "security.login.signup_action": "Cadastre-se",
425
+ "security.login.change_password_required": "Voce precisa alterar sua senha antes de continuar.",
426
+ "security.forgot_password.title": "Esqueci minha senha",
427
+ "security.forgot_password.description": "Solicite o email de confirmacao para redefinir a senha.",
428
+ "security.forgot_password.new_password": "Nova senha",
429
+ "security.forgot_password.confirm_password": "Confirmar nova senha",
430
+ "security.forgot_password.validation.email_required": "Informe o email da conta.",
431
+ "security.forgot_password.validation.new_password_required": "Informe a nova senha.",
432
+ "security.forgot_password.validation.confirm_password_required": "Confirme a nova senha.",
433
+ "security.forgot_password.submit": "Enviar solicitacao",
434
+ "security.forgot_password.confirm.title": "Confirmando alteracao de senha",
435
+ "security.forgot_password.confirm.description": "Estamos validando o token de redefinicao e concluindo a troca da senha.",
436
+ "security.forgot_password.confirm.loading": "Concluindo alteracao de senha...",
437
+ "security.forgot_password.confirm.error": "Nao foi possivel confirmar a alteracao de senha com este link.",
438
+ "security.forgot_password.confirm.invalid_token": "O link de confirmacao e invalido ou expirou. Solicite uma nova redefinicao de senha para continuar.",
439
+ "security.forgot_password.confirm.request_new": "Solicitar nova redefinicao",
440
+ "security.forgot_password.success_page.title": "Senha alterada com sucesso",
441
+ "security.forgot_password.success_page.description": "Sua senha foi atualizada. Agora voce ja pode entrar com a nova senha.",
442
+ "security.forgot_password.success_page.enter": "Entrar",
443
+ "security.welcome.title": "Bem-vindo",
444
+ "security.welcome.description": "Estamos validando o link de confirmacao da sua conta.",
445
+ "security.welcome.loading": "Confirmando sua conta...",
446
+ "security.welcome.success": "Seu email foi confirmado. Agora voce pode entrar.",
447
+ "security.welcome.error": "Nao foi possivel confirmar a sua conta com este link.",
448
+ "security.welcome.invalid_token": "O link de confirmacao e invalido ou expirou.",
449
+ "security.welcome.enter": "Ir para o login",
450
+ "security.auth.two_factor.validation.code_required": "Informe o codigo de verificacao.",
451
+ "security.auth.two_factor.title": "Verificacao em dois fatores",
452
+ "security.auth.two_factor.description": "Digite o codigo de verificacao para concluir o acesso.",
453
+ "security.auth.two_factor.code": "Codigo de verificacao",
454
+ "security.auth.two_factor.hint": "Enviamos um codigo de 6 digitos para o seu email. Informe-o para continuar.",
455
+ "security.auth.two_factor.hint_email": "Um email foi enviado com o codigo de verificacao. Verifique sua caixa de entrada e informe o codigo para continuar.",
456
+ "security.auth.two_factor.hint_totp": "Verifique o aplicativo de authenticator e informe o codigo gerado para continuar.",
457
+ "security.auth.two_factor.hint_whatsapp": "Verifique o codigo enviado para o WhatsApp e informe-o para continuar.",
458
+ "security.auth.two_factor.hint_generic": "Informe o codigo de verificacao para continuar.",
459
+ "security.auth.two_factor.submit": "Validar codigo",
460
+ "security.auth.two_factor.success": "Verificacao em dois fatores concluida com sucesso.",
461
+ "security.auth.two_factor.error": "Nao foi possivel validar o codigo de dois fatores.",
462
+ "security.auth.two_factor.missing": "Nenhuma verificacao pendente de dois fatores foi encontrada.",
463
+ "security.auth.two_factor.resend": "Reenviar email",
464
+ "security.auth.two_factor.resend_success": "Novo email de verificacao enviado com sucesso.",
465
+ "security.auth.two_factor.resend_error": "Nao foi possivel reenviar o email de verificacao.",
466
+ "security.users.list.title": "Usuarios",
467
+ "security.users.list.description": "Gerencie usuarios, estado de acesso e associacoes de roles.",
468
+ "security.users.list.search_placeholder": "Buscar por nome ou email",
469
+ "security.users.list.new": "Novo usuario",
470
+ "security.users.list.empty": "Nenhum usuario disponivel.",
471
+ "security.users.list.column.name": "Nome",
472
+ "security.users.list.column.email": "Email",
473
+ "security.users.list.column.whatsapp": "WhatsApp",
474
+ "security.users.list.column.roles": "Roles",
475
+ "security.users.list.column.status": "Status",
476
+ "security.users.list.action.view": "Visualizar",
477
+ "security.users.list.action.edit": "Editar",
478
+ "security.users.list.action.delete": "Excluir",
479
+ "security.users.list.delete_title": "Excluir usuario",
480
+ "security.users.list.delete_message": "Excluir o usuario selecionado?",
481
+ "security.users.list.delete_success": "Usuario excluido com sucesso.",
482
+ "security.users.list.delete_error": "Nao foi possivel excluir o usuario selecionado.",
483
+ "security.users.form.title_new": "Criar usuario",
484
+ "security.users.form.title_edit": "Editar usuario",
485
+ "security.users.form.description_new": "Crie um usuario e associe roles e empresas.",
486
+ "security.users.form.description_edit": "Atualize os campos do usuario, roles e escopo de empresa.",
487
+ "security.users.form.email": "Email",
488
+ "security.users.form.name": "Nome",
489
+ "security.users.form.password": "Senha",
490
+ "security.users.form.whatsapp": "WhatsApp",
491
+ "security.users.form.name_min_words": "Informe pelo menos nome e sobrenome.",
492
+ "security.users.form.active": "Ativo",
493
+ "security.users.form.change_password_required": "Exigir troca de senha",
494
+ "security.users.form.roles": "Roles",
495
+ "security.users.form.roles_available": "Roles disponiveis",
496
+ "security.users.form.roles_selected": "Roles selecionadas",
497
+ "security.users.form.companies": "Empresas",
498
+ "security.users.form.companies_available": "Empresas disponiveis",
499
+ "security.users.form.companies_selected": "Empresas selecionadas",
500
+ "security.users.form.roles_required": "Selecione pelo menos uma role.",
501
+ "security.users.form.companies_required": "Selecione pelo menos uma empresa.",
502
+ "security.users.form.save_success": "Usuario salvo com sucesso.",
503
+ "security.users.form.save_error": "Nao foi possivel salvar o usuario.",
504
+ "security.users.form.delete_success": "Usuario excluido com sucesso.",
505
+ "security.users.form.load_error": "Nao foi possivel carregar o usuario.",
506
+ "security.roles.list.title": "Roles",
507
+ "security.roles.list.description": "Gerencie roles e as permissoes atribuidas a cada perfil.",
508
+ "security.roles.list.search_placeholder": "Buscar por nome da role",
509
+ "security.roles.list.new": "Nova role",
510
+ "security.roles.list.empty": "Nenhuma role disponivel.",
511
+ "security.roles.list.column.name": "Role",
512
+ "security.roles.list.column.permissions": "Permissoes",
513
+ "security.roles.list.column.integration": "Integracao",
514
+ "security.roles.list.action.view": "Visualizar",
515
+ "security.roles.list.action.edit": "Editar",
516
+ "security.roles.list.action.delete": "Excluir",
517
+ "security.roles.list.delete_title": "Excluir role",
518
+ "security.roles.list.delete_message": "Excluir a role selecionada?",
519
+ "security.roles.form.title_new": "Criar role",
520
+ "security.roles.form.title_edit": "Editar role",
521
+ "security.roles.form.description_new": "Crie uma role e escolha as permissoes disponiveis para ela.",
522
+ "security.roles.form.description_edit": "Atualize os dados da role e as permissoes atribuidas.",
523
+ "security.roles.form.name": "Nome da role",
524
+ "security.roles.form.description": "Descricao",
525
+ "security.roles.form.for_integration": "Disponivel para integracoes",
526
+ "security.roles.form.permissions": "Permissoes",
527
+ "security.roles.form.permissions_hint": "Selecione uma ou mais permissoes para esta role.",
528
+ "security.roles.form.permissions_required": "Selecione pelo menos uma permissao.",
529
+ "security.roles.form.permissions_empty": "O backend nao retornou permissoes para selecao.",
530
+ "security.profile.title": "Meu perfil",
531
+ "security.profile.description": "Revise os dados da conta e acesse as configuracoes pessoais de seguranca.",
532
+ "security.profile.login": "Login",
533
+ "security.profile.roles": "Perfis atuais",
534
+ "security.profile.account_actions": "Acoes da conta",
535
+ "security.profile.edit_account": "Editar meu perfil",
536
+ "security.profile.enable_two_factor": "Habilitar dois fatores",
537
+ "security.profile.disable_two_factor": "Desabilitar dois fatores",
538
+ "security.profile.change_password": "Alterar senha",
539
+ "security.profile.no_user_record": "A conta atual nao esta vinculada a um usuario exposto pelo backend.",
540
+ "security.profile.load_error": "Nao foi possivel carregar os dados da conta atual.",
541
+ "security.profile.save_success": "Perfil atualizado com sucesso.",
542
+ "security.profile.save_error": "Nao foi possivel atualizar o perfil atual.",
543
+ "security.profile.email": "Email",
544
+ "security.profile.name": "Nome",
545
+ "security.profile.name_min_words": "Informe pelo menos nome e sobrenome.",
546
+ "security.profile.whatsapp": "WhatsApp",
547
+ "security.profile.avatar": "Foto do perfil",
548
+ "security.profile.avatar_hint": "Envie um avatar para personalizar a sua conta.",
549
+ "security.profile.avatar_upload": "Enviar avatar",
550
+ "security.profile.avatar_invalid_file": "Selecione um arquivo de imagem valido.",
551
+ "security.profile.avatar_upload_success": "Avatar atualizado com sucesso.",
552
+ "security.profile.avatar_upload_error": "Nao foi possivel atualizar o avatar.",
553
+ "security.companies.list.title": "Empresas",
554
+ "security.companies.list.description": "Gerencie empresas e dados do representante.",
555
+ "security.companies.list.search_placeholder": "Buscar por nome da empresa ou CNPJ",
556
+ "security.companies.list.new": "Nova empresa",
557
+ "security.companies.list.empty": "Nenhuma empresa disponivel.",
558
+ "security.companies.list.column.trade_name": "Nome fantasia",
559
+ "security.companies.list.column.corporate_name": "Razao social",
560
+ "security.companies.list.column.cnpj": "CNPJ",
561
+ "security.companies.list.column.location": "Localizacao",
562
+ "security.companies.list.column.status": "Status",
563
+ "security.companies.list.action.view": "Visualizar",
564
+ "security.companies.list.action.edit": "Editar",
565
+ "security.companies.list.action.delete": "Excluir",
566
+ "security.companies.list.delete_title": "Excluir empresa",
567
+ "security.companies.list.delete_message": "Excluir a empresa selecionada?",
568
+ "security.companies.list.delete_success": "Empresa excluida com sucesso.",
569
+ "security.companies.list.delete_error": "Nao foi possivel excluir a empresa selecionada.",
570
+ "security.companies.form.title_new": "Criar empresa",
571
+ "security.companies.form.title_edit": "Editar empresa",
572
+ "security.companies.form.description_new": "Cadastre uma empresa e os dados do representante.",
573
+ "security.companies.form.description_edit": "Atualize o cadastro da empresa e os dados do representante.",
574
+ "security.companies.form.address_section": "Endereco",
575
+ "security.companies.form.legal_representative_section": "Responsavel legal",
576
+ "security.companies.form.cnpj": "CNPJ",
577
+ "security.companies.form.cnpj_lookup_error": "CNPJ nao encontrado na base publica.",
578
+ "security.companies.form.corporate_name": "Razao social",
579
+ "security.companies.form.trade_name": "Nome fantasia",
580
+ "security.companies.form.active": "Ativa",
581
+ "security.companies.form.addr_street": "Rua",
582
+ "security.companies.form.addr_number": "Numero",
583
+ "security.companies.form.addr_complement": "Complemento",
584
+ "security.companies.form.addr_postal_code": "CEP",
585
+ "security.companies.form.postal_code_lookup_error": "CEP nao encontrado no ViaCEP.",
586
+ "security.companies.form.addr_city": "Cidade",
587
+ "security.companies.form.addr_state": "UF",
588
+ "security.companies.form.addr_district": "Bairro",
589
+ "security.companies.form.addr_phone": "Telefone",
590
+ "security.companies.form.rep_first_name": "Nome do responsavel",
591
+ "security.companies.form.rep_last_name": "Sobrenome do responsavel",
592
+ "security.companies.form.rep_cpf": "CPF do responsavel",
593
+ "security.companies.form.rep_phone": "Telefone do responsavel",
594
+ "security.companies.form.rep_whatsapp": "WhatsApp do responsavel",
595
+ "security.companies.form.rep_email": "Email do responsavel",
596
+ "security.change_password.title": "Alterar senha",
597
+ "security.change_password.description": "Atualize a senha da conta atual.",
598
+ "security.change_password.current_password": "Senha atual",
599
+ "security.change_password.new_password": "Nova senha",
600
+ "security.change_password.confirm_password": "Confirmar nova senha",
601
+ "security.change_password.validation.current_password_required": "Informe a senha atual.",
602
+ "security.change_password.validation.new_password_required": "Informe a nova senha.",
603
+ "security.change_password.validation.confirm_password_required": "Confirme a nova senha.",
604
+ "security.change_password.submit": "Atualizar senha",
605
+ "security.two_factor.title": "Autenticacao em dois fatores",
606
+ "security.two_factor.description": "Habilite, confirme ou desabilite o segundo fator da conta atual.",
607
+ "security.two_factor.status": "Status atual",
608
+ "security.two_factor.primary_method": "Metodo principal",
609
+ "security.two_factor.available_methods": "Metodos disponiveis",
610
+ "security.two_factor.backup_codes": "Codigos de backup",
611
+ "security.two_factor.backup_codes_hint": "Guarde estes codigos em um local seguro. Eles sao exibidos apenas uma vez.",
612
+ "security.two_factor.download_backup_codes_csv": "Baixar CSV",
613
+ "security.two_factor.method": "Metodo",
614
+ "security.two_factor.enable": "Habilitar 2FA",
615
+ "security.two_factor.confirm_totp": "Confirmar TOTP",
616
+ "security.two_factor.disable": "Desabilitar 2FA",
617
+ "security.two_factor.code": "Codigo de 2FA",
618
+ "security.two_factor.password": "Senha",
619
+ "security.two_factor.backup_code": "Codigo de backup",
620
+ "security.two_factor.disable_hint": "Informe a senha da conta ou um codigo de backup para desabilitar a autenticacao em dois fatores.",
621
+ "security.two_factor.disable_validation": "Informe a senha da conta ou um codigo de backup para continuar.",
622
+ "security.two_factor.disable_hint_totp": "Informe o codigo TOTP, a senha da conta ou um codigo de backup para desabilitar a autenticacao em dois fatores.",
623
+ "security.two_factor.disable_validation_totp": "Informe o codigo TOTP, a senha da conta ou um codigo de backup para continuar.",
624
+ "security.two_factor.qr_code": "QR code",
625
+ "security.two_factor.otpauth_url": "URL do autenticador",
626
+ "security.two_factor.success_enable": "Autenticacao em dois fatores habilitada com sucesso.",
627
+ "security.two_factor.success_confirm": "Configuracao TOTP confirmada com sucesso.",
628
+ "security.two_factor.success_disable": "Autenticacao em dois fatores desabilitada com sucesso.",
629
+ "security.two_factor.error": "Nao foi possivel concluir a acao solicitada de 2FA.",
630
+ "security.self_enter.public.title": "Solicitar acesso",
631
+ "security.self_enter.public.description": "Envie uma solicitacao de auto-cadastro para avaliacao.",
632
+ "security.self_enter.public.name": "Nome",
633
+ "security.self_enter.public.email": "Email",
634
+ "security.self_enter.public.password": "Senha",
635
+ "security.self_enter.public.submit": "Enviar solicitacao",
636
+ "security.self_enter.public.success": "Solicitacao de auto-cadastro enviada com sucesso.",
637
+ "security.self_enter.public.error": "Nao foi possivel enviar a solicitacao de auto-cadastro.",
638
+ "security.self_enter.public.disabled": "O auto-cadastro nao esta habilitado neste ambiente.",
639
+ "security.self_enter.public.confirm.description": "Informe o codigo de verificacao enviado para {email} para continuar.",
640
+ "security.self_enter.public.confirm.code": "Codigo de verificacao",
641
+ "security.self_enter.public.confirm.submit": "Confirmar codigo",
642
+ "security.self_enter.public.confirm.resend": "Reenviar codigo",
643
+ "security.self_enter.public.confirm.code_sent": "Enviamos um codigo de verificacao para o seu email.",
644
+ "security.self_enter.public.confirm.resend_success": "Um novo codigo de verificacao foi enviado com sucesso.",
645
+ "security.self_enter.public.confirm.resend_error": "Nao foi possivel reenviar o codigo de verificacao.",
646
+ "security.self_enter.public.confirm.error": "Nao foi possivel confirmar o codigo de verificacao.",
647
+ "security.self_enter.public.confirm.validation.code_required": "Informe o codigo de verificacao.",
648
+ "security.self_enter.public.approval_pending": "Cadastro enviado para aprovacao.",
649
+ "security.self_enter.invitation.title": "Concluir cadastro por convite",
650
+ "security.self_enter.invitation.description": "Finalize o cadastro iniciado a partir do seu link de convite.",
651
+ "security.self_enter.invitation.notice": "Este cadastro foi iniciado por convite. O email esta bloqueado no endereco convidado.",
652
+ "security.self_enter.invitation.loading": "Validando o link de convite...",
653
+ "security.self_enter.invitation.submit": "Concluir cadastro",
654
+ "security.self_enter.invitation.success": "Cadastro concluido com sucesso.",
655
+ "security.self_enter.invitation.error": "Nao foi possivel concluir o cadastro por convite.",
656
+ "security.self_enter.invitation.approval_pending": "Cadastro concluido, aguardando aprovacao.",
657
+ "security.self_enter.invitation.invalid": "O link de convite e invalido ou expirou.",
658
+ "security.self_enter.invitation.consumed": "Este link de convite ja foi usado.",
659
+ "security.self_enter.invitation.email_mismatch": "O email do convite nao corresponde ao cadastro.",
660
+ "security.self_enter.invitation_admin.title": "Enviar convite",
661
+ "security.self_enter.menu.title": "Auto-cadastro",
662
+ "security.self_enter.invitation_admin.nav_title": "Envio de convites",
663
+ "security.self_enter.invitation_admin.page_description": "Crie e reenvie convites de auto-cadastro.",
664
+ "security.self_enter.invitation_admin.description": "Inicie uma solicitacao de auto-cadastro para um email especifico e envie o link de convite.",
665
+ "security.self_enter.invitation_admin.form_title": "Enviar convite",
666
+ "security.self_enter.invitation_admin.email": "Email",
667
+ "security.self_enter.invitation_admin.name": "Nome",
668
+ "security.self_enter.invitation_admin.submit": "Enviar convite",
669
+ "security.self_enter.invitation_admin.success": "Convite enviado com sucesso.",
670
+ "security.self_enter.invitation_admin.error": "Nao foi possivel enviar o convite.",
671
+ "security.self_enter.invitation_admin.duplicate_email": "Ja existe um usuario ou uma solicitacao ativa de auto-cadastro para este email.",
672
+ "security.self_enter.invitation_admin.list_title": "Convites pendentes",
673
+ "security.self_enter.invitation_admin.list_empty": "Nenhum convite pendente foi encontrado.",
674
+ "security.self_enter.invitation_admin.column.invited_by": "Convidado por",
675
+ "security.self_enter.invitation_admin.column.expires_at": "Convite expira em",
676
+ "security.self_enter.invitation_admin.resend": "Reenviar convite",
677
+ "security.self_enter.invitation_admin.resend_success": "Convite reenviado com sucesso.",
678
+ "security.self_enter.invitation_admin.resend_error": "Nao foi possivel reenviar o convite.",
679
+ "security.self_enter.approval.title": "Aprovacoes de auto-cadastro",
680
+ "security.self_enter.approval.description": "Revise e aprove ou reprove as solicitacoes pendentes de auto-cadastro.",
681
+ "security.self_enter.approval.search_placeholder": "Buscar por nome ou email",
682
+ "security.self_enter.approval.empty": "Nao ha solicitacoes pendentes de auto-cadastro.",
683
+ "security.self_enter.approval.column.name": "Nome",
684
+ "security.self_enter.approval.column.email": "Email",
685
+ "security.self_enter.approval.column.requested_at": "Data/hora do cadastro",
686
+ "security.self_enter.approval.load_error": "Nao foi possivel carregar as solicitacoes pendentes.",
687
+ "security.self_enter.approval.action_error": "Nao foi possivel concluir a acao de aprovacao.",
688
+ "security.self_enter.approval.approve": "Aprovar",
689
+ "security.self_enter.approval.reject": "Reprovar",
690
+ "security.self_enter.approval.approve_title": "Aprovar solicitacao",
691
+ "security.self_enter.approval.approve_message": "Deseja aprovar a solicitacao de auto-cadastro selecionada?",
692
+ "security.self_enter.approval.reject_title": "Reprovar solicitacao",
693
+ "security.self_enter.approval.reject_message": "Deseja reprovar a solicitacao de auto-cadastro selecionada?",
694
+ "security.self_enter.approval.approve_success": "Solicitacao de auto-cadastro aprovada com sucesso.",
695
+ "security.self_enter.approval.reject_success": "Solicitacao de auto-cadastro reprovada com sucesso.",
696
+ "security.api_keys.title": "API keys",
697
+ "security.api_keys.description": "Crie e revogue chaves de integracao para roles permitidas.",
698
+ };
699
+ const es = {
700
+ "security.common.readonly": "Solo lectura",
701
+ "security.common.loading": "Cargando...",
702
+ "security.common.actions": "Acciones",
703
+ "security.common.search": "Buscar",
704
+ "security.common.no_results": "No se encontraron registros.",
705
+ "security.common.back": "Volver",
706
+ "security.common.cancel": "Cancelar",
707
+ "security.common.save": "Guardar",
708
+ "security.common.field_required": "Complete este campo.",
709
+ "security.common.delete": "Eliminar",
710
+ "security.common.create": "Crear",
711
+ "security.common.refresh": "Actualizar",
712
+ "security.common.enabled": "Activo",
713
+ "security.common.disabled": "Inactivo",
714
+ "security.common.server_connection_error": "Error al conectar con el servidor",
715
+ "security.common.yes": "Si",
716
+ "security.common.no": "No",
717
+ "security.dashboard.title": "Panel",
718
+ "security.dashboard.menu.group.access": "Gestion de acceso",
719
+ "security.dashboard.menu.group.workspace": "Espacio de trabajo",
720
+ "security.dashboard.menu.search_placeholder": "Buscar modulo...",
721
+ "security.dashboard.user.subtitle": "Usuario autenticado",
722
+ "security.profile.title": "Mi perfil",
723
+ "security.profile.edit_account": "Editar mi perfil",
724
+ "security.profile.enable_two_factor": "Activar dos factores",
725
+ "security.profile.disable_two_factor": "Desactivar dos factores",
726
+ "security.profile.avatar": "Foto del perfil",
727
+ "security.profile.avatar_hint": "Sube un avatar para personalizar tu cuenta.",
728
+ "security.profile.avatar_upload": "Subir avatar",
729
+ "security.profile.avatar_invalid_file": "Selecciona un archivo de imagen valido.",
730
+ "security.profile.avatar_upload_success": "Avatar actualizado correctamente.",
731
+ "security.profile.avatar_upload_error": "No se pudo actualizar el avatar.",
732
+ "security.change_password.title": "Cambiar contrasena",
733
+ "security.two_factor.title": "Autenticacion de dos factores",
734
+ "security.self_enter.public.title": "Solicitar acceso",
735
+ "security.self_enter.public.description": "Envia una solicitud de auto-registro para revision.",
736
+ "security.self_enter.public.name": "Nombre",
737
+ "security.self_enter.public.email": "Correo",
738
+ "security.self_enter.public.password": "Contrasena",
739
+ "security.self_enter.public.submit": "Enviar solicitud",
740
+ "security.self_enter.public.success": "La solicitud de auto-registro se envio correctamente.",
741
+ "security.self_enter.public.error": "No pudimos enviar la solicitud de auto-registro.",
742
+ "security.self_enter.public.disabled": "El auto-registro no esta habilitado en este entorno.",
743
+ "security.self_enter.public.confirm.description": "Ingresa el codigo de verificacion enviado a {email} para continuar.",
744
+ "security.self_enter.public.confirm.code": "Codigo de verificacion",
745
+ "security.self_enter.public.confirm.submit": "Confirmar codigo",
746
+ "security.self_enter.public.confirm.resend": "Reenviar codigo",
747
+ "security.self_enter.public.confirm.code_sent": "Enviamos un codigo de verificacion a tu correo.",
748
+ "security.self_enter.public.confirm.resend_success": "Se envio un nuevo codigo de verificacion correctamente.",
749
+ "security.self_enter.public.confirm.resend_error": "No pudimos reenviar el codigo de verificacion.",
750
+ "security.self_enter.public.confirm.error": "No pudimos confirmar el codigo de verificacion.",
751
+ "security.self_enter.public.confirm.validation.code_required": "Ingresa el codigo de verificacion.",
752
+ "security.self_enter.public.approval_pending": "Registro enviado para aprobacion.",
753
+ "security.self_enter.invitation.title": "Completar registro por invitacion",
754
+ "security.self_enter.invitation.description": "Finaliza el registro iniciado desde tu enlace de invitacion.",
755
+ "security.self_enter.invitation.notice": "Este registro fue iniciado por invitacion. El correo queda bloqueado con la direccion invitada.",
756
+ "security.self_enter.invitation.loading": "Validando enlace de invitacion...",
757
+ "security.self_enter.invitation.submit": "Completar registro",
758
+ "security.self_enter.invitation.success": "Registro completado correctamente.",
759
+ "security.self_enter.invitation.error": "No pudimos completar el registro por invitacion.",
760
+ "security.self_enter.invitation.approval_pending": "Registro completado, pendiente de aprobacion.",
761
+ "security.self_enter.invitation.invalid": "El enlace de invitacion es invalido o ha expirado.",
762
+ "security.self_enter.invitation.consumed": "Este enlace de invitacion ya fue usado.",
763
+ "security.self_enter.invitation.email_mismatch": "El correo de la invitacion no coincide con el registro.",
764
+ "security.self_enter.invitation_admin.title": "Enviar invitacion",
765
+ "security.self_enter.menu.title": "Auto-registro",
766
+ "security.self_enter.invitation_admin.nav_title": "Envio de invitaciones",
767
+ "security.self_enter.invitation_admin.page_description": "Crea y reenvia invitaciones de auto-registro.",
768
+ "security.self_enter.invitation_admin.description": "Inicia una solicitud de auto-registro para un correo especifico y envia el enlace de invitacion.",
769
+ "security.self_enter.invitation_admin.form_title": "Enviar invitacion",
770
+ "security.self_enter.invitation_admin.email": "Correo",
771
+ "security.self_enter.invitation_admin.name": "Nombre",
772
+ "security.self_enter.invitation_admin.submit": "Enviar invitacion",
773
+ "security.self_enter.invitation_admin.success": "Invitacion enviada correctamente.",
774
+ "security.self_enter.invitation_admin.error": "No pudimos enviar la invitacion.",
775
+ "security.self_enter.invitation_admin.duplicate_email": "Ya existe un usuario o una solicitud activa de auto-registro para este correo.",
776
+ "security.self_enter.invitation_admin.list_title": "Invitaciones pendientes",
777
+ "security.self_enter.invitation_admin.list_empty": "No se encontraron invitaciones pendientes.",
778
+ "security.self_enter.invitation_admin.column.invited_by": "Invitado por",
779
+ "security.self_enter.invitation_admin.column.expires_at": "La invitacion expira",
780
+ "security.self_enter.invitation_admin.resend": "Reenviar invitacion",
781
+ "security.self_enter.invitation_admin.resend_success": "Invitacion reenviada correctamente.",
782
+ "security.self_enter.invitation_admin.resend_error": "No pudimos reenviar la invitacion.",
783
+ "security.self_enter.approval.title": "Aprobaciones de auto-registro",
784
+ "security.self_enter.approval.description": "Revise y apruebe o rechace solicitudes pendientes de auto-registro.",
785
+ "security.self_enter.approval.search_placeholder": "Buscar por nombre o correo",
786
+ "security.self_enter.approval.empty": "No hay solicitudes pendientes de auto-registro.",
787
+ "security.self_enter.approval.column.name": "Nombre",
788
+ "security.self_enter.approval.column.email": "Correo",
789
+ "security.self_enter.approval.column.requested_at": "Fecha de solicitud",
790
+ "security.self_enter.approval.approve": "Aprobar",
791
+ "security.self_enter.approval.reject": "Rechazar",
792
+ "security.users.list.title": "Usuarios",
793
+ "security.companies.list.title": "Empresas",
794
+ "security.roles.list.title": "Roles",
795
+ "security.api_keys.title": "Claves API",
796
+ "security.login.signout": "Salir",
797
+ };
798
+ const fr = {
799
+ "security.common.readonly": "Lecture seule",
800
+ "security.common.loading": "Chargement...",
801
+ "security.common.actions": "Actions",
802
+ "security.common.search": "Rechercher",
803
+ "security.common.no_results": "Aucun enregistrement trouve.",
804
+ "security.common.back": "Retour",
805
+ "security.common.cancel": "Annuler",
806
+ "security.common.save": "Enregistrer",
807
+ "security.common.field_required": "Renseignez ce champ.",
808
+ "security.common.delete": "Supprimer",
809
+ "security.common.create": "Creer",
810
+ "security.common.refresh": "Actualiser",
811
+ "security.common.enabled": "Actif",
812
+ "security.common.disabled": "Inactif",
813
+ "security.common.server_connection_error": "Erreur de connexion au serveur",
814
+ "security.common.yes": "Oui",
815
+ "security.common.no": "Non",
816
+ "security.dashboard.title": "Tableau de bord",
817
+ "security.dashboard.menu.group.access": "Gestion des acces",
818
+ "security.dashboard.menu.group.workspace": "Espace de travail",
819
+ "security.dashboard.menu.search_placeholder": "Rechercher un module...",
820
+ "security.dashboard.user.subtitle": "Utilisateur authentifie",
821
+ "security.profile.title": "Mon profil",
822
+ "security.profile.edit_account": "Modifier mon profil",
823
+ "security.profile.enable_two_factor": "Activer le double facteur",
824
+ "security.profile.disable_two_factor": "Desactiver le double facteur",
825
+ "security.profile.avatar": "Photo de profil",
826
+ "security.profile.avatar_hint": "Importez un avatar pour personnaliser votre compte.",
827
+ "security.profile.avatar_upload": "Importer un avatar",
828
+ "security.profile.avatar_invalid_file": "Selectionnez un fichier image valide.",
829
+ "security.profile.avatar_upload_success": "Avatar mis a jour avec succes.",
830
+ "security.profile.avatar_upload_error": "Impossible de mettre a jour l avatar.",
831
+ "security.change_password.title": "Changer le mot de passe",
832
+ "security.two_factor.title": "Authentification a deux facteurs",
833
+ "security.self_enter.public.title": "Demander un acces",
834
+ "security.self_enter.public.description": "Envoyez une demande d auto-inscription pour revision.",
835
+ "security.self_enter.public.name": "Nom",
836
+ "security.self_enter.public.email": "Email",
837
+ "security.self_enter.public.password": "Mot de passe",
838
+ "security.self_enter.public.submit": "Envoyer la demande",
839
+ "security.self_enter.public.success": "La demande d auto-inscription a ete envoyee avec succes.",
840
+ "security.self_enter.public.error": "Nous n avons pas pu envoyer la demande d auto-inscription.",
841
+ "security.self_enter.public.disabled": "L auto-inscription n est pas activee dans cet environnement.",
842
+ "security.self_enter.public.confirm.description": "Saisissez le code de verification envoye a {email} pour continuer.",
843
+ "security.self_enter.public.confirm.code": "Code de verification",
844
+ "security.self_enter.public.confirm.submit": "Confirmer le code",
845
+ "security.self_enter.public.confirm.resend": "Renvoyer le code",
846
+ "security.self_enter.public.confirm.code_sent": "Nous avons envoye un code de verification a votre email.",
847
+ "security.self_enter.public.confirm.resend_success": "Un nouveau code de verification a ete envoye avec succes.",
848
+ "security.self_enter.public.confirm.resend_error": "Nous n avons pas pu renvoyer le code de verification.",
849
+ "security.self_enter.public.confirm.error": "Nous n avons pas pu confirmer le code de verification.",
850
+ "security.self_enter.public.confirm.validation.code_required": "Saisissez le code de verification.",
851
+ "security.self_enter.public.approval_pending": "Inscription envoyee pour approbation.",
852
+ "security.self_enter.invitation.title": "Completer l inscription sur invitation",
853
+ "security.self_enter.invitation.description": "Terminez l inscription demarree depuis votre lien d invitation.",
854
+ "security.self_enter.invitation.notice": "Cette inscription a ete demarree par invitation. Votre email est verrouille sur l adresse invitee.",
855
+ "security.self_enter.invitation.loading": "Validation du lien d invitation...",
856
+ "security.self_enter.invitation.submit": "Completer l inscription",
857
+ "security.self_enter.invitation.success": "Inscription terminee avec succes.",
858
+ "security.self_enter.invitation.error": "Nous n avons pas pu terminer l inscription sur invitation.",
859
+ "security.self_enter.invitation.approval_pending": "Inscription terminee, en attente d approbation.",
860
+ "security.self_enter.invitation.invalid": "Le lien d invitation est invalide ou a expire.",
861
+ "security.self_enter.invitation.consumed": "Ce lien d invitation a deja ete utilise.",
862
+ "security.self_enter.invitation.email_mismatch": "L email de l invitation ne correspond pas a l inscription.",
863
+ "security.self_enter.invitation_admin.title": "Envoyer une invitation",
864
+ "security.self_enter.menu.title": "Auto-inscription",
865
+ "security.self_enter.invitation_admin.nav_title": "Envoi d invitations",
866
+ "security.self_enter.invitation_admin.page_description": "Creez et renvoyez des invitations d auto-inscription.",
867
+ "security.self_enter.invitation_admin.description": "Demarrez une demande d auto-inscription pour un email specifique et envoyez le lien d invitation.",
868
+ "security.self_enter.invitation_admin.form_title": "Envoyer une invitation",
869
+ "security.self_enter.invitation_admin.email": "Email",
870
+ "security.self_enter.invitation_admin.name": "Nom",
871
+ "security.self_enter.invitation_admin.submit": "Envoyer l invitation",
872
+ "security.self_enter.invitation_admin.success": "Invitation envoyee avec succes.",
873
+ "security.self_enter.invitation_admin.error": "Nous n avons pas pu envoyer l invitation.",
874
+ "security.self_enter.invitation_admin.duplicate_email": "Un utilisateur ou une demande d auto-inscription active existe deja pour cet email.",
875
+ "security.self_enter.invitation_admin.list_title": "Invitations en attente",
876
+ "security.self_enter.invitation_admin.list_empty": "Aucune invitation en attente n a ete trouvee.",
877
+ "security.self_enter.invitation_admin.column.invited_by": "Invite par",
878
+ "security.self_enter.invitation_admin.column.expires_at": "Expiration de l invitation",
879
+ "security.self_enter.invitation_admin.resend": "Renvoyer l invitation",
880
+ "security.self_enter.invitation_admin.resend_success": "Invitation renvoyee avec succes.",
881
+ "security.self_enter.invitation_admin.resend_error": "Nous n avons pas pu renvoyer l invitation.",
882
+ "security.self_enter.approval.title": "Approbations d'auto-inscription",
883
+ "security.self_enter.approval.description": "Examinez et approuvez ou rejetez les demandes d'auto-inscription en attente.",
884
+ "security.self_enter.approval.search_placeholder": "Rechercher par nom ou email",
885
+ "security.self_enter.approval.empty": "Aucune demande d'auto-inscription en attente.",
886
+ "security.self_enter.approval.column.name": "Nom",
887
+ "security.self_enter.approval.column.email": "Email",
888
+ "security.self_enter.approval.column.requested_at": "Date de demande",
889
+ "security.self_enter.approval.approve": "Approuver",
890
+ "security.self_enter.approval.reject": "Rejeter",
891
+ "security.users.list.title": "Utilisateurs",
892
+ "security.companies.list.title": "Entreprises",
893
+ "security.roles.list.title": "Roles",
894
+ "security.api_keys.title": "Cles API",
895
+ "security.login.signout": "Se deconnecter",
896
+ };
897
+ const ptPt = {
898
+ "security.common.readonly": "Acesso apenas de leitura",
899
+ "security.common.loading": "A carregar...",
900
+ "security.common.actions": "Acoes",
901
+ "security.common.search": "Pesquisar",
902
+ "security.common.no_results": "Nenhum registo encontrado.",
903
+ "security.common.save": "Guardar",
904
+ "security.common.delete": "Eliminar",
905
+ "security.common.create": "Criar",
906
+ "security.common.refresh": "Atualizar",
907
+ "security.common.server_connection_error": "Erro ao conectar ao servidor",
908
+ "security.dashboard.menu.group.access": "Gestao de acessos",
909
+ "security.profile.edit_account": "Editar o meu perfil",
910
+ "security.profile.avatar": "Fotografia do perfil",
911
+ "security.profile.avatar_hint": "Carregue um avatar para personalizar a sua conta.",
912
+ "security.profile.avatar_upload": "Carregar avatar",
913
+ "security.profile.avatar_invalid_file": "Selecione um ficheiro de imagem valido.",
914
+ "security.profile.avatar_upload_success": "Avatar atualizado com sucesso.",
915
+ "security.profile.avatar_upload_error": "Nao foi possivel atualizar o avatar.",
916
+ "security.self_enter.public.title": "Solicitar acesso",
917
+ "security.self_enter.public.description": "Envie um pedido de auto-registo para revisao.",
918
+ "security.self_enter.public.name": "Nome",
919
+ "security.self_enter.public.email": "Email",
920
+ "security.self_enter.public.password": "Palavra-passe",
921
+ "security.self_enter.public.submit": "Enviar pedido",
922
+ "security.self_enter.public.success": "Pedido de auto-registo enviado com sucesso.",
923
+ "security.self_enter.public.error": "Nao foi possivel enviar o pedido de auto-registo.",
924
+ "security.self_enter.public.disabled": "O auto-registo nao esta ativo neste ambiente.",
925
+ "security.self_enter.public.confirm.description": "Introduza o codigo de verificacao enviado para {email} para continuar.",
926
+ "security.self_enter.public.confirm.code": "Codigo de verificacao",
927
+ "security.self_enter.public.confirm.submit": "Confirmar codigo",
928
+ "security.self_enter.public.confirm.resend": "Reenviar codigo",
929
+ "security.self_enter.public.confirm.code_sent": "Enviamos um codigo de verificacao para o seu email.",
930
+ "security.self_enter.public.confirm.resend_success": "Foi enviado um novo codigo de verificacao com sucesso.",
931
+ "security.self_enter.public.confirm.resend_error": "Nao foi possivel reenviar o codigo de verificacao.",
932
+ "security.self_enter.public.confirm.error": "Nao foi possivel confirmar o codigo de verificacao.",
933
+ "security.self_enter.public.confirm.validation.code_required": "Introduza o codigo de verificacao.",
934
+ "security.self_enter.public.approval_pending": "Cadastro enviado para aprovacao.",
935
+ "security.self_enter.invitation.title": "Concluir registo por convite",
936
+ "security.self_enter.invitation.description": "Conclua o registo iniciado a partir do seu link de convite.",
937
+ "security.self_enter.invitation.notice": "Este registo foi iniciado por convite. O email fica bloqueado no endereco convidado.",
938
+ "security.self_enter.invitation.loading": "A validar o link de convite...",
939
+ "security.self_enter.invitation.submit": "Concluir registo",
940
+ "security.self_enter.invitation.success": "Registo concluido com sucesso.",
941
+ "security.self_enter.invitation.error": "Nao foi possivel concluir o registo por convite.",
942
+ "security.self_enter.invitation.approval_pending": "Cadastro concluido, aguardando aprovacao.",
943
+ "security.self_enter.invitation.invalid": "O link de convite e invalido ou expirou.",
944
+ "security.self_enter.invitation.consumed": "Este link de convite ja foi utilizado.",
945
+ "security.self_enter.invitation.email_mismatch": "O email do convite nao corresponde ao cadastro.",
946
+ "security.self_enter.invitation_admin.title": "Enviar convite",
947
+ "security.self_enter.menu.title": "Auto-registo",
948
+ "security.self_enter.invitation_admin.nav_title": "Envio de convites",
949
+ "security.self_enter.invitation_admin.page_description": "Crie e reenvie convites de auto-registo.",
950
+ "security.self_enter.invitation_admin.description": "Inicie um pedido de auto-registo para um email especifico e envie o link de convite.",
951
+ "security.self_enter.invitation_admin.form_title": "Enviar convite",
952
+ "security.self_enter.invitation_admin.email": "Email",
953
+ "security.self_enter.invitation_admin.name": "Nome",
954
+ "security.self_enter.invitation_admin.submit": "Enviar convite",
955
+ "security.self_enter.invitation_admin.success": "Convite enviado com sucesso.",
956
+ "security.self_enter.invitation_admin.error": "Nao foi possivel enviar o convite.",
957
+ "security.self_enter.invitation_admin.duplicate_email": "Ja existe um utilizador ou um pedido ativo de auto-registo para este email.",
958
+ "security.self_enter.invitation_admin.list_title": "Convites pendentes",
959
+ "security.self_enter.invitation_admin.list_empty": "Nao foram encontrados convites pendentes.",
960
+ "security.self_enter.invitation_admin.column.invited_by": "Convidado por",
961
+ "security.self_enter.invitation_admin.column.expires_at": "Convite expira em",
962
+ "security.self_enter.invitation_admin.resend": "Reenviar convite",
963
+ "security.self_enter.invitation_admin.resend_success": "Convite reenviado com sucesso.",
964
+ "security.self_enter.invitation_admin.resend_error": "Nao foi possivel reenviar o convite.",
965
+ "security.self_enter.approval.title": "Aprovacoes de auto-registo",
966
+ "security.self_enter.approval.description": "Reveja e aprove ou rejeite pedidos pendentes de auto-registo.",
967
+ "security.self_enter.approval.search_placeholder": "Pesquisar por nome ou email",
968
+ "security.self_enter.approval.empty": "Nao existem pedidos pendentes de auto-registo.",
969
+ "security.self_enter.approval.column.requested_at": "Data do pedido",
970
+ };
971
+ export const securityMessages = {
972
+ en,
973
+ es: {
974
+ ...en,
975
+ ...es,
976
+ },
977
+ fr: {
978
+ ...en,
979
+ ...fr,
980
+ },
981
+ "pt-BR": {
982
+ ...en,
983
+ ...ptBr,
984
+ },
985
+ "pt-PT": {
986
+ ...en,
987
+ ...ptBr,
988
+ ...ptPt,
989
+ },
990
+ };