@bigbinary/neeto-commons-frontend 4.13.95 → 4.13.96
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/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/mount/mount.js +68 -69
- package/dist/cjs/react-utils/mount/mount.js.map +1 -1
- 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/mount/mount.js +68 -69
- package/dist/react-utils/mount/mount.js.map +1 -1
- package/initializers.d.ts +1 -1
- package/package.json +4 -2
- package/react-utils.d.ts +3 -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
|
@@ -8,76 +8,75 @@ import '../../_commonjsHelpers-BFTU3MAI.js';
|
|
|
8
8
|
|
|
9
9
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
10
10
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
11
|
-
function
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
var _ref2, reactClass, reactProps, importFn, props, module, Component, root;
|
|
18
|
-
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
19
|
-
while (1) switch (_context.prev = _context.next) {
|
|
20
|
-
case 0:
|
|
21
|
-
if (!(((_element$dataset = element.dataset) === null || _element$dataset === void 0 ? void 0 : _element$dataset.mounted) === "true")) {
|
|
22
|
-
_context.next = 2;
|
|
23
|
-
break;
|
|
24
|
-
}
|
|
25
|
-
return _context.abrupt("return");
|
|
26
|
-
case 2:
|
|
27
|
-
_ref2 = element.dataset || {}, reactClass = _ref2.reactClass, reactProps = _ref2.reactProps;
|
|
28
|
-
if (reactClass) {
|
|
29
|
-
_context.next = 5;
|
|
30
|
-
break;
|
|
31
|
-
}
|
|
32
|
-
return _context.abrupt("return");
|
|
33
|
-
case 5:
|
|
34
|
-
importFn = components[reactClass];
|
|
35
|
-
if (importFn) {
|
|
36
|
-
_context.next = 9;
|
|
37
|
-
break;
|
|
38
|
-
}
|
|
39
|
-
console.warn("WARNING: No component found for:", reactClass, components);
|
|
40
|
-
return _context.abrupt("return");
|
|
41
|
-
case 9:
|
|
42
|
-
props = {};
|
|
43
|
-
if (reactProps) {
|
|
44
|
-
try {
|
|
45
|
-
props = JSON.parse(reactProps);
|
|
46
|
-
} catch (_unused) {
|
|
47
|
-
console.error("Invalid JSON in data-react-props:", reactProps);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
_context.prev = 11;
|
|
51
|
-
_context.next = 14;
|
|
52
|
-
return _retryImport(importFn);
|
|
53
|
-
case 14:
|
|
54
|
-
module = _context.sent;
|
|
55
|
-
Component = module["default"] || module;
|
|
56
|
-
root = ReactDOM.createRoot(element);
|
|
57
|
-
root.render(/*#__PURE__*/jsx(Component, _objectSpread({}, props)));
|
|
58
|
-
if (element.dataset) element.dataset.mounted = "true";
|
|
59
|
-
_context.next = 24;
|
|
60
|
-
break;
|
|
61
|
-
case 21:
|
|
62
|
-
_context.prev = 21;
|
|
63
|
-
_context.t0 = _context["catch"](11);
|
|
64
|
-
console.error("Failed to load component \"".concat(reactClass, "\""), _context.t0);
|
|
65
|
-
case 24:
|
|
66
|
-
case "end":
|
|
67
|
-
return _context.stop();
|
|
68
|
-
}
|
|
69
|
-
}, _callee, null, [[11, 21]]);
|
|
70
|
-
}));
|
|
71
|
-
return function (_x) {
|
|
72
|
-
return _ref.apply(this, arguments);
|
|
73
|
-
};
|
|
74
|
-
}());
|
|
75
|
-
};
|
|
76
|
-
if (document.readyState === "loading") {
|
|
77
|
-
document.addEventListener("DOMContentLoaded", run);
|
|
78
|
-
} else {
|
|
79
|
-
run();
|
|
11
|
+
var jsonParse = function jsonParse(value) {
|
|
12
|
+
if (typeof value !== "string") return {};
|
|
13
|
+
try {
|
|
14
|
+
return JSON.parse(value);
|
|
15
|
+
} catch (_unused) {
|
|
16
|
+
return {};
|
|
80
17
|
}
|
|
18
|
+
};
|
|
19
|
+
function mount(_x) {
|
|
20
|
+
return _mount.apply(this, arguments);
|
|
21
|
+
}
|
|
22
|
+
function _mount() {
|
|
23
|
+
_mount = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(componentMap) {
|
|
24
|
+
var _element$dataset;
|
|
25
|
+
var element, _ref, reactClass, reactProps, importFn, props, module, Component, root;
|
|
26
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
27
|
+
while (1) switch (_context.prev = _context.next) {
|
|
28
|
+
case 0:
|
|
29
|
+
element = document.querySelector("[data-react-class]");
|
|
30
|
+
if (element) {
|
|
31
|
+
_context.next = 3;
|
|
32
|
+
break;
|
|
33
|
+
}
|
|
34
|
+
return _context.abrupt("return");
|
|
35
|
+
case 3:
|
|
36
|
+
if (!(((_element$dataset = element.dataset) === null || _element$dataset === void 0 ? void 0 : _element$dataset.mounted) === "true")) {
|
|
37
|
+
_context.next = 5;
|
|
38
|
+
break;
|
|
39
|
+
}
|
|
40
|
+
return _context.abrupt("return");
|
|
41
|
+
case 5:
|
|
42
|
+
_ref = element.dataset || {}, reactClass = _ref.reactClass, reactProps = _ref.reactProps;
|
|
43
|
+
if (reactClass) {
|
|
44
|
+
_context.next = 8;
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
return _context.abrupt("return");
|
|
48
|
+
case 8:
|
|
49
|
+
importFn = componentMap[reactClass];
|
|
50
|
+
if (importFn) {
|
|
51
|
+
_context.next = 12;
|
|
52
|
+
break;
|
|
53
|
+
}
|
|
54
|
+
console.warn("WARNING: No component found for:", reactClass, componentMap);
|
|
55
|
+
return _context.abrupt("return");
|
|
56
|
+
case 12:
|
|
57
|
+
props = jsonParse(reactProps);
|
|
58
|
+
_context.prev = 13;
|
|
59
|
+
_context.next = 16;
|
|
60
|
+
return _retryImport(importFn);
|
|
61
|
+
case 16:
|
|
62
|
+
module = _context.sent;
|
|
63
|
+
Component = module["default"] || module;
|
|
64
|
+
root = ReactDOM.createRoot(element);
|
|
65
|
+
root.render(/*#__PURE__*/jsx(Component, _objectSpread({}, props)));
|
|
66
|
+
if (element.dataset) element.dataset.mounted = "true";
|
|
67
|
+
_context.next = 26;
|
|
68
|
+
break;
|
|
69
|
+
case 23:
|
|
70
|
+
_context.prev = 23;
|
|
71
|
+
_context.t0 = _context["catch"](13);
|
|
72
|
+
console.error("Failed to load component \"".concat(reactClass, "\""), _context.t0);
|
|
73
|
+
case 26:
|
|
74
|
+
case "end":
|
|
75
|
+
return _context.stop();
|
|
76
|
+
}
|
|
77
|
+
}, _callee, null, [[13, 23]]);
|
|
78
|
+
}));
|
|
79
|
+
return _mount.apply(this, arguments);
|
|
81
80
|
}
|
|
82
81
|
|
|
83
82
|
export { mount as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mount.js","sources":["../../../src/react-utils/mount/mount.jsx"],"sourcesContent":["/* eslint-disable no-console */\nimport ReactDOM from \"react-dom/client\";\nimport retryImport from \"utils/retryImport\";\n\
|
|
1
|
+
{"version":3,"file":"mount.js","sources":["../../../src/react-utils/mount/mount.jsx"],"sourcesContent":["/* eslint-disable no-console */\nimport ReactDOM from \"react-dom/client\";\nimport retryImport from \"utils/retryImport\";\n\nconst jsonParse = value => {\n if (typeof value !== \"string\") return {};\n\n try {\n return JSON.parse(value);\n } catch {\n return {};\n }\n};\n\nexport default async function mount(componentMap) {\n const element = document.querySelector(\"[data-react-class]\");\n if (!element) return;\n\n if (element.dataset?.mounted === \"true\") return;\n\n const { reactClass, reactProps } = element.dataset || {};\n if (!reactClass) return;\n\n const importFn = componentMap[reactClass];\n\n if (!importFn) {\n console.warn(\"WARNING: No component found for:\", reactClass, componentMap);\n\n return;\n }\n\n const props = jsonParse(reactProps);\n\n try {\n const module = await retryImport(importFn);\n const Component = module.default || module;\n\n const root = ReactDOM.createRoot(element);\n root.render(<Component {...props} />);\n\n if (element.dataset) element.dataset.mounted = \"true\";\n } catch (error) {\n console.error(`Failed to load component \"${reactClass}\"`, error);\n }\n}\n"],"names":["jsonParse","value","JSON","parse","_unused","mount","_x","_mount","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","componentMap","_element$dataset","element","_ref","reactClass","reactProps","importFn","props","module","Component","root","wrap","_callee$","_context","prev","next","document","querySelector","abrupt","dataset","mounted","console","warn","retryImport","sent","ReactDOM","createRoot","render","_jsx","_objectSpread","t0","error","concat","stop"],"mappings":"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"}
|
package/initializers.d.ts
CHANGED
|
@@ -65,7 +65,7 @@ type TaxonomiesType = {
|
|
|
65
65
|
plural: string;
|
|
66
66
|
};
|
|
67
67
|
};
|
|
68
|
-
export default function initializeApplication(configurations
|
|
68
|
+
export default function initializeApplication(configurations?: Configurations): void;
|
|
69
69
|
export const globalProps: GlobalPropsType;
|
|
70
70
|
export const taxonomies: TaxonomiesType;
|
|
71
71
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bigbinary/neeto-commons-frontend",
|
|
3
|
-
"version": "4.13.
|
|
3
|
+
"version": "4.13.96",
|
|
4
4
|
"description": "A package encapsulating common code across neeto projects including initializers, utility functions, common components and hooks and so on.",
|
|
5
5
|
"repository": "git@github.com:bigbinary/neeto-commons-frontend.git",
|
|
6
6
|
"author": "Amaljith K <amaljith.k@bigbinary.com>",
|
|
@@ -67,7 +67,8 @@
|
|
|
67
67
|
"files": [
|
|
68
68
|
"dist",
|
|
69
69
|
"configs",
|
|
70
|
-
"*.d.ts"
|
|
70
|
+
"*.d.ts",
|
|
71
|
+
"src/translations"
|
|
71
72
|
],
|
|
72
73
|
"devDependencies": {
|
|
73
74
|
"@babel/cli": "^7.23.0",
|
|
@@ -167,6 +168,7 @@
|
|
|
167
168
|
"husky": "7.0.4",
|
|
168
169
|
"i18next": "22.5.1",
|
|
169
170
|
"i18next-browser-languagedetector": "^7.1.0",
|
|
171
|
+
"i18next-resources-to-backend": "^1.2.1",
|
|
170
172
|
"immer": "^10.0.2",
|
|
171
173
|
"jest": "29.7.0",
|
|
172
174
|
"jest-environment-jsdom": "29.7.0",
|
package/react-utils.d.ts
CHANGED
|
@@ -2015,13 +2015,13 @@ export function lazyWithRetry(importFn: () => Promise<{
|
|
|
2015
2015
|
* import mount from "@bigbinary/neeto-commons-frontend/react-utils/mount";
|
|
2016
2016
|
*
|
|
2017
2017
|
* // Define your component mappings
|
|
2018
|
-
* const
|
|
2018
|
+
* const componentMap = {
|
|
2019
2019
|
* MyComponent: () => import("./components/MyComponent"),
|
|
2020
2020
|
* AnotherComponent: () => import("./components/AnotherComponent"),
|
|
2021
2021
|
* };
|
|
2022
2022
|
*
|
|
2023
2023
|
* // Call mount with the component mappings
|
|
2024
|
-
* mount(
|
|
2024
|
+
* mount(componentMap);
|
|
2025
2025
|
* @endexample
|
|
2026
2026
|
* In your HTML, you would have elements like:
|
|
2027
2027
|
*
|
|
@@ -2040,6 +2040,6 @@ export function lazyWithRetry(importFn: () => Promise<{
|
|
|
2040
2040
|
* with automatic retry logic.
|
|
2041
2041
|
*
|
|
2042
2042
|
*/
|
|
2043
|
-
export function mount(
|
|
2043
|
+
export function mount(componentMap: Record<string, () => Promise<{
|
|
2044
2044
|
default: React.ComponentType<any>;
|
|
2045
2045
|
} | React.ComponentType<any>>>): void;
|
|
@@ -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": "تم رفض الإذن. تأكد من أنك تمتلك الإذن لإنشاء webhooks للمستودع.",
|
|
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": "Нещо се обърка. Моля, опитайте отново по-късно."
|
|
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": "Достъпът е отказан. Уверете се, че имате право да създавате уебхукове за хранилището.",
|
|
80
|
+
"primaryNonDeletable": "Основната Github сметка не може да бъде изтрита."
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"neetoCommons": {
|
|
84
|
+
"fallbackComponent": {
|
|
85
|
+
"somethingWentWrong": "Съжалявам, нещо се обърка.",
|
|
86
|
+
"description": "Моля опитайте <reloading>rелодиране</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": "Ha hagut un error. Si us plau, torneu-ho a provar més tard."
|
|
4
|
+
},
|
|
5
|
+
"authentication": {
|
|
6
|
+
"notLoggedIn": "No s'ha pogut autenticar, si us plau, inicieu sessió per continuar!",
|
|
7
|
+
"couldNotAuth": "No s'ha pogut autenticar amb el {{parameter}} proporcionat.",
|
|
8
|
+
"incorrectPassword": "La contrasenya actual és incorrecta. Si us plau, torneu-ho a provar.",
|
|
9
|
+
"incorrectEmailPassword": "Correu electrònic o contrasenya incorrectes. Si us plau, torneu-ho a provar."
|
|
10
|
+
},
|
|
11
|
+
"authorization": {
|
|
12
|
+
"unauthorized": "No esteu autoritzat per realitzar aquesta acció."
|
|
13
|
+
},
|
|
14
|
+
"resource": {
|
|
15
|
+
"add_one": "{{entity}} s'ha afegit correctament.",
|
|
16
|
+
"add_other": "{{entity}} s'han afegit correctament.",
|
|
17
|
+
"save": "{{entity}} s'ha desat correctament.",
|
|
18
|
+
"save_one": "{{entity}} s'ha desat correctament.",
|
|
19
|
+
"save_other": "{{entity}} s'han desat correctament.",
|
|
20
|
+
"update": "{{entity}} s'ha actualitzat correctament.",
|
|
21
|
+
"update_one": "{{entity}} s'ha actualitzat correctament.",
|
|
22
|
+
"update_other": "{{entity}} s'han actualitzat correctament.",
|
|
23
|
+
"delete_one": "{{entity}} s'ha eliminat correctament.",
|
|
24
|
+
"delete_other": "{{entity}} s'han eliminat correctament.",
|
|
25
|
+
"clone": "{{entity}} s'ha clonat correctament.",
|
|
26
|
+
"notFound": "{{entity}} no existeix.",
|
|
27
|
+
"remove_one": "{{entity}} s'ha eliminat correctament.",
|
|
28
|
+
"remove_other": "{{entity}} s'han eliminat correctament.",
|
|
29
|
+
"sent": "{{entity}} s'ha enviat correctament.",
|
|
30
|
+
"merged": "{{entity}} s'han fusionat correctament.",
|
|
31
|
+
"disconnected": "{{entity}} s'ha desconnectat correctament."
|
|
32
|
+
},
|
|
33
|
+
"otp": {
|
|
34
|
+
"sent": "OTP s'ha enviat correctament.",
|
|
35
|
+
"invalid": "OTP invàlid",
|
|
36
|
+
"verified": "OTP s'ha verificat correctament."
|
|
37
|
+
},
|
|
38
|
+
"upload": {
|
|
39
|
+
"error": "Ha ocorregut un error durant la càrrega del fitxer"
|
|
40
|
+
},
|
|
41
|
+
"image": {
|
|
42
|
+
"profile": {
|
|
43
|
+
"removalFailed": "No s'ha pogut eliminar la imatge de perfil",
|
|
44
|
+
"removalSuccess": "Imatge de perfil eliminada correctament"
|
|
45
|
+
},
|
|
46
|
+
"contentTypeInvalid": "Altres formats que no siguin jpg, png, svg no són compatibles",
|
|
47
|
+
"sizeOutOfRange": "No ha de ser superior a {{maxSize, number}} MB"
|
|
48
|
+
},
|
|
49
|
+
"userRole": {
|
|
50
|
+
"deactivateActiveAdmin": "No podeu desactivar un administrador actiu del lloc de treball!"
|
|
51
|
+
},
|
|
52
|
+
"activeRecord": {
|
|
53
|
+
"error": {
|
|
54
|
+
"blankName": "El nom no pot estar buit",
|
|
55
|
+
"blankDescription": "La descripció no pot estar buida",
|
|
56
|
+
"blankValue": "El valor no pot estar buit",
|
|
57
|
+
"prefixType": "El tipus de prefix {{value}} no és vàlid",
|
|
58
|
+
"minimumEntryLimit": "El límit mínim d'entrades ha de ser inferior o igual a {{maximumEntryLimit, number}}",
|
|
59
|
+
"maximumEntryLimit": "El límit màxim d'entrades ha de ser superior o igual a {{minimumEntryLimit, number}}"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"sessions": {
|
|
63
|
+
"expiry": "La vostra sessió ha caducat. Si us plau, torneu a iniciar sessió."
|
|
64
|
+
},
|
|
65
|
+
"payment": {
|
|
66
|
+
"error": {
|
|
67
|
+
"incomplete": "El vostre pagament no s'ha pogut completar"
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
"invitations": {
|
|
71
|
+
"deleted_one": "L'invitació s'ha eliminat correctament",
|
|
72
|
+
"deleted_other": "{{count, number}} invitacions s'han eliminat correctament",
|
|
73
|
+
"sent_one": "L'invitació s'ha enviat correctament",
|
|
74
|
+
"sent_other": "{{count, number}} invitacions s'han enviat correctament",
|
|
75
|
+
"notFound": "{{email}} no va ser convidat a provar aquest lloc web."
|
|
76
|
+
},
|
|
77
|
+
"github": {
|
|
78
|
+
"error": {
|
|
79
|
+
"webhookPermissionDenied": "Permís denegat. Assegureu-vos que teniu permís per crear webhooks per al repositori.",
|
|
80
|
+
"primaryNonDeletable": "El compte principal de Github no es pot eliminar."
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"neetoCommons": {
|
|
84
|
+
"fallbackComponent": {
|
|
85
|
+
"somethingWentWrong": "Ho sento, hi ha hagut un error.",
|
|
86
|
+
"description": "Si us plau, proveu <reloading>reloading</reloading> la pàgina.<br> Si el problema persisteix, <contactus>contacteu amb nosaltres</contactus>."
|
|
87
|
+
},
|
|
88
|
+
"toastr": {
|
|
89
|
+
"success": {
|
|
90
|
+
"copiedToClipboard": "Copiat al porta-retalls!"
|
|
91
|
+
},
|
|
92
|
+
"error": {
|
|
93
|
+
"networkError": "Error de xarxa. Si us plau, revisa la teva connexió i torna a intentar-ho.",
|
|
94
|
+
"noInternetConnection": "Sense connexió a Internet."
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
"notice": {
|
|
98
|
+
"errorOccurred": "S'ha produït algun error."
|
|
99
|
+
},
|
|
100
|
+
"validators": {
|
|
101
|
+
"isRequired": "{{what}} és obligatori.",
|
|
102
|
+
"mustNotContainCapitalLetters": "{{what}} no ha de contenir lletres majúscules.",
|
|
103
|
+
"mustNotContainSpaces": "{{what}} no ha de contenir espais.",
|
|
104
|
+
"mustNotContainSpecialCharactersExceptHyphen": "{{what}} no ha de contenir cap caràcter especial, excepte '-'",
|
|
105
|
+
"mustNotStartOrEndWithSpecialCharacters": "{{what}} no ha de començar ni acabar amb caràcters especials."
|
|
106
|
+
},
|
|
107
|
+
"copyToClipboard": {
|
|
108
|
+
"failed": "No s'ha pogut copiar al porta-retalls"
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|