@greatapps/common 1.1.665 → 1.1.667
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/account/ConfigurationsMyAccountModal.mjs +8 -6
- package/dist/components/account/ConfigurationsMyAccountModal.mjs.map +1 -1
- package/dist/components/account/ConfirmDeleteAccountModal.mjs +20 -19
- package/dist/components/account/ConfirmDeleteAccountModal.mjs.map +1 -1
- package/dist/components/account/ConfirmGlobalPreferencesModal.mjs +10 -11
- package/dist/components/account/ConfirmGlobalPreferencesModal.mjs.map +1 -1
- package/dist/components/account/DeleteAccountModal.mjs +34 -28
- package/dist/components/account/DeleteAccountModal.mjs.map +1 -1
- package/dist/components/account/DisableTwoFactorAuthModal.mjs +7 -5
- package/dist/components/account/DisableTwoFactorAuthModal.mjs.map +1 -1
- package/dist/components/account/IsntPossibleDeleteAccountModal.mjs +8 -9
- package/dist/components/account/IsntPossibleDeleteAccountModal.mjs.map +1 -1
- package/dist/components/account/TwoFactorAuthModal.mjs +22 -23
- package/dist/components/account/TwoFactorAuthModal.mjs.map +1 -1
- package/dist/components/account/hooks/useChangeEmailForm.mjs +5 -3
- package/dist/components/account/hooks/useChangeEmailForm.mjs.map +1 -1
- package/dist/components/account/hooks/useChangePasswordForm.mjs +26 -3
- package/dist/components/account/hooks/useChangePasswordForm.mjs.map +1 -1
- package/dist/components/account/hooks/useChangePhoneForm.mjs +18 -9
- package/dist/components/account/hooks/useChangePhoneForm.mjs.map +1 -1
- package/dist/components/account/hooks/useDisableTwoFactorAuthForm.mjs +26 -3
- package/dist/components/account/hooks/useDisableTwoFactorAuthForm.mjs.map +1 -1
- package/dist/components/account/hooks/useOtpVerification.mjs +19 -3
- package/dist/components/account/hooks/useOtpVerification.mjs.map +1 -1
- package/dist/components/account/hooks/useTwoFactorAuthForm.mjs +27 -4
- package/dist/components/account/hooks/useTwoFactorAuthForm.mjs.map +1 -1
- package/dist/components/account/sections/ChangeEmailModal.mjs +25 -28
- package/dist/components/account/sections/ChangeEmailModal.mjs.map +1 -1
- package/dist/components/account/sections/ChangePasswordSection.mjs +8 -6
- package/dist/components/account/sections/ChangePasswordSection.mjs.map +1 -1
- package/dist/components/account/sections/ChangePhoneModal.mjs +24 -27
- package/dist/components/account/sections/ChangePhoneModal.mjs.map +1 -1
- package/dist/components/account/sections/MyProfileSection.mjs +30 -21
- package/dist/components/account/sections/MyProfileSection.mjs.map +1 -1
- package/dist/components/account/sections/PreferencesSection.mjs +41 -23
- package/dist/components/account/sections/PreferencesSection.mjs.map +1 -1
- package/dist/components/account/sections/SecuritySection.mjs +11 -9
- package/dist/components/account/sections/SecuritySection.mjs.map +1 -1
- package/dist/components/account/sections/TokenSection.mjs +24 -8
- package/dist/components/account/sections/TokenSection.mjs.map +1 -1
- package/dist/components/embeds/CrispEmbed.mjs +9 -6
- package/dist/components/embeds/CrispEmbed.mjs.map +1 -1
- package/dist/i18n/config.mjs +13 -0
- package/dist/i18n/config.mjs.map +1 -0
- package/dist/i18n/country-language.mjs +74 -0
- package/dist/i18n/country-language.mjs.map +1 -0
- package/dist/i18n/messages/en-us.mjs +211 -0
- package/dist/i18n/messages/en-us.mjs.map +1 -0
- package/dist/i18n/messages/es-es.mjs +211 -0
- package/dist/i18n/messages/es-es.mjs.map +1 -0
- package/dist/i18n/messages/index.mjs +16 -0
- package/dist/i18n/messages/index.mjs.map +1 -0
- package/dist/i18n/messages/pt-br.mjs +216 -0
- package/dist/i18n/messages/pt-br.mjs.map +1 -0
- package/dist/i18n/normalize.mjs +12 -0
- package/dist/i18n/normalize.mjs.map +1 -0
- package/dist/i18n/resolve-locale.mjs +42 -0
- package/dist/i18n/resolve-locale.mjs.map +1 -0
- package/dist/i18n.mjs +14 -0
- package/dist/i18n.mjs.map +1 -0
- package/dist/providers/auth.provider.mjs +9 -1
- package/dist/providers/auth.provider.mjs.map +1 -1
- package/dist/server.mjs +2 -0
- package/dist/server.mjs.map +1 -1
- package/dist/utils/intl/cookie-domain.mjs +17 -0
- package/dist/utils/intl/cookie-domain.mjs.map +1 -0
- package/dist/utils/intl/locale-cookie.mjs +13 -0
- package/dist/utils/intl/locale-cookie.mjs.map +1 -0
- package/dist/utils/intl/locales.mjs +3 -2
- package/dist/utils/intl/locales.mjs.map +1 -1
- package/package.json +7 -1
- package/src/components/account/ConfigurationsMyAccountModal.tsx +10 -6
- package/src/components/account/ConfirmDeleteAccountModal.tsx +22 -13
- package/src/components/account/ConfirmGlobalPreferencesModal.tsx +12 -10
- package/src/components/account/DeleteAccountModal.tsx +34 -24
- package/src/components/account/DisableTwoFactorAuthModal.tsx +11 -6
- package/src/components/account/IsntPossibleDeleteAccountModal.tsx +8 -6
- package/src/components/account/TwoFactorAuthModal.tsx +33 -29
- package/src/components/account/hooks/useChangeEmailForm.tsx +5 -3
- package/src/components/account/hooks/useChangePasswordForm.tsx +20 -6
- package/src/components/account/hooks/useChangePhoneForm.tsx +16 -10
- package/src/components/account/hooks/useDisableTwoFactorAuthForm.tsx +20 -6
- package/src/components/account/hooks/useOtpVerification.tsx +16 -4
- package/src/components/account/hooks/useTwoFactorAuthForm.tsx +21 -7
- package/src/components/account/sections/ChangeEmailModal.tsx +35 -21
- package/src/components/account/sections/ChangePasswordSection.tsx +10 -6
- package/src/components/account/sections/ChangePhoneModal.tsx +50 -22
- package/src/components/account/sections/MyProfileSection.tsx +30 -22
- package/src/components/account/sections/PreferencesSection.tsx +45 -24
- package/src/components/account/sections/SecuritySection.tsx +19 -10
- package/src/components/account/sections/TokenSection.tsx +22 -10
- package/src/components/embeds/CrispEmbed.tsx +12 -8
- package/src/i18n/config.ts +17 -0
- package/src/i18n/country-language.ts +60 -0
- package/src/i18n/messages/en-us.ts +226 -0
- package/src/i18n/messages/es-es.ts +227 -0
- package/src/i18n/messages/index.ts +24 -0
- package/src/i18n/messages/pt-br.ts +236 -0
- package/src/i18n/normalize.ts +15 -0
- package/src/i18n/resolve-locale.ts +77 -0
- package/src/i18n.ts +10 -0
- package/src/providers/auth.provider.tsx +13 -1
- package/src/server.ts +2 -0
- package/src/utils/intl/cookie-domain.ts +29 -0
- package/src/utils/intl/locale-cookie.ts +18 -0
- package/src/utils/intl/locales.ts +3 -2
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* en-us translation catalog for @greatapps/common components.
|
|
3
|
+
* Consumer apps merge this object under the `common` namespace.
|
|
4
|
+
* Mirror the module structure of `pt-br.ts` (the source of truth).
|
|
5
|
+
*/
|
|
6
|
+
const messages = {
|
|
7
|
+
actions: {
|
|
8
|
+
save: 'Save',
|
|
9
|
+
saveChanges: 'Save changes',
|
|
10
|
+
cancel: 'Cancel',
|
|
11
|
+
confirm: 'Confirm',
|
|
12
|
+
delete: 'Delete',
|
|
13
|
+
edit: 'Edit',
|
|
14
|
+
close: 'Close',
|
|
15
|
+
back: 'Back',
|
|
16
|
+
continue: 'Continue',
|
|
17
|
+
add: 'Add',
|
|
18
|
+
remove: 'Remove',
|
|
19
|
+
search: 'Search',
|
|
20
|
+
loading: 'Loading...',
|
|
21
|
+
saving: 'Saving...',
|
|
22
|
+
sending: 'Sending...',
|
|
23
|
+
copy: 'Copy',
|
|
24
|
+
copied: 'Copied',
|
|
25
|
+
},
|
|
26
|
+
|
|
27
|
+
validations: {
|
|
28
|
+
required: 'Required field',
|
|
29
|
+
invalidEmail: 'Invalid email',
|
|
30
|
+
invalidPhone: 'Invalid phone number',
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
preferences: {
|
|
34
|
+
title: 'Preferences',
|
|
35
|
+
companyName: 'Company name',
|
|
36
|
+
companyNamePlaceholder: 'Enter the company name',
|
|
37
|
+
language: 'Language',
|
|
38
|
+
languagePlaceholder: 'Select the language',
|
|
39
|
+
languageSearch: 'Search language...',
|
|
40
|
+
currency: 'Currency',
|
|
41
|
+
currencyPlaceholder: 'Select the currency',
|
|
42
|
+
currencySearch: 'Search currency...',
|
|
43
|
+
timeDisplay: 'Time display',
|
|
44
|
+
timezone: 'Time zone',
|
|
45
|
+
timezonePlaceholder: 'Select the time zone',
|
|
46
|
+
timezoneSearch: 'Search time zone...',
|
|
47
|
+
timeFormat: 'Time format',
|
|
48
|
+
timeFormatPlaceholder: 'Select the format',
|
|
49
|
+
savedSuccess: 'Preferences saved successfully',
|
|
50
|
+
saveError: 'Error saving preferences',
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
account: {
|
|
54
|
+
deleteAccount: {
|
|
55
|
+
title: 'Delete account',
|
|
56
|
+
description:
|
|
57
|
+
'This action is <b>irreversible</b>. By confirming, your account and all your data will be deleted.',
|
|
58
|
+
reasonLabel: 'Reason for cancellation',
|
|
59
|
+
reasonPlaceholder: 'Select',
|
|
60
|
+
descriptionLabel: 'Describe what led you to make this decision',
|
|
61
|
+
descriptionPlaceholder: 'Explain your decision...',
|
|
62
|
+
charactersCount: '{count}/400 characters',
|
|
63
|
+
passwordLabel: 'Password',
|
|
64
|
+
passwordPlaceholder: 'Enter your password',
|
|
65
|
+
submit: 'Delete account',
|
|
66
|
+
requiredFields: 'Fill in all required fields',
|
|
67
|
+
reasons: {
|
|
68
|
+
noFeature: 'The tool lacks a feature I need',
|
|
69
|
+
technical: 'I encountered technical issues or errors in the system',
|
|
70
|
+
support: 'I had issues with support or customer service',
|
|
71
|
+
updates: 'Updates take longer than expected',
|
|
72
|
+
temporary: 'The cancellation is temporary',
|
|
73
|
+
other: 'Other reason',
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
confirmDelete: {
|
|
77
|
+
title: 'Sorry to see you go!',
|
|
78
|
+
warning:
|
|
79
|
+
'All your <b>{count} pages</b> will be permanently deleted. This action is <b>irreversible!</b>',
|
|
80
|
+
sessionExpired: 'Session expired. Fill in the fields again.',
|
|
81
|
+
success: 'Account deleted successfully',
|
|
82
|
+
error: 'Error deleting account. Please try again.',
|
|
83
|
+
keepAccount: 'Keep my account',
|
|
84
|
+
deleteAnyway: 'Delete anyway',
|
|
85
|
+
deleting: 'Deleting...',
|
|
86
|
+
},
|
|
87
|
+
cantDelete: {
|
|
88
|
+
title: 'Unable to delete account',
|
|
89
|
+
description:
|
|
90
|
+
'You have an active subscription. To delete your account, <b>first cancel your subscription</b> on the Subscription page and then try again.',
|
|
91
|
+
confirm: 'Ok, I understand',
|
|
92
|
+
goToSubscription: 'Go to subscription',
|
|
93
|
+
},
|
|
94
|
+
twoFactor: {
|
|
95
|
+
title: 'Two-factor authentication',
|
|
96
|
+
instructions:
|
|
97
|
+
'Install an authenticator app on your mobile device (e.g., <link>Google Authenticator</link>), scan the QR Code on the side or copy the key in the app, and then enter the 6-digit code generated to continue.',
|
|
98
|
+
qrAlt: 'QR Code for two-factor authentication',
|
|
99
|
+
retry: 'Try again',
|
|
100
|
+
pasteDigits: 'Paste the 6 digits below',
|
|
101
|
+
activating: 'Activating...',
|
|
102
|
+
activate: 'Activate authentication',
|
|
103
|
+
recoveryTitle: 'Security codes',
|
|
104
|
+
recoveryHeading: 'Save these emergency recovery codes',
|
|
105
|
+
recoveryText1:
|
|
106
|
+
'If you lose access to your phone, you will not be able to log into your account without a two-factor code.',
|
|
107
|
+
recoveryText2: 'Print, copy, or write the codes below in a safe location.',
|
|
108
|
+
copyCodes: 'Copy codes',
|
|
109
|
+
finish: 'Finish',
|
|
110
|
+
codesCopied: 'Codes copied successfully',
|
|
111
|
+
generateError: 'Error generating QR Code. Try again.',
|
|
112
|
+
confirmError: 'Error confirming code. Try again.',
|
|
113
|
+
disableTitle: 'Disable 2FA authentication',
|
|
114
|
+
disableDescription:
|
|
115
|
+
'Enter the 6-digit code from your authenticator app to confirm disabling.',
|
|
116
|
+
authenticatorCode: 'Authenticator code',
|
|
117
|
+
disabling: 'Disabling...',
|
|
118
|
+
disable: 'Disable 2FA',
|
|
119
|
+
disabledSuccess: 'Two-factor authentication disabled',
|
|
120
|
+
disableError: 'Error disabling 2FA. Try again.',
|
|
121
|
+
invalidCode: 'Invalid code',
|
|
122
|
+
codeResent: 'Code resent',
|
|
123
|
+
resendError: 'Error resending code. Try again.',
|
|
124
|
+
},
|
|
125
|
+
profile: {
|
|
126
|
+
title: 'My profile',
|
|
127
|
+
avatarAlt: 'User photo',
|
|
128
|
+
changePhoto: 'Change photo',
|
|
129
|
+
name: 'First name',
|
|
130
|
+
namePlaceholder: 'Enter your first name',
|
|
131
|
+
lastName: 'Last name',
|
|
132
|
+
lastNamePlaceholder: 'Enter your last name',
|
|
133
|
+
gender: 'Gender',
|
|
134
|
+
genderPlaceholder: 'Select your gender',
|
|
135
|
+
phone: 'Phone',
|
|
136
|
+
change: 'Change',
|
|
137
|
+
accessData: 'Access data',
|
|
138
|
+
email: 'Email',
|
|
139
|
+
savedSuccess: 'Profile updated successfully',
|
|
140
|
+
saveError: 'Error updating profile',
|
|
141
|
+
},
|
|
142
|
+
otp: {
|
|
143
|
+
validationCode: 'Validation code',
|
|
144
|
+
incorrectCode: 'Incorrect code',
|
|
145
|
+
resend: 'Resend code',
|
|
146
|
+
resendIn: 'Resend in <b>{time}</b>',
|
|
147
|
+
validating: 'Validating...',
|
|
148
|
+
},
|
|
149
|
+
changeEmail: {
|
|
150
|
+
title: 'Change email',
|
|
151
|
+
confirm: 'Change email',
|
|
152
|
+
sentCodeTo: 'We sent a validation code to email <b>{email}.</b>',
|
|
153
|
+
updateTitle: 'Update contact email',
|
|
154
|
+
updateDescription: 'Enter your new email to keep your contact information updated.',
|
|
155
|
+
newEmail: 'New email',
|
|
156
|
+
newEmailPlaceholder: 'Enter your new email',
|
|
157
|
+
emailChanged: 'Email changed successfully',
|
|
158
|
+
emailExistsError: 'Email already exists or an error occurred. Please try again later.',
|
|
159
|
+
},
|
|
160
|
+
changePhone: {
|
|
161
|
+
titleEdit: 'Change phone',
|
|
162
|
+
titleAdd: 'Add phone',
|
|
163
|
+
sentCodeTo: 'We sent a validation code to your current number <b>{phone}.</b>',
|
|
164
|
+
confirm: 'Change phone',
|
|
165
|
+
updateTitle: 'Update contact phone',
|
|
166
|
+
addTitle: 'Add contact phone',
|
|
167
|
+
updateDescription: 'Enter the new number to keep your contact information updated.',
|
|
168
|
+
addDescription: 'Enter your phone number for contact.',
|
|
169
|
+
newNumber: 'New number',
|
|
170
|
+
numberLabel: 'Phone number',
|
|
171
|
+
phoneChanged: 'Phone changed',
|
|
172
|
+
phoneAdded: 'Phone added',
|
|
173
|
+
invalidNumber: 'Invalid phone number',
|
|
174
|
+
saveError: 'An error occurred while saving the phone number. Please try again later.',
|
|
175
|
+
numberExistsError: 'Number already exists or an error occurred. Please try again later.',
|
|
176
|
+
},
|
|
177
|
+
security: {
|
|
178
|
+
title: 'Security',
|
|
179
|
+
googleLinkedTitle: 'Google account linked',
|
|
180
|
+
googleLinkedDescription:
|
|
181
|
+
'Your account is linked to Google. If you unlink it, use "Forgot my password" to reset an email access password.',
|
|
182
|
+
unlinking: 'Unlinking...',
|
|
183
|
+
unlinkGoogle: 'Unlink Google',
|
|
184
|
+
unlinkError: 'Error unlinking Google account.',
|
|
185
|
+
deleteAccountDescription:
|
|
186
|
+
'This action is permanent and cannot be undone. All your data, projects, and settings will be permanently removed.',
|
|
187
|
+
deleteMyAccount: 'Delete my account',
|
|
188
|
+
},
|
|
189
|
+
token: {
|
|
190
|
+
title: 'Account token',
|
|
191
|
+
label: 'Token',
|
|
192
|
+
copySuccess: 'Token copied successfully',
|
|
193
|
+
copyError: 'Failed to copy token',
|
|
194
|
+
info: 'This token is unique to your account and allows API access. Do not share with third parties.',
|
|
195
|
+
docsLink: 'Access documentation',
|
|
196
|
+
},
|
|
197
|
+
changePassword: {
|
|
198
|
+
title: 'Change password',
|
|
199
|
+
currentPassword: 'Current password',
|
|
200
|
+
currentPasswordPlaceholder: 'Enter your current password',
|
|
201
|
+
newPassword: 'New password',
|
|
202
|
+
newPasswordPlaceholder: 'Enter your new password',
|
|
203
|
+
submit: 'Save new password',
|
|
204
|
+
changeError: 'Error changing password',
|
|
205
|
+
changedSuccess: 'Password changed successfully',
|
|
206
|
+
genericError: 'Error changing password. Try again.',
|
|
207
|
+
},
|
|
208
|
+
globalPreferences: {
|
|
209
|
+
title: 'Change global preferences',
|
|
210
|
+
srDescription: 'Confirmation of global account preferences change',
|
|
211
|
+
warning:
|
|
212
|
+
'You are changing settings that impact <b>all account users</b>. Do you want to confirm?',
|
|
213
|
+
},
|
|
214
|
+
configurations: {
|
|
215
|
+
title: 'Settings',
|
|
216
|
+
},
|
|
217
|
+
},
|
|
218
|
+
|
|
219
|
+
languages: {
|
|
220
|
+
'pt-br': 'Portuguese (Brazil)',
|
|
221
|
+
'en-us': 'English (US)',
|
|
222
|
+
'es-es': 'Spanish',
|
|
223
|
+
},
|
|
224
|
+
} as const;
|
|
225
|
+
|
|
226
|
+
export default messages;
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Catálogo de traducción es-es para los componentes de @greatapps/common.
|
|
3
|
+
* Las apps consumidoras combinan este objeto bajo el namespace `common`.
|
|
4
|
+
* Refleja la estructura de módulos de `pt-br.ts` (la fuente de verdad).
|
|
5
|
+
*/
|
|
6
|
+
const messages = {
|
|
7
|
+
actions: {
|
|
8
|
+
save: 'Guardar',
|
|
9
|
+
saveChanges: 'Guardar cambios',
|
|
10
|
+
cancel: 'Cancelar',
|
|
11
|
+
confirm: 'Confirmar',
|
|
12
|
+
delete: 'Eliminar',
|
|
13
|
+
edit: 'Editar',
|
|
14
|
+
close: 'Cerrar',
|
|
15
|
+
back: 'Volver',
|
|
16
|
+
continue: 'Continuar',
|
|
17
|
+
add: 'Agregar',
|
|
18
|
+
remove: 'Quitar',
|
|
19
|
+
search: 'Buscar',
|
|
20
|
+
loading: 'Cargando...',
|
|
21
|
+
saving: 'Guardando...',
|
|
22
|
+
sending: 'Enviando...',
|
|
23
|
+
copy: 'Copiar',
|
|
24
|
+
copied: 'Copiado',
|
|
25
|
+
},
|
|
26
|
+
|
|
27
|
+
validations: {
|
|
28
|
+
required: 'Campo obligatorio',
|
|
29
|
+
invalidEmail: 'Correo electrónico inválido',
|
|
30
|
+
invalidPhone: 'Teléfono inválido',
|
|
31
|
+
},
|
|
32
|
+
|
|
33
|
+
preferences: {
|
|
34
|
+
title: 'Preferencias',
|
|
35
|
+
companyName: 'Nombre de la empresa',
|
|
36
|
+
companyNamePlaceholder: 'Ingrese el nombre de la empresa',
|
|
37
|
+
language: 'Idioma',
|
|
38
|
+
languagePlaceholder: 'Seleccione el idioma',
|
|
39
|
+
languageSearch: 'Buscar idioma...',
|
|
40
|
+
currency: 'Moneda',
|
|
41
|
+
currencyPlaceholder: 'Seleccione la moneda',
|
|
42
|
+
currencySearch: 'Buscar moneda...',
|
|
43
|
+
timeDisplay: 'Visualización de hora',
|
|
44
|
+
timezone: 'Zona horaria',
|
|
45
|
+
timezonePlaceholder: 'Seleccione la zona horaria',
|
|
46
|
+
timezoneSearch: 'Buscar zona horaria...',
|
|
47
|
+
timeFormat: 'Formato de hora',
|
|
48
|
+
timeFormatPlaceholder: 'Seleccione el formato',
|
|
49
|
+
savedSuccess: 'Preferencias guardadas con éxito',
|
|
50
|
+
saveError: 'Error al guardar las preferencias',
|
|
51
|
+
},
|
|
52
|
+
|
|
53
|
+
account: {
|
|
54
|
+
deleteAccount: {
|
|
55
|
+
title: 'Eliminar cuenta',
|
|
56
|
+
description:
|
|
57
|
+
'Esta acción es <b>irreversible</b>. Al confirmar, su cuenta y todos sus datos serán eliminados.',
|
|
58
|
+
reasonLabel: 'Motivo de la cancelación',
|
|
59
|
+
reasonPlaceholder: 'Seleccionar',
|
|
60
|
+
descriptionLabel: 'Describa qué lo llevó a tomar esta decisión',
|
|
61
|
+
descriptionPlaceholder: 'Explique su decisión...',
|
|
62
|
+
charactersCount: '{count}/400 caracteres',
|
|
63
|
+
passwordLabel: 'Contraseña',
|
|
64
|
+
passwordPlaceholder: 'Ingrese su contraseña',
|
|
65
|
+
submit: 'Eliminar cuenta',
|
|
66
|
+
requiredFields: 'Complete todos los campos obligatorios',
|
|
67
|
+
reasons: {
|
|
68
|
+
noFeature: 'La herramienta no tiene una función que necesito',
|
|
69
|
+
technical: 'Encontré problemas técnicos o errores en el sistema',
|
|
70
|
+
support: 'Tuve problemas con el soporte o atención al cliente',
|
|
71
|
+
updates: 'Las actualizaciones tardan más de lo esperado',
|
|
72
|
+
temporary: 'La cancelación es temporal',
|
|
73
|
+
other: 'Otro motivo',
|
|
74
|
+
},
|
|
75
|
+
},
|
|
76
|
+
confirmDelete: {
|
|
77
|
+
title: '¡Qué pena verte partir!',
|
|
78
|
+
warning:
|
|
79
|
+
'Todas sus <b>{count} páginas</b> serán eliminadas permanentemente. ¡Esta acción es <b>irreversible!</b>',
|
|
80
|
+
sessionExpired: 'Sesión expirada. Complete los campos nuevamente.',
|
|
81
|
+
success: 'Cuenta eliminada exitosamente',
|
|
82
|
+
error: 'Error al eliminar la cuenta. Intente nuevamente.',
|
|
83
|
+
keepAccount: 'Mantener mi cuenta',
|
|
84
|
+
deleteAnyway: 'Eliminar de todas formas',
|
|
85
|
+
deleting: 'Eliminando...',
|
|
86
|
+
},
|
|
87
|
+
cantDelete: {
|
|
88
|
+
title: 'No es posible eliminar la cuenta',
|
|
89
|
+
description:
|
|
90
|
+
'Tiene una suscripción activa. Para eliminar su cuenta, <b>primero cancele su suscripción</b> en la página Suscripción e intente nuevamente.',
|
|
91
|
+
confirm: 'Ok, entendido',
|
|
92
|
+
goToSubscription: 'Ir a suscripción',
|
|
93
|
+
},
|
|
94
|
+
twoFactor: {
|
|
95
|
+
title: 'Autenticación de dos factores',
|
|
96
|
+
instructions:
|
|
97
|
+
'Instale una aplicación autenticadora en su dispositivo móvil (p. ej., <link>Google Authenticator</link>), escanee el código QR al lado o copie la clave en la aplicación y, a continuación, ingrese el código de 6 dígitos generado para continuar.',
|
|
98
|
+
qrAlt: 'Código QR para autenticación de dos factores',
|
|
99
|
+
retry: 'Intentar de nuevo',
|
|
100
|
+
pasteDigits: 'Pegue los 6 dígitos abajo',
|
|
101
|
+
activating: 'Activando...',
|
|
102
|
+
activate: 'Activar autenticación',
|
|
103
|
+
recoveryTitle: 'Códigos de seguridad',
|
|
104
|
+
recoveryHeading: 'Guarde estos códigos de recuperación de emergencia',
|
|
105
|
+
recoveryText1:
|
|
106
|
+
'Si pierde acceso a su teléfono, no podrá iniciar sesión en su cuenta sin un código de dos factores.',
|
|
107
|
+
recoveryText2: 'Imprima, copie o escriba los códigos a continuación en un lugar seguro.',
|
|
108
|
+
copyCodes: 'Copiar códigos',
|
|
109
|
+
finish: 'Finalizar',
|
|
110
|
+
codesCopied: 'Códigos copiados correctamente',
|
|
111
|
+
generateError: 'Error al generar el código QR. Intente de nuevo.',
|
|
112
|
+
confirmError: 'Error al confirmar el código. Intente de nuevo.',
|
|
113
|
+
disableTitle: 'Desactivar autenticación 2FA',
|
|
114
|
+
disableDescription:
|
|
115
|
+
'Ingrese el código de 6 dígitos de su aplicación autenticadora para confirmar la desactivación.',
|
|
116
|
+
authenticatorCode: 'Código del autenticador',
|
|
117
|
+
disabling: 'Desactivando...',
|
|
118
|
+
disable: 'Desactivar 2FA',
|
|
119
|
+
disabledSuccess: 'Autenticación de dos factores desactivada',
|
|
120
|
+
disableError: 'Error al desactivar 2FA. Intente de nuevo.',
|
|
121
|
+
invalidCode: 'Código inválido',
|
|
122
|
+
codeResent: 'Código reenviado',
|
|
123
|
+
resendError: 'Error al reenviar el código. Intente de nuevo.',
|
|
124
|
+
},
|
|
125
|
+
profile: {
|
|
126
|
+
title: 'Mi perfil',
|
|
127
|
+
avatarAlt: 'Foto del usuario',
|
|
128
|
+
changePhoto: 'Cambiar foto',
|
|
129
|
+
name: 'Nombre',
|
|
130
|
+
namePlaceholder: 'Ingrese su nombre',
|
|
131
|
+
lastName: 'Apellido',
|
|
132
|
+
lastNamePlaceholder: 'Ingrese su apellido',
|
|
133
|
+
gender: 'Género',
|
|
134
|
+
genderPlaceholder: 'Seleccione su género',
|
|
135
|
+
phone: 'Teléfono',
|
|
136
|
+
change: 'Cambiar',
|
|
137
|
+
accessData: 'Datos de acceso',
|
|
138
|
+
email: 'Correo electrónico',
|
|
139
|
+
savedSuccess: 'Perfil actualizado exitosamente',
|
|
140
|
+
saveError: 'Error al actualizar el perfil',
|
|
141
|
+
},
|
|
142
|
+
otp: {
|
|
143
|
+
validationCode: 'Código de validación',
|
|
144
|
+
incorrectCode: 'Código incorrecto',
|
|
145
|
+
resend: 'Reenviar código',
|
|
146
|
+
resendIn: 'Reenviar en <b>{time}</b>',
|
|
147
|
+
validating: 'Validando...',
|
|
148
|
+
},
|
|
149
|
+
changeEmail: {
|
|
150
|
+
title: 'Cambiar correo electrónico',
|
|
151
|
+
confirm: 'Cambiar correo electrónico',
|
|
152
|
+
sentCodeTo: 'Enviamos un código de validación al correo electrónico <b>{email}.</b>',
|
|
153
|
+
updateTitle: 'Actualizar correo electrónico de contacto',
|
|
154
|
+
updateDescription:
|
|
155
|
+
'Indique su nuevo correo electrónico para mantener su información de contacto actualizada.',
|
|
156
|
+
newEmail: 'Nuevo correo electrónico',
|
|
157
|
+
newEmailPlaceholder: 'Ingrese su nuevo correo electrónico',
|
|
158
|
+
emailChanged: 'Correo electrónico cambiado exitosamente',
|
|
159
|
+
emailExistsError: 'El correo electrónico ya existe o ocurrió un error. Intente más tarde.',
|
|
160
|
+
},
|
|
161
|
+
changePhone: {
|
|
162
|
+
titleEdit: 'Cambiar teléfono',
|
|
163
|
+
titleAdd: 'Agregar teléfono',
|
|
164
|
+
sentCodeTo: 'Enviamos un código de validación al número actual <b>{phone}.</b>',
|
|
165
|
+
confirm: 'Cambiar teléfono',
|
|
166
|
+
updateTitle: 'Actualizar teléfono de contacto',
|
|
167
|
+
addTitle: 'Agregar teléfono de contacto',
|
|
168
|
+
updateDescription: 'Indique el nuevo número para mantener su información de contacto actualizada.',
|
|
169
|
+
addDescription: 'Indique su número de teléfono para contacto.',
|
|
170
|
+
newNumber: 'Nuevo número',
|
|
171
|
+
numberLabel: 'Número de teléfono',
|
|
172
|
+
phoneChanged: 'Teléfono cambiado',
|
|
173
|
+
phoneAdded: 'Teléfono agregado',
|
|
174
|
+
invalidNumber: 'Número de teléfono inválido',
|
|
175
|
+
saveError: 'Ocurrió un error al guardar el número de teléfono. Intente más tarde.',
|
|
176
|
+
numberExistsError: 'El número ya existe o ocurrió un error. Intente más tarde.',
|
|
177
|
+
},
|
|
178
|
+
security: {
|
|
179
|
+
title: 'Seguridad',
|
|
180
|
+
googleLinkedTitle: 'Cuenta Google vinculada',
|
|
181
|
+
googleLinkedDescription:
|
|
182
|
+
'Su cuenta está vinculada a Google. Si la desvincula, utilice "Olvidé mi contraseña" para restablecer una contraseña de acceso por correo electrónico.',
|
|
183
|
+
unlinking: 'Desvinculando...',
|
|
184
|
+
unlinkGoogle: 'Desvincular Google',
|
|
185
|
+
unlinkError: 'Error al desvincular la cuenta Google.',
|
|
186
|
+
deleteAccountDescription:
|
|
187
|
+
'Esta acción es permanente y no se puede deshacer. Todos sus datos, proyectos y configuraciones serán eliminados permanentemente.',
|
|
188
|
+
deleteMyAccount: 'Eliminar mi cuenta',
|
|
189
|
+
},
|
|
190
|
+
token: {
|
|
191
|
+
title: 'Token de la cuenta',
|
|
192
|
+
label: 'Token',
|
|
193
|
+
copySuccess: 'Token copiado correctamente',
|
|
194
|
+
copyError: 'No se pudo copiar el token',
|
|
195
|
+
info: 'Este token es exclusivo de su cuenta y permite el acceso a la API. No lo comparta con terceros.',
|
|
196
|
+
docsLink: 'Acceder a la documentación',
|
|
197
|
+
},
|
|
198
|
+
changePassword: {
|
|
199
|
+
title: 'Cambiar contraseña',
|
|
200
|
+
currentPassword: 'Contraseña actual',
|
|
201
|
+
currentPasswordPlaceholder: 'Ingrese su contraseña actual',
|
|
202
|
+
newPassword: 'Nueva contraseña',
|
|
203
|
+
newPasswordPlaceholder: 'Ingrese su nueva contraseña',
|
|
204
|
+
submit: 'Guardar nueva contraseña',
|
|
205
|
+
changeError: 'Error al cambiar la contraseña',
|
|
206
|
+
changedSuccess: 'Contraseña cambiada correctamente',
|
|
207
|
+
genericError: 'Error al cambiar la contraseña. Intente nuevamente.',
|
|
208
|
+
},
|
|
209
|
+
globalPreferences: {
|
|
210
|
+
title: 'Cambiar preferencias globales',
|
|
211
|
+
srDescription: 'Confirmación de cambio de preferencias globales de la cuenta',
|
|
212
|
+
warning:
|
|
213
|
+
'Está cambiando configuraciones que impactan <b>todos los usuarios de la cuenta</b>. ¿Desea confirmar?',
|
|
214
|
+
},
|
|
215
|
+
configurations: {
|
|
216
|
+
title: 'Configuración',
|
|
217
|
+
},
|
|
218
|
+
},
|
|
219
|
+
|
|
220
|
+
languages: {
|
|
221
|
+
'pt-br': 'Portugués (Brasil)',
|
|
222
|
+
'en-us': 'Inglés (EE. UU.)',
|
|
223
|
+
'es-es': 'Español',
|
|
224
|
+
},
|
|
225
|
+
} as const;
|
|
226
|
+
|
|
227
|
+
export default messages;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { DEFAULT_LOCALE, Locale } from '../config';
|
|
2
|
+
import enUs from './en-us';
|
|
3
|
+
import esEs from './es-es';
|
|
4
|
+
import ptBr from './pt-br';
|
|
5
|
+
|
|
6
|
+
const COMMON_MESSAGES: Record<Locale, Record<string, unknown>> = {
|
|
7
|
+
'pt-br': ptBr,
|
|
8
|
+
'en-us': enUs,
|
|
9
|
+
'es-es': esEs,
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Forma das mensagens globais (derivada do pt-br, a fonte da verdade).
|
|
14
|
+
* Os apps usam este tipo para a type augmentation do next-intl (chaves `common.*` tipadas).
|
|
15
|
+
*/
|
|
16
|
+
export type CommonMessages = typeof ptBr;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Mensagens dos componentes da @greatapps/common para o locale informado.
|
|
20
|
+
* Os apps mesclam o resultado sob o namespace `common` ao montar o catálogo do next-intl.
|
|
21
|
+
*/
|
|
22
|
+
export function getCommonMessages(locale: Locale): Record<string, unknown> {
|
|
23
|
+
return COMMON_MESSAGES[locale] ?? COMMON_MESSAGES[DEFAULT_LOCALE];
|
|
24
|
+
}
|