@sd-angular/core 19.0.0-beta.93 → 19.0.0-beta.94
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/components/document-builder/src/components/header-footer-builder/header-footer-builder.component.d.ts +4 -1
- package/components/document-builder/src/document-builder.model.d.ts +2 -0
- package/components/editor/src/models/editor.model.d.ts +2 -0
- package/components/editor/src/plugins/image-upload/utils/validate.utils.d.ts +2 -1
- package/components/splitter/src/splitter.component.d.ts +15 -2
- package/components/table/src/components/selector-action/selector-action.component.d.ts +1 -0
- package/components/table/src/table.component.d.ts +1 -0
- package/configurations/src/sd-core.configuration.d.ts +1 -0
- package/fesm2022/sd-angular-core-components-code-editor.mjs +3 -2
- package/fesm2022/sd-angular-core-components-code-editor.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-document-builder.mjs +29 -8
- package/fesm2022/sd-angular-core-components-document-builder.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-editor.mjs +31 -16
- package/fesm2022/sd-angular-core-components-editor.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-form-generic.mjs +68 -61
- package/fesm2022/sd-angular-core-components-form-generic.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-history.mjs +3 -2
- package/fesm2022/sd-angular-core-components-history.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-import-excel.mjs +25 -23
- package/fesm2022/sd-angular-core-components-import-excel.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-preview.mjs +6 -4
- package/fesm2022/sd-angular-core-components-preview.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-splitter.mjs +188 -18
- package/fesm2022/sd-angular-core-components-splitter.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-tab-router.mjs +3 -1
- package/fesm2022/sd-angular-core-components-tab-router.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-table.mjs +30 -23
- package/fesm2022/sd-angular-core-components-table.mjs.map +1 -1
- package/fesm2022/sd-angular-core-components-upload-file.mjs +24 -21
- package/fesm2022/sd-angular-core-components-upload-file.mjs.map +1 -1
- package/fesm2022/sd-angular-core-configurations.mjs.map +1 -1
- package/fesm2022/sd-angular-core-directives.mjs +6 -2
- package/fesm2022/sd-angular-core-directives.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-autocomplete.mjs +3 -1
- package/fesm2022/sd-angular-core-forms-autocomplete.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-chip-calendar.mjs +5 -3
- package/fesm2022/sd-angular-core-forms-chip-calendar.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-chip.mjs +5 -3
- package/fesm2022/sd-angular-core-forms-chip.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-date-range.mjs +8 -5
- package/fesm2022/sd-angular-core-forms-date-range.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-date.mjs +7 -5
- package/fesm2022/sd-angular-core-forms-date.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-datetime.mjs +10 -8
- package/fesm2022/sd-angular-core-forms-datetime.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-input-number.mjs +5 -3
- package/fesm2022/sd-angular-core-forms-input-number.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-input.mjs +13 -6
- package/fesm2022/sd-angular-core-forms-input.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-radio.mjs +3 -2
- package/fesm2022/sd-angular-core-forms-radio.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-select.mjs +5 -3
- package/fesm2022/sd-angular-core-forms-select.mjs.map +1 -1
- package/fesm2022/sd-angular-core-forms-textarea.mjs +8 -5
- package/fesm2022/sd-angular-core-forms-textarea.mjs.map +1 -1
- package/fesm2022/sd-angular-core-handlers.mjs +7 -6
- package/fesm2022/sd-angular-core-handlers.mjs.map +1 -1
- package/fesm2022/sd-angular-core-i18n.mjs +790 -0
- package/fesm2022/sd-angular-core-i18n.mjs.map +1 -0
- package/fesm2022/sd-angular-core-interceptors.mjs +10 -6
- package/fesm2022/sd-angular-core-interceptors.mjs.map +1 -1
- package/fesm2022/sd-angular-core-modules-authom.mjs +1 -0
- package/fesm2022/sd-angular-core-modules-authom.mjs.map +1 -1
- package/fesm2022/sd-angular-core-modules-keycloak.mjs +1 -0
- package/fesm2022/sd-angular-core-modules-keycloak.mjs.map +1 -1
- package/fesm2022/sd-angular-core-modules-layout.mjs +47 -46
- package/fesm2022/sd-angular-core-modules-layout.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-confirm.mjs +15 -13
- package/fesm2022/sd-angular-core-services-confirm.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-docx.mjs +7 -7
- package/fesm2022/sd-angular-core-services-docx.mjs.map +1 -1
- package/fesm2022/sd-angular-core-services-excel.mjs +5 -3
- package/fesm2022/sd-angular-core-services-excel.mjs.map +1 -1
- package/fesm2022/sd-angular-core-utilities-extensions.mjs +18 -11
- package/fesm2022/sd-angular-core-utilities-extensions.mjs.map +1 -1
- package/fesm2022/sd-angular-core-utilities-models.mjs +30 -28
- package/fesm2022/sd-angular-core-utilities-models.mjs.map +1 -1
- package/fesm2022/sd-angular-core.mjs +1 -0
- package/fesm2022/sd-angular-core.mjs.map +1 -1
- package/i18n/index.d.ts +5 -0
- package/i18n/src/en.d.ts +2 -0
- package/i18n/src/sd-i18n.messages.d.ts +2 -0
- package/i18n/src/sd-i18n.pipe.d.ts +9 -0
- package/i18n/src/sd-i18n.service.d.ts +12 -0
- package/i18n/src/sd-i18n.token.d.ts +1 -0
- package/i18n/src/sd-i18n.types.d.ts +5 -0
- package/i18n/src/vi.d.ts +312 -0
- package/package.json +53 -49
- package/public-api.d.ts +1 -0
- package/sd-angular-core-19.0.0-beta.94.tgz +0 -0
- package/services/confirm/src/lib/confirm.service.d.ts +1 -0
- package/sd-angular-core-19.0.0-beta.93.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-angular-core-utilities-models.mjs","sources":["../../../projects/sd-angular/utilities/models/src/icon.model.ts","../../../projects/sd-angular/utilities/models/src/pattern.model.ts","../../../projects/sd-angular/utilities/models/src/empty.model.ts","../../../projects/sd-angular/utilities/models/src/maybe-async.model.ts","../../../projects/sd-angular/utilities/models/src/operator.model.ts","../../../projects/sd-angular/utilities/models/sd-angular-core-utilities-models.ts"],"sourcesContent":["export type MaterialIconFontSet = 'material-icons' | 'material-icons-outlined' | 'material-icons-round' | 'material-icons-sharp' | 'material-symbols-outlined';\nexport const DefaultMaterialIconFontSet: MaterialIconFontSet = 'material-icons-outlined';\n","import { StringUtilities } from \"@sd-angular/core/utilities/extensions\";\
|
|
1
|
+
{"version":3,"file":"sd-angular-core-utilities-models.mjs","sources":["../../../projects/sd-angular/utilities/models/src/icon.model.ts","../../../projects/sd-angular/utilities/models/src/pattern.model.ts","../../../projects/sd-angular/utilities/models/src/empty.model.ts","../../../projects/sd-angular/utilities/models/src/maybe-async.model.ts","../../../projects/sd-angular/utilities/models/src/operator.model.ts","../../../projects/sd-angular/utilities/models/sd-angular-core-utilities-models.ts"],"sourcesContent":["export type MaterialIconFontSet = 'material-icons' | 'material-icons-outlined' | 'material-icons-round' | 'material-icons-sharp' | 'material-symbols-outlined';\nexport const DefaultMaterialIconFontSet: MaterialIconFontSet = 'material-icons-outlined';\n","import { StringUtilities } from \"@sd-angular/core/utilities/extensions\";\n\nexport type SdPatternType = 'EMAIL' | 'PHONE' | 'PHONE_VN' | 'IDVN' | 'PASSPORT' | 'IDVN_OR_PASSPORT' | 'TIME';\n\n// `name` và `errorMessage` chứa i18n KEY (không phải chuỗi đã dịch).\n// Consumer phải gọi i18n.t(value) trước khi hiển thị ra UI.\nexport interface SdPatternCommon {\n type: SdPatternType;\n name: string;\n regex: string;\n errorMessage: string;\n}\n\nexport const SdPatternCommons: SdPatternCommon[] = [\n {\n type: 'EMAIL',\n name: 'core.validator.email.name',\n regex: StringUtilities.REGEX_EMAIL,\n errorMessage: 'core.validator.email.error',\n },\n {\n type: 'PHONE',\n name: 'core.validator.phone.name',\n regex: StringUtilities.REGEX_PHONE,\n errorMessage: 'core.validator.phone.error',\n },\n {\n type: 'PHONE_VN',\n name: 'core.validator.phone-vn.name',\n regex: StringUtilities.REGEX_PHONE_VN,\n errorMessage: 'core.validator.phone-vn.error',\n },\n {\n type: 'IDVN',\n name: 'core.validator.cccd.name',\n regex: StringUtilities.REGEX_IDVN,\n errorMessage: 'core.validator.cccd.error',\n },\n {\n type: 'PASSPORT',\n name: 'core.validator.passport.name',\n regex: StringUtilities.REGEX_PASSPORT,\n errorMessage: 'core.validator.passport.error',\n },\n {\n type: 'IDVN_OR_PASSPORT',\n name: 'core.validator.id-vn.name',\n regex: StringUtilities.REGEX_IDVN_OR_PASSPORT,\n errorMessage: 'core.validator.id-vn.error',\n },\n {\n type: 'TIME',\n name: 'core.validator.time.name',\n regex: StringUtilities.REGEX_TIME,\n errorMessage: 'core.validator.time.error',\n },\n];\n","export const SD_EMPTY_STR = '--';\r\n","import { firstValueFrom, from, Observable, of } from 'rxjs';\r\n\r\nexport type SdMaybeAsync<T> = T | Promise<T> | Observable<T>;\r\n\r\nexport const SdResolveMaybeAsync = <T>(value: SdMaybeAsync<T>): Promise<T> => {\r\n if (value instanceof Promise) {\r\n return value;\r\n }\r\n if (isObservable(value)) {\r\n return firstValueFrom(value);\r\n }\r\n return Promise.resolve(value);\r\n};\r\n\r\nexport const SdNormalizeAsync = <T>(value: SdMaybeAsync<T>): Observable<T> => {\r\n if (isObservable(value)) {\r\n return value; // Nếu là Observable, giữ nguyên\r\n }\r\n if (value instanceof Promise) {\r\n return from(value); // Nếu là Promise, chuyển sang Observable\r\n }\r\n return of(value); // Nếu là giá trị thuần (Object, string...), bọc lại bằng of\r\n};\r\n\r\nfunction isObservable(obj: any): obj is Observable<any> {\r\n return obj && typeof obj.subscribe === 'function';\r\n}","export type SdOperator = SdOperatorHasData | SdOperatorNoData;\n\nexport type SdOperatorHasData =\n | 'EQUAL'\n | 'NOT_EQUAL'\n | 'CONTAIN'\n | 'NOT_CONTAIN'\n | 'IN'\n | 'NOT_IN'\n | 'START_WITH'\n | 'END_WITH'\n | 'GREATER_THAN'\n | 'LESS_THAN'\n | 'GREATER_OR_EQUAL'\n | 'LESS_OR_EQUAL'\n | 'BETWEEN';\n\nexport type SdOperatorNoData = 'NULL' | 'NOT_NULL';\n\n// `display` chứa i18n KEY (không phải chuỗi đã dịch).\n// Consumer phải gọi i18n.t(display) trước khi render ra UI.\nexport const SdOperators: {\n value: SdOperator;\n symbol?: string;\n display: string;\n}[] = [\n {\n value: 'EQUAL',\n symbol: '=',\n display: 'core.operator.equal.display',\n },\n {\n value: 'NOT_EQUAL',\n symbol: '≠',\n display: 'core.operator.not-equal.display',\n },\n {\n value: 'GREATER_THAN',\n symbol: '>',\n display: 'core.operator.greater-than.display',\n },\n {\n value: 'LESS_THAN',\n symbol: '<',\n display: 'core.operator.less-than.display',\n },\n {\n value: 'GREATER_OR_EQUAL',\n symbol: '≥',\n display: 'core.operator.greater-or-equal.display',\n },\n {\n value: 'LESS_OR_EQUAL',\n symbol: '≤',\n display: 'core.operator.less-or-equal.display',\n },\n {\n value: 'CONTAIN',\n symbol: 'join_inner',\n display: 'core.operator.contain.display',\n },\n {\n value: 'NOT_CONTAIN',\n symbol: 'join',\n display: 'core.operator.not-contain.display',\n },\n {\n value: 'START_WITH',\n symbol: 'line_start_circle',\n display: 'core.operator.start-with.display',\n },\n {\n value: 'END_WITH',\n symbol: 'line_end_circle',\n display: 'core.operator.end-with.display',\n },\n {\n value: 'IN',\n symbol: 'checklist_rtl',\n display: 'core.operator.in.display',\n },\n {\n value: 'NOT_IN',\n symbol: 'event_list',\n display: 'core.operator.not-in.display',\n },\n {\n value: 'NULL',\n symbol: 'motion_photos_off',\n display: 'core.operator.null.display',\n },\n {\n value: 'NOT_NULL',\n symbol: 'adjust',\n display: 'core.operator.not-null.display',\n },\n];\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-angular-core.mjs","sources":["../../../projects/sd-angular/src/public-api.ts","../../../projects/sd-angular/src/sd-angular-core.ts"],"sourcesContent":["/*\n * Public API Surface of sd-angular\n */\nimport '@sd-angular/core/configurations';\nimport '@sd-angular/core/utilities';\nimport '@sd-angular/core/pipes';\nimport '@sd-angular/core/directives';\nimport '@sd-angular/core/services';\nimport '@sd-angular/core/interceptors';\nimport '@sd-angular/core/handlers';\nimport '@sd-angular/core/components';\nimport '@sd-angular/core/forms';\nimport '@sd-angular/core/modules';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sd-angular-core.mjs","sources":["../../../projects/sd-angular/src/public-api.ts","../../../projects/sd-angular/src/sd-angular-core.ts"],"sourcesContent":["/*\n * Public API Surface of sd-angular\n */\nimport '@sd-angular/core/configurations';\nimport '@sd-angular/core/i18n';\nimport '@sd-angular/core/utilities';\nimport '@sd-angular/core/pipes';\nimport '@sd-angular/core/directives';\nimport '@sd-angular/core/services';\nimport '@sd-angular/core/interceptors';\nimport '@sd-angular/core/handlers';\nimport '@sd-angular/core/components';\nimport '@sd-angular/core/forms';\nimport '@sd-angular/core/modules';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;AAEG;;ACFH;;AAEG"}
|
package/i18n/index.d.ts
ADDED
package/i18n/src/en.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { PipeTransform } from '@angular/core';
|
|
2
|
+
import { SdI18nParams } from './sd-i18n.types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class SdTPipe implements PipeTransform {
|
|
5
|
+
#private;
|
|
6
|
+
transform(key: string, params?: SdI18nParams): string;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdTPipe, never>;
|
|
8
|
+
static ɵpipe: i0.ɵɵPipeDeclaration<SdTPipe, "sdT", true>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Signal } from '@angular/core';
|
|
2
|
+
import { SdI18nParams, SdLanguage } from './sd-i18n.types';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class SdI18nService {
|
|
5
|
+
#private;
|
|
6
|
+
readonly language: Signal<SdLanguage>;
|
|
7
|
+
readonly messages: Signal<Readonly<Record<string, string>>>;
|
|
8
|
+
setLanguage(lang: SdLanguage): void;
|
|
9
|
+
t(key: string, params?: SdI18nParams): string;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SdI18nService, never>;
|
|
11
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<SdI18nService>;
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const SD_I18N_STORAGE_KEY = "sd-core.language";
|
package/i18n/src/vi.d.ts
ADDED
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
export declare const VI_MESSAGES: {
|
|
2
|
+
readonly 'core.common.cancel': "Hủy";
|
|
3
|
+
readonly 'core.common.close': "Đóng";
|
|
4
|
+
readonly 'core.common.reload': "Tải lại trang";
|
|
5
|
+
readonly 'core.test.greet': "Xin chào {name}";
|
|
6
|
+
readonly 'core.validator.email.name': "Email";
|
|
7
|
+
readonly 'core.validator.email.error': "Email không hợp lệ";
|
|
8
|
+
readonly 'core.validator.phone.name': "SĐT";
|
|
9
|
+
readonly 'core.validator.phone.error': "Số điện thoại không hợp lệ";
|
|
10
|
+
readonly 'core.validator.phone-vn.name': "SĐT VN";
|
|
11
|
+
readonly 'core.validator.phone-vn.error': "Số điện thoại không hợp lệ";
|
|
12
|
+
readonly 'core.validator.cccd.name': "CCCD";
|
|
13
|
+
readonly 'core.validator.cccd.error': "CCCD không hợp lệ (12 chữ số)";
|
|
14
|
+
readonly 'core.validator.passport.name': "Hộ chiếu";
|
|
15
|
+
readonly 'core.validator.passport.error': "Hộ chiếu không hợp lệ (1 chữ cái + 7 chữ số)";
|
|
16
|
+
readonly 'core.validator.id-vn.name': "CCCD/Hộ chiếu";
|
|
17
|
+
readonly 'core.validator.id-vn.error': "CCCD/CMND hoặc Hộ chiếu không hợp lệ";
|
|
18
|
+
readonly 'core.validator.time.name': "Giờ";
|
|
19
|
+
readonly 'core.validator.time.error': "Giờ không hợp lệ (định dạng HH:mm)";
|
|
20
|
+
readonly 'core.operator.equal.display': "Bằng";
|
|
21
|
+
readonly 'core.operator.not-equal.display': "Không bằng";
|
|
22
|
+
readonly 'core.operator.greater-than.display': "Lớn hơn";
|
|
23
|
+
readonly 'core.operator.less-than.display': "Nhỏ hơn";
|
|
24
|
+
readonly 'core.operator.greater-or-equal.display': "Lớn hơn, hoặc bằng";
|
|
25
|
+
readonly 'core.operator.less-or-equal.display': "Nhỏ hơn, hoặc bằng";
|
|
26
|
+
readonly 'core.operator.contain.display': "Chứa";
|
|
27
|
+
readonly 'core.operator.not-contain.display': "Không chứa";
|
|
28
|
+
readonly 'core.operator.start-with.display': "Bắt đầu bởi";
|
|
29
|
+
readonly 'core.operator.end-with.display': "Kết thúc bởi";
|
|
30
|
+
readonly 'core.operator.in.display': "Nằm trong";
|
|
31
|
+
readonly 'core.operator.not-in.display': "Không nằm trong";
|
|
32
|
+
readonly 'core.operator.null.display': "Là rỗng";
|
|
33
|
+
readonly 'core.operator.not-null.display': "Không rỗng";
|
|
34
|
+
readonly 'core.utility.upload.invalid-format': "[{name}] File tải lên không đúng định dạng. Vui lòng chọn lại";
|
|
35
|
+
readonly 'core.utility.upload.invalid-size': "[{name}] Kích thước file không hợp lệ. Vui lòng chọn một file khác";
|
|
36
|
+
readonly 'core.handler.global-error.update-title': "HỆ THỐNG CÓ BẢN CẬP NHẬT MỚI";
|
|
37
|
+
readonly 'core.handler.global-error.update-body': "Phiên bản hiện tại đã cũ và không tải được tài nguyên.\nVui lòng bấm OK để tải lại trang.";
|
|
38
|
+
readonly 'core.interceptor.no-internet.offline': "Không có kết nối mạng. Đang chờ kết nối...";
|
|
39
|
+
readonly 'core.interceptor.no-internet.cors-error': "Không thể kết nối đến máy chủ (Lỗi CORS hoặc cấu hình).";
|
|
40
|
+
readonly 'core.interceptor.no-internet.maintenance': "Máy chủ đang bảo trì. Vui lòng thử lại sau!";
|
|
41
|
+
readonly 'core.interceptor.no-internet.restored': "Kết nối đã được khôi phục!";
|
|
42
|
+
readonly 'core.excel.cannot-read-file': "Không đọc được nội dung file";
|
|
43
|
+
readonly 'core.excel.no-sheet': "File Excel không có sheet dữ liệu";
|
|
44
|
+
readonly 'core.docx.invalid-format': "Định dạng không hợp lệ. Vui lòng chọn Mẫu có định dạng DOC hoặc DOCX";
|
|
45
|
+
readonly 'core.docx.size-exceeded': "Kích thước tệp mẫu vượt quá tiêu chuẩn hỗ trợ của hệ thống. Vui lòng thử lại";
|
|
46
|
+
readonly 'core.docx.convert-error': "Có lỗi xảy ra khi chuyển đổi file DOCX";
|
|
47
|
+
readonly 'core.confirm.title': "Xác nhận";
|
|
48
|
+
readonly 'core.confirm.yes': "Đồng ý";
|
|
49
|
+
readonly 'core.confirm.no': "Hủy bỏ";
|
|
50
|
+
readonly 'core.confirm.yes-short': "Có";
|
|
51
|
+
readonly 'core.confirm.no-short': "Không";
|
|
52
|
+
readonly 'core.directive.hover-copy.tooltip': "Sao chép";
|
|
53
|
+
readonly 'core.form.input.required': "Vui lòng nhập thông tin";
|
|
54
|
+
readonly 'core.form.input.maxlength': "Số ký tự tối đa: {max}";
|
|
55
|
+
readonly 'core.form.input.invalid-pattern': "Định dạng không hợp lệ";
|
|
56
|
+
readonly 'core.form.input.exceeded': "Vượt quá số ký tự tối đa";
|
|
57
|
+
readonly 'core.form.autocomplete.required': "Vui lòng nhập thông tin";
|
|
58
|
+
readonly 'core.form.chip.required': "Vui lòng nhập thông tin";
|
|
59
|
+
readonly 'core.form.chip.minlength': "Vui lòng nhập ít nhất {min} giá trị";
|
|
60
|
+
readonly 'core.form.chip.maxlength': "Vui lòng nhập tối đa {max} giá trị";
|
|
61
|
+
readonly 'core.form.chip-calendar.required': "Vui lòng nhập thông tin";
|
|
62
|
+
readonly 'core.form.chip-calendar.minlength': "Vui lòng nhập ít nhất {min} giá trị";
|
|
63
|
+
readonly 'core.form.chip-calendar.maxlength': "Vui lòng nhập tối đa {max} giá trị";
|
|
64
|
+
readonly 'core.form.date.required': "Vui lòng nhập thông tin";
|
|
65
|
+
readonly 'core.form.date.min-date': "Ngày nhỏ nhất: {date}";
|
|
66
|
+
readonly 'core.form.date.max-date': "Ngày lớn nhất: {date}";
|
|
67
|
+
readonly 'core.form.date.parse-error': "Lỗi phân tích: {text}";
|
|
68
|
+
readonly 'core.form.date.invalid-format': "Sai định dạng";
|
|
69
|
+
readonly 'core.form.date-range.required': "Vui lòng nhập thông tin";
|
|
70
|
+
readonly 'core.form.date-range.invalid-min': "Ngày bắt đầu không hợp lệ (nhỏ hơn giới hạn)";
|
|
71
|
+
readonly 'core.form.date-range.invalid-max': "Ngày kết thúc không hợp lệ (lớn hơn giới hạn)";
|
|
72
|
+
readonly 'core.form.date-range.from': "Từ";
|
|
73
|
+
readonly 'core.form.date-range.to': "đến";
|
|
74
|
+
readonly 'core.form.datetime.required': "Vui lòng nhập thông tin";
|
|
75
|
+
readonly 'core.form.datetime.min-date': "Ngày nhỏ nhất: {date}";
|
|
76
|
+
readonly 'core.form.datetime.max-date': "Ngày lớn nhất: {date}";
|
|
77
|
+
readonly 'core.form.datetime.invalid-format': "Sai định dạng";
|
|
78
|
+
readonly 'core.form.datetime.now': "Bây giờ";
|
|
79
|
+
readonly 'core.form.datetime.confirm': "Xác nhận";
|
|
80
|
+
readonly 'core.form.time-spinner.hour': "Giờ";
|
|
81
|
+
readonly 'core.form.time-spinner.minute': "Phút";
|
|
82
|
+
readonly 'core.form.time-spinner.second': "Giây";
|
|
83
|
+
readonly 'core.form.time-spinner.increase-hour': "Tăng giờ";
|
|
84
|
+
readonly 'core.form.time-spinner.decrease-hour': "Giảm giờ";
|
|
85
|
+
readonly 'core.form.time-spinner.increase-minute': "Tăng phút";
|
|
86
|
+
readonly 'core.form.time-spinner.decrease-minute': "Giảm phút";
|
|
87
|
+
readonly 'core.form.time-spinner.increase-second': "Tăng giây";
|
|
88
|
+
readonly 'core.form.time-spinner.decrease-second': "Giảm giây";
|
|
89
|
+
readonly 'core.form.input-number.required': "Vui lòng nhập thông tin";
|
|
90
|
+
readonly 'core.form.input-number.min': "Giá trị không được nhỏ hơn {min}";
|
|
91
|
+
readonly 'core.form.input-number.max': "Giá trị không được lớn hơn {max}";
|
|
92
|
+
readonly 'core.form.radio.required': "Vui lòng nhập thông tin";
|
|
93
|
+
readonly 'core.form.select.required': "Vui lòng nhập thông tin";
|
|
94
|
+
readonly 'core.form.textarea.required': "Vui lòng nhập thông tin";
|
|
95
|
+
readonly 'core.form.textarea.maxlength': "Số ký tự tối đa: {max}";
|
|
96
|
+
readonly 'core.form.textarea.invalid-pattern': "Định dạng không hợp lệ";
|
|
97
|
+
readonly 'core.form.textarea.exceeded': "Vượt quá số ký tự tối đa";
|
|
98
|
+
readonly 'core.component.editor.required': "Vui lòng nhập nội dung";
|
|
99
|
+
readonly 'core.component.editor.maxlength': "Số ký tự tối đa: {max}";
|
|
100
|
+
readonly 'core.component.editor.image.invalid-format': "Định dạng file \".{format}\" không được phép. Các định dạng hợp lệ: {allowed}";
|
|
101
|
+
readonly 'core.component.editor.image.size-exceeded': "Dung lượng file {sizeMB}MB vượt quá giới hạn {maxSizeMB}MB";
|
|
102
|
+
readonly 'core.component.editor.image.min-width': "Chiều rộng ảnh {width}px nhỏ hơn giới hạn tối thiểu {min}px";
|
|
103
|
+
readonly 'core.component.editor.image.min-height': "Chiều cao ảnh {height}px nhỏ hơn giới hạn tối thiểu {min}px";
|
|
104
|
+
readonly 'core.component.editor.image.max-width': "Chiều rộng ảnh {width}px vượt quá giới hạn {max}px";
|
|
105
|
+
readonly 'core.component.editor.image.max-height': "Chiều cao ảnh {height}px vượt quá giới hạn {max}px";
|
|
106
|
+
readonly 'core.component.editor.image.max-per-selection': "Chỉ được phép chọn tối đa {max} ảnh mỗi lần";
|
|
107
|
+
readonly 'core.component.document-builder.page-number.current': "Số trang hiện tại";
|
|
108
|
+
readonly 'core.component.document-builder.page-number.total': "Tổng số trang";
|
|
109
|
+
readonly 'core.component.document-builder.ck-comment.label': "Bình luận";
|
|
110
|
+
readonly 'core.component.document-builder.ck-comment.text-too-long': "Văn bản quá dài ({length} ký tự). Tối đa {max} ký tự.";
|
|
111
|
+
readonly 'core.component.document-builder.variable.not-allowed': "Không cho phép thêm variable vào văn bản";
|
|
112
|
+
readonly 'core.component.document-builder.variable.invalid-data': "Dữ liệu variable không hợp lệ";
|
|
113
|
+
readonly 'core.component.form-builder.field-key': "Trường dữ liệu";
|
|
114
|
+
readonly 'core.component.form-builder.display': "Hiển thị";
|
|
115
|
+
readonly 'core.component.form-builder.general': "Thông tin chung";
|
|
116
|
+
readonly 'core.component.form-builder.visible-when': "Hiển thị khi";
|
|
117
|
+
readonly 'core.component.form-builder.required': "Bắt buộc";
|
|
118
|
+
readonly 'core.component.form-builder.label': "Tên hiển thị";
|
|
119
|
+
readonly 'core.component.form-builder.disabled': "Vô hiệu";
|
|
120
|
+
readonly 'core.component.form-builder.disabled-when': "Vô hiệu khi";
|
|
121
|
+
readonly 'core.component.form-builder.hidden-when': "Ẩn khi";
|
|
122
|
+
readonly 'core.component.form-builder.validation': "Ràng buộc";
|
|
123
|
+
readonly 'core.component.form-builder.required-when': "Bắt buộc khi";
|
|
124
|
+
readonly 'core.component.form-builder.confirm': "Xác nhận";
|
|
125
|
+
readonly 'core.component.form-builder.delete': "Xóa";
|
|
126
|
+
readonly 'core.component.form-builder.save': "Lưu";
|
|
127
|
+
readonly 'core.component.form-builder.hint': "Gợi ý";
|
|
128
|
+
readonly 'core.component.form-builder.parameter': "Tham số";
|
|
129
|
+
readonly 'core.component.form-builder.add-field': "Thêm trường";
|
|
130
|
+
readonly 'core.component.form-builder.data': "Dữ liệu";
|
|
131
|
+
readonly 'core.component.form-builder.query-condition': "Điều kiện truy vấn";
|
|
132
|
+
readonly 'core.component.form-builder.set-query-value': "Thiết lập giá trị truy vấn";
|
|
133
|
+
readonly 'core.component.form-builder.value-source-field': "Trường lấy giá trị";
|
|
134
|
+
readonly 'core.component.form-builder.assign-parameter': "Gán tham số";
|
|
135
|
+
readonly 'core.component.form-builder.template-data': "Dữ liệu mẫu";
|
|
136
|
+
readonly 'core.component.form-builder.set-expression': "Thiết lập biểu thức";
|
|
137
|
+
readonly 'core.component.form-builder.condition-group': "Nhóm điều kiện";
|
|
138
|
+
readonly 'core.component.form-builder.condition': "Điều kiện";
|
|
139
|
+
readonly 'core.component.form-builder.layout': "Bố cục";
|
|
140
|
+
readonly 'core.component.form-builder.maxlength': "Ký tự tối đa";
|
|
141
|
+
readonly 'core.component.form-builder.assign-parameter-value': "Gán giá trị Tham số";
|
|
142
|
+
readonly 'core.component.form-builder.parameter-name': "Tên tham số";
|
|
143
|
+
readonly 'core.component.form-builder.parameter-value': "Giá trị tương ứng";
|
|
144
|
+
readonly 'core.component.form-builder.assign-value': "Gán giá trị";
|
|
145
|
+
readonly 'core.component.form-builder.add-data': "Thêm dữ liệu";
|
|
146
|
+
readonly 'core.component.form-builder.data-api': "Dữ liệu API";
|
|
147
|
+
readonly 'core.component.form-builder.data-static': "Dữ liệu tĩnh";
|
|
148
|
+
readonly 'core.component.form-builder.set-on-change-assign': "Thiết lập gán giá trị khi thay đổi";
|
|
149
|
+
readonly 'core.component.form-builder.target-field': "Trường muốn gán giá trị";
|
|
150
|
+
readonly 'core.component.form-builder.target-value': "Giá trị muốn gán";
|
|
151
|
+
readonly 'core.component.form-builder.column-data': "Dữ liệu cột";
|
|
152
|
+
readonly 'core.component.form-builder.add-column': "Thêm cột";
|
|
153
|
+
readonly 'core.component.form-builder.column-config': "Cấu hình cột";
|
|
154
|
+
readonly 'core.component.form-builder.column-name': "Tên cột";
|
|
155
|
+
readonly 'core.component.form-builder.width': "Chiều rộng";
|
|
156
|
+
readonly 'core.component.form-builder.data-type': "Loại dữ liệu";
|
|
157
|
+
readonly 'core.component.form-builder.show-when-true': "Hiển thị khi TRUE";
|
|
158
|
+
readonly 'core.component.form-builder.show-when-false': "Hiển thị khi FALSE";
|
|
159
|
+
readonly 'core.component.form-builder.column-list': "Danh sách cột";
|
|
160
|
+
readonly 'core.component.form-builder.yes-no': "Có/Không";
|
|
161
|
+
readonly 'core.component.form-builder.config-validation-error-warning': "Cấu hình xác thực lỗi/cảnh báo";
|
|
162
|
+
readonly 'core.component.form-builder.message-type': "Loại thông báo";
|
|
163
|
+
readonly 'core.component.form-builder.message-display': "Thông báo hiển thị";
|
|
164
|
+
readonly 'core.component.form-builder.condition-expression': "Biểu thức điều kiện";
|
|
165
|
+
readonly 'core.component.form-builder.add-validation': "Thêm xác thực";
|
|
166
|
+
readonly 'core.component.form-builder.expression': "Biểu thức";
|
|
167
|
+
readonly 'core.component.form-builder.available-methods': "Phương thức sẵn có";
|
|
168
|
+
readonly 'core.component.form-builder.format': "Định dạng";
|
|
169
|
+
readonly 'core.component.form-builder.time': "Thời điểm";
|
|
170
|
+
readonly 'core.component.form-builder.content': "Nội dung";
|
|
171
|
+
readonly 'core.component.form-builder.min': "Giá trị nhỏ nhất";
|
|
172
|
+
readonly 'core.component.form-builder.max': "Giá trị lớn nhất";
|
|
173
|
+
readonly 'core.component.form-builder.vertical': "Dọc";
|
|
174
|
+
readonly 'core.component.form-builder.multiple': "Chọn nhiều";
|
|
175
|
+
readonly 'core.component.form-builder.default-value': "Giá trị mặc định";
|
|
176
|
+
readonly 'core.component.form-builder.type': "Loại";
|
|
177
|
+
readonly 'core.component.form-builder.file': "Tệp";
|
|
178
|
+
readonly 'core.component.form-builder.image': "Ảnh";
|
|
179
|
+
readonly 'core.component.form-builder.max-files': "SL tệp/ảnh tối đa";
|
|
180
|
+
readonly 'core.component.form-builder.size-mb': "Dung lượng (Mb)";
|
|
181
|
+
readonly 'core.component.form-builder.format-example': "Định dạng (VD: png,jpg ...)";
|
|
182
|
+
readonly 'core.component.form-builder.source-mobile': "Nguồn (mobile)";
|
|
183
|
+
readonly 'core.component.form-builder.config-variable': "Cấu hình biến";
|
|
184
|
+
readonly 'core.component.form-builder.config-validation-warning-error': "Cấu hình xác thực cảnh báo/lỗi";
|
|
185
|
+
readonly 'core.component.form-builder.back-to-design': "Trở về thiết kế";
|
|
186
|
+
readonly 'core.component.form-builder.preview': "Xem thử";
|
|
187
|
+
readonly 'core.component.form-builder.drag-vertically': "Kéo lên / xuống";
|
|
188
|
+
readonly 'core.component.form-builder.unset-readonly': "Bỏ chỉ xem";
|
|
189
|
+
readonly 'core.component.form-builder.set-readonly': "Chỉ xem";
|
|
190
|
+
readonly 'core.component.form-builder.duplicate': "Nhân bản";
|
|
191
|
+
readonly 'core.component.form-builder.show': "Hiện";
|
|
192
|
+
readonly 'core.component.form-builder.hide': "Ẩn";
|
|
193
|
+
readonly 'core.component.form-builder.flex': "Co dãn";
|
|
194
|
+
readonly 'core.component.form-builder.display-label': "Nhãn hiển thị";
|
|
195
|
+
readonly 'core.component.form-builder.attribute': "Thuộc tính";
|
|
196
|
+
readonly 'core.component.form-builder.add-variable': "Thêm biến";
|
|
197
|
+
readonly 'core.component.form-builder.add-new': "Thêm mới";
|
|
198
|
+
readonly 'core.component.form-builder.detail': "Chi tiết";
|
|
199
|
+
readonly 'core.component.form-builder.create-update': "Tạo mới/cập nhật";
|
|
200
|
+
readonly 'core.component.form-builder.default': "Mặc định";
|
|
201
|
+
readonly 'core.component.form-builder.show-more': "Xem thêm";
|
|
202
|
+
readonly 'core.component.form-builder.show-less': "Thu gọn";
|
|
203
|
+
readonly 'core.component.form-builder.row-overflow': "Không thể di chuyển tới dòng này vì tổng kích thước vượt quá 12 cột";
|
|
204
|
+
readonly 'core.component.form-builder.upload-source.all': "Tất cả";
|
|
205
|
+
readonly 'core.component.form-builder.upload-source.photo-library': "Chọn từ thư viện";
|
|
206
|
+
readonly 'core.component.form-builder.upload-source.capture': "Chụp ảnh";
|
|
207
|
+
readonly 'core.component.code-editor.copied': "Đã copy!";
|
|
208
|
+
readonly 'core.component.code-editor.copy': "Copy code";
|
|
209
|
+
readonly 'core.component.history.by': "Bởi";
|
|
210
|
+
readonly 'core.component.import-excel.title': "Nhập dữ liệu Excel";
|
|
211
|
+
readonly 'core.component.import-excel.see-all': "Xem tất cả";
|
|
212
|
+
readonly 'core.component.import-excel.valid-rows': "Số dòng dữ liệu hợp lệ";
|
|
213
|
+
readonly 'core.component.import-excel.error-rows': "Số dòng dữ liệu có lỗi";
|
|
214
|
+
readonly 'core.component.import-excel.warning-rows': "Số dòng dữ liệu có cảnh báo";
|
|
215
|
+
readonly 'core.component.import-excel.valid-data': "Dữ liệu hợp lệ";
|
|
216
|
+
readonly 'core.component.import-excel.download-template-tooltip': "Nhấn để tải tệp mẫu về máy";
|
|
217
|
+
readonly 'core.component.import-excel.upload': "Tải lên";
|
|
218
|
+
readonly 'core.component.import-excel.download': "Tải về";
|
|
219
|
+
readonly 'core.component.import-excel.confirm-save': "Xác nhận & Lưu";
|
|
220
|
+
readonly 'core.component.import-excel.status': "Trạng thái";
|
|
221
|
+
readonly 'core.component.import-excel.no-data-upload': "Chưa có dữ liệu tải lên";
|
|
222
|
+
readonly 'core.component.import-excel.click-here-template': "Nhấn vào đây để tải tệp mẫu";
|
|
223
|
+
readonly 'core.component.import-excel.no-data-in-file': "Tệp tin không có dữ liệu";
|
|
224
|
+
readonly 'core.component.import-excel.row-limit': "Giới hạn tải lên {limit} dòng";
|
|
225
|
+
readonly 'core.component.import-excel.required': "Dữ liệu bắt buộc";
|
|
226
|
+
readonly 'core.component.import-excel.min-length': "Độ dài chuỗi tối thiểu: {min}";
|
|
227
|
+
readonly 'core.component.import-excel.max-length': "Độ dài chuỗi tối đa: {max}";
|
|
228
|
+
readonly 'core.component.import-excel.not-a-number': "{value} không phải số hợp lệ";
|
|
229
|
+
readonly 'core.component.import-excel.below-min': "{value} không thỏa giá trị tối thiểu: {min}";
|
|
230
|
+
readonly 'core.component.import-excel.above-max': "{value} không thỏa giá trị tối đa: {max}";
|
|
231
|
+
readonly 'core.component.import-excel.invalid-bool': "Vui lòng nhập giá trị hợp lệ true, false, 1, 0";
|
|
232
|
+
readonly 'core.component.import-excel.invalid-value': "Giá trị {value} không hợp lệ";
|
|
233
|
+
readonly 'core.component.import-excel.value-not-in-list': "Giá trị {value} không thuộc danh sách cho phép [{list}]";
|
|
234
|
+
readonly 'core.component.import-excel.invalid-date-format': "Ngày {value} không đúng định dạng {format}";
|
|
235
|
+
readonly 'core.component.import-excel.generic-error': "Có lỗi xảy ra";
|
|
236
|
+
readonly 'core.component.import-excel.notify-title': "Thông báo";
|
|
237
|
+
readonly 'core.component.import-excel.message-column': "Thông báo";
|
|
238
|
+
readonly 'core.component.import-excel.success': "Thành công";
|
|
239
|
+
readonly 'core.component.preview-image.no-image': "Không có thông tin ảnh";
|
|
240
|
+
readonly 'core.component.preview-image.title': "Xem ảnh";
|
|
241
|
+
readonly 'core.component.table.setup': "Thiết lập bảng";
|
|
242
|
+
readonly 'core.component.table.column-header': "Tiêu đề cột";
|
|
243
|
+
readonly 'core.component.table.width': "Rộng";
|
|
244
|
+
readonly 'core.component.table.fixed': "Cố định";
|
|
245
|
+
readonly 'core.component.table.char-limit': "Giới hạn ký tự";
|
|
246
|
+
readonly 'core.component.table.skip': "Bỏ qua";
|
|
247
|
+
readonly 'core.component.table.apply': "Áp dụng";
|
|
248
|
+
readonly 'core.component.table.filter': "Bộ lọc";
|
|
249
|
+
readonly 'core.component.table.clear-selection': "Xóa lựa chọn";
|
|
250
|
+
readonly 'core.component.table.customize': "Tùy chỉnh";
|
|
251
|
+
readonly 'core.component.table.search': "Tìm kiếm";
|
|
252
|
+
readonly 'core.component.table.reload': "Tải lại";
|
|
253
|
+
readonly 'core.component.table.setup-short': "Thiết lập";
|
|
254
|
+
readonly 'core.component.table.no-results': "Không có kết quả phù hợp";
|
|
255
|
+
readonly 'core.component.table.no-results-hint': "Vui lòng tìm kiếm hoặc lọc theo tiêu chí khác";
|
|
256
|
+
readonly 'core.component.table.choose-filter-hint': "Vui lòng chọn bộ lọc để bắt đầu";
|
|
257
|
+
readonly 'core.component.table.no-data': "Chưa có dữ liệu";
|
|
258
|
+
readonly 'core.component.table.export-excel': "Xuất excel";
|
|
259
|
+
readonly 'core.component.table.export-csv': "Xuất CSV";
|
|
260
|
+
readonly 'core.component.table.showing': "Đang hiển thị:";
|
|
261
|
+
readonly 'core.component.table.paginator.first-page': "Trang đầu";
|
|
262
|
+
readonly 'core.component.table.paginator.last-page': "Trang cuối";
|
|
263
|
+
readonly 'core.component.table.paginator.items-per-page': "Đang hiển thị";
|
|
264
|
+
readonly 'core.component.table.paginator.next-page': "Trang sau";
|
|
265
|
+
readonly 'core.component.table.paginator.previous-page': "Trang trước";
|
|
266
|
+
readonly 'core.component.table.error-occurred': "Có lỗi xảy ra";
|
|
267
|
+
readonly 'core.component.table.not-an-array': "Dữ liệu không phải là một mảng";
|
|
268
|
+
readonly 'core.component.table.config.confirm-reset': "Xác nhận đưa tất cả thiết lập về mặc định";
|
|
269
|
+
readonly 'core.component.table.popup-export.select-columns': "Vui lòng chọn cột dữ liệu để xuất";
|
|
270
|
+
readonly 'core.component.table.selector-action.default-msg': "dữ liệu được chọn";
|
|
271
|
+
readonly 'core.component.tab-router.too-many-tabs': "Bạn đã mở quá nhiều tab.";
|
|
272
|
+
readonly 'core.component.upload-file.upload': "Tải file";
|
|
273
|
+
readonly 'core.component.upload-file.error-occurred': "Có lỗi xảy ra";
|
|
274
|
+
readonly 'core.component.upload-file.please-upload': "Vui lòng tải lên tệp/ảnh";
|
|
275
|
+
readonly 'core.component.upload-file.desc-format-and-size': "Định dạng: {exts} và tối đa: {maxSize}MB";
|
|
276
|
+
readonly 'core.component.upload-file.desc-format': "Định dạng: {exts}";
|
|
277
|
+
readonly 'core.component.upload-file.desc-max-size': "Tối đa: {maxSize}MB";
|
|
278
|
+
readonly 'core.component.upload-file.not-image': "[{name}] Tệp tải lên không phải là ảnh";
|
|
279
|
+
readonly 'core.component.upload-file.invalid-format': "[{name}] Tệp tải lên không đúng định dạng: {exts}";
|
|
280
|
+
readonly 'core.component.upload-file.size-exceeded': "[{name}] Kích thước tệp tối đa: {maxSize} MB";
|
|
281
|
+
readonly 'core.component.upload-file.upload-failed': "Có lỗi xảy ra trong quá trình tải lên tệp";
|
|
282
|
+
readonly 'core.component.upload-file.too-many-files': "Bạn đã chọn quá nhiều file. Vui lòng kiểm tra lại số lượng";
|
|
283
|
+
readonly 'core.component.upload-file.confirm-delete-message': "Bạn có muốn xóa file này không? Thao tác này không thể hoàn tác";
|
|
284
|
+
readonly 'core.component.upload-file.confirm-delete-title': "Xác nhận xóa?";
|
|
285
|
+
readonly 'core.component.upload-file.confirm-yes': "Xác nhận";
|
|
286
|
+
readonly 'core.component.upload-file.confirm-no': "Hủy";
|
|
287
|
+
readonly 'core.component.upload-file.no-configuration': "Vui lòng inject SD_UPLOAD_FILE_CONFIGURATION hoặc truyền [upload] trực tiếp vào component";
|
|
288
|
+
readonly 'core.component.upload-file.no-configuration-key': "Không tìm thấy upload configuration theo key='{key}'. Vui lòng kiểm tra providers hoặc truyền [upload] trực tiếp";
|
|
289
|
+
readonly 'core.component.upload-file.preview-title': "Xem ảnh";
|
|
290
|
+
readonly 'core.module.layout.user.change-password': "Đổi mật khẩu";
|
|
291
|
+
readonly 'core.module.layout.user.logout': "Đăng xuất";
|
|
292
|
+
readonly 'core.module.layout.sidebar.search': "Tìm kiếm";
|
|
293
|
+
readonly 'core.module.layout.greeting.hello': "Xin chào, {name}";
|
|
294
|
+
readonly 'core.module.layout.weekday.0': "Chủ Nhật";
|
|
295
|
+
readonly 'core.module.layout.weekday.1': "Thứ 2";
|
|
296
|
+
readonly 'core.module.layout.weekday.2': "Thứ 3";
|
|
297
|
+
readonly 'core.module.layout.weekday.3': "Thứ 4";
|
|
298
|
+
readonly 'core.module.layout.weekday.4': "Thứ 5";
|
|
299
|
+
readonly 'core.module.layout.weekday.5': "Thứ 6";
|
|
300
|
+
readonly 'core.module.layout.weekday.6': "Thứ 7";
|
|
301
|
+
readonly 'core.module.layout.today-info.format': "{weekday}, ngày {date}";
|
|
302
|
+
readonly 'core.module.layout.forbidden.title': "Không được phép truy cập";
|
|
303
|
+
readonly 'core.module.layout.forbidden.message': "Bạn không có quyền truy cập vào trang này. Liên hệ với quản trị viên hoặc quay lại trang chủ";
|
|
304
|
+
readonly 'core.module.layout.forbidden.back-home': "Quay lại trang chủ";
|
|
305
|
+
readonly 'core.module.layout.not-found.title': "404 - Trang không tồn tại";
|
|
306
|
+
readonly 'core.module.layout.not-found.message': "Trang bạn tìm không tồn tại hoặc đã bị xóa. Vui lòng kiểm tra lại địa chỉ URL hoặc quay lại trang chủ để tiếp tục.";
|
|
307
|
+
readonly 'core.module.layout.not-found.back': "Quay trở lại";
|
|
308
|
+
readonly 'core.module.layout.home.tab-name': "Trang chủ";
|
|
309
|
+
readonly 'core.module.layout.home.wish-line-1': "Chúc bạn một ngày làm việc";
|
|
310
|
+
readonly 'core.module.layout.home.wish-line-2': "tràn đầy năng lượng & hiệu quả!";
|
|
311
|
+
readonly 'core.module.generic.generic-select.detail-link': "chi tiết";
|
|
312
|
+
};
|