@codihaus/odp-app-hr 0.1.0
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/app/components/hr/contact/tab.vue +238 -0
- package/app/components/hr/department/card.vue +141 -0
- package/app/components/hr/department/form-modal.vue +90 -0
- package/app/components/hr/employees/assets/tab.vue +432 -0
- package/app/components/hr/employees/compensation.vue +136 -0
- package/app/components/hr/employees/contract.vue +77 -0
- package/app/components/hr/employees/insurance.vue +164 -0
- package/app/components/hr/employees/leave/tab.vue +180 -0
- package/app/components/hr/employees/provisioning/form-modal.vue +219 -0
- package/app/components/hr/employees/provisioning/tab.vue +187 -0
- package/app/components/hr/employees/tab.vue +38 -0
- package/app/components/hr/leave/calendar-tab.vue +649 -0
- package/app/components/hr/leave/override-modal.vue +62 -0
- package/app/components/hr/leave/request-modal.vue +185 -0
- package/app/components/hr/leave/requests-tab.vue +289 -0
- package/app/components/hr/leave/timeline-tab.vue +259 -0
- package/app/components/hr/offboarding/tab.vue +303 -0
- package/app/components/hr/person/activity/tab.vue +65 -0
- package/app/components/hr/person/activity/timeline.vue +119 -0
- package/app/components/hr/person/detail.vue +303 -0
- package/app/components/hr/person/document/tab-documents.vue +120 -0
- package/app/components/hr/person/document/template-edit-drawer.vue +215 -0
- package/app/components/hr/person/document/template-preview-card.vue +39 -0
- package/app/components/hr/person/document/trigger-modal.vue +121 -0
- package/app/components/hr/person/employee-form-modal.vue +78 -0
- package/app/components/hr/person/form-modal.vue +78 -0
- package/app/components/hr/person/list-row.vue +40 -0
- package/app/components/hr/person/profile/tab.vue +231 -0
- package/app/components/hr/settings/automation.vue +113 -0
- package/app/components/hr/settings/documents.vue +200 -0
- package/app/components/hr/settings/general.vue +87 -0
- package/app/components/hr/settings/holidays.vue +171 -0
- package/app/components/hr/settings/integrations.vue +185 -0
- package/app/components/hr/settings/policies.vue +83 -0
- package/app/components/hr/settings/policy/benefit-override-modal.vue +59 -0
- package/app/components/hr/settings/policy/editor-eligibility.vue +27 -0
- package/app/components/hr/settings/policy/editor-leave-base.vue +37 -0
- package/app/components/hr/settings/policy/editor-tenure-bonus.vue +61 -0
- package/app/components/hr/settings/recruitment.vue +128 -0
- package/app/components/hr/settings/taxonomies.vue +170 -0
- package/app/components/hr/shared/row.vue +21 -0
- package/app/components/hr/shared/section.vue +20 -0
- package/app/components/hr/shared/source-badge.vue +42 -0
- package/app/components/hr/shared/stage-badge.vue +24 -0
- package/app/components/hr/shared/workflow-timeline.vue +27 -0
- package/app/components/hr/talents/app-sidebar.vue +54 -0
- package/app/components/hr/talents/application-form-modal.vue +114 -0
- package/app/components/hr/talents/pipeline-picker.vue +56 -0
- package/app/components/hr/talents/step-detail.vue +133 -0
- package/app/components/hr/talents/step-stepper.vue +85 -0
- package/app/components/hr/talents/tab.vue +263 -0
- package/app/composables/use-departments.ts +59 -0
- package/app/composables/use-employee-detail.ts +24 -0
- package/app/composables/use-holidays.ts +48 -0
- package/app/composables/use-hr-api.ts +210 -0
- package/app/composables/use-hr-field-registry.ts +76 -0
- package/app/composables/use-hr-policies.ts +66 -0
- package/app/composables/use-hr-settings.ts +118 -0
- package/app/composables/use-leave.ts +71 -0
- package/app/composables/use-offboarding.ts +49 -0
- package/app/composables/use-people.ts +149 -0
- package/app/composables/use-providers.ts +44 -0
- package/app/composables/use-recruitment-workflow.ts +173 -0
- package/app/composables/use-templates.ts +44 -0
- package/app/composables/use-triggers.ts +26 -0
- package/app/config/column-renderers.ts +4 -0
- package/app/config/form-layouts.ts +193 -0
- package/app/data/hr-schema.ts +2608 -0
- package/app/lib/policy-engine.ts +116 -0
- package/app/pages/hr/departments.vue +114 -0
- package/app/pages/hr/employees/[id]/activity.vue +10 -0
- package/app/pages/hr/employees/[id]/assets.vue +14 -0
- package/app/pages/hr/employees/[id]/employment.vue +14 -0
- package/app/pages/hr/employees/[id]/index.vue +9 -0
- package/app/pages/hr/employees/[id]/offboarding.vue +7 -0
- package/app/pages/hr/employees/[id]/profile.vue +11 -0
- package/app/pages/hr/employees/[id]/provisioning.vue +17 -0
- package/app/pages/hr/employees/[id].vue +313 -0
- package/app/pages/hr/employees/index.vue +291 -0
- package/app/pages/hr/index.vue +3 -0
- package/app/pages/hr/leave.vue +79 -0
- package/app/pages/hr/settings.vue +43 -0
- package/app/pages/hr/setup.vue +3 -0
- package/app/pages/hr/talents/[id]/interview/[stepId].vue +231 -0
- package/app/pages/hr/talents/[id].vue +52 -0
- package/app/pages/hr/talents/index.vue +224 -0
- package/app/pages/hr.vue +129 -0
- package/app/plugins/hr-contacts-sync.client.ts +3 -0
- package/app/plugins/hr-extensions.ts +36 -0
- package/app/plugins/hr-setup.ts +5 -0
- package/app/plugins/navigations.ts +22 -0
- package/app/utils/hr-permissions.ts +27 -0
- package/app/utils/hr-policy-seed-step.ts +110 -0
- package/i18n/locales/en.json +726 -0
- package/i18n/locales/vi.json +688 -0
- package/nuxt.config.ts +19 -0
- package/package.json +27 -0
- package/server/api/hr/departments/[id].delete.ts +12 -0
- package/server/api/hr/departments/[id].patch.ts +14 -0
- package/server/api/hr/departments/index.get.ts +11 -0
- package/server/api/hr/departments/index.post.ts +13 -0
- package/server/api/hr/documents/templates/[id]/preview.post.ts +16 -0
- package/server/api/hr/documents/templates/[id].delete.ts +14 -0
- package/server/api/hr/documents/templates/[id].patch.ts +16 -0
- package/server/api/hr/documents/templates/index.get.ts +15 -0
- package/server/api/hr/documents/templates/index.post.ts +15 -0
- package/server/api/hr/documents/triggers/[id].patch.ts +16 -0
- package/server/api/hr/documents/triggers/index.get.ts +13 -0
- package/server/api/hr/fields/[collection].get.ts +14 -0
- package/server/api/hr/holidays/[id].delete.ts +14 -0
- package/server/api/hr/holidays/[id].patch.ts +16 -0
- package/server/api/hr/holidays/copy.post.ts +15 -0
- package/server/api/hr/holidays/index.get.ts +15 -0
- package/server/api/hr/holidays/index.post.ts +15 -0
- package/server/api/hr/leave/requests/[id].patch.ts +22 -0
- package/server/api/hr/leave/requests.get.ts +15 -0
- package/server/api/hr/leave/types.get.ts +13 -0
- package/server/api/hr/offboarding/[id]/cancel.post.ts +8 -0
- package/server/api/hr/offboarding/[id]/deprovision.post.ts +8 -0
- package/server/api/hr/offboarding/[id]/finalize.post.ts +8 -0
- package/server/api/hr/offboarding/[id]/return-assets.post.ts +8 -0
- package/server/api/hr/offboarding/[id]/settlement.get.ts +8 -0
- package/server/api/hr/offboarding/[id]/tasks/[taskId].patch.ts +10 -0
- package/server/api/hr/offboarding/[id].get.ts +8 -0
- package/server/api/hr/offboarding/[id].patch.ts +9 -0
- package/server/api/hr/offboarding/index.get.ts +7 -0
- package/server/api/hr/people/[id]/applications/[appId]/interviews/[iid].delete.ts +16 -0
- package/server/api/hr/people/[id]/applications/[appId]/interviews/[iid].patch.ts +18 -0
- package/server/api/hr/people/[id]/applications/[appId]/interviews/index.get.ts +15 -0
- package/server/api/hr/people/[id]/applications/[appId]/interviews/index.post.ts +17 -0
- package/server/api/hr/people/[id]/applications/[appId].patch.ts +17 -0
- package/server/api/hr/people/[id]/applications/index.get.ts +14 -0
- package/server/api/hr/people/[id]/applications/index.post.ts +16 -0
- package/server/api/hr/people/[id]/assets/[aid].delete.ts +13 -0
- package/server/api/hr/people/[id]/assets/[aid].patch.ts +15 -0
- package/server/api/hr/people/[id]/assets/index.get.ts +12 -0
- package/server/api/hr/people/[id]/assets/index.post.ts +14 -0
- package/server/api/hr/people/[id]/compensations.get.ts +14 -0
- package/server/api/hr/people/[id]/compensations.patch.ts +16 -0
- package/server/api/hr/people/[id]/contracts.get.ts +14 -0
- package/server/api/hr/people/[id]/contracts.patch.ts +16 -0
- package/server/api/hr/people/[id]/documents/[did].delete.ts +15 -0
- package/server/api/hr/people/[id]/documents/index.get.ts +14 -0
- package/server/api/hr/people/[id]/documents/index.post.ts +16 -0
- package/server/api/hr/people/[id]/insurances.get.ts +14 -0
- package/server/api/hr/people/[id]/insurances.patch.ts +16 -0
- package/server/api/hr/people/[id]/leave-balances/[bid].patch.ts +17 -0
- package/server/api/hr/people/[id]/leave-balances/index.get.ts +14 -0
- package/server/api/hr/people/[id]/leave-requests/index.get.ts +14 -0
- package/server/api/hr/people/[id]/leave-requests/index.post.ts +16 -0
- package/server/api/hr/people/[id]/link-user.post.ts +16 -0
- package/server/api/hr/people/[id]/notes/[nid].delete.ts +15 -0
- package/server/api/hr/people/[id]/notes/index.get.ts +14 -0
- package/server/api/hr/people/[id]/notes/index.post.ts +16 -0
- package/server/api/hr/people/[id]/offboarding/cases.get.ts +12 -0
- package/server/api/hr/people/[id]/offboarding.get.ts +12 -0
- package/server/api/hr/people/[id]/offboarding.post.ts +14 -0
- package/server/api/hr/people/[id]/provisioning/[logId]/retry.post.ts +7 -0
- package/server/api/hr/people/[id]/provisioning/index.get.ts +6 -0
- package/server/api/hr/people/[id]/provisioning/index.post.ts +7 -0
- package/server/api/hr/people/[id]/transition.post.ts +19 -0
- package/server/api/hr/people/[id]/transitions.get.ts +14 -0
- package/server/api/hr/people/[id].delete.ts +15 -0
- package/server/api/hr/people/[id].get.ts +14 -0
- package/server/api/hr/people/[id].patch.ts +17 -0
- package/server/api/hr/people/index.get.ts +15 -0
- package/server/api/hr/people/index.post.ts +19 -0
- package/server/api/hr/policies/[id].patch.ts +16 -0
- package/server/api/hr/policies/index.get.ts +13 -0
- package/server/api/hr/providers/[id]/test.post.ts +6 -0
- package/server/api/hr/providers/[id].delete.ts +6 -0
- package/server/api/hr/providers/[id].patch.ts +7 -0
- package/server/api/hr/providers/index.get.ts +5 -0
- package/server/api/hr/providers/index.post.ts +6 -0
- package/server/api/hr/settings/employment-types/[id].delete.ts +14 -0
- package/server/api/hr/settings/employment-types/[id].patch.ts +16 -0
- package/server/api/hr/settings/employment-types/index.get.ts +13 -0
- package/server/api/hr/settings/employment-types/index.post.ts +15 -0
- package/server/api/hr/settings/index.get.ts +13 -0
- package/server/api/hr/settings/index.patch.ts +15 -0
- package/server/api/hr/settings/leave-types/[id].delete.ts +14 -0
- package/server/api/hr/settings/leave-types/[id].patch.ts +16 -0
- package/server/api/hr/settings/leave-types/index.get.ts +13 -0
- package/server/api/hr/settings/leave-types/index.post.ts +15 -0
- package/shared/types/form-layout.ts +30 -0
- package/shared/types/index.ts +2 -0
- package/shared/types/integration.ts +41 -0
- package/shared/types/leave.ts +53 -0
- package/shared/types/offboarding.ts +46 -0
- package/shared/types/person.ts +54 -0
- package/shared/types/settings.ts +16 -0
- package/shared/utils/template-render.ts +155 -0
|
@@ -0,0 +1,688 @@
|
|
|
1
|
+
{
|
|
2
|
+
"common": {
|
|
3
|
+
"cancel": "Hủy",
|
|
4
|
+
"save": "Lưu",
|
|
5
|
+
"saved": "Đã lưu",
|
|
6
|
+
"update": "Cập nhật",
|
|
7
|
+
"delete": "Xóa",
|
|
8
|
+
"close": "Đóng",
|
|
9
|
+
"add": "Thêm",
|
|
10
|
+
"edit": "Sửa",
|
|
11
|
+
"all": "Tất cả",
|
|
12
|
+
"search": "Tìm kiếm",
|
|
13
|
+
"loading": "Đang tải...",
|
|
14
|
+
"no_data": "Không có dữ liệu",
|
|
15
|
+
"created": "Ngày tạo"
|
|
16
|
+
},
|
|
17
|
+
"settings": {
|
|
18
|
+
"general": {
|
|
19
|
+
"company_defaults_title": "Thiết lập mặc định công ty",
|
|
20
|
+
"company_defaults_desc": "Giá trị mặc định áp dụng cho toàn module Nhân sự.",
|
|
21
|
+
"company_name": "Tên công ty",
|
|
22
|
+
"default_currency": "Tiền tệ mặc định",
|
|
23
|
+
"default_currency_help": "Dùng cho các trường lương và phúc lợi.",
|
|
24
|
+
"fiscal_year_start_month": "Tháng bắt đầu năm tài chính",
|
|
25
|
+
"fiscal_year_start_month_help": "Tháng bắt đầu năm tài chính (1 = Tháng 1).",
|
|
26
|
+
"stage_labels": "Nhãn các giai đoạn",
|
|
27
|
+
"stage_labels_desc": "Tùy chỉnh cách hiển thị từng giai đoạn vòng đời."
|
|
28
|
+
},
|
|
29
|
+
"recruitment": {
|
|
30
|
+
"title": "Quy trình tuyển dụng",
|
|
31
|
+
"description": "Quản lý các luồng tuyển dụng ứng viên đi qua.",
|
|
32
|
+
"create_pipeline": "Tạo quy trình",
|
|
33
|
+
"no_pipelines": "Chưa có quy trình",
|
|
34
|
+
"no_pipelines_hint": "Tạo một quy trình để bắt đầu theo dõi ứng viên.",
|
|
35
|
+
"workflow_hint": "Quy trình được vận hành bởi các workflow definition."
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"taxonomies": {
|
|
39
|
+
"add_leave_type": "Thêm loại nghỉ phép",
|
|
40
|
+
"leave_type_desc": "Các loại nghỉ phép nhân viên có thể yêu cầu.",
|
|
41
|
+
"leave_type_placeholder": "Tên loại nghỉ phép",
|
|
42
|
+
"leave_type": {
|
|
43
|
+
"paid": "Có lương"
|
|
44
|
+
},
|
|
45
|
+
"add_employment_type": "Thêm loại hợp đồng",
|
|
46
|
+
"employment_type_desc": "Các loại hợp đồng lao động.",
|
|
47
|
+
"employment_type_placeholder": "Tên loại hợp đồng"
|
|
48
|
+
},
|
|
49
|
+
"calendar": {
|
|
50
|
+
"today": "Hôm nay",
|
|
51
|
+
"custom_range": "Khoảng tùy chỉnh",
|
|
52
|
+
"modes": {
|
|
53
|
+
"day": "Ngày",
|
|
54
|
+
"week": "Tuần",
|
|
55
|
+
"month": "Tháng"
|
|
56
|
+
},
|
|
57
|
+
"range_warning": {
|
|
58
|
+
"week": "Chọn ít nhất 7 ngày cho chế độ Tuần (hiện tại: {count} ngày)",
|
|
59
|
+
"month": "Chọn ít nhất 28 ngày cho chế độ Tháng (hiện tại: {count} ngày)"
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
"holidays": {
|
|
63
|
+
"title": "Ngày lễ",
|
|
64
|
+
"value": "Ngày lễ"
|
|
65
|
+
},
|
|
66
|
+
"policies": {
|
|
67
|
+
"enabled": "Bật",
|
|
68
|
+
"recalc_notice": "Thay đổi chính sách sẽ tính lại các số dư liên quan.",
|
|
69
|
+
"eligible_for": "Áp dụng cho",
|
|
70
|
+
"days_per_year": "Số ngày mỗi năm",
|
|
71
|
+
"base_days_helper": "Số ngày cơ bản cấp mỗi năm.",
|
|
72
|
+
"probation_months_helper": "Số tháng thử việc trước khi đủ điều kiện.",
|
|
73
|
+
"tenure_bonus_desc": "Số ngày thưởng thêm theo thâm niên.",
|
|
74
|
+
"add_tier": "Thêm mốc",
|
|
75
|
+
"after": "Sau",
|
|
76
|
+
"months": "tháng",
|
|
77
|
+
"years_bonus": "Ngày thưởng",
|
|
78
|
+
"value": {
|
|
79
|
+
"find": "Tìm"
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"hr": {
|
|
83
|
+
"title": "Nhân sự",
|
|
84
|
+
"sidebar": {
|
|
85
|
+
"employees": "Nhân viên",
|
|
86
|
+
"talents": "Ứng viên",
|
|
87
|
+
"leave": "Nghỉ phép",
|
|
88
|
+
"departments": "Phòng ban",
|
|
89
|
+
"settings": "Cài đặt",
|
|
90
|
+
"group_people": "Nhân sự",
|
|
91
|
+
"group_organization": "Tổ chức",
|
|
92
|
+
"back_to_hr": "Quay lại HR"
|
|
93
|
+
},
|
|
94
|
+
"settings": {
|
|
95
|
+
"general": "Chung",
|
|
96
|
+
"taxonomies": "Danh mục",
|
|
97
|
+
"policies": "Chính sách",
|
|
98
|
+
"holidays": "Ngày lễ",
|
|
99
|
+
"documents": "Tài liệu",
|
|
100
|
+
"automation": "Tự động hoá",
|
|
101
|
+
"integrations": "Tích hợp"
|
|
102
|
+
},
|
|
103
|
+
"setup": {
|
|
104
|
+
"title": "Cài đặt Module HR",
|
|
105
|
+
"description": "Sẽ tạo tất cả các bảng dữ liệu cần thiết cho module Nhân sự."
|
|
106
|
+
},
|
|
107
|
+
"talents": {
|
|
108
|
+
"title": "Ứng viên",
|
|
109
|
+
"search_placeholder": "Tìm ứng viên...",
|
|
110
|
+
"empty": "Chưa có ứng viên",
|
|
111
|
+
"empty_hint": "Bắt đầu bằng cách thêm ứng viên đầu tiên.",
|
|
112
|
+
"no_match": "Không có ứng viên khớp với bộ lọc hiện tại",
|
|
113
|
+
"clear_hint": "Thử xóa bộ lọc hoặc thay đổi từ khóa tìm kiếm.",
|
|
114
|
+
"clear_filters": "Xóa bộ lọc",
|
|
115
|
+
"not_found": "Không tìm thấy ứng viên",
|
|
116
|
+
"actions": {
|
|
117
|
+
"add": "Thêm ứng viên"
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"employees": {
|
|
121
|
+
"title": "Nhân viên",
|
|
122
|
+
"search_placeholder": "Tìm nhân viên...",
|
|
123
|
+
"empty": "Chưa có nhân viên",
|
|
124
|
+
"empty_hint": "Bắt đầu bằng cách thêm nhân viên đầu tiên.",
|
|
125
|
+
"no_match": "Không có nhân viên khớp với bộ lọc hiện tại",
|
|
126
|
+
"clear_hint": "Thử xóa bộ lọc hoặc thay đổi từ khóa tìm kiếm.",
|
|
127
|
+
"clear_filters": "Xóa bộ lọc",
|
|
128
|
+
"not_found": "Không tìm thấy nhân viên",
|
|
129
|
+
"all_departments": "Tất cả phòng ban",
|
|
130
|
+
"count_singular": "nhân viên",
|
|
131
|
+
"count_plural": "nhân viên",
|
|
132
|
+
"readonly_notice": "Hồ sơ nhân viên này chỉ đọc.",
|
|
133
|
+
"tabs": {
|
|
134
|
+
"all": "Tất cả",
|
|
135
|
+
"probation": "Thử việc",
|
|
136
|
+
"active": "Đang làm",
|
|
137
|
+
"resigned": "Đã nghỉ"
|
|
138
|
+
},
|
|
139
|
+
"columns": {
|
|
140
|
+
"name": "Nhân viên",
|
|
141
|
+
"id": "Mã NV",
|
|
142
|
+
"department": "Phòng ban",
|
|
143
|
+
"job_title": "Chức danh",
|
|
144
|
+
"type": "Loại HĐ",
|
|
145
|
+
"start_date": "Ngày vào",
|
|
146
|
+
"stage": "Trạng thái"
|
|
147
|
+
},
|
|
148
|
+
"sections": {
|
|
149
|
+
"identity": "Thông tin cá nhân",
|
|
150
|
+
"employment": "Thông tin việc làm",
|
|
151
|
+
"emergency": "Liên hệ khẩn cấp"
|
|
152
|
+
},
|
|
153
|
+
"actions": {
|
|
154
|
+
"add": "Thêm nhân viên",
|
|
155
|
+
"confirm_probation": "Xác nhận thử việc",
|
|
156
|
+
"resign": "Nghỉ việc",
|
|
157
|
+
"reactivate": "Kích hoạt lại"
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
"stages": {
|
|
161
|
+
"label": "Giai đoạn",
|
|
162
|
+
"talent": "Ứng viên",
|
|
163
|
+
"interviewing": "Phỏng vấn",
|
|
164
|
+
"offer": "Đề nghị",
|
|
165
|
+
"probation": "Thử việc",
|
|
166
|
+
"active": "Đang làm",
|
|
167
|
+
"resigned": "Đã nghỉ",
|
|
168
|
+
"transition_title": "{from} → {to}",
|
|
169
|
+
"reason_placeholder": "Lý do chuyển giai đoạn (tùy chọn)"
|
|
170
|
+
},
|
|
171
|
+
"actions": {
|
|
172
|
+
"move_to_interviewing": "Chuyển sang Phỏng vấn",
|
|
173
|
+
"send_offer": "Gửi Offer",
|
|
174
|
+
"hire": "Tuyển dụng",
|
|
175
|
+
"confirm_probation": "Xác nhận thử việc",
|
|
176
|
+
"back_to_talent": "Trở về Ứng viên",
|
|
177
|
+
"reject": "Từ chối",
|
|
178
|
+
"confirm_transition": "Xác nhận",
|
|
179
|
+
"mark_accepted_hire": "Đánh dấu Chấp nhận (Nhận việc)",
|
|
180
|
+
"mark_declined": "Đánh dấu Từ chối"
|
|
181
|
+
},
|
|
182
|
+
"convert": {
|
|
183
|
+
"action": "Chuyển thành nhân viên",
|
|
184
|
+
"title": "Chuyển thành nhân viên",
|
|
185
|
+
"description": "{name} sẽ được chuyển thẳng thành nhân viên.",
|
|
186
|
+
"note_employee_id": "Mã nhân viên sẽ được tạo tự động.",
|
|
187
|
+
"note_moved": "Người này chuyển sang danh sách Nhân viên và bắt đầu Thử việc.",
|
|
188
|
+
"start_date": "Ngày bắt đầu",
|
|
189
|
+
"reason": "Lý do"
|
|
190
|
+
},
|
|
191
|
+
"tabs": {
|
|
192
|
+
"profile": "Hồ sơ",
|
|
193
|
+
"activity": "Hoạt động",
|
|
194
|
+
"timeline": "Lịch sử",
|
|
195
|
+
"recruitment": "Tuyển dụng",
|
|
196
|
+
"offer": "Offer",
|
|
197
|
+
"employment": "Việc làm",
|
|
198
|
+
"provisioning": "Tài khoản hệ thống",
|
|
199
|
+
"offboarding": "Nghỉ việc"
|
|
200
|
+
},
|
|
201
|
+
"notes": {
|
|
202
|
+
"placeholder": "Thêm ghi chú...",
|
|
203
|
+
"add": "Thêm ghi chú",
|
|
204
|
+
"empty": "Chưa có ghi chú",
|
|
205
|
+
"deleted": "Đã xóa ghi chú"
|
|
206
|
+
},
|
|
207
|
+
"timeline": {
|
|
208
|
+
"empty": "Chưa có hoạt động",
|
|
209
|
+
"transition": "Chuyển giai đoạn: {from} → {to}"
|
|
210
|
+
},
|
|
211
|
+
"toast": {
|
|
212
|
+
"created": "Đã tạo ứng viên",
|
|
213
|
+
"updated": "Đã cập nhật",
|
|
214
|
+
"deleted": "Đã xóa ứng viên",
|
|
215
|
+
"stage_changed": "Chuyển giai đoạn thành {stage}",
|
|
216
|
+
"saved": "Đã lưu",
|
|
217
|
+
"error": "Đã xảy ra lỗi",
|
|
218
|
+
"hired": "Ứng viên đã được nhận việc thành công",
|
|
219
|
+
"confirmed": "Xác nhận thử việc — nhân viên đã chuyển sang Đang làm",
|
|
220
|
+
"resigned": "Nhân viên đã nghỉ việc",
|
|
221
|
+
"reactivated": "Nhân viên đã được kích hoạt lại"
|
|
222
|
+
},
|
|
223
|
+
"policy": {
|
|
224
|
+
"override": "Ghi đè",
|
|
225
|
+
"from_policy": "Từ chính sách"
|
|
226
|
+
},
|
|
227
|
+
"recruitment": {
|
|
228
|
+
"applications": "Đợt ứng tuyển",
|
|
229
|
+
"no_applications": "Chưa có đợt ứng tuyển",
|
|
230
|
+
"no_position": "Chưa có vị trí",
|
|
231
|
+
"select_application": "Chọn đợt ứng tuyển để xem chi tiết",
|
|
232
|
+
"readonly": "Chỉ đọc",
|
|
233
|
+
"opened": "Tạo ngày",
|
|
234
|
+
"error": {
|
|
235
|
+
"load": "Không tải được đợt ứng tuyển"
|
|
236
|
+
},
|
|
237
|
+
"app_status": {
|
|
238
|
+
"active": "Đang xử lý",
|
|
239
|
+
"hired": "Đã nhận việc",
|
|
240
|
+
"rejected": "Từ chối",
|
|
241
|
+
"withdrawn": "Rút hồ sơ"
|
|
242
|
+
}
|
|
243
|
+
},
|
|
244
|
+
"interviews": {
|
|
245
|
+
"add_round": "Thêm vòng phỏng vấn",
|
|
246
|
+
"empty": "Chưa có vòng phỏng vấn nào",
|
|
247
|
+
"score": {
|
|
248
|
+
"none": "Chưa chấm"
|
|
249
|
+
},
|
|
250
|
+
"fields": {
|
|
251
|
+
"type": "Loại vòng",
|
|
252
|
+
"status": "Trạng thái",
|
|
253
|
+
"score": "Điểm",
|
|
254
|
+
"interviewer": "Người phỏng vấn",
|
|
255
|
+
"scheduled_at": "Thời gian dự kiến",
|
|
256
|
+
"notes": "Ghi chú"
|
|
257
|
+
},
|
|
258
|
+
"type": {
|
|
259
|
+
"screening": "Sàng lọc",
|
|
260
|
+
"technical": "Kỹ thuật",
|
|
261
|
+
"culture": "Văn hoá",
|
|
262
|
+
"final": "Vòng cuối",
|
|
263
|
+
"other": "Khác"
|
|
264
|
+
},
|
|
265
|
+
"status": {
|
|
266
|
+
"scheduled": "Đã lên lịch",
|
|
267
|
+
"done": "Hoàn thành",
|
|
268
|
+
"cancelled": "Đã huỷ",
|
|
269
|
+
"no_show": "Vắng mặt"
|
|
270
|
+
},
|
|
271
|
+
"error": {
|
|
272
|
+
"load": "Không tải được danh sách phỏng vấn",
|
|
273
|
+
"create": "Không thêm được vòng phỏng vấn",
|
|
274
|
+
"update": "Không cập nhật được vòng phỏng vấn",
|
|
275
|
+
"delete": "Không xoá được vòng phỏng vấn"
|
|
276
|
+
}
|
|
277
|
+
},
|
|
278
|
+
"offer": {
|
|
279
|
+
"fields": {
|
|
280
|
+
"status": "Trạng thái",
|
|
281
|
+
"base_salary": "Lương cơ bản",
|
|
282
|
+
"currency": "Đơn vị tiền",
|
|
283
|
+
"pay_frequency": "Kỳ trả lương",
|
|
284
|
+
"offered_at": "Ngày gửi offer",
|
|
285
|
+
"expires_at": "Ngày hết hạn",
|
|
286
|
+
"start_date": "Ngày bắt đầu dự kiến",
|
|
287
|
+
"decline_reason": "Lý do từ chối",
|
|
288
|
+
"notes": "Ghi chú"
|
|
289
|
+
},
|
|
290
|
+
"status": {
|
|
291
|
+
"draft": "Nháp",
|
|
292
|
+
"sent": "Đã gửi",
|
|
293
|
+
"accepted": "Chấp nhận",
|
|
294
|
+
"declined": "Từ chối",
|
|
295
|
+
"expired": "Hết hạn"
|
|
296
|
+
},
|
|
297
|
+
"error": {
|
|
298
|
+
"load": "Không tải được offer",
|
|
299
|
+
"save": "Không lưu được offer"
|
|
300
|
+
}
|
|
301
|
+
},
|
|
302
|
+
"hire": {
|
|
303
|
+
"modal_title": "Xác nhận nhận việc",
|
|
304
|
+
"confirm_button": "Xác nhận & Nhận việc",
|
|
305
|
+
"id_auto_note": "Tự sinh khi xác nhận",
|
|
306
|
+
"probation_end_estimate": "Dự kiến hết thử việc",
|
|
307
|
+
"probation_default_hint": "Để trống: mặc định 2 tháng",
|
|
308
|
+
"fields": {
|
|
309
|
+
"employee_id": "Mã nhân viên",
|
|
310
|
+
"contract_number": "Số hợp đồng",
|
|
311
|
+
"job_title": "Chức danh",
|
|
312
|
+
"department": "Phòng ban",
|
|
313
|
+
"employment_type": "Loại hình lao động",
|
|
314
|
+
"start_date": "Ngày bắt đầu",
|
|
315
|
+
"contract_type": "Loại hợp đồng",
|
|
316
|
+
"probation_months": "Tháng thử việc"
|
|
317
|
+
},
|
|
318
|
+
"contract_type": {
|
|
319
|
+
"indefinite": "Vô thời hạn",
|
|
320
|
+
"definite_6": "Có thời hạn (6 tháng)",
|
|
321
|
+
"definite_12": "Có thời hạn (12 tháng)",
|
|
322
|
+
"definite_24": "Có thời hạn (24 tháng)",
|
|
323
|
+
"definite_36": "Có thời hạn (36 tháng)"
|
|
324
|
+
},
|
|
325
|
+
"error": {
|
|
326
|
+
"failed": "Quy trình nhận việc thất bại. Vui lòng thử lại."
|
|
327
|
+
}
|
|
328
|
+
},
|
|
329
|
+
"form": {
|
|
330
|
+
"talent": {
|
|
331
|
+
"first_name": "Họ",
|
|
332
|
+
"last_name": "Tên",
|
|
333
|
+
"display_name": "Họ và tên",
|
|
334
|
+
"email": "Email",
|
|
335
|
+
"phone": "Điện thoại",
|
|
336
|
+
"date_of_birth": "Ngày sinh",
|
|
337
|
+
"gender": "Giới tính",
|
|
338
|
+
"nationality": "Quốc tịch",
|
|
339
|
+
"id_number": "CCCD / Hộ chiếu",
|
|
340
|
+
"desired_position": "Vị trí mong muốn",
|
|
341
|
+
"source": "Nguồn",
|
|
342
|
+
"department_id": "Phòng ban"
|
|
343
|
+
}
|
|
344
|
+
},
|
|
345
|
+
"contract": {
|
|
346
|
+
"title": "Hợp đồng",
|
|
347
|
+
"no_contract": "Chưa có hợp đồng.",
|
|
348
|
+
"sections": {
|
|
349
|
+
"details": "Chi tiết hợp đồng"
|
|
350
|
+
},
|
|
351
|
+
"type": {
|
|
352
|
+
"indefinite": "Vô thời hạn",
|
|
353
|
+
"definite": "Có thời hạn"
|
|
354
|
+
},
|
|
355
|
+
"fields": {
|
|
356
|
+
"contract_type": "Loại hợp đồng",
|
|
357
|
+
"contract_number": "Số hợp đồng",
|
|
358
|
+
"start_date": "Ngày bắt đầu",
|
|
359
|
+
"end_date": "Ngày kết thúc",
|
|
360
|
+
"probation_end": "Kết thúc thử việc",
|
|
361
|
+
"renewal_count": "Số lần gia hạn"
|
|
362
|
+
}
|
|
363
|
+
},
|
|
364
|
+
"compensation": {
|
|
365
|
+
"title": "Lương & Thưởng",
|
|
366
|
+
"no_compensation": "Chưa có thông tin lương.",
|
|
367
|
+
"sections": {
|
|
368
|
+
"salary": "Lương",
|
|
369
|
+
"bank": "Thông tin ngân hàng",
|
|
370
|
+
"allowances": "Phụ cấp"
|
|
371
|
+
},
|
|
372
|
+
"fields": {
|
|
373
|
+
"base_salary": "Lương cơ bản",
|
|
374
|
+
"currency": "Đơn vị tiền",
|
|
375
|
+
"pay_frequency": "Kỳ trả lương",
|
|
376
|
+
"bonus_target": "Mục tiêu thưởng",
|
|
377
|
+
"bank_name": "Tên ngân hàng",
|
|
378
|
+
"bank_account_number": "Số tài khoản"
|
|
379
|
+
},
|
|
380
|
+
"allowance": {
|
|
381
|
+
"name": "Tên phụ cấp",
|
|
382
|
+
"amount": "Số tiền",
|
|
383
|
+
"type": "Loại",
|
|
384
|
+
"type_fixed": "Cố định",
|
|
385
|
+
"type_percentage": "Phần trăm",
|
|
386
|
+
"add": "Thêm phụ cấp"
|
|
387
|
+
}
|
|
388
|
+
},
|
|
389
|
+
"insurance": {
|
|
390
|
+
"title": "Bảo hiểm & Thuế",
|
|
391
|
+
"eligibility": "Điều kiện hưởng",
|
|
392
|
+
"health": "Sức khỏe",
|
|
393
|
+
"social": "Xã hội",
|
|
394
|
+
"eligible": "Đủ điều kiện",
|
|
395
|
+
"not_eligible": "Không đủ điều kiện",
|
|
396
|
+
"eligible_for": "Đủ điều kiện",
|
|
397
|
+
"health_eligibility": "Điều kiện BHYT",
|
|
398
|
+
"social_eligibility": "Điều kiện BHXH",
|
|
399
|
+
"policy_value": "Giá trị chính sách",
|
|
400
|
+
"sections": {
|
|
401
|
+
"ids": "Số bảo hiểm",
|
|
402
|
+
"tax": "Thông tin thuế"
|
|
403
|
+
},
|
|
404
|
+
"fields": {
|
|
405
|
+
"social_insurance_number": "Số BHXH",
|
|
406
|
+
"health_insurance_number": "Số BHYT",
|
|
407
|
+
"insurance_contribution_rate": "Tỷ lệ đóng góp",
|
|
408
|
+
"tax_id": "Mã số thuế",
|
|
409
|
+
"dependents_count": "Người phụ thuộc",
|
|
410
|
+
"personal_deduction": "Giảm trừ cá nhân",
|
|
411
|
+
"insurance_base_salary": "Mức lương đóng BH",
|
|
412
|
+
"tax_code": "Mã số thuế",
|
|
413
|
+
"employee_contribution": "Đóng góp NLĐ",
|
|
414
|
+
"employer_contribution": "Đóng góp NSDLĐ"
|
|
415
|
+
},
|
|
416
|
+
"eligibility_status": {
|
|
417
|
+
"policy": "Đủ điều kiện (Chính sách)",
|
|
418
|
+
"override_eligible": "Đủ điều kiện (Ghi đè)",
|
|
419
|
+
"override_ineligible": "Không đủ điều kiện (Ghi đè)",
|
|
420
|
+
"ineligible": "Không đủ điều kiện"
|
|
421
|
+
},
|
|
422
|
+
"override": {
|
|
423
|
+
"title": "Ghi đè điều kiện",
|
|
424
|
+
"reason": "Lý do ghi đè (khuyến nghị)",
|
|
425
|
+
"reset": "Đặt lại theo chính sách",
|
|
426
|
+
"save": "Lưu ghi đè"
|
|
427
|
+
}
|
|
428
|
+
},
|
|
429
|
+
"resign": {
|
|
430
|
+
"title": "Nghỉ việc",
|
|
431
|
+
"confirm": "Xác nhận nghỉ việc",
|
|
432
|
+
"fields": {
|
|
433
|
+
"last_day": "Ngày làm việc cuối",
|
|
434
|
+
"resign_type": "Loại nghỉ việc",
|
|
435
|
+
"reason": "Lý do (bắt buộc)",
|
|
436
|
+
"rehire_eligible": "Có thể tái tuyển dụng"
|
|
437
|
+
},
|
|
438
|
+
"type": {
|
|
439
|
+
"voluntary": "Tự nguyện",
|
|
440
|
+
"involuntary": "Bắt buộc",
|
|
441
|
+
"mutual": "Thỏa thuận"
|
|
442
|
+
}
|
|
443
|
+
},
|
|
444
|
+
"leave": {
|
|
445
|
+
"title": "Quản lý nghỉ phép",
|
|
446
|
+
"request": {
|
|
447
|
+
"title": "Tạo yêu cầu nghỉ phép",
|
|
448
|
+
"person": "Nhân viên",
|
|
449
|
+
"leave_type": "Loại nghỉ phép",
|
|
450
|
+
"start_date": "Ngày bắt đầu",
|
|
451
|
+
"end_date": "Ngày kết thúc",
|
|
452
|
+
"reason": "Lý do",
|
|
453
|
+
"days_count": "{count} ngày",
|
|
454
|
+
"days_info": "Số ngày làm việc yêu cầu",
|
|
455
|
+
"submit": "Gửi yêu cầu",
|
|
456
|
+
"from": "Từ ngày",
|
|
457
|
+
"to": "Đến ngày",
|
|
458
|
+
"days": "Số ngày",
|
|
459
|
+
"type": "Loại phép",
|
|
460
|
+
"submitted": "Đã gửi yêu cầu nghỉ phép"
|
|
461
|
+
},
|
|
462
|
+
"views": {
|
|
463
|
+
"list": "Danh sách",
|
|
464
|
+
"calendar": "Lịch",
|
|
465
|
+
"timeline": "Timeline"
|
|
466
|
+
},
|
|
467
|
+
"stats": {
|
|
468
|
+
"pending": "Chờ duyệt",
|
|
469
|
+
"approved": "Đã duyệt",
|
|
470
|
+
"rejected": "Từ chối",
|
|
471
|
+
"total_days": "Tổng ngày đã dùng"
|
|
472
|
+
},
|
|
473
|
+
"status": {
|
|
474
|
+
"pending": "Chờ duyệt",
|
|
475
|
+
"approved": "Đã duyệt",
|
|
476
|
+
"rejected": "Từ chối"
|
|
477
|
+
},
|
|
478
|
+
"actions": {
|
|
479
|
+
"create": "Tạo đơn",
|
|
480
|
+
"approve": "Duyệt",
|
|
481
|
+
"reject": "Từ chối",
|
|
482
|
+
"reopen": "Mở lại"
|
|
483
|
+
},
|
|
484
|
+
"table": {
|
|
485
|
+
"employee": "Nhân viên",
|
|
486
|
+
"type": "Loại phép",
|
|
487
|
+
"dates": "Ngày",
|
|
488
|
+
"days": "Số ngày",
|
|
489
|
+
"status": "Trạng thái",
|
|
490
|
+
"actions": "Thao tác",
|
|
491
|
+
"reason": "Lý do"
|
|
492
|
+
},
|
|
493
|
+
"empty": "Chưa có đơn nghỉ phép",
|
|
494
|
+
"no_data": "Không có dữ liệu",
|
|
495
|
+
"balance": {
|
|
496
|
+
"total": "Tổng",
|
|
497
|
+
"used": "Đã dùng",
|
|
498
|
+
"remaining": "Còn lại",
|
|
499
|
+
"source": "Nguồn",
|
|
500
|
+
"override": "Ghi đè",
|
|
501
|
+
"reset": "Đặt lại theo chính sách"
|
|
502
|
+
}
|
|
503
|
+
},
|
|
504
|
+
"permissions": {
|
|
505
|
+
"sensitive_locked": "Bạn không có quyền xem lương, bảo hiểm hoặc tài liệu."
|
|
506
|
+
},
|
|
507
|
+
"offboarding": {
|
|
508
|
+
"title": "Quy trình nghỉ việc",
|
|
509
|
+
"initiate": "Khởi tạo nghỉ việc",
|
|
510
|
+
"initiate_hint": "Bắt đầu quy trình nghỉ việc. Nhân viên vẫn đang làm việc cho đến khi finalize.",
|
|
511
|
+
"no_case": "Nhân viên này chưa có quy trình nghỉ việc nào.",
|
|
512
|
+
"finalize_confirm": "Hoàn tất nghỉ việc cho {name}? Sẽ chuyển sang trạng thái Đã nghỉ và đặt ngày kết thúc.",
|
|
513
|
+
"exit_type": {
|
|
514
|
+
"voluntary": "Tự nguyện",
|
|
515
|
+
"involuntary": "Sa thải",
|
|
516
|
+
"mutual": "Thỏa thuận",
|
|
517
|
+
"contract_end": "Hết hợp đồng",
|
|
518
|
+
"retirement": "Nghỉ hưu"
|
|
519
|
+
},
|
|
520
|
+
"fields": {
|
|
521
|
+
"exit_type": "Loại nghỉ",
|
|
522
|
+
"notice_date": "Ngày báo",
|
|
523
|
+
"last_working_day": "Ngày làm việc cuối",
|
|
524
|
+
"rehire_eligible": "Có thể tái tuyển",
|
|
525
|
+
"reason": "Lý do"
|
|
526
|
+
},
|
|
527
|
+
"status": {
|
|
528
|
+
"initiated": "Đã khởi tạo",
|
|
529
|
+
"in_progress": "Đang xử lý",
|
|
530
|
+
"completed": "Hoàn tất",
|
|
531
|
+
"cancelled": "Đã huỷ"
|
|
532
|
+
},
|
|
533
|
+
"tasks": {
|
|
534
|
+
"knowledge_transfer": "Bàn giao công việc",
|
|
535
|
+
"asset_return": "Thu hồi tài sản",
|
|
536
|
+
"access_revoke": "Thu hồi quyền",
|
|
537
|
+
"leave_settlement": "Thanh toán phép",
|
|
538
|
+
"exit_interview": "Phỏng vấn nghỉ việc",
|
|
539
|
+
"finance_clearance": "Quyết toán tài chính",
|
|
540
|
+
"manager_signoff": "Quản lý ký duyệt",
|
|
541
|
+
"exit_documents": "Tài liệu nghỉ việc"
|
|
542
|
+
},
|
|
543
|
+
"task_status": {
|
|
544
|
+
"done": "Xong",
|
|
545
|
+
"na": "Bỏ qua"
|
|
546
|
+
},
|
|
547
|
+
"sections": {
|
|
548
|
+
"checklist": "Checklist clearance",
|
|
549
|
+
"settlement": "Thanh toán phép",
|
|
550
|
+
"history": "Lịch sử off-boarding"
|
|
551
|
+
},
|
|
552
|
+
"settlement": {
|
|
553
|
+
"remaining_days": "Số ngày phép còn lại",
|
|
554
|
+
"payout_amount": "Số tiền chi trả"
|
|
555
|
+
},
|
|
556
|
+
"actions": {
|
|
557
|
+
"return_all": "Thu hồi tất cả",
|
|
558
|
+
"deprovision": "Thu hồi quyền",
|
|
559
|
+
"compute_settlement": "Tính settlement",
|
|
560
|
+
"finalize": "Hoàn tất",
|
|
561
|
+
"cancel": "Huỷ nghỉ việc"
|
|
562
|
+
},
|
|
563
|
+
"toast": {
|
|
564
|
+
"initiated": "Đã khởi tạo nghỉ việc",
|
|
565
|
+
"assets_returned": "Đã thu hồi {count} tài sản",
|
|
566
|
+
"deprovisioned": "Đã thu hồi quyền",
|
|
567
|
+
"finalized": "Đã hoàn tất — nhân viên đã nghỉ",
|
|
568
|
+
"cancelled": "Đã huỷ quy trình nghỉ việc"
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
},
|
|
572
|
+
"departments": {
|
|
573
|
+
"title": "Phòng ban",
|
|
574
|
+
"nav_label": "Phòng ban",
|
|
575
|
+
"create": "Thêm phòng ban",
|
|
576
|
+
"edit": "Sửa phòng ban",
|
|
577
|
+
"empty": "Chưa có phòng ban nào.",
|
|
578
|
+
"no_head": "Chưa có trưởng phòng",
|
|
579
|
+
"head": "Trưởng phòng",
|
|
580
|
+
"errors": {
|
|
581
|
+
"has_members": "Không thể xóa: phòng ban vẫn còn nhân viên. Vui lòng chuyển nhân viên sang phòng ban khác trước."
|
|
582
|
+
},
|
|
583
|
+
"stats": {
|
|
584
|
+
"members": "{count} thành viên",
|
|
585
|
+
"avg_tenure": "Thâm niên TB"
|
|
586
|
+
},
|
|
587
|
+
"tenure": {
|
|
588
|
+
"less_than_month": "< 1 tháng",
|
|
589
|
+
"months": "{count} tháng",
|
|
590
|
+
"years": "{count} năm",
|
|
591
|
+
"years_months": "{years} năm {months} tháng"
|
|
592
|
+
},
|
|
593
|
+
"fields": {
|
|
594
|
+
"name": "Tên",
|
|
595
|
+
"description": "Mô tả",
|
|
596
|
+
"color": "Màu sắc",
|
|
597
|
+
"icon": "Biểu tượng",
|
|
598
|
+
"head": "Trưởng phòng",
|
|
599
|
+
"head_placeholder": "Chọn nhân viên"
|
|
600
|
+
},
|
|
601
|
+
"toast": {
|
|
602
|
+
"created": "Đã tạo phòng ban",
|
|
603
|
+
"updated": "Đã cập nhật phòng ban",
|
|
604
|
+
"deleted": "Đã xóa phòng ban"
|
|
605
|
+
}
|
|
606
|
+
},
|
|
607
|
+
"assets": {
|
|
608
|
+
"title": "Tài sản",
|
|
609
|
+
"tab_label": "Tài sản",
|
|
610
|
+
"issue": "Cấp tài sản",
|
|
611
|
+
"return": "Đánh dấu đã hoàn trả",
|
|
612
|
+
"no_active": "Chưa có tài sản nào được cấp.",
|
|
613
|
+
"returned_section": "Tài sản đã hoàn trả ({count})",
|
|
614
|
+
"columns": {
|
|
615
|
+
"type": "Loại",
|
|
616
|
+
"name": "Tên / Mô tả",
|
|
617
|
+
"serial": "Số serial",
|
|
618
|
+
"issued_at": "Ngày cấp",
|
|
619
|
+
"returned_at": "Ngày hoàn trả",
|
|
620
|
+
"notes": "Ghi chú",
|
|
621
|
+
"value": "Giá trị"
|
|
622
|
+
},
|
|
623
|
+
"fields": {
|
|
624
|
+
"type": "Loại tài sản",
|
|
625
|
+
"name": "Tên / Mô tả",
|
|
626
|
+
"serial": "Số serial",
|
|
627
|
+
"issued_at": "Ngày cấp",
|
|
628
|
+
"notes": "Ghi chú",
|
|
629
|
+
"value": "Giá trị (tuỳ chọn)",
|
|
630
|
+
"images": "Hình ảnh",
|
|
631
|
+
"add_photo": "Thêm ảnh"
|
|
632
|
+
},
|
|
633
|
+
"issue_modal": {
|
|
634
|
+
"title": "Cấp tài sản",
|
|
635
|
+
"confirm": "Cấp"
|
|
636
|
+
},
|
|
637
|
+
"toast": {
|
|
638
|
+
"issued": "Đã cấp tài sản",
|
|
639
|
+
"returned": "Đã đánh dấu hoàn trả",
|
|
640
|
+
"deleted": "Đã xóa tài sản",
|
|
641
|
+
"cancelled": "Đã huỷ tài sản"
|
|
642
|
+
},
|
|
643
|
+
"timeline": {
|
|
644
|
+
"issued": "Cấp tài sản: {name}",
|
|
645
|
+
"returned": "Hoàn trả tài sản: {name}"
|
|
646
|
+
},
|
|
647
|
+
"cancel": "Huỷ"
|
|
648
|
+
},
|
|
649
|
+
"integrations": {
|
|
650
|
+
"description": "Cấu hình tích hợp bên thứ ba để tự động tạo/vô hiệu hoá tài khoản khi nhân viên vào/nghỉ.",
|
|
651
|
+
"add_provider": "Thêm nhà cung cấp",
|
|
652
|
+
"test_connection": "Kiểm tra kết nối",
|
|
653
|
+
"testing": "Đang kiểm tra...",
|
|
654
|
+
"actions_configured": "Hành động",
|
|
655
|
+
"types": {
|
|
656
|
+
"authentik": "Authentik (SSO)",
|
|
657
|
+
"google_workspace": "Google Workspace",
|
|
658
|
+
"microsoft_365": "Microsoft 365",
|
|
659
|
+
"webhook": "Webhook tuỳ chỉnh"
|
|
660
|
+
}
|
|
661
|
+
},
|
|
662
|
+
"provisioning": {
|
|
663
|
+
"linked_accounts": "Tài khoản hệ thống",
|
|
664
|
+
"username": "Tên đăng nhập",
|
|
665
|
+
"last_action": "Hành động gần nhất",
|
|
666
|
+
"no_providers_configured": "Chưa có nhà cung cấp tích hợp nào. Thêm trong Cài đặt → Tích hợp.",
|
|
667
|
+
"create_account": "Tạo tài khoản",
|
|
668
|
+
"status": {
|
|
669
|
+
"active": "Đang hoạt động",
|
|
670
|
+
"disabled": "Đã vô hiệu",
|
|
671
|
+
"not_created": "Chưa tạo",
|
|
672
|
+
"error": "Lỗi"
|
|
673
|
+
}
|
|
674
|
+
},
|
|
675
|
+
"contacts": {
|
|
676
|
+
"hr": {
|
|
677
|
+
"not_linked": "Liên hệ này chưa được liên kết với hồ sơ nhân sự.",
|
|
678
|
+
"employee_id": "Mã nhân viên",
|
|
679
|
+
"department": "Phòng ban",
|
|
680
|
+
"job_title": "Chức danh",
|
|
681
|
+
"start_date": "Ngày vào làm",
|
|
682
|
+
"contract": "Hợp đồng",
|
|
683
|
+
"expires": "Hết hạn",
|
|
684
|
+
"leave_balance": "Số ngày phép còn lại",
|
|
685
|
+
"full_profile": "Xem hồ sơ đầy đủ"
|
|
686
|
+
}
|
|
687
|
+
}
|
|
688
|
+
}
|