@djangocfg/i18n 2.1.113 → 2.1.115
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/package.json +2 -2
- package/src/locales/en.ts +98 -0
- package/src/locales/ko.ts +98 -0
- package/src/locales/ru.ts +98 -0
- package/src/types.ts +93 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@djangocfg/i18n",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.115",
|
|
4
4
|
"description": "Lightweight i18n library for @djangocfg packages with built-in translations for English, Russian, and Korean",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"i18n",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"react": "^18.0.0 || ^19.0.0"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
|
-
"@djangocfg/typescript-config": "^2.1.
|
|
62
|
+
"@djangocfg/typescript-config": "^2.1.115",
|
|
63
63
|
"@types/react": "^19.1.0",
|
|
64
64
|
"eslint": "^9.37.0",
|
|
65
65
|
"typescript": "^5.9.3"
|
package/src/locales/en.ts
CHANGED
|
@@ -237,6 +237,104 @@ export const en: I18nTranslations = {
|
|
|
237
237
|
authRequired: 'Authentication Required',
|
|
238
238
|
pleaseSignIn: 'Please sign in to continue',
|
|
239
239
|
goToSignIn: 'Go to Sign In',
|
|
240
|
+
|
|
241
|
+
// Identifier step
|
|
242
|
+
identifier: {
|
|
243
|
+
title: 'Sign in',
|
|
244
|
+
subtitle: {
|
|
245
|
+
email: 'Enter your email to continue',
|
|
246
|
+
phone: 'Enter your phone number to continue',
|
|
247
|
+
},
|
|
248
|
+
placeholder: {
|
|
249
|
+
email: 'email@example.com',
|
|
250
|
+
phone: 'Enter your phone number',
|
|
251
|
+
},
|
|
252
|
+
button: 'Continue',
|
|
253
|
+
oauth: {
|
|
254
|
+
github: 'Continue with GitHub',
|
|
255
|
+
},
|
|
256
|
+
channel: {
|
|
257
|
+
email: 'Email',
|
|
258
|
+
phone: 'Phone',
|
|
259
|
+
},
|
|
260
|
+
},
|
|
261
|
+
|
|
262
|
+
// OTP step
|
|
263
|
+
otp: {
|
|
264
|
+
title: 'Enter code',
|
|
265
|
+
subtitle: 'We sent a code to',
|
|
266
|
+
button: 'Verify',
|
|
267
|
+
resend: 'Resend code',
|
|
268
|
+
changeEmail: 'Change email',
|
|
269
|
+
changePhone: 'Change phone',
|
|
270
|
+
},
|
|
271
|
+
|
|
272
|
+
// Two-factor step
|
|
273
|
+
twoFactor: {
|
|
274
|
+
title: 'Two-factor authentication',
|
|
275
|
+
subtitle: {
|
|
276
|
+
totp: 'Enter the 6-digit code from your authenticator',
|
|
277
|
+
backup: 'Enter one of your backup codes',
|
|
278
|
+
},
|
|
279
|
+
placeholder: {
|
|
280
|
+
backup: 'XXXXXXXX',
|
|
281
|
+
},
|
|
282
|
+
button: 'Verify',
|
|
283
|
+
toggle: {
|
|
284
|
+
toBackup: 'Use backup code',
|
|
285
|
+
toTotp: 'Use authenticator app',
|
|
286
|
+
},
|
|
287
|
+
},
|
|
288
|
+
|
|
289
|
+
// 2FA Setup
|
|
290
|
+
setup: {
|
|
291
|
+
loading: {
|
|
292
|
+
title: 'Setting up...',
|
|
293
|
+
button: 'Loading',
|
|
294
|
+
},
|
|
295
|
+
qrCode: {
|
|
296
|
+
title: 'Set up 2FA',
|
|
297
|
+
subtitle: 'Scan this QR code with your authenticator app',
|
|
298
|
+
manualEntry: "Can't scan? Enter manually",
|
|
299
|
+
confirmPrompt: 'Enter the 6-digit code to confirm',
|
|
300
|
+
button: 'Enable 2FA',
|
|
301
|
+
skip: 'Skip for now',
|
|
302
|
+
},
|
|
303
|
+
complete: {
|
|
304
|
+
title: '2FA enabled',
|
|
305
|
+
subtitle: 'Save these backup codes securely',
|
|
306
|
+
instruction: 'Each code can only be used once',
|
|
307
|
+
copyAll: 'Copy all codes',
|
|
308
|
+
copied: 'Copied',
|
|
309
|
+
done: 'Done',
|
|
310
|
+
},
|
|
311
|
+
},
|
|
312
|
+
|
|
313
|
+
// Success
|
|
314
|
+
success: {
|
|
315
|
+
message: 'Signed in successfully',
|
|
316
|
+
},
|
|
317
|
+
|
|
318
|
+
// Shared
|
|
319
|
+
terms: {
|
|
320
|
+
agree: 'I agree to the',
|
|
321
|
+
and: 'and',
|
|
322
|
+
terms: 'Terms',
|
|
323
|
+
privacy: 'Privacy Policy',
|
|
324
|
+
},
|
|
325
|
+
divider: {
|
|
326
|
+
or: 'or',
|
|
327
|
+
},
|
|
328
|
+
footer: {
|
|
329
|
+
terms: 'Terms',
|
|
330
|
+
privacy: 'Privacy',
|
|
331
|
+
support: 'Support',
|
|
332
|
+
},
|
|
333
|
+
|
|
334
|
+
// Dev mode
|
|
335
|
+
dev: {
|
|
336
|
+
anyCodeWorks: 'Dev Mode: Any code works',
|
|
337
|
+
},
|
|
240
338
|
},
|
|
241
339
|
|
|
242
340
|
chat: {
|
package/src/locales/ko.ts
CHANGED
|
@@ -237,6 +237,104 @@ export const ko: I18nTranslations = {
|
|
|
237
237
|
authRequired: '인증 필요',
|
|
238
238
|
pleaseSignIn: '계속하려면 로그인하세요',
|
|
239
239
|
goToSignIn: '로그인으로 이동',
|
|
240
|
+
|
|
241
|
+
// Identifier step
|
|
242
|
+
identifier: {
|
|
243
|
+
title: '로그인',
|
|
244
|
+
subtitle: {
|
|
245
|
+
email: '계속하려면 이메일을 입력하세요',
|
|
246
|
+
phone: '계속하려면 전화번호를 입력하세요',
|
|
247
|
+
},
|
|
248
|
+
placeholder: {
|
|
249
|
+
email: 'email@example.com',
|
|
250
|
+
phone: '전화번호 입력',
|
|
251
|
+
},
|
|
252
|
+
button: '계속',
|
|
253
|
+
oauth: {
|
|
254
|
+
github: 'GitHub로 계속',
|
|
255
|
+
},
|
|
256
|
+
channel: {
|
|
257
|
+
email: '이메일',
|
|
258
|
+
phone: '전화',
|
|
259
|
+
},
|
|
260
|
+
},
|
|
261
|
+
|
|
262
|
+
// OTP step
|
|
263
|
+
otp: {
|
|
264
|
+
title: '코드 입력',
|
|
265
|
+
subtitle: '코드를 전송했습니다:',
|
|
266
|
+
button: '확인',
|
|
267
|
+
resend: '코드 재전송',
|
|
268
|
+
changeEmail: '이메일 변경',
|
|
269
|
+
changePhone: '전화번호 변경',
|
|
270
|
+
},
|
|
271
|
+
|
|
272
|
+
// Two-factor step
|
|
273
|
+
twoFactor: {
|
|
274
|
+
title: '2단계 인증',
|
|
275
|
+
subtitle: {
|
|
276
|
+
totp: '인증 앱의 6자리 코드를 입력하세요',
|
|
277
|
+
backup: '백업 코드 중 하나를 입력하세요',
|
|
278
|
+
},
|
|
279
|
+
placeholder: {
|
|
280
|
+
backup: 'XXXXXXXX',
|
|
281
|
+
},
|
|
282
|
+
button: '확인',
|
|
283
|
+
toggle: {
|
|
284
|
+
toBackup: '백업 코드 사용',
|
|
285
|
+
toTotp: '인증 앱 사용',
|
|
286
|
+
},
|
|
287
|
+
},
|
|
288
|
+
|
|
289
|
+
// 2FA Setup
|
|
290
|
+
setup: {
|
|
291
|
+
loading: {
|
|
292
|
+
title: '설정 중...',
|
|
293
|
+
button: '로딩',
|
|
294
|
+
},
|
|
295
|
+
qrCode: {
|
|
296
|
+
title: '2FA 설정',
|
|
297
|
+
subtitle: '인증 앱으로 QR 코드를 스캔하세요',
|
|
298
|
+
manualEntry: '스캔이 안 되나요? 수동으로 입력하세요',
|
|
299
|
+
confirmPrompt: '확인을 위해 6자리 코드를 입력하세요',
|
|
300
|
+
button: '2FA 활성화',
|
|
301
|
+
skip: '나중에',
|
|
302
|
+
},
|
|
303
|
+
complete: {
|
|
304
|
+
title: '2FA 활성화됨',
|
|
305
|
+
subtitle: '백업 코드를 안전하게 보관하세요',
|
|
306
|
+
instruction: '각 코드는 한 번만 사용할 수 있습니다',
|
|
307
|
+
copyAll: '모든 코드 복사',
|
|
308
|
+
copied: '복사됨',
|
|
309
|
+
done: '완료',
|
|
310
|
+
},
|
|
311
|
+
},
|
|
312
|
+
|
|
313
|
+
// Success
|
|
314
|
+
success: {
|
|
315
|
+
message: '로그인 성공',
|
|
316
|
+
},
|
|
317
|
+
|
|
318
|
+
// Shared
|
|
319
|
+
terms: {
|
|
320
|
+
agree: '동의합니다:',
|
|
321
|
+
and: '및',
|
|
322
|
+
terms: '이용약관',
|
|
323
|
+
privacy: '개인정보처리방침',
|
|
324
|
+
},
|
|
325
|
+
divider: {
|
|
326
|
+
or: '또는',
|
|
327
|
+
},
|
|
328
|
+
footer: {
|
|
329
|
+
terms: '이용약관',
|
|
330
|
+
privacy: '개인정보',
|
|
331
|
+
support: '지원',
|
|
332
|
+
},
|
|
333
|
+
|
|
334
|
+
// Dev mode
|
|
335
|
+
dev: {
|
|
336
|
+
anyCodeWorks: '개발 모드: 아무 코드나 사용 가능',
|
|
337
|
+
},
|
|
240
338
|
},
|
|
241
339
|
|
|
242
340
|
chat: {
|
package/src/locales/ru.ts
CHANGED
|
@@ -237,6 +237,104 @@ export const ru: I18nTranslations = {
|
|
|
237
237
|
authRequired: 'Требуется авторизация',
|
|
238
238
|
pleaseSignIn: 'Пожалуйста, войдите для продолжения',
|
|
239
239
|
goToSignIn: 'Перейти к входу',
|
|
240
|
+
|
|
241
|
+
// Identifier step
|
|
242
|
+
identifier: {
|
|
243
|
+
title: 'Вход',
|
|
244
|
+
subtitle: {
|
|
245
|
+
email: 'Введите email для продолжения',
|
|
246
|
+
phone: 'Введите номер телефона для продолжения',
|
|
247
|
+
},
|
|
248
|
+
placeholder: {
|
|
249
|
+
email: 'email@example.com',
|
|
250
|
+
phone: 'Введите номер телефона',
|
|
251
|
+
},
|
|
252
|
+
button: 'Продолжить',
|
|
253
|
+
oauth: {
|
|
254
|
+
github: 'Войти через GitHub',
|
|
255
|
+
},
|
|
256
|
+
channel: {
|
|
257
|
+
email: 'Email',
|
|
258
|
+
phone: 'Телефон',
|
|
259
|
+
},
|
|
260
|
+
},
|
|
261
|
+
|
|
262
|
+
// OTP step
|
|
263
|
+
otp: {
|
|
264
|
+
title: 'Введите код',
|
|
265
|
+
subtitle: 'Мы отправили код на',
|
|
266
|
+
button: 'Подтвердить',
|
|
267
|
+
resend: 'Отправить повторно',
|
|
268
|
+
changeEmail: 'Изменить email',
|
|
269
|
+
changePhone: 'Изменить телефон',
|
|
270
|
+
},
|
|
271
|
+
|
|
272
|
+
// Two-factor step
|
|
273
|
+
twoFactor: {
|
|
274
|
+
title: 'Двухфакторная аутентификация',
|
|
275
|
+
subtitle: {
|
|
276
|
+
totp: 'Введите 6-значный код из приложения-аутентификатора',
|
|
277
|
+
backup: 'Введите один из резервных кодов',
|
|
278
|
+
},
|
|
279
|
+
placeholder: {
|
|
280
|
+
backup: 'XXXXXXXX',
|
|
281
|
+
},
|
|
282
|
+
button: 'Подтвердить',
|
|
283
|
+
toggle: {
|
|
284
|
+
toBackup: 'Использовать резервный код',
|
|
285
|
+
toTotp: 'Использовать приложение',
|
|
286
|
+
},
|
|
287
|
+
},
|
|
288
|
+
|
|
289
|
+
// 2FA Setup
|
|
290
|
+
setup: {
|
|
291
|
+
loading: {
|
|
292
|
+
title: 'Настройка...',
|
|
293
|
+
button: 'Загрузка',
|
|
294
|
+
},
|
|
295
|
+
qrCode: {
|
|
296
|
+
title: 'Настройка 2FA',
|
|
297
|
+
subtitle: 'Отсканируйте QR-код приложением-аутентификатором',
|
|
298
|
+
manualEntry: 'Не можете сканировать? Введите вручную',
|
|
299
|
+
confirmPrompt: 'Введите 6-значный код для подтверждения',
|
|
300
|
+
button: 'Включить 2FA',
|
|
301
|
+
skip: 'Пропустить',
|
|
302
|
+
},
|
|
303
|
+
complete: {
|
|
304
|
+
title: '2FA включена',
|
|
305
|
+
subtitle: 'Сохраните резервные коды в безопасном месте',
|
|
306
|
+
instruction: 'Каждый код можно использовать только один раз',
|
|
307
|
+
copyAll: 'Копировать все коды',
|
|
308
|
+
copied: 'Скопировано',
|
|
309
|
+
done: 'Готово',
|
|
310
|
+
},
|
|
311
|
+
},
|
|
312
|
+
|
|
313
|
+
// Success
|
|
314
|
+
success: {
|
|
315
|
+
message: 'Вход выполнен успешно',
|
|
316
|
+
},
|
|
317
|
+
|
|
318
|
+
// Shared
|
|
319
|
+
terms: {
|
|
320
|
+
agree: 'Я принимаю',
|
|
321
|
+
and: 'и',
|
|
322
|
+
terms: 'Условия',
|
|
323
|
+
privacy: 'Политику конфиденциальности',
|
|
324
|
+
},
|
|
325
|
+
divider: {
|
|
326
|
+
or: 'или',
|
|
327
|
+
},
|
|
328
|
+
footer: {
|
|
329
|
+
terms: 'Условия',
|
|
330
|
+
privacy: 'Конфиденциальность',
|
|
331
|
+
support: 'Поддержка',
|
|
332
|
+
},
|
|
333
|
+
|
|
334
|
+
// Dev mode
|
|
335
|
+
dev: {
|
|
336
|
+
anyCodeWorks: 'Режим разработки: подойдёт любой код',
|
|
337
|
+
},
|
|
240
338
|
},
|
|
241
339
|
|
|
242
340
|
chat: {
|
package/src/types.ts
CHANGED
|
@@ -302,6 +302,99 @@ export interface I18nTranslations {
|
|
|
302
302
|
authRequired: string
|
|
303
303
|
pleaseSignIn: string
|
|
304
304
|
goToSignIn: string
|
|
305
|
+
/** Identifier step */
|
|
306
|
+
identifier: {
|
|
307
|
+
title: string
|
|
308
|
+
subtitle: {
|
|
309
|
+
email: string
|
|
310
|
+
phone: string
|
|
311
|
+
}
|
|
312
|
+
placeholder: {
|
|
313
|
+
email: string
|
|
314
|
+
phone: string
|
|
315
|
+
}
|
|
316
|
+
button: string
|
|
317
|
+
oauth: {
|
|
318
|
+
github: string
|
|
319
|
+
}
|
|
320
|
+
channel: {
|
|
321
|
+
email: string
|
|
322
|
+
phone: string
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
/** OTP step */
|
|
326
|
+
otp: {
|
|
327
|
+
title: string
|
|
328
|
+
subtitle: string
|
|
329
|
+
button: string
|
|
330
|
+
resend: string
|
|
331
|
+
changeEmail: string
|
|
332
|
+
changePhone: string
|
|
333
|
+
}
|
|
334
|
+
/** Two-factor step */
|
|
335
|
+
twoFactor: {
|
|
336
|
+
title: string
|
|
337
|
+
subtitle: {
|
|
338
|
+
totp: string
|
|
339
|
+
backup: string
|
|
340
|
+
}
|
|
341
|
+
placeholder: {
|
|
342
|
+
backup: string
|
|
343
|
+
}
|
|
344
|
+
button: string
|
|
345
|
+
toggle: {
|
|
346
|
+
toBackup: string
|
|
347
|
+
toTotp: string
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
/** Setup step */
|
|
351
|
+
setup: {
|
|
352
|
+
loading: {
|
|
353
|
+
title: string
|
|
354
|
+
button: string
|
|
355
|
+
}
|
|
356
|
+
qrCode: {
|
|
357
|
+
title: string
|
|
358
|
+
subtitle: string
|
|
359
|
+
manualEntry: string
|
|
360
|
+
confirmPrompt: string
|
|
361
|
+
button: string
|
|
362
|
+
skip: string
|
|
363
|
+
}
|
|
364
|
+
complete: {
|
|
365
|
+
title: string
|
|
366
|
+
subtitle: string
|
|
367
|
+
instruction: string
|
|
368
|
+
copyAll: string
|
|
369
|
+
copied: string
|
|
370
|
+
done: string
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
/** Success message */
|
|
374
|
+
success: {
|
|
375
|
+
message: string
|
|
376
|
+
}
|
|
377
|
+
/** Terms checkbox */
|
|
378
|
+
terms: {
|
|
379
|
+
agree: string
|
|
380
|
+
and: string
|
|
381
|
+
terms: string
|
|
382
|
+
privacy: string
|
|
383
|
+
}
|
|
384
|
+
/** Divider */
|
|
385
|
+
divider: {
|
|
386
|
+
or: string
|
|
387
|
+
}
|
|
388
|
+
/** Footer */
|
|
389
|
+
footer: {
|
|
390
|
+
terms: string
|
|
391
|
+
privacy: string
|
|
392
|
+
support: string
|
|
393
|
+
}
|
|
394
|
+
/** Dev mode */
|
|
395
|
+
dev: {
|
|
396
|
+
anyCodeWorks: string
|
|
397
|
+
}
|
|
305
398
|
}
|
|
306
399
|
|
|
307
400
|
/** MCP Chat */
|