@bigbinary/neeto-commons-frontend 4.13.92 → 4.13.94-beta.1
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/README.md +1 -0
- package/configs/esbuild/index.js +4 -0
- package/configs/esbuild/plugins/packageTranslations.js +16 -0
- package/configs/esbuild/plugins/preval.js +16 -6
- package/configs/esbuild/plugins/reactGiphy.js +1 -0
- package/configs/scripts/buildTranslationImports.js +21 -0
- package/configs/scripts/getEnglishTranslation.js +11 -0
- package/configs/utils/packageTranslations.js +90 -0
- package/configs/vite/index.js +5 -0
- package/configs/vite/plugins/packageTranslations.js +14 -0
- package/configs/vite/plugins/preval.js +17 -11
- package/dist/cjs/initializers/i18n.js +120 -183
- package/dist/cjs/initializers/i18n.js.map +1 -1
- package/dist/cjs/initializers/index.js +43 -19
- package/dist/cjs/initializers/index.js.map +1 -1
- package/dist/cjs/react-utils/PrivateRoute/PrivateRoute.js +17 -13
- package/dist/cjs/react-utils/PrivateRoute/PrivateRoute.js.map +1 -1
- package/dist/cjs/react-utils/PrivateRoute/constants.js +8 -0
- package/dist/cjs/react-utils/PrivateRoute/constants.js.map +1 -0
- package/dist/cjs/react-utils/PrivateRoute/index.js +2 -0
- package/dist/cjs/react-utils/PrivateRoute/index.js.map +1 -1
- package/dist/cjs/react-utils/PrivateRoute/utils.js +16 -0
- package/dist/cjs/react-utils/PrivateRoute/utils.js.map +1 -0
- package/dist/cjs/react-utils/index.js +5 -0
- package/dist/cjs/react-utils/index.js.map +1 -1
- package/dist/cjs/react-utils/mount/mount.js +68 -69
- package/dist/cjs/react-utils/mount/mount.js.map +1 -1
- package/dist/cjs/react-utils/usePrefersReducedMotion/constants.js +6 -0
- package/dist/cjs/react-utils/usePrefersReducedMotion/constants.js.map +1 -0
- package/dist/cjs/react-utils/usePrefersReducedMotion/index.js +12 -0
- package/dist/cjs/react-utils/usePrefersReducedMotion/index.js.map +1 -0
- package/dist/cjs/react-utils/usePrefersReducedMotion/usePrefersReducedMotion.js +46 -0
- package/dist/cjs/react-utils/usePrefersReducedMotion/usePrefersReducedMotion.js.map +1 -0
- package/dist/initializers/i18n.js +120 -183
- package/dist/initializers/i18n.js.map +1 -1
- package/dist/initializers/index.js +43 -19
- package/dist/initializers/index.js.map +1 -1
- package/dist/react-utils/PrivateRoute/PrivateRoute.js +17 -13
- package/dist/react-utils/PrivateRoute/PrivateRoute.js.map +1 -1
- package/dist/react-utils/PrivateRoute/constants.js +5 -0
- package/dist/react-utils/PrivateRoute/constants.js.map +1 -0
- package/dist/react-utils/PrivateRoute/index.js +2 -0
- package/dist/react-utils/PrivateRoute/index.js.map +1 -1
- package/dist/react-utils/PrivateRoute/utils.js +14 -0
- package/dist/react-utils/PrivateRoute/utils.js.map +1 -0
- package/dist/react-utils/index.js +4 -0
- package/dist/react-utils/index.js.map +1 -1
- package/dist/react-utils/mount/mount.js +68 -69
- package/dist/react-utils/mount/mount.js.map +1 -1
- package/dist/react-utils/usePrefersReducedMotion/constants.js +4 -0
- package/dist/react-utils/usePrefersReducedMotion/constants.js.map +1 -0
- package/dist/react-utils/usePrefersReducedMotion/index.js +6 -0
- package/dist/react-utils/usePrefersReducedMotion/index.js.map +1 -0
- package/dist/react-utils/usePrefersReducedMotion/usePrefersReducedMotion.js +44 -0
- package/dist/react-utils/usePrefersReducedMotion/usePrefersReducedMotion.js.map +1 -0
- package/initializers.d.ts +1 -1
- package/package.json +13 -7
- package/react-utils.d.ts +69 -3
- package/src/translations/ar.json +111 -0
- package/src/translations/bg.json +111 -0
- package/src/translations/ca.json +111 -0
- package/src/translations/cs.json +111 -0
- package/src/translations/da.json +111 -0
- package/src/translations/de.json +111 -0
- package/src/translations/en.json +111 -0
- package/src/translations/es-MX.json +111 -0
- package/src/translations/es.json +111 -0
- package/src/translations/et.json +111 -0
- package/src/translations/fi.json +111 -0
- package/src/translations/fil.json +111 -0
- package/src/translations/fr.json +111 -0
- package/src/translations/he.json +111 -0
- package/src/translations/hi.json +111 -0
- package/src/translations/hr.json +111 -0
- package/src/translations/id.json +111 -0
- package/src/translations/it.json +111 -0
- package/src/translations/ja.json +111 -0
- package/src/translations/ko.json +111 -0
- package/src/translations/nl.json +111 -0
- package/src/translations/pl.json +111 -0
- package/src/translations/pt-BR.json +111 -0
- package/src/translations/pt.json +111 -0
- package/src/translations/ro.json +111 -0
- package/src/translations/ru.json +111 -0
- package/src/translations/sk.json +111 -0
- package/src/translations/sl.json +111 -0
- package/src/translations/sv.json +111 -0
- package/src/translations/th.json +111 -0
- package/src/translations/tr.json +111 -0
- package/src/translations/uk.json +111 -0
- package/src/translations/vi.json +111 -0
- package/src/translations/zh-CN.json +111 -0
- package/src/translations/zh-TW.json +111 -0
- package/configs/scripts/getPkgTranslations.js +0 -45
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"generic": {
|
|
3
|
+
"error": "Щось пішло не так. Будь ласка, спробуйте ще раз пізніше."
|
|
4
|
+
},
|
|
5
|
+
"authentication": {
|
|
6
|
+
"notLoggedIn": "Не вдалося авторизуватися, будь ласка, увійдіть, щоб продовжити!",
|
|
7
|
+
"couldNotAuth": "Не вдалося авторизуватися за наданим {{parameter}}.",
|
|
8
|
+
"incorrectPassword": "Поточний пароль невірний. Будь ласка, спробуйте ще раз.",
|
|
9
|
+
"incorrectEmailPassword": "Невірна електронна пошта або пароль. Будь ласка, спробуйте ще раз."
|
|
10
|
+
},
|
|
11
|
+
"authorization": {
|
|
12
|
+
"unauthorized": "Ви не уповноважені виконувати цю дію."
|
|
13
|
+
},
|
|
14
|
+
"resource": {
|
|
15
|
+
"add_one": "{{entity}} було успішно додано.",
|
|
16
|
+
"add_other": "{{entity}} було успішно додано.",
|
|
17
|
+
"save": "{{entity}} було успішно збережено.",
|
|
18
|
+
"save_one": "{{entity}} було успішно збережено.",
|
|
19
|
+
"save_other": "{{entity}} було успішно збережено.",
|
|
20
|
+
"update": "{{entity}} було успішно оновлено.",
|
|
21
|
+
"update_one": "{{entity}} було успішно оновлено.",
|
|
22
|
+
"update_other": "{{entity}} було успішно оновлено.",
|
|
23
|
+
"delete_one": "{{entity}} було успішно видалено.",
|
|
24
|
+
"delete_other": "{{entity}} було успішно видалено.",
|
|
25
|
+
"clone": "{{entity}} було успішно скопійовано.",
|
|
26
|
+
"notFound": "{{entity}} не існує.",
|
|
27
|
+
"remove_one": "{{entity}} було успішно видалено.",
|
|
28
|
+
"remove_other": "{{entity}} було успішно видалено.",
|
|
29
|
+
"sent": "{{entity}} надіслано успішно.",
|
|
30
|
+
"merged": "{{entity}} було успішно об'єднано.",
|
|
31
|
+
"disconnected": "{{entity}} було успішно відключено."
|
|
32
|
+
},
|
|
33
|
+
"otp": {
|
|
34
|
+
"sent": "OTP було надіслано успішно.",
|
|
35
|
+
"invalid": "Недійсний OTP",
|
|
36
|
+
"verified": "OTP було успішно перевірено."
|
|
37
|
+
},
|
|
38
|
+
"upload": {
|
|
39
|
+
"error": "У процесі завантаження файлу сталася помилка."
|
|
40
|
+
},
|
|
41
|
+
"image": {
|
|
42
|
+
"profile": {
|
|
43
|
+
"removalFailed": "Не вдалося видалити профільне зображення.",
|
|
44
|
+
"removalSuccess": "Профільне зображення успішно видалено."
|
|
45
|
+
},
|
|
46
|
+
"contentTypeInvalid": "Не підтримуються формати, відмінні від jpg, png, svg.",
|
|
47
|
+
"sizeOutOfRange": "Не повинно перевищувати {{maxSize, number}} МБ."
|
|
48
|
+
},
|
|
49
|
+
"userRole": {
|
|
50
|
+
"deactivateActiveAdmin": "Ви не можете деактивувати активного адміністратора в робочому просторі!"
|
|
51
|
+
},
|
|
52
|
+
"activeRecord": {
|
|
53
|
+
"error": {
|
|
54
|
+
"blankName": "Ім'я не може бути порожнім.",
|
|
55
|
+
"blankDescription": "Опис не може бути порожнім.",
|
|
56
|
+
"blankValue": "Значення не може бути порожнім.",
|
|
57
|
+
"prefixType": "Тип префікса {{value}} недійсний.",
|
|
58
|
+
"minimumEntryLimit": "Мінімальний ліміт записів повинен бути меншим або рівним {{maximumEntryLimit, number}}.",
|
|
59
|
+
"maximumEntryLimit": "Максимальний ліміт записів повинен бути більшим або рівним {{minimumEntryLimit, number}}."
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"sessions": {
|
|
63
|
+
"expiry": "Ваша сесія завершилася. Будь ласка, увійдіть знову."
|
|
64
|
+
},
|
|
65
|
+
"payment": {
|
|
66
|
+
"error": {
|
|
67
|
+
"incomplete": "Вашу оплату не вдалося завершити."
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"invitations": {
|
|
71
|
+
"deleted_one": "Запрошення було успішно видалено.",
|
|
72
|
+
"deleted_other": "{{count, number}} запрошення було успішно видалено.",
|
|
73
|
+
"sent_one": "Запрошення було успішно надіслано.",
|
|
74
|
+
"sent_other": "{{count, number}} запрошення було успішно надіслано.",
|
|
75
|
+
"notFound": "{{email}} не було запрошено на тестування цього вебсайту."
|
|
76
|
+
},
|
|
77
|
+
"github": {
|
|
78
|
+
"error": {
|
|
79
|
+
"webhookPermissionDenied": "Доступ заборонено. Переконайтеся, що у вас є дозвіл на створення вебхуків для репозиторію.",
|
|
80
|
+
"primaryNonDeletable": "Первинний обліковий запис Github не може бути видалено."
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"neetoCommons": {
|
|
84
|
+
"fallbackComponent": {
|
|
85
|
+
"somethingWentWrong": "Вибачте, щось пішло не так.",
|
|
86
|
+
"description": "Будь ласка, спробуйте <reloading>reloading</reloading> сторінку.<br> Якщо проблема не вирішиться, <contactus>зв'яжіться з нами</contactus>."
|
|
87
|
+
},
|
|
88
|
+
"toastr": {
|
|
89
|
+
"success": {
|
|
90
|
+
"copiedToClipboard": "Скопійовано в буфер обміну!"
|
|
91
|
+
},
|
|
92
|
+
"error": {
|
|
93
|
+
"networkError": "Помилка мережі. Будь ласка, перевірте своє з'єднання та спробуйте знову.",
|
|
94
|
+
"noInternetConnection": "Немає з'єднання з Інтернетом."
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"notice": {
|
|
98
|
+
"errorOccurred": "Сталася помилка."
|
|
99
|
+
},
|
|
100
|
+
"validators": {
|
|
101
|
+
"isRequired": "{{what}} є обов'язковим.",
|
|
102
|
+
"mustNotContainCapitalLetters": "{{what}} не повинен містити великі літери.",
|
|
103
|
+
"mustNotContainSpaces": "{{what}} не може містити пробілів.",
|
|
104
|
+
"mustNotContainSpecialCharactersExceptHyphen": "{{what}} не повинен містити жодних спеціальних символів, крім '-'.",
|
|
105
|
+
"mustNotStartOrEndWithSpecialCharacters": "{{what}} не повинен починатися або закінчуватися спеціальними символами."
|
|
106
|
+
},
|
|
107
|
+
"copyToClipboard": {
|
|
108
|
+
"failed": "Не вдалося скопіювати в буфер обміну."
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"generic": {
|
|
3
|
+
"error": "Có gì đó không ổn. Vui lòng thử lại sau."
|
|
4
|
+
},
|
|
5
|
+
"authentication": {
|
|
6
|
+
"notLoggedIn": "Không thể xác thực, vui lòng đăng nhập để tiếp tục!",
|
|
7
|
+
"couldNotAuth": "Không thể xác thực với {{parameter}} đã cung cấp.",
|
|
8
|
+
"incorrectPassword": "Mật khẩu hiện tại không chính xác. Vui lòng thử lại.",
|
|
9
|
+
"incorrectEmailPassword": "Email hoặc mật khẩu không chính xác. Vui lòng thử lại."
|
|
10
|
+
},
|
|
11
|
+
"authorization": {
|
|
12
|
+
"unauthorized": "Bạn không được phép thực hiện hành động này."
|
|
13
|
+
},
|
|
14
|
+
"resource": {
|
|
15
|
+
"add_one": "{{entity}} đã được thêm thành công.",
|
|
16
|
+
"add_other": "{{entity}} đã được thêm thành công.",
|
|
17
|
+
"save": "{{entity}} đã được lưu thành công.",
|
|
18
|
+
"save_one": "{{entity}} đã được lưu thành công.",
|
|
19
|
+
"save_other": "{{entity}} đã được lưu thành công.",
|
|
20
|
+
"update": "{{entity}} đã được cập nhật thành công.",
|
|
21
|
+
"update_one": "{{entity}} đã được cập nhật thành công.",
|
|
22
|
+
"update_other": "{{entity}} đã được cập nhật thành công.",
|
|
23
|
+
"delete_one": "{{entity}} đã được xóa thành công.",
|
|
24
|
+
"delete_other": "{{entity}} đã được xóa thành công.",
|
|
25
|
+
"clone": "{{entity}} đã được sao chép thành công.",
|
|
26
|
+
"notFound": "{{entity}} không tồn tại.",
|
|
27
|
+
"remove_one": "{{entity}} đã được loại bỏ thành công.",
|
|
28
|
+
"remove_other": "{{entity}} đã được loại bỏ thành công.",
|
|
29
|
+
"sent": "{{entity}} đã được gửi thành công.",
|
|
30
|
+
"merged": "{{entity}} đã được hợp nhất thành công.",
|
|
31
|
+
"disconnected": "{{entity}} đã được ngắt kết nối thành công."
|
|
32
|
+
},
|
|
33
|
+
"otp": {
|
|
34
|
+
"sent": "OTP đã được gửi thành công.",
|
|
35
|
+
"invalid": "OTP không hợp lệ",
|
|
36
|
+
"verified": "OTP đã được xác minh thành công."
|
|
37
|
+
},
|
|
38
|
+
"upload": {
|
|
39
|
+
"error": "Đã xảy ra lỗi khi tải tệp lên"
|
|
40
|
+
},
|
|
41
|
+
"image": {
|
|
42
|
+
"profile": {
|
|
43
|
+
"removalFailed": "Không thể xóa ảnh hồ sơ",
|
|
44
|
+
"removalSuccess": "Ảnh hồ sơ đã được xóa thành công"
|
|
45
|
+
},
|
|
46
|
+
"contentTypeInvalid": "Ngoài jpg, png, svg không được hỗ trợ",
|
|
47
|
+
"sizeOutOfRange": "Không được vượt quá {{maxSize, number}} MB"
|
|
48
|
+
},
|
|
49
|
+
"userRole": {
|
|
50
|
+
"deactivateActiveAdmin": "Bạn không thể vô hiệu hóa quản trị viên đang hoạt động từ không gian làm việc!"
|
|
51
|
+
},
|
|
52
|
+
"activeRecord": {
|
|
53
|
+
"error": {
|
|
54
|
+
"blankName": "Tên không được để trống",
|
|
55
|
+
"blankDescription": "Mô tả không được để trống",
|
|
56
|
+
"blankValue": "Giá trị không được để trống",
|
|
57
|
+
"prefixType": "Loại tiền tố {{value}} không hợp lệ",
|
|
58
|
+
"minimumEntryLimit": "Giới hạn mục tối thiểu phải nhỏ hơn hoặc bằng {{maximumEntryLimit, number}}",
|
|
59
|
+
"maximumEntryLimit": "Giới hạn mục tối đa phải lớn hơn hoặc bằng {{minimumEntryLimit, number}}"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"sessions": {
|
|
63
|
+
"expiry": "Phiên của bạn đã hết hạn. Vui lòng đăng nhập lại."
|
|
64
|
+
},
|
|
65
|
+
"payment": {
|
|
66
|
+
"error": {
|
|
67
|
+
"incomplete": "Thanh toán của bạn không thể được hoàn thành"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"invitations": {
|
|
71
|
+
"deleted_one": "Lời mời đã được xóa thành công",
|
|
72
|
+
"deleted_other": "{{count, number}} Lời mời đã được xóa thành công",
|
|
73
|
+
"sent_one": "Lời mời đã được gửi thành công",
|
|
74
|
+
"sent_other": "{{count, number}} Lời mời đã được gửi thành công",
|
|
75
|
+
"notFound": "{{email}} không được mời thử nghiệm trang web này."
|
|
76
|
+
},
|
|
77
|
+
"github": {
|
|
78
|
+
"error": {
|
|
79
|
+
"webhookPermissionDenied": "Quyền bị từ chối. Đảm bảo bạn có quyền tạo webhook cho kho lưu trữ.",
|
|
80
|
+
"primaryNonDeletable": "Tài khoản Github chính không thể bị xóa."
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"neetoCommons": {
|
|
84
|
+
"fallbackComponent": {
|
|
85
|
+
"somethingWentWrong": "Xin lỗi, đã xảy ra sự cố.",
|
|
86
|
+
"description": "Vui lòng thử <reloading>reloading</reloading> trang.<br> Nếu vấn đề vẫn tiếp diễn, <contactus>liên hệ với chúng tôi</contactus>."
|
|
87
|
+
},
|
|
88
|
+
"toastr": {
|
|
89
|
+
"success": {
|
|
90
|
+
"copiedToClipboard": "Đã sao chép vào clipboard!"
|
|
91
|
+
},
|
|
92
|
+
"error": {
|
|
93
|
+
"networkError": "Lỗi mạng. Vui lòng kiểm tra kết nối của bạn và thử lại.",
|
|
94
|
+
"noInternetConnection": "Không có kết nối Internet."
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"notice": {
|
|
98
|
+
"errorOccurred": "Đã xảy ra một số lỗi."
|
|
99
|
+
},
|
|
100
|
+
"validators": {
|
|
101
|
+
"isRequired": "{{what}} là bắt buộc.",
|
|
102
|
+
"mustNotContainCapitalLetters": "{{what}} không được chứa chữ cái viết hoa.",
|
|
103
|
+
"mustNotContainSpaces": "{{what}} không được chứa khoảng trắng.",
|
|
104
|
+
"mustNotContainSpecialCharactersExceptHyphen": "{{what}} không được chứa ký tự đặc biệt, ngoại trừ '-'",
|
|
105
|
+
"mustNotStartOrEndWithSpecialCharacters": "{{what}} không được bắt đầu hoặc kết thúc bằng ký tự đặc biệt."
|
|
106
|
+
},
|
|
107
|
+
"copyToClipboard": {
|
|
108
|
+
"failed": "Không thể sao chép vào clipboard"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"generic": {
|
|
3
|
+
"error": "出现错误。请稍后再试。"
|
|
4
|
+
},
|
|
5
|
+
"authentication": {
|
|
6
|
+
"notLoggedIn": "无法认证,请登录以继续!",
|
|
7
|
+
"couldNotAuth": "无法使用提供的 {{parameter}} 进行认证。",
|
|
8
|
+
"incorrectPassword": "当前密码不正确。请再试一次。",
|
|
9
|
+
"incorrectEmailPassword": "邮箱或密码不正确。请再试一次。"
|
|
10
|
+
},
|
|
11
|
+
"authorization": {
|
|
12
|
+
"unauthorized": "您无权执行此操作。"
|
|
13
|
+
},
|
|
14
|
+
"resource": {
|
|
15
|
+
"add_one": "{{entity}} 已成功添加。",
|
|
16
|
+
"add_other": "{{entity}} 已成功添加。",
|
|
17
|
+
"save": "{{entity}} 已成功保存。",
|
|
18
|
+
"save_one": "{{entity}} 已成功保存。",
|
|
19
|
+
"save_other": "{{entity}} 已成功保存。",
|
|
20
|
+
"update": "{{entity}} 已成功更新。",
|
|
21
|
+
"update_one": "{{entity}} 已成功更新。",
|
|
22
|
+
"update_other": "{{entity}} 已成功更新。",
|
|
23
|
+
"delete_one": "{{entity}} 已成功删除。",
|
|
24
|
+
"delete_other": "{{entity}} 已成功删除。",
|
|
25
|
+
"clone": "{{entity}} 已成功克隆。",
|
|
26
|
+
"notFound": "{{entity}} 不存在。",
|
|
27
|
+
"remove_one": "{{entity}} 已成功移除。",
|
|
28
|
+
"remove_other": "{{entity}} 已成功移除。",
|
|
29
|
+
"sent": "{{entity}} 发送成功。",
|
|
30
|
+
"merged": "{{entity}} 已成功合并。",
|
|
31
|
+
"disconnected": "{{entity}} 已成功断开连接。"
|
|
32
|
+
},
|
|
33
|
+
"otp": {
|
|
34
|
+
"sent": "OTP 已成功发送。",
|
|
35
|
+
"invalid": "无效的 OTP",
|
|
36
|
+
"verified": "OTP 已成功验证。"
|
|
37
|
+
},
|
|
38
|
+
"upload": {
|
|
39
|
+
"error": "上传文件时发生错误"
|
|
40
|
+
},
|
|
41
|
+
"image": {
|
|
42
|
+
"profile": {
|
|
43
|
+
"removalFailed": "无法移除个人资料图片",
|
|
44
|
+
"removalSuccess": "个人资料图片已成功移除"
|
|
45
|
+
},
|
|
46
|
+
"contentTypeInvalid": "不支持除 jpg、png、svg 以外的格式",
|
|
47
|
+
"sizeOutOfRange": "大小不得超过 {{maxSize, number}} MB"
|
|
48
|
+
},
|
|
49
|
+
"userRole": {
|
|
50
|
+
"deactivateActiveAdmin": "您无法从工作区停用活动管理员!"
|
|
51
|
+
},
|
|
52
|
+
"activeRecord": {
|
|
53
|
+
"error": {
|
|
54
|
+
"blankName": "姓名不能为空",
|
|
55
|
+
"blankDescription": "描述不能为空",
|
|
56
|
+
"blankValue": "值不能为空",
|
|
57
|
+
"prefixType": "前缀类型 {{value}} 无效",
|
|
58
|
+
"minimumEntryLimit": "最低条目限制必须小于或等于 {{maximumEntryLimit, number}}",
|
|
59
|
+
"maximumEntryLimit": "最高条目限制必须大于或等于 {{minimumEntryLimit, number}}"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"sessions": {
|
|
63
|
+
"expiry": "您的会话已过期。请重新登录。"
|
|
64
|
+
},
|
|
65
|
+
"payment": {
|
|
66
|
+
"error": {
|
|
67
|
+
"incomplete": "您的付款未能完成"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"invitations": {
|
|
71
|
+
"deleted_one": "邀请已成功删除",
|
|
72
|
+
"deleted_other": "{{count, number}} 个邀请已成功删除",
|
|
73
|
+
"sent_one": "邀请已成功发送",
|
|
74
|
+
"sent_other": "{{count, number}} 个邀请已成功发送",
|
|
75
|
+
"notFound": "{{email}} 未被邀请测试该网站。"
|
|
76
|
+
},
|
|
77
|
+
"github": {
|
|
78
|
+
"error": {
|
|
79
|
+
"webhookPermissionDenied": "权限被拒绝。确保您有权为该仓库创建 webhook。",
|
|
80
|
+
"primaryNonDeletable": "主 GitHub 账户无法删除。"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"neetoCommons": {
|
|
84
|
+
"fallbackComponent": {
|
|
85
|
+
"somethingWentWrong": "抱歉,出现错误。",
|
|
86
|
+
"description": "请尝试 <reloading>重新加载</reloading> 页面。<br> 如果问题持续,请 <contactus>联系我们</contactus>。"
|
|
87
|
+
},
|
|
88
|
+
"toastr": {
|
|
89
|
+
"success": {
|
|
90
|
+
"copiedToClipboard": "已复制到剪贴板!"
|
|
91
|
+
},
|
|
92
|
+
"error": {
|
|
93
|
+
"networkError": "网络错误。请检查您的连接并重试。",
|
|
94
|
+
"noInternetConnection": "没有互联网连接。"
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"notice": {
|
|
98
|
+
"errorOccurred": "发生了一些错误。"
|
|
99
|
+
},
|
|
100
|
+
"validators": {
|
|
101
|
+
"isRequired": "{{what}} 是必需的。",
|
|
102
|
+
"mustNotContainCapitalLetters": "{{what}} 不能包含大写字母。",
|
|
103
|
+
"mustNotContainSpaces": "{{what}} 不能包含空格。",
|
|
104
|
+
"mustNotContainSpecialCharactersExceptHyphen": "{{what}} 不能包含任何特殊字符,除了 '-'",
|
|
105
|
+
"mustNotStartOrEndWithSpecialCharacters": "{{what}} 不能以特殊字符开头或结尾。"
|
|
106
|
+
},
|
|
107
|
+
"copyToClipboard": {
|
|
108
|
+
"failed": "复制到剪贴板失败"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"generic": {
|
|
3
|
+
"error": "發生錯誤。請稍後再試。"
|
|
4
|
+
},
|
|
5
|
+
"authentication": {
|
|
6
|
+
"notLoggedIn": "無法驗證,請登錄以繼續!",
|
|
7
|
+
"couldNotAuth": "無法使用提供的 {{parameter}} 進行驗證。",
|
|
8
|
+
"incorrectPassword": "當前密碼不正確。請再試一次。",
|
|
9
|
+
"incorrectEmailPassword": "電子郵件或密碼不正確。請再試一次。"
|
|
10
|
+
},
|
|
11
|
+
"authorization": {
|
|
12
|
+
"unauthorized": "您沒有權限執行此操作。"
|
|
13
|
+
},
|
|
14
|
+
"resource": {
|
|
15
|
+
"add_one": "{{entity}} 已成功添加。",
|
|
16
|
+
"add_other": "{{entity}} 已成功添加。",
|
|
17
|
+
"save": "{{entity}} 已成功保存。",
|
|
18
|
+
"save_one": "{{entity}} 已成功保存。",
|
|
19
|
+
"save_other": "{{entity}} 已成功保存。",
|
|
20
|
+
"update": "{{entity}} 已成功更新。",
|
|
21
|
+
"update_one": "{{entity}} 已成功更新。",
|
|
22
|
+
"update_other": "{{entity}} 已成功更新。",
|
|
23
|
+
"delete_one": "{{entity}} 已成功刪除。",
|
|
24
|
+
"delete_other": "{{entity}} 已成功刪除。",
|
|
25
|
+
"clone": "{{entity}} 已成功克隆。",
|
|
26
|
+
"notFound": "{{entity}} 不存在。",
|
|
27
|
+
"remove_one": "{{entity}} 已成功移除。",
|
|
28
|
+
"remove_other": "{{entity}} 已成功移除。",
|
|
29
|
+
"sent": "{{entity}} 已成功發送。",
|
|
30
|
+
"merged": "{{entity}} 已成功合併。",
|
|
31
|
+
"disconnected": "{{entity}} 已成功斷開連接。"
|
|
32
|
+
},
|
|
33
|
+
"otp": {
|
|
34
|
+
"sent": "OTP 已成功發送。",
|
|
35
|
+
"invalid": "無效的 OTP",
|
|
36
|
+
"verified": "OTP 已成功驗證。"
|
|
37
|
+
},
|
|
38
|
+
"upload": {
|
|
39
|
+
"error": "上傳文件時發生錯誤"
|
|
40
|
+
},
|
|
41
|
+
"image": {
|
|
42
|
+
"profile": {
|
|
43
|
+
"removalFailed": "移除個人照片失敗",
|
|
44
|
+
"removalSuccess": "個人照片已成功移除"
|
|
45
|
+
},
|
|
46
|
+
"contentTypeInvalid": "不支持 jpg、png、svg 以外的格式",
|
|
47
|
+
"sizeOutOfRange": "大小不得超過 {{maxSize, number}} MB"
|
|
48
|
+
},
|
|
49
|
+
"userRole": {
|
|
50
|
+
"deactivateActiveAdmin": "您無法從工作空間中停用活動管理員!"
|
|
51
|
+
},
|
|
52
|
+
"activeRecord": {
|
|
53
|
+
"error": {
|
|
54
|
+
"blankName": "名稱不能為空",
|
|
55
|
+
"blankDescription": "描述不能為空",
|
|
56
|
+
"blankValue": "值不能為空",
|
|
57
|
+
"prefixType": "前綴類型 {{value}} 無效",
|
|
58
|
+
"minimumEntryLimit": "最小條目限制必須小於或等於 {{maximumEntryLimit, number}}",
|
|
59
|
+
"maximumEntryLimit": "最大條目限制必須大於或等於 {{minimumEntryLimit, number}}"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"sessions": {
|
|
63
|
+
"expiry": "您的會話已過期。請重新登錄。"
|
|
64
|
+
},
|
|
65
|
+
"payment": {
|
|
66
|
+
"error": {
|
|
67
|
+
"incomplete": "您的付款無法完成"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"invitations": {
|
|
71
|
+
"deleted_one": "邀請已成功刪除",
|
|
72
|
+
"deleted_other": "{{count, number}} 個邀請已成功刪除",
|
|
73
|
+
"sent_one": "邀請已成功發送",
|
|
74
|
+
"sent_other": "{{count, number}} 個邀請已成功發送",
|
|
75
|
+
"notFound": "{{email}} 尚未被邀請測試此網站。"
|
|
76
|
+
},
|
|
77
|
+
"github": {
|
|
78
|
+
"error": {
|
|
79
|
+
"webhookPermissionDenied": "權限被拒絕。請確保您有權為該存儲庫創建 webhook。",
|
|
80
|
+
"primaryNonDeletable": "主 Github 帳戶不能被刪除。"
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"neetoCommons": {
|
|
84
|
+
"fallbackComponent": {
|
|
85
|
+
"somethingWentWrong": "抱歉,發生錯誤。",
|
|
86
|
+
"description": "請嘗試 <reloading>重新加載</reloading> 頁面。<br> 如果問題仍然存在,<contactus>聯繫我們</contactus>。"
|
|
87
|
+
},
|
|
88
|
+
"toastr": {
|
|
89
|
+
"success": {
|
|
90
|
+
"copiedToClipboard": "已複製到剪貼簿!"
|
|
91
|
+
},
|
|
92
|
+
"error": {
|
|
93
|
+
"networkError": "網路錯誤。請檢查您的連接,然後再試一次。",
|
|
94
|
+
"noInternetConnection": "沒有網路連線。"
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"notice": {
|
|
98
|
+
"errorOccurred": "發生了一些錯誤。"
|
|
99
|
+
},
|
|
100
|
+
"validators": {
|
|
101
|
+
"isRequired": "{{what}} 是必需的。",
|
|
102
|
+
"mustNotContainCapitalLetters": "{{what}} 不能包含大寫字母。",
|
|
103
|
+
"mustNotContainSpaces": "{{what}} 不能包含空格。",
|
|
104
|
+
"mustNotContainSpecialCharactersExceptHyphen": "{{what}} 不能包含任何特殊字符,除了 '-'",
|
|
105
|
+
"mustNotStartOrEndWithSpecialCharacters": "{{what}} 不能以特殊字符開始或結束。"
|
|
106
|
+
},
|
|
107
|
+
"copyToClipboard": {
|
|
108
|
+
"failed": "複製到剪貼簿失敗"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
const fs = require("fs");
|
|
2
|
-
const path = require("path");
|
|
3
|
-
|
|
4
|
-
const { mergeDeepLeft } = require("ramda");
|
|
5
|
-
|
|
6
|
-
const packageDir = path.join(__dirname, "../../../");
|
|
7
|
-
|
|
8
|
-
const getPkgTransPath = pkg => {
|
|
9
|
-
const basePath = path.join(packageDir, pkg);
|
|
10
|
-
|
|
11
|
-
const transPath1 = path.join(basePath, "app/javascript/src/translations");
|
|
12
|
-
const transPath2 = path.join(basePath, "src/translations");
|
|
13
|
-
|
|
14
|
-
return fs.existsSync(transPath1) ? transPath1 : transPath2;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
const packages = fs.readdirSync(packageDir);
|
|
18
|
-
|
|
19
|
-
const loadTranslations = translationsDir => {
|
|
20
|
-
try {
|
|
21
|
-
const jsonFiles = fs
|
|
22
|
-
.readdirSync(translationsDir)
|
|
23
|
-
.filter(file => file.endsWith(".json"))
|
|
24
|
-
.map(file => path.join(translationsDir, file));
|
|
25
|
-
|
|
26
|
-
const translations = {};
|
|
27
|
-
|
|
28
|
-
jsonFiles.forEach(jsonFile => {
|
|
29
|
-
const content = fs.readFileSync(jsonFile, "utf8");
|
|
30
|
-
const basename = path.basename(jsonFile, ".json");
|
|
31
|
-
|
|
32
|
-
translations[basename] = { translation: JSON.parse(content) };
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
return translations;
|
|
36
|
-
} catch {
|
|
37
|
-
return {};
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
const packageTranslations = packages
|
|
42
|
-
.map(pkg => loadTranslations(getPkgTransPath(pkg)))
|
|
43
|
-
.reduce(mergeDeepLeft);
|
|
44
|
-
|
|
45
|
-
module.exports = packageTranslations;
|