underpost 2.7.1 → 2.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.
- package/.dockerignore +13 -13
- package/.env.development +7 -7
- package/.env.production +7 -7
- package/.env.test +7 -7
- package/.github/workflows/publish.yml +26 -0
- package/.nycrc +9 -9
- package/.prettierignore +12 -12
- package/.prettierrc +9 -9
- package/.vscode/extensions.json +72 -72
- package/.vscode/settings.json +100 -99
- package/Dockerfile +89 -89
- package/LICENSE +21 -21
- package/README.md +96 -96
- package/bin/db.js +172 -119
- package/bin/deploy.js +582 -661
- package/bin/dns.js +1 -1
- package/bin/file.js +92 -92
- package/bin/index.js +53 -53
- package/bin/install.js +398 -357
- package/bin/shortcut.js +44 -44
- package/bin/ssl.js +65 -64
- package/bin/util.js +182 -182
- package/bin/vs.js +35 -35
- package/conf.js +251 -249
- package/docker-compose.yml +67 -67
- package/jsconfig.json +7 -7
- package/jsdoc.json +32 -32
- package/nodemon.json +6 -6
- package/package.json +137 -132
- package/prometheus.yml +36 -36
- package/setup.sh +24 -24
- package/src/api/core/core.controller.js +69 -69
- package/src/api/core/core.model.js +11 -11
- package/src/api/core/core.router.js +23 -23
- package/src/api/core/core.service.js +29 -29
- package/src/api/crypto/crypto.controller.js +51 -51
- package/src/api/crypto/crypto.model.js +23 -23
- package/src/api/crypto/crypto.router.js +20 -20
- package/src/api/crypto/crypto.service.js +64 -64
- package/src/api/default/default.controller.js +69 -69
- package/src/api/default/default.model.js +20 -20
- package/src/api/default/default.router.js +23 -23
- package/src/api/default/default.service.js +31 -31
- package/src/api/file/file.controller.js +53 -51
- package/src/api/file/file.model.js +19 -19
- package/src/api/file/file.router.js +21 -20
- package/src/api/file/file.service.js +76 -70
- package/src/api/instance/instance.controller.js +69 -69
- package/src/api/instance/instance.model.js +36 -36
- package/src/api/instance/instance.router.js +33 -33
- package/src/api/instance/instance.service.js +48 -48
- package/src/api/test/test.controller.js +59 -59
- package/src/api/test/test.model.js +14 -14
- package/src/api/test/test.router.js +21 -21
- package/src/api/test/test.service.js +35 -35
- package/src/api/user/user.build.js +16 -0
- package/src/api/user/user.controller.js +70 -70
- package/src/api/user/user.model.js +65 -65
- package/src/api/user/user.router.js +345 -345
- package/src/api/user/user.service.js +479 -479
- package/src/api.js +23 -23
- package/src/client/Default.index.js +40 -40
- package/src/client/components/core/Account.js +290 -290
- package/src/client/components/core/AgGrid.js +160 -160
- package/src/client/components/core/Auth.js +19 -19
- package/src/client/components/core/Badge.js +32 -32
- package/src/client/components/core/BlockChain.js +41 -41
- package/src/client/components/core/Blog.js +9 -9
- package/src/client/components/core/BtnIcon.js +101 -94
- package/src/client/components/core/CalendarCore.js +458 -319
- package/src/client/components/core/Chat.js +64 -64
- package/src/client/components/core/ColorPalette.js +5267 -5267
- package/src/client/components/core/CommonJs.js +735 -732
- package/src/client/components/core/Content.js +193 -49
- package/src/client/components/core/Css.js +1064 -1027
- package/src/client/components/core/CssCore.js +817 -796
- package/src/client/components/core/D3Chart.js +44 -44
- package/src/client/components/core/Docs.js +229 -229
- package/src/client/components/core/DropDown.js +164 -164
- package/src/client/components/core/EventsUI.js +46 -54
- package/src/client/components/core/FileExplorer.js +699 -624
- package/src/client/components/core/FullScreen.js +45 -45
- package/src/client/components/core/Input.js +346 -259
- package/src/client/components/core/JoyStick.js +77 -77
- package/src/client/components/core/Keyboard.js +73 -73
- package/src/client/components/core/LoadingAnimation.js +179 -157
- package/src/client/components/core/LogIn.js +187 -181
- package/src/client/components/core/LogOut.js +58 -52
- package/src/client/components/core/Logger.js +26 -26
- package/src/client/components/core/Modal.js +1612 -1596
- package/src/client/components/core/NotificationManager.js +84 -84
- package/src/client/components/core/Panel.js +613 -413
- package/src/client/components/core/PanelForm.js +468 -0
- package/src/client/components/core/Polyhedron.js +162 -162
- package/src/client/components/core/Recover.js +204 -204
- package/src/client/components/core/Responsive.js +53 -53
- package/src/client/components/core/RichText.js +51 -27
- package/src/client/components/core/Router.js +76 -77
- package/src/client/components/core/Scroll.js +34 -0
- package/src/client/components/core/SignUp.js +125 -125
- package/src/client/components/core/SocketIo.js +72 -72
- package/src/client/components/core/Stream.js +113 -113
- package/src/client/components/core/ToggleSwitch.js +87 -87
- package/src/client/components/core/ToolTip.js +26 -26
- package/src/client/components/core/Translate.js +437 -408
- package/src/client/components/core/Validator.js +100 -100
- package/src/client/components/core/VanillaJs.js +460 -457
- package/src/client/components/core/Wallet.js +106 -106
- package/src/client/components/core/Webhook.js +25 -25
- package/src/client/components/core/Worker.js +272 -272
- package/src/client/components/default/CommonDefault.js +29 -29
- package/src/client/components/default/CssDefault.js +13 -13
- package/src/client/components/default/ElementsDefault.js +38 -38
- package/src/client/components/default/LogInDefault.js +41 -41
- package/src/client/components/default/LogOutDefault.js +28 -28
- package/src/client/components/default/MenuDefault.js +389 -389
- package/src/client/components/default/RoutesDefault.js +48 -48
- package/src/client/components/default/SettingsDefault.js +16 -16
- package/src/client/components/default/SignUpDefault.js +9 -9
- package/src/client/components/default/SocketIoDefault.js +54 -54
- package/src/client/components/default/TranslateDefault.js +7 -7
- package/src/client/public/default/assets/mailer/api-user-check.png +0 -0
- package/src/client/public/default/assets/mailer/api-user-invalid-token.png +0 -0
- package/src/client/public/default/assets/mailer/api-user-recover.png +0 -0
- package/src/client/public/default/browserconfig.xml +11 -11
- package/src/client/public/default/manifest.webmanifest +68 -68
- package/src/client/public/default/plantuml/client-conf.svg +1 -0
- package/src/client/public/default/plantuml/client-schema.svg +1 -0
- package/src/client/public/default/plantuml/cron-conf.svg +1 -0
- package/src/client/public/default/plantuml/cron-schema.svg +1 -0
- package/src/client/public/default/plantuml/server-conf.svg +1 -0
- package/src/client/public/default/plantuml/server-schema.svg +1 -0
- package/src/client/public/default/plantuml/ssr-conf.svg +1 -0
- package/src/client/public/default/plantuml/ssr-schema.svg +1 -0
- package/src/client/public/default/sitemap +147 -147
- package/src/client/public/default/yandex-browser-manifest.json +8 -8
- package/src/client/public/doc/sitemap +147 -147
- package/src/client/public/test/sitemap +147 -147
- package/src/client/services/core/core.service.js +170 -152
- package/src/client/services/crypto/crypto.service.js +70 -70
- package/src/client/services/default/default.management.js +345 -345
- package/src/client/services/default/default.service.js +89 -89
- package/src/client/services/file/file.service.js +70 -70
- package/src/client/services/instance/instance.management.js +74 -74
- package/src/client/services/instance/instance.service.js +89 -89
- package/src/client/services/test/test.service.js +70 -70
- package/src/client/services/user/user.management.js +50 -50
- package/src/client/services/user/user.service.js +89 -89
- package/src/client/ssr/Render.js +16 -16
- package/src/client/ssr/body-components/CacheControl.js +114 -113
- package/src/client/ssr/body-components/DefaultSplashScreen.js +79 -79
- package/src/client/ssr/email-components/DefaultRecoverEmail.js +21 -21
- package/src/client/ssr/email-components/DefaultVerifyEmail.js +17 -17
- package/src/client/ssr/head-components/Css.js +241 -241
- package/src/client/ssr/head-components/DefaultScripts.js +3 -3
- package/src/client/ssr/head-components/Microdata.js +11 -11
- package/src/client/ssr/head-components/Production.js +1 -1
- package/src/client/ssr/head-components/PwaDefault.js +59 -59
- package/src/client/ssr/head-components/Seo.js +14 -14
- package/src/client/sw/default.sw.js +201 -201
- package/src/client/sw/template.sw.js +84 -84
- package/src/client.build.js +22 -22
- package/src/client.dev.js +21 -21
- package/src/cron.js +25 -25
- package/src/db/DataBaseProvider.js +34 -34
- package/src/db/mariadb/MariaDB.js +33 -33
- package/src/db/mongo/MongooseDB.js +46 -46
- package/src/dns.js +22 -22
- package/src/index.js +42 -29
- package/src/mailer/EmailRender.js +69 -69
- package/src/mailer/MailerProvider.js +96 -96
- package/src/proxy.js +22 -22
- package/src/runtime/lampp/Lampp.js +69 -44
- package/src/runtime/nginx/Nginx.js +3 -3
- package/src/runtime/xampp/Xampp.js +49 -49
- package/src/server/auth.js +235 -204
- package/src/server/backup.js +101 -94
- package/src/server/client-build-live.js +72 -72
- package/src/server/client-build.js +705 -699
- package/src/server/client-dev-server.js +60 -58
- package/src/server/client-formatted.js +48 -48
- package/src/server/client-icons.js +149 -150
- package/src/server/conf.js +860 -611
- package/src/server/dns.js +98 -98
- package/src/server/downloader.js +42 -42
- package/src/server/logger.js +180 -180
- package/src/server/network.js +122 -122
- package/src/server/peer.js +33 -33
- package/src/server/process.js +66 -66
- package/src/server/prompt-optimizer.js +28 -28
- package/src/server/proxy.js +118 -118
- package/src/server/runtime.js +444 -393
- package/src/server/ssl.js +109 -107
- package/src/server.js +25 -25
- package/src/ws/IoInterface.js +45 -45
- package/src/ws/IoServer.js +39 -39
- package/src/ws/core/channels/core.ws.chat.js +23 -23
- package/src/ws/core/channels/core.ws.mailer.js +35 -35
- package/src/ws/core/channels/core.ws.stream.js +31 -31
- package/src/ws/core/core.ws.connection.js +28 -28
- package/src/ws/core/core.ws.emit.js +14 -14
- package/src/ws/core/core.ws.server.js +24 -24
- package/src/ws/core/management/core.ws.chat.js +8 -8
- package/src/ws/core/management/core.ws.mailer.js +16 -16
- package/src/ws/core/management/core.ws.stream.js +8 -8
- package/src/ws/default/channels/default.ws.main.js +16 -16
- package/src/ws/default/default.ws.connection.js +22 -22
- package/src/ws/default/default.ws.emit.js +14 -14
- package/src/ws/default/default.ws.server.js +20 -20
- package/src/ws/default/management/default.ws.main.js +8 -8
- package/startup.js +11 -11
- package/supervisord-openssh-server.conf +4 -4
- package/test/api.test.js +60 -60
|
@@ -1,408 +1,437 @@
|
|
|
1
|
-
import { newInstance, getId, cap, capFirst } from './CommonJs.js';
|
|
2
|
-
import { DropDown } from './DropDown.js';
|
|
3
|
-
import { loggerFactory } from './Logger.js';
|
|
4
|
-
import { s, htmls } from './VanillaJs.js';
|
|
5
|
-
|
|
6
|
-
const logger = loggerFactory(import.meta);
|
|
7
|
-
|
|
8
|
-
const textFormatted = (str = '    . . .') => capFirst(str.toLowerCase());
|
|
9
|
-
|
|
10
|
-
const Translate = {
|
|
11
|
-
Data: {},
|
|
12
|
-
Token: {},
|
|
13
|
-
Event: {},
|
|
14
|
-
Parse: function (lang) {
|
|
15
|
-
s('html').lang = lang;
|
|
16
|
-
Object.keys(this.Token).map((translateHash) => {
|
|
17
|
-
if (translateHash in this.Token && lang in this.Token[translateHash]) {
|
|
18
|
-
if (!('placeholder' in this.Token[translateHash]) && s(`.${translateHash}`))
|
|
19
|
-
htmls(`.${translateHash}`, textFormatted(this.Token[translateHash][lang]));
|
|
20
|
-
else if ('placeholder' in this.Token[translateHash] && s(this.Token[translateHash].placeholder))
|
|
21
|
-
s(this.Token[translateHash].placeholder).placeholder = textFormatted(this.Token[translateHash][lang]);
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
for (const keyEvent of Object.keys(this.Event)) this.Event[keyEvent]();
|
|
25
|
-
},
|
|
26
|
-
Render: function (keyLang, placeholder) {
|
|
27
|
-
if (!(keyLang in this.Data)) {
|
|
28
|
-
// TODO: add translate package or library for this case
|
|
29
|
-
logger.warn('translate key lang does not exist: ', keyLang);
|
|
30
|
-
return textFormatted(keyLang);
|
|
31
|
-
}
|
|
32
|
-
if (placeholder) this.Data[keyLang].placeholder = placeholder;
|
|
33
|
-
keyLang = this.Data[keyLang];
|
|
34
|
-
const translateHash = getId(this.Token, 'trans');
|
|
35
|
-
this.Token[translateHash] = newInstance(keyLang);
|
|
36
|
-
if ('placeholder' in keyLang) {
|
|
37
|
-
if (s('html').lang in keyLang) return textFormatted(keyLang[s('html').lang]);
|
|
38
|
-
return textFormatted(keyLang['en']);
|
|
39
|
-
}
|
|
40
|
-
if (s('html').lang in keyLang)
|
|
41
|
-
return html`<span class="${translateHash}">${textFormatted(keyLang[s('html').lang])}</span>`;
|
|
42
|
-
return html`<span class="${translateHash}">${textFormatted(keyLang['en'])}</span>`;
|
|
43
|
-
},
|
|
44
|
-
renderLang: function (language) {
|
|
45
|
-
localStorage.setItem('lang', language);
|
|
46
|
-
this.Parse(language);
|
|
47
|
-
if (s(`.action-btn-lang-render`)) htmls(`.action-btn-lang-render`, s('html').lang);
|
|
48
|
-
},
|
|
49
|
-
RenderSetting: async function () {
|
|
50
|
-
return html` <div class="in section-mp">
|
|
51
|
-
${await DropDown.Render({
|
|
52
|
-
id: 'settings-lang',
|
|
53
|
-
value: s('html').lang ? s('html').lang : 'en',
|
|
54
|
-
label: html`${Translate.Render('lang')}`,
|
|
55
|
-
data: ['en', 'es'].map((language) => {
|
|
56
|
-
return {
|
|
57
|
-
display: html`<i class="fa-solid fa-language"></i> ${Translate.Render(language)}`,
|
|
58
|
-
value: language,
|
|
59
|
-
onClick: () => Translate.renderLang(language),
|
|
60
|
-
};
|
|
61
|
-
}),
|
|
62
|
-
})}
|
|
63
|
-
</div>`;
|
|
64
|
-
},
|
|
65
|
-
};
|
|
66
|
-
|
|
67
|
-
const TranslateCore = {
|
|
68
|
-
Init: async function () {
|
|
69
|
-
if (localStorage.getItem('lang')) s('html').lang = localStorage.getItem('lang');
|
|
70
|
-
Translate.Data = {
|
|
71
|
-
...Translate.Data,
|
|
72
|
-
isEmpty: {
|
|
73
|
-
es: 'Este campo no puede estar vacío',
|
|
74
|
-
en: 'This field cannot be empty',
|
|
75
|
-
},
|
|
76
|
-
isEmail: {
|
|
77
|
-
es: 'Por favor, introduce una dirección de correo electrónico válida',
|
|
78
|
-
en: 'Please enter a valid email address',
|
|
79
|
-
},
|
|
80
|
-
isLength: {
|
|
81
|
-
es: 'Mínimo 2 caracteres, máximo 20 caracteres',
|
|
82
|
-
en: 'Minimum 2 characters, maximum 20 characters',
|
|
83
|
-
},
|
|
84
|
-
passwordMismatch: {
|
|
85
|
-
es: 'Las contraseñas no coinciden',
|
|
86
|
-
en: 'Passwords do not match',
|
|
87
|
-
},
|
|
88
|
-
invalidPhoneNumber: {
|
|
89
|
-
es: 'Por favor, introduce un número de teléfono válido',
|
|
90
|
-
en: 'Please enter a valid phone number',
|
|
91
|
-
},
|
|
92
|
-
invalidDate: {
|
|
93
|
-
es: 'Por favor, introduce una fecha válida',
|
|
94
|
-
en: 'Please enter a valid date',
|
|
95
|
-
},
|
|
96
|
-
customValidator: {
|
|
97
|
-
es: 'Este campo no cumple con los requisitos específicos',
|
|
98
|
-
en: 'This field does not meet specific requirements',
|
|
99
|
-
},
|
|
100
|
-
};
|
|
101
|
-
Translate.Data['isMobilePhone'] = {
|
|
102
|
-
en: 'Invalid mobile phone number. Please check the format and try again.',
|
|
103
|
-
es: 'Número de teléfono móvil no válido. Revisa el formato e intenta nuevamente.',
|
|
104
|
-
};
|
|
105
|
-
Translate.Data['whatsapp-number'] = {
|
|
106
|
-
en: 'Enter your WhatsApp number, including your country code.',
|
|
107
|
-
es: 'Número de WhatsApp, recuerda colocar el código de tu país',
|
|
108
|
-
};
|
|
109
|
-
Translate.Data['color-copy'] = { es: 'color copiado en el portapapeles', en: 'color copied to clipboard' };
|
|
110
|
-
Translate.Data['pallet-colors'] = { en: 'pallet colors', es: 'paleta de colores' };
|
|
111
|
-
Translate.Data['fullscreen'] = { en: 'Fullscreen', es: 'Pantalla completa' };
|
|
112
|
-
Translate.Data['lang'] = { en: 'Language', es: 'Idioma' };
|
|
113
|
-
Translate.Data['name'] = { en: 'Name', es: 'Nombre' };
|
|
114
|
-
Translate.Data['select'] = { en: 'Select', es: 'Seleccionar' };
|
|
115
|
-
Translate.Data['close'] = { en: 'Close', es: 'Cerrar' };
|
|
116
|
-
Translate.Data['en'] = { en: 'English', es: 'Ingles' };
|
|
117
|
-
Translate.Data['es'] = { en: 'Spanish', es: 'Español' };
|
|
118
|
-
Translate.Data['theme'] = { en: 'Theme', es: 'Tema' };
|
|
119
|
-
Translate.Data['success-upload-file'] = { en: 'file uploaded successfully', es: 'archivo subido correctamente' };
|
|
120
|
-
Translate.Data['
|
|
121
|
-
Translate.Data['
|
|
122
|
-
Translate.Data['
|
|
123
|
-
Translate.Data['
|
|
124
|
-
Translate.Data['
|
|
125
|
-
Translate.Data['
|
|
126
|
-
Translate.Data['
|
|
127
|
-
Translate.Data['
|
|
128
|
-
Translate.Data['
|
|
129
|
-
Translate.Data['
|
|
130
|
-
Translate.Data['
|
|
131
|
-
Translate.Data['
|
|
132
|
-
Translate.Data['
|
|
133
|
-
Translate.Data['
|
|
134
|
-
Translate.Data['
|
|
135
|
-
Translate.Data['
|
|
136
|
-
Translate.Data['
|
|
137
|
-
Translate.Data['
|
|
138
|
-
Translate.Data['log-
|
|
139
|
-
Translate.Data['
|
|
140
|
-
Translate.Data['
|
|
141
|
-
Translate.Data['
|
|
142
|
-
Translate.Data['
|
|
143
|
-
Translate.Data['
|
|
144
|
-
Translate.Data['
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
Translate.Data['
|
|
150
|
-
Translate.Data['
|
|
151
|
-
Translate.Data['
|
|
152
|
-
Translate.Data['
|
|
153
|
-
Translate.Data['
|
|
154
|
-
Translate.Data['
|
|
155
|
-
Translate.Data['
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
Translate.Data['
|
|
165
|
-
Translate.Data['
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
Translate.Data['
|
|
169
|
-
Translate.Data['
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
Translate.Data['
|
|
173
|
-
Translate.Data['
|
|
174
|
-
Translate.Data['
|
|
175
|
-
Translate.Data['
|
|
176
|
-
Translate.Data['
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
Translate.Data['
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
Translate.Data['
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
Translate.Data['
|
|
190
|
-
Translate.Data['
|
|
191
|
-
Translate.Data['file
|
|
192
|
-
Translate.Data['
|
|
193
|
-
Translate.Data['
|
|
194
|
-
Translate.Data['
|
|
195
|
-
Translate.Data['
|
|
196
|
-
Translate.Data['
|
|
197
|
-
Translate.Data['
|
|
198
|
-
Translate.Data['
|
|
199
|
-
Translate.Data['
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
Translate.Data['
|
|
203
|
-
Translate.Data['
|
|
204
|
-
Translate.Data['
|
|
205
|
-
Translate.Data['
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
Translate.Data['
|
|
258
|
-
es: '
|
|
259
|
-
en: '
|
|
260
|
-
};
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
Translate.Data['
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
};
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
Translate.Data['
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
};
|
|
320
|
-
Translate.Data['
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
Translate.Data['
|
|
326
|
-
en: '
|
|
327
|
-
es: '
|
|
328
|
-
};
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
Translate.Data['
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
};
|
|
363
|
-
Translate.Data['
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
Translate.Data['
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
Translate.Data['
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
1
|
+
import { newInstance, getId, cap, capFirst } from './CommonJs.js';
|
|
2
|
+
import { DropDown } from './DropDown.js';
|
|
3
|
+
import { loggerFactory } from './Logger.js';
|
|
4
|
+
import { s, htmls } from './VanillaJs.js';
|
|
5
|
+
|
|
6
|
+
const logger = loggerFactory(import.meta);
|
|
7
|
+
|
|
8
|
+
const textFormatted = (str = '    . . .') => capFirst(str.toLowerCase());
|
|
9
|
+
|
|
10
|
+
const Translate = {
|
|
11
|
+
Data: {},
|
|
12
|
+
Token: {},
|
|
13
|
+
Event: {},
|
|
14
|
+
Parse: function (lang) {
|
|
15
|
+
s('html').lang = lang;
|
|
16
|
+
Object.keys(this.Token).map((translateHash) => {
|
|
17
|
+
if (translateHash in this.Token && lang in this.Token[translateHash]) {
|
|
18
|
+
if (!('placeholder' in this.Token[translateHash]) && s(`.${translateHash}`))
|
|
19
|
+
htmls(`.${translateHash}`, textFormatted(this.Token[translateHash][lang]));
|
|
20
|
+
else if ('placeholder' in this.Token[translateHash] && s(this.Token[translateHash].placeholder))
|
|
21
|
+
s(this.Token[translateHash].placeholder).placeholder = textFormatted(this.Token[translateHash][lang]);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
for (const keyEvent of Object.keys(this.Event)) this.Event[keyEvent]();
|
|
25
|
+
},
|
|
26
|
+
Render: function (keyLang, placeholder) {
|
|
27
|
+
if (!(keyLang in this.Data)) {
|
|
28
|
+
// TODO: add translate package or library for this case
|
|
29
|
+
logger.warn('translate key lang does not exist: ', keyLang);
|
|
30
|
+
return textFormatted(keyLang);
|
|
31
|
+
}
|
|
32
|
+
if (placeholder) this.Data[keyLang].placeholder = placeholder;
|
|
33
|
+
keyLang = this.Data[keyLang];
|
|
34
|
+
const translateHash = getId(this.Token, 'trans');
|
|
35
|
+
this.Token[translateHash] = newInstance(keyLang);
|
|
36
|
+
if ('placeholder' in keyLang) {
|
|
37
|
+
if (s('html').lang in keyLang) return textFormatted(keyLang[s('html').lang]);
|
|
38
|
+
return textFormatted(keyLang['en']);
|
|
39
|
+
}
|
|
40
|
+
if (s('html').lang in keyLang)
|
|
41
|
+
return html`<span class="${translateHash}">${textFormatted(keyLang[s('html').lang])}</span>`;
|
|
42
|
+
return html`<span class="${translateHash}">${textFormatted(keyLang['en'])}</span>`;
|
|
43
|
+
},
|
|
44
|
+
renderLang: function (language) {
|
|
45
|
+
localStorage.setItem('lang', language);
|
|
46
|
+
this.Parse(language);
|
|
47
|
+
if (s(`.action-btn-lang-render`)) htmls(`.action-btn-lang-render`, s('html').lang);
|
|
48
|
+
},
|
|
49
|
+
RenderSetting: async function () {
|
|
50
|
+
return html` <div class="in section-mp">
|
|
51
|
+
${await DropDown.Render({
|
|
52
|
+
id: 'settings-lang',
|
|
53
|
+
value: s('html').lang ? s('html').lang : 'en',
|
|
54
|
+
label: html`${Translate.Render('lang')}`,
|
|
55
|
+
data: ['en', 'es'].map((language) => {
|
|
56
|
+
return {
|
|
57
|
+
display: html`<i class="fa-solid fa-language"></i> ${Translate.Render(language)}`,
|
|
58
|
+
value: language,
|
|
59
|
+
onClick: () => Translate.renderLang(language),
|
|
60
|
+
};
|
|
61
|
+
}),
|
|
62
|
+
})}
|
|
63
|
+
</div>`;
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
const TranslateCore = {
|
|
68
|
+
Init: async function () {
|
|
69
|
+
if (localStorage.getItem('lang')) s('html').lang = localStorage.getItem('lang');
|
|
70
|
+
Translate.Data = {
|
|
71
|
+
...Translate.Data,
|
|
72
|
+
isEmpty: {
|
|
73
|
+
es: 'Este campo no puede estar vacío',
|
|
74
|
+
en: 'This field cannot be empty',
|
|
75
|
+
},
|
|
76
|
+
isEmail: {
|
|
77
|
+
es: 'Por favor, introduce una dirección de correo electrónico válida',
|
|
78
|
+
en: 'Please enter a valid email address',
|
|
79
|
+
},
|
|
80
|
+
isLength: {
|
|
81
|
+
es: 'Mínimo 2 caracteres, máximo 20 caracteres',
|
|
82
|
+
en: 'Minimum 2 characters, maximum 20 characters',
|
|
83
|
+
},
|
|
84
|
+
passwordMismatch: {
|
|
85
|
+
es: 'Las contraseñas no coinciden',
|
|
86
|
+
en: 'Passwords do not match',
|
|
87
|
+
},
|
|
88
|
+
invalidPhoneNumber: {
|
|
89
|
+
es: 'Por favor, introduce un número de teléfono válido',
|
|
90
|
+
en: 'Please enter a valid phone number',
|
|
91
|
+
},
|
|
92
|
+
invalidDate: {
|
|
93
|
+
es: 'Por favor, introduce una fecha válida',
|
|
94
|
+
en: 'Please enter a valid date',
|
|
95
|
+
},
|
|
96
|
+
customValidator: {
|
|
97
|
+
es: 'Este campo no cumple con los requisitos específicos',
|
|
98
|
+
en: 'This field does not meet specific requirements',
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
Translate.Data['isMobilePhone'] = {
|
|
102
|
+
en: 'Invalid mobile phone number. Please check the format and try again.',
|
|
103
|
+
es: 'Número de teléfono móvil no válido. Revisa el formato e intenta nuevamente.',
|
|
104
|
+
};
|
|
105
|
+
Translate.Data['whatsapp-number'] = {
|
|
106
|
+
en: 'Enter your WhatsApp number, including your country code.',
|
|
107
|
+
es: 'Número de WhatsApp, recuerda colocar el código de tu país',
|
|
108
|
+
};
|
|
109
|
+
Translate.Data['color-copy'] = { es: 'color copiado en el portapapeles', en: 'color copied to clipboard' };
|
|
110
|
+
Translate.Data['pallet-colors'] = { en: 'pallet colors', es: 'paleta de colores' };
|
|
111
|
+
Translate.Data['fullscreen'] = { en: 'Fullscreen', es: 'Pantalla completa' };
|
|
112
|
+
Translate.Data['lang'] = { en: 'Language', es: 'Idioma' };
|
|
113
|
+
Translate.Data['name'] = { en: 'Name', es: 'Nombre' };
|
|
114
|
+
Translate.Data['select'] = { en: 'Select', es: 'Seleccionar' };
|
|
115
|
+
Translate.Data['close'] = { en: 'Close', es: 'Cerrar' };
|
|
116
|
+
Translate.Data['en'] = { en: 'English', es: 'Ingles' };
|
|
117
|
+
Translate.Data['es'] = { en: 'Spanish', es: 'Español' };
|
|
118
|
+
Translate.Data['theme'] = { en: 'Theme', es: 'Tema' };
|
|
119
|
+
Translate.Data['success-upload-file'] = { en: 'file uploaded successfully', es: 'archivo subido correctamente' };
|
|
120
|
+
Translate.Data['file'] = { en: 'file', es: 'archivo' };
|
|
121
|
+
Translate.Data['error-upload-file'] = { en: 'error uploading file', es: 'error al subir el archivo' };
|
|
122
|
+
Translate.Data['generate'] = { en: 'generate', es: 'Generar' };
|
|
123
|
+
Translate.Data['download'] = { en: 'download', es: 'Descargar' };
|
|
124
|
+
Translate.Data['delete'] = { en: 'delete', es: 'Eliminar' };
|
|
125
|
+
Translate.Data['success-delete'] = { en: 'success delete item', es: 'Item eliminado con exito' };
|
|
126
|
+
Translate.Data['invalid-data'] = { en: 'Invalid data', es: 'Datos invalidos' };
|
|
127
|
+
Translate.Data['upload'] = { en: 'upload', es: 'Subir' };
|
|
128
|
+
Translate.Data['load'] = { en: 'load', es: 'Cargar' };
|
|
129
|
+
Translate.Data['settings'] = { en: 'settings', es: 'configuraciones' };
|
|
130
|
+
Translate.Data['search'] = { en: 'Search', es: 'Buscar' };
|
|
131
|
+
Translate.Data['view'] = { en: 'view', es: 'ver' };
|
|
132
|
+
Translate.Data['user'] = { en: 'User', es: 'Usuario' };
|
|
133
|
+
Translate.Data['pass'] = { en: 'Password', es: 'Contraseña' };
|
|
134
|
+
Translate.Data['email'] = { en: 'Email', es: 'Correo Electronico' };
|
|
135
|
+
Translate.Data['clear'] = { en: 'Reset', es: 'Limpiar' };
|
|
136
|
+
Translate.Data['select-role'] = { en: 'Select Role', es: 'Seleccionar Rol' };
|
|
137
|
+
Translate.Data['sign-up'] = { en: 'Sign Up', es: 'Registrarse' };
|
|
138
|
+
Translate.Data['log-in'] = { en: 'Log In', es: 'Ingresar' };
|
|
139
|
+
Translate.Data['log-out'] = { en: 'Log Out', es: 'Cerrar Sesión' };
|
|
140
|
+
Translate.Data['broker'] = { en: 'Broker', es: 'Agente de ventas' };
|
|
141
|
+
Translate.Data['owner'] = { en: 'Owner', es: 'Propietario' };
|
|
142
|
+
Translate.Data['password'] = { en: 'Password', es: 'Contraseña' };
|
|
143
|
+
Translate.Data['repeat'] = { en: 'Repeat', es: 'Repetir' };
|
|
144
|
+
Translate.Data['username'] = { en: 'username', es: 'Nombre de usuario' };
|
|
145
|
+
Translate.Data['success-register-user'] = {
|
|
146
|
+
en: 'user successfully registered',
|
|
147
|
+
es: 'Usuario registrado con exito',
|
|
148
|
+
};
|
|
149
|
+
Translate.Data['no-valid-register'] = { en: 'No valid register', es: 'Registro no válido' };
|
|
150
|
+
Translate.Data['success-user'] = { en: 'user/s successfully obtained', es: 'Usuario/s obtenido correctamente' };
|
|
151
|
+
Translate.Data['width'] = { en: 'width', es: 'ancho' };
|
|
152
|
+
Translate.Data['height'] = { en: 'height', es: 'altura' };
|
|
153
|
+
Translate.Data['type'] = { en: 'Type', es: 'Tipo' };
|
|
154
|
+
Translate.Data['write'] = { en: 'write', es: 'escribir' };
|
|
155
|
+
Translate.Data['send'] = { en: 'Send', es: 'Enviar' };
|
|
156
|
+
Translate.Data['success-user-log-in'] = {
|
|
157
|
+
en: 'User successfully logged in.',
|
|
158
|
+
es: 'Usuario ha iniciado sesión exitosamente.',
|
|
159
|
+
};
|
|
160
|
+
Translate.Data['error-user-log-in'] = {
|
|
161
|
+
en: 'Error during user login. Please check your credentials and try again.',
|
|
162
|
+
es: 'Error durante el inicio de sesión del usuario. Por favor, verifica tus credenciales e intenta nuevamente.',
|
|
163
|
+
};
|
|
164
|
+
Translate.Data['confirm-logout'] = { en: 'Confirm Logout', es: 'Confirmar cierre de sesión' };
|
|
165
|
+
Translate.Data['success-logout'] = { en: 'Successful session logout', es: 'Cierre de sesión exitoso' };
|
|
166
|
+
Translate.Data['account'] = { en: 'Account', es: 'Cuenta' };
|
|
167
|
+
|
|
168
|
+
Translate.Data['update'] = { en: 'Update', es: 'Actualizar' };
|
|
169
|
+
Translate.Data['success-update-user'] = { en: 'user update successfully', es: 'usuario actualizado correctamente' };
|
|
170
|
+
Translate.Data['error-update-user'] = { en: 'error update user', es: 'error al actualizar el usuario' };
|
|
171
|
+
|
|
172
|
+
Translate.Data['edit'] = { en: 'Edit', es: 'Editar' };
|
|
173
|
+
Translate.Data['unconfirmed'] = { en: 'unconfirmed', es: 'No confirmado' };
|
|
174
|
+
Translate.Data['confirmed'] = { en: 'confirmed', es: 'Confirmado' };
|
|
175
|
+
Translate.Data['confirm'] = { en: 'confirm', es: 'confirmar' };
|
|
176
|
+
Translate.Data['cancel'] = { en: 'cancel', es: 'cancelar' };
|
|
177
|
+
Translate.Data['verify-email'] = { en: 'Verify email', es: 'email de verificacion' };
|
|
178
|
+
|
|
179
|
+
Translate.Data[`email send`] = { en: 'email send', es: 'email enviado' };
|
|
180
|
+
|
|
181
|
+
Translate.Data['success-generate-keys'] = { en: 'Keys generated successfully.', es: 'Llaves generadas con éxito.' };
|
|
182
|
+
Translate.Data['error-generate-keys'] = { en: 'Error generating keys.', es: 'Error al generar las llaves.' };
|
|
183
|
+
|
|
184
|
+
Translate.Data['copy'] = { en: 'Copy', es: 'Copiar' };
|
|
185
|
+
Translate.Data['keys'] = { en: 'Keys', es: 'Llaves' };
|
|
186
|
+
|
|
187
|
+
Translate.Data['success-copy-data'] = { es: '¡Datos copiados con éxito!', en: 'Data copied successfully!' };
|
|
188
|
+
|
|
189
|
+
Translate.Data['character'] = { es: 'Personaje', en: 'Character' };
|
|
190
|
+
Translate.Data['file-path'] = { en: 'file path', es: 'ruta de archivo' };
|
|
191
|
+
Translate.Data['drop-file'] = { en: 'drop file', es: 'soltar archivo' };
|
|
192
|
+
Translate.Data['file-upload-failed'] = { en: 'file upload failed', es: 'error al subir el archivo' };
|
|
193
|
+
Translate.Data['current-path'] = { en: 'current path', es: 'ruta actual' };
|
|
194
|
+
Translate.Data['go'] = { en: 'go', es: 'ir' };
|
|
195
|
+
Translate.Data['home-directory'] = { en: 'Home directory', es: 'Directorio de inicio' };
|
|
196
|
+
Translate.Data['create'] = { en: 'create', es: 'Crear' };
|
|
197
|
+
Translate.Data['home'] = { en: 'Home', es: 'Inicio' };
|
|
198
|
+
Translate.Data['calendar'] = { es: 'Calendario', en: 'Calendar' };
|
|
199
|
+
Translate.Data['docs'] = { es: 'Documentacion', en: 'Documentation' };
|
|
200
|
+
Translate.Data['clean-cache'] = { es: 'Limpiar caché', en: 'Clean cache' };
|
|
201
|
+
|
|
202
|
+
Translate.Data['add'] = { es: 'Agregar', en: 'Add' };
|
|
203
|
+
Translate.Data['mode'] = { es: 'Modo', en: 'Mode' };
|
|
204
|
+
Translate.Data['result'] = { es: 'Resultado', en: 'Result' };
|
|
205
|
+
Translate.Data['results'] = { es: 'Resultados', en: 'Results' };
|
|
206
|
+
Translate.Data['no-result-found'] = {
|
|
207
|
+
es: 'No se encontraron resultados',
|
|
208
|
+
en: 'No results found',
|
|
209
|
+
};
|
|
210
|
+
Translate.Data['no-preview-available'] = {
|
|
211
|
+
en: 'No preview available',
|
|
212
|
+
es: 'Vista previa no disponible',
|
|
213
|
+
};
|
|
214
|
+
Translate.Data['recent'] = { es: 'Reciente', en: 'recent' };
|
|
215
|
+
|
|
216
|
+
Translate.Data = {
|
|
217
|
+
...Translate.Data,
|
|
218
|
+
...{
|
|
219
|
+
title: {
|
|
220
|
+
en: 'Title Content Entry',
|
|
221
|
+
es: 'Titulo de entrada',
|
|
222
|
+
},
|
|
223
|
+
author: {
|
|
224
|
+
en: 'Author',
|
|
225
|
+
es: 'Autor',
|
|
226
|
+
},
|
|
227
|
+
date: {
|
|
228
|
+
en: 'Published on',
|
|
229
|
+
es: 'Publicado el',
|
|
230
|
+
},
|
|
231
|
+
content: {
|
|
232
|
+
en: 'Content',
|
|
233
|
+
es: 'Contenido',
|
|
234
|
+
},
|
|
235
|
+
_content: {
|
|
236
|
+
en: 'This is the content of the new blog entry.',
|
|
237
|
+
es: 'Este es el contenido de la nueva entrada de blog.',
|
|
238
|
+
},
|
|
239
|
+
tags: {
|
|
240
|
+
en: 'Tags',
|
|
241
|
+
es: 'Etiquetas',
|
|
242
|
+
},
|
|
243
|
+
categories: {
|
|
244
|
+
en: 'Categories',
|
|
245
|
+
es: 'Categorías',
|
|
246
|
+
},
|
|
247
|
+
comments: {
|
|
248
|
+
en: 'Comments',
|
|
249
|
+
es: 'Comentarios',
|
|
250
|
+
},
|
|
251
|
+
},
|
|
252
|
+
};
|
|
253
|
+
Translate.Data['warning-upload-no-selects-file'] = {
|
|
254
|
+
es: 'No ha seleccionado ningún archivo para subir.',
|
|
255
|
+
en: 'No file selected for upload.',
|
|
256
|
+
};
|
|
257
|
+
Translate.Data['no-can-connect-stream-device'] = {
|
|
258
|
+
es: 'No se pudo conectar al dispositivo de transmisión.',
|
|
259
|
+
en: 'Unable to connect to the stream device.',
|
|
260
|
+
};
|
|
261
|
+
|
|
262
|
+
Translate.Data['equip'] = {
|
|
263
|
+
es: 'Equipar',
|
|
264
|
+
en: 'Equip',
|
|
265
|
+
};
|
|
266
|
+
Translate.Data['unequip'] = {
|
|
267
|
+
es: 'Desequipar',
|
|
268
|
+
en: 'Unequip',
|
|
269
|
+
};
|
|
270
|
+
|
|
271
|
+
Translate.Data['i-have-account'] = {
|
|
272
|
+
en: 'I have an account',
|
|
273
|
+
es: 'Tengo una cuenta',
|
|
274
|
+
};
|
|
275
|
+
Translate.Data['i-not-have-account'] = {
|
|
276
|
+
en: 'I do not have an account',
|
|
277
|
+
es: 'No tengo una cuenta',
|
|
278
|
+
};
|
|
279
|
+
Translate.Data['forgot-password'] = {
|
|
280
|
+
en: 'Forgot Password',
|
|
281
|
+
es: 'Olvidé mi contraseña',
|
|
282
|
+
};
|
|
283
|
+
Translate.Data['recover'] = {
|
|
284
|
+
en: 'Recover',
|
|
285
|
+
es: 'Recuperar',
|
|
286
|
+
};
|
|
287
|
+
Translate.Data['send-recover-verify-email'] = {
|
|
288
|
+
en: 'Send recover email',
|
|
289
|
+
es: 'Enviar email de recuperación',
|
|
290
|
+
};
|
|
291
|
+
Translate.Data['recover-verify-email'] = {
|
|
292
|
+
en: 'recover email',
|
|
293
|
+
es: 'email de recuperación',
|
|
294
|
+
};
|
|
295
|
+
Translate.Data['15-min-valid-recover-email'] = {
|
|
296
|
+
en: 'The recovery email link will expire in 15 minutes.',
|
|
297
|
+
es: 'El enlace de recuperación del email expirará en 15 minutos.',
|
|
298
|
+
};
|
|
299
|
+
Translate.Data['success-recover-verify-email'] = {
|
|
300
|
+
en: 'Email send with recover password instructions.',
|
|
301
|
+
es: 'Email enviado con instrucciones para recuperar contraseña.',
|
|
302
|
+
};
|
|
303
|
+
Translate.Data['error-recover-verify-email'] = {
|
|
304
|
+
en: 'Error sending recover email.',
|
|
305
|
+
es: 'Error al enviar email de recuperación.',
|
|
306
|
+
};
|
|
307
|
+
Translate.Data['success-recover-password'] = {
|
|
308
|
+
en: 'Password successfully updated.',
|
|
309
|
+
es: 'Contraseña actualizada con éxito.',
|
|
310
|
+
};
|
|
311
|
+
Translate.Data['error-recover-password'] = {
|
|
312
|
+
en: 'Error updating password.',
|
|
313
|
+
es: 'Error al actualizar la contraseña.',
|
|
314
|
+
};
|
|
315
|
+
Translate.Data['change-password'] = {
|
|
316
|
+
en: 'Change Password',
|
|
317
|
+
es: 'Cambiar contraseña',
|
|
318
|
+
};
|
|
319
|
+
Translate.Data['resend'] = { en: 'Resend', es: 'Reenviar' };
|
|
320
|
+
Translate.Data['delete-account'] = { en: 'Delete Account', es: 'Borrar cuenta' };
|
|
321
|
+
Translate.Data['success-delete-account'] = {
|
|
322
|
+
en: 'Account deleted successfully.',
|
|
323
|
+
es: 'Cuenta borrada con éxito.',
|
|
324
|
+
};
|
|
325
|
+
Translate.Data['error-delete-account'] = {
|
|
326
|
+
en: 'Error deleting account.',
|
|
327
|
+
es: 'Error al borrar la cuenta.',
|
|
328
|
+
};
|
|
329
|
+
|
|
330
|
+
Translate.Data['confirm-delete-account'] = {
|
|
331
|
+
en: 'Are you sure you want to delete your account?',
|
|
332
|
+
es: '¿Estás seguro de que deseas borrar tu cuenta?',
|
|
333
|
+
};
|
|
334
|
+
Translate.Data['default-management'] = {
|
|
335
|
+
en: 'Default Management',
|
|
336
|
+
es: 'Gestión por defecto',
|
|
337
|
+
};
|
|
338
|
+
Translate.Data['field'] = {
|
|
339
|
+
en: 'Field',
|
|
340
|
+
es: 'Campo',
|
|
341
|
+
};
|
|
342
|
+
Translate.Data['success-updated'] = {
|
|
343
|
+
en: 'Successfully updated.',
|
|
344
|
+
es: 'Actualizado con éxito.',
|
|
345
|
+
};
|
|
346
|
+
Translate.Data['item-success-delete'] = {
|
|
347
|
+
en: 'Item successfully deleted.',
|
|
348
|
+
es: 'Elemento eliminado con éxito.',
|
|
349
|
+
};
|
|
350
|
+
Translate.Data['success-delete-all-items'] = {
|
|
351
|
+
en: 'All items successfully deleted.',
|
|
352
|
+
es: 'Todos los elementos eliminados con éxito.',
|
|
353
|
+
};
|
|
354
|
+
Translate.Data['success-create-item'] = {
|
|
355
|
+
en: 'Item successfully created.',
|
|
356
|
+
es: 'Elemento creado con éxito.',
|
|
357
|
+
};
|
|
358
|
+
Translate.Data['user-management'] = {
|
|
359
|
+
en: 'User Management',
|
|
360
|
+
es: 'Gestión de usuarios',
|
|
361
|
+
};
|
|
362
|
+
Translate.Data['success-update-item'] = { en: 'Item successfully updated.', es: 'Elemento actualizado con éxito.' };
|
|
363
|
+
Translate.Data['error-update-item'] = { en: 'Error updating item', es: 'Elemento actualizado con éxito.' };
|
|
364
|
+
Translate.Data['instance-management'] = {
|
|
365
|
+
en: 'Instance Management',
|
|
366
|
+
es: 'Gestión de instancias',
|
|
367
|
+
};
|
|
368
|
+
Translate.Data['login-attempts-remaining'] = {
|
|
369
|
+
en: 'Login attempts remaining:',
|
|
370
|
+
es: 'Intentos de inicio de sesión restantes:',
|
|
371
|
+
};
|
|
372
|
+
Translate.Data['account-locked-try-again-in'] = {
|
|
373
|
+
en: 'Account locked. Try again in:',
|
|
374
|
+
es: 'Cuenta bloqueada. Intente nuevamente en:',
|
|
375
|
+
};
|
|
376
|
+
Translate.Data['pre-release'] = {
|
|
377
|
+
en: 'Pre release',
|
|
378
|
+
es: 'Pre lanzamiento',
|
|
379
|
+
};
|
|
380
|
+
Translate.Data['all-day'] = {
|
|
381
|
+
en: 'Every day',
|
|
382
|
+
es: 'Todos los días',
|
|
383
|
+
};
|
|
384
|
+
Translate.Data['allDay'] = Translate.Data['all-day'];
|
|
385
|
+
Translate.Data['allday'] = Translate.Data['all-day'];
|
|
386
|
+
Translate.Data['month'] = {
|
|
387
|
+
en: 'Month',
|
|
388
|
+
es: 'Mes',
|
|
389
|
+
};
|
|
390
|
+
Translate.Data['week'] = {
|
|
391
|
+
en: 'Week',
|
|
392
|
+
es: 'Semana',
|
|
393
|
+
};
|
|
394
|
+
Translate.Data['summary'] = {
|
|
395
|
+
en: 'Summary',
|
|
396
|
+
es: 'Resumen',
|
|
397
|
+
};
|
|
398
|
+
Translate.Data['today'] = {
|
|
399
|
+
en: 'Today',
|
|
400
|
+
es: 'Hoy',
|
|
401
|
+
};
|
|
402
|
+
Translate.Data['success-add-event-scheduler'] = {
|
|
403
|
+
en: 'Event successfully added to scheduler.',
|
|
404
|
+
es: 'Evento añadido correctamente al calendario.',
|
|
405
|
+
};
|
|
406
|
+
Translate.Data['success-edit-event-scheduler'] = {
|
|
407
|
+
en: 'Event successfully updated to scheduler.',
|
|
408
|
+
es: 'Evento actualizado correctamente al calendario.',
|
|
409
|
+
};
|
|
410
|
+
Translate.Data['success-get-events-scheduler'] = {
|
|
411
|
+
en: 'Events successfully retrieved from scheduler.',
|
|
412
|
+
es: 'Eventos obtenidos correctamente del calendario.',
|
|
413
|
+
};
|
|
414
|
+
Translate.Data['success-add-post'] = {
|
|
415
|
+
en: 'Post added successfully',
|
|
416
|
+
es: 'Post añadido con éxito',
|
|
417
|
+
};
|
|
418
|
+
Translate.Data['success-get-posts'] = {
|
|
419
|
+
en: 'Posts successfully retrieved',
|
|
420
|
+
es: 'Posts obtenidos con éxito',
|
|
421
|
+
};
|
|
422
|
+
Translate.Data['confirm-delete-item'] = {
|
|
423
|
+
en: 'Are you sure you want to delete this item?',
|
|
424
|
+
es: '¿Estás seguro de que deseas eliminar este elemento?',
|
|
425
|
+
};
|
|
426
|
+
Translate.Data['success-edit-post'] = {
|
|
427
|
+
en: 'Post edited successfully',
|
|
428
|
+
es: 'Post editado con éxito',
|
|
429
|
+
};
|
|
430
|
+
Translate.Data['confirm-delete-all-data'] = {
|
|
431
|
+
en: 'Are you sure you want to delete all data?',
|
|
432
|
+
es: 'Estas seguro de eliminar todos los datos?',
|
|
433
|
+
};
|
|
434
|
+
},
|
|
435
|
+
};
|
|
436
|
+
|
|
437
|
+
export { Translate, TranslateCore, textFormatted };
|