sitero 0.9.3 → 0.10.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/dist/src/cms/client/applications/ui/use-nav-items.js +4 -3
- package/dist/src/cms/client/infrastructure/i18n/intor-config.js +2 -1
- package/dist/src/cms/client/infrastructure/i18n/messages/index.js +3 -1
- package/dist/src/cms/client/infrastructure/i18n/messages/vi-VN/features/authentication/admin.js +132 -0
- package/dist/src/cms/client/infrastructure/i18n/messages/vi-VN/features/index.js +5 -0
- package/dist/src/cms/client/infrastructure/i18n/messages/vi-VN/index.js +8 -0
- package/dist/src/cms/client/infrastructure/i18n/messages/vi-VN/main/index.js +30 -0
- package/dist/src/cms/client/infrastructure/i18n/messages/vi-VN/resources/admin-refresh-token.js +18 -0
- package/dist/src/cms/client/infrastructure/i18n/messages/vi-VN/resources/admin.js +87 -0
- package/dist/src/cms/client/infrastructure/i18n/messages/vi-VN/resources/file.js +78 -0
- package/dist/src/cms/client/infrastructure/i18n/messages/vi-VN/resources/index.js +34 -0
- package/dist/src/cms/client/infrastructure/i18n/messages/vi-VN/resources/post.js +81 -0
- package/dist/src/cms/client/infrastructure/i18n/messages/vi-VN/resources/seo-metadata.js +11 -0
- package/dist/src/cms/client/infrastructure/i18n/messages/vi-VN/ui/index.js +186 -0
- package/dist/src/cms/client/interfaces/components/resources/admin/admin-table.js +1 -1
- package/dist/src/cms/client/interfaces/components/resources/config/config-edit-content.js +2 -1
- package/dist/src/cms/client/interfaces/components/resources/config/config-show-content.js +2 -1
- package/dist/src/cms/client/interfaces/components/resources/file/file-table.js +1 -1
- package/dist/src/cms/client/interfaces/components/resources/page/content/page-edit-content.js +2 -1
- package/dist/src/cms/client/interfaces/components/resources/page/content/page-show-content.js +2 -1
- package/dist/src/cms/client/interfaces/components/resources/post/category/category-card.js +5 -1
- package/dist/src/cms/client/interfaces/components/resources/post/category/category-table.js +6 -2
- package/dist/src/cms/client/interfaces/components/resources/post/content/post-create-content.js +3 -2
- package/dist/src/cms/client/interfaces/components/resources/post/content/post-edit-content.js +3 -2
- package/dist/src/cms/client/interfaces/components/resources/post/content/resolve-control-field-label.js +2 -4
- package/dist/src/cms/client/interfaces/components/resources/post/post-card.js +2 -1
- package/dist/src/cms/client/interfaces/components/resources/post/post-table.js +6 -2
- package/dist/src/cms/client/interfaces/components/resources/post/tag/tag-table.js +1 -1
- package/dist/src/cms/client/interfaces/components/ui/inputs/editor/base/base-editor.js +2 -1
- package/dist/src/cms/client/interfaces/components/ui/inputs/editor/resolve-editor-locale.js +6 -0
- package/dist/src/cms/client/interfaces/components/ui/layouts/navbar/i18n-selector.js +4 -5
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicKey_/category/_id_/edit/page.js +2 -1
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicKey_/category/_id_/page.js +2 -1
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicKey_/category/create/page.js +2 -1
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicKey_/page.js +2 -1
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicKey_/post/_id_/edit/page.js +2 -1
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicKey_/post/_id_/page.js +2 -1
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicKey_/post/create/page.js +2 -1
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicKey_/subcategory/_id_/edit/page.js +2 -1
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicKey_/subcategory/_id_/page.js +2 -1
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicKey_/subcategory/create/page.js +2 -1
- package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/page.js +2 -1
- package/dist/src/cms/client/interfaces/pages/dashboard/system/storage/file/_id_/relations/page.js +3 -2
- package/dist/src/cms/client/interfaces/pages/dashboard/website/inquiry/_id_/page.js +9 -1
- package/dist/src/cms/client/interfaces/pages/dashboard/website/inquiry/page.js +2 -1
- package/dist/src/cms/client/interfaces/pages/dashboard/website/website-config/_slug_/edit/page.js +2 -1
- package/dist/src/cms/client/interfaces/pages/dashboard/website/website-config/_slug_/page.js +2 -1
- package/dist/src/cms/client/interfaces/pages/dashboard/website/website-config/page.js +2 -1
- package/dist/src/cms/client/interfaces/pages/dashboard/website/website-page/_slug_/edit/page.js +2 -1
- package/dist/src/cms/client/interfaces/pages/dashboard/website/website-page/_slug_/page.js +2 -1
- package/dist/src/cms/client/interfaces/pages/dashboard/website/website-page/page.js +2 -1
- package/dist/src/constants/cms-locale.js +2 -1
- package/dist/src/core/infrastructure/email/react-email-composer.js +2 -1
- package/dist/src/shared/resolve-cms-text.js +7 -0
- package/dist/types/export/index.d.ts +1 -1
- package/dist/types/export/index.d.ts.map +1 -1
- package/dist/types/src/cms/client/applications/ui/use-nav-items.d.ts.map +1 -1
- package/dist/types/src/cms/client/infrastructure/i18n/intor-config.d.ts.map +1 -1
- package/dist/types/src/cms/client/infrastructure/i18n/messages/index.d.ts +1060 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/index.d.ts.map +1 -1
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/features/authentication/admin.d.ts +169 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/features/authentication/admin.d.ts.map +1 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/features/index.d.ts +173 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/features/index.d.ts.map +1 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/index.d.ts +1061 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/index.d.ts.map +1 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/main/index.d.ts +27 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/main/index.d.ts.map +1 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/resources/admin-refresh-token.d.ts +43 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/resources/admin-refresh-token.d.ts.map +1 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/resources/admin.d.ts +126 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/resources/admin.d.ts.map +1 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/resources/file.d.ts +153 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/resources/file.d.ts.map +1 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/resources/index.d.ts +525 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/resources/index.d.ts.map +1 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/resources/post.d.ts +142 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/resources/post.d.ts.map +1 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/resources/seo-metadata.d.ts +16 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/resources/seo-metadata.d.ts.map +1 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/ui/index.d.ts +337 -0
- package/dist/types/src/cms/client/infrastructure/i18n/messages/vi-VN/ui/index.d.ts.map +1 -0
- package/dist/types/src/cms/client/interfaces/components/resources/config/config-edit-content.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/config/config-show-content.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/page/content/page-edit-content.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/page/content/page-show-content.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/page/content/types.d.ts +2 -1
- package/dist/types/src/cms/client/interfaces/components/resources/page/content/types.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/category/category-card.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/category/category-table.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/content/post-create-content.d.ts +2 -2
- package/dist/types/src/cms/client/interfaces/components/resources/post/content/post-create-content.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/content/post-edit-content.d.ts +2 -2
- package/dist/types/src/cms/client/interfaces/components/resources/post/content/post-edit-content.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/content/resolve-control-field-label.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/content/types.d.ts +3 -2
- package/dist/types/src/cms/client/interfaces/components/resources/post/content/types.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/post-card.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/resources/post/post-table.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/ui/inputs/editor/base/base-editor.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/components/ui/inputs/editor/resolve-editor-locale.d.ts +3 -0
- package/dist/types/src/cms/client/interfaces/components/ui/inputs/editor/resolve-editor-locale.d.ts.map +1 -0
- package/dist/types/src/cms/client/interfaces/components/ui/layouts/navbar/i18n-selector.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicKey]/category/[id]/edit/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicKey]/category/[id]/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicKey]/category/create/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicKey]/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicKey]/post/[id]/edit/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicKey]/post/[id]/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicKey]/post/create/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicKey]/subcategory/[id]/edit/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicKey]/subcategory/[id]/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/[topicKey]/subcategory/create/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/content/content-management/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/system/storage/file/[id]/relations/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/website/inquiry/[id]/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/website/inquiry/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/website/website-config/[slug]/edit/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/website/website-config/[slug]/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/website/website-config/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/website/website-page/[slug]/edit/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/website/website-page/[slug]/page.d.ts.map +1 -1
- package/dist/types/src/cms/client/interfaces/pages/dashboard/website/website-page/page.d.ts.map +1 -1
- package/dist/types/src/config/configs.d.ts +3 -3
- package/dist/types/src/config/configs.d.ts.map +1 -1
- package/dist/types/src/config/index.d.ts +1 -0
- package/dist/types/src/config/index.d.ts.map +1 -1
- package/dist/types/src/config/inquiry.d.ts +2 -2
- package/dist/types/src/config/inquiry.d.ts.map +1 -1
- package/dist/types/src/config/pages.d.ts +2 -2
- package/dist/types/src/config/pages.d.ts.map +1 -1
- package/dist/types/src/config/shared.d.ts +4 -0
- package/dist/types/src/config/shared.d.ts.map +1 -1
- package/dist/types/src/config/topics.d.ts +2 -2
- package/dist/types/src/config/topics.d.ts.map +1 -1
- package/dist/types/src/constants/cms-locale.d.ts +2 -1
- package/dist/types/src/constants/cms-locale.d.ts.map +1 -1
- package/dist/types/src/core/infrastructure/email/react-email-composer.d.ts.map +1 -1
- package/dist/types/src/shared/resolve-cms-text.d.ts +5 -0
- package/dist/types/src/shared/resolve-cms-text.d.ts.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
const ui = {
|
|
2
|
+
retry: { text: "Th\u1EED l\u1EA1i" },
|
|
3
|
+
// ------------------------------------------------------
|
|
4
|
+
// common
|
|
5
|
+
// ------------------------------------------------------
|
|
6
|
+
"no-data": { text: "Kh\xF4ng c\xF3 d\u1EEF li\u1EC7u" },
|
|
7
|
+
list: {
|
|
8
|
+
expand: { text: "M\u1EDF r\u1ED9ng m\u1EE5c" },
|
|
9
|
+
collapse: { text: "Thu g\u1ECDn m\u1EE5c" }
|
|
10
|
+
},
|
|
11
|
+
loading: { text: "\u0110ang t\u1EA3i" },
|
|
12
|
+
search: { text: "T\xECm ki\u1EBFm" },
|
|
13
|
+
actions: { text: "Thao t\xE1c" },
|
|
14
|
+
copy: {
|
|
15
|
+
text: "Sao ch\xE9p",
|
|
16
|
+
success: { text: "\u0110\xE3 sao ch\xE9p" },
|
|
17
|
+
error: { text: "Sao ch\xE9p kh\xF4ng th\xE0nh c\xF4ng. Vui l\xF2ng th\u1EED l\u1EA1i." }
|
|
18
|
+
},
|
|
19
|
+
password: {
|
|
20
|
+
show: { text: "Hi\u1EC7n m\u1EADt kh\u1EA9u" },
|
|
21
|
+
hide: { text: "\u1EA8n m\u1EADt kh\u1EA9u" }
|
|
22
|
+
},
|
|
23
|
+
create: { text: "T\u1EA1o m\u1EDBi" },
|
|
24
|
+
"create-resource": { text: "T\u1EA1o {resource}" },
|
|
25
|
+
confirm: { text: "X\xE1c nh\u1EADn" },
|
|
26
|
+
edit: { text: "Ch\u1EC9nh s\u1EEDa" },
|
|
27
|
+
update: { text: "C\u1EADp nh\u1EADt" },
|
|
28
|
+
locked: { text: "\u0110\xE3 kh\xF3a" },
|
|
29
|
+
"move-to-trash": { text: "Chuy\u1EC3n v\xE0o th\xF9ng r\xE1c" },
|
|
30
|
+
"move-many-to-trash": { text: "Chuy\u1EC3n nhi\u1EC1u m\u1EE5c v\xE0o th\xF9ng r\xE1c" },
|
|
31
|
+
"dialog.move-to-trash": { text: "Chuy\u1EC3n c\xE1c m\u1EE5c \u0111\xE3 ch\u1ECDn v\xE0o th\xF9ng r\xE1c?" },
|
|
32
|
+
"dialog.purge": {
|
|
33
|
+
text: "X\xF3a v\u0129nh vi\u1EC5n c\xE1c m\u1EE5c \u0111\xE3 ch\u1ECDn? Kh\xF4ng th\u1EC3 ho\xE0n t\xE1c thao t\xE1c n\xE0y."
|
|
34
|
+
},
|
|
35
|
+
destroy: { text: "X\xF3a" },
|
|
36
|
+
purge: { text: "X\xF3a v\u0129nh vi\u1EC5n" },
|
|
37
|
+
restore: { text: "Kh\xF4i ph\u1EE5c" },
|
|
38
|
+
"create-many": { text: "T\u1EA1o nhi\u1EC1u m\u1EE5c" },
|
|
39
|
+
"delete-many": { text: "X\xF3a nhi\u1EC1u m\u1EE5c" },
|
|
40
|
+
"view-website-page": { text: "Xem trang website (m\u1EDF trong th\u1EBB m\u1EDBi)" },
|
|
41
|
+
show: { text: "Xem" },
|
|
42
|
+
manage: { text: "Qu\u1EA3n l\xFD" },
|
|
43
|
+
setting: { text: "C\xE0i \u0111\u1EB7t" },
|
|
44
|
+
return: { text: "Quay l\u1EA1i" },
|
|
45
|
+
cancel: { text: "H\u1EE7y" },
|
|
46
|
+
"string-array": {
|
|
47
|
+
item: { text: "M\u1EE5c" },
|
|
48
|
+
add: { text: "Th\xEAm m\u1EE5c" },
|
|
49
|
+
remove: { text: "X\xF3a m\u1EE5c" }
|
|
50
|
+
},
|
|
51
|
+
"dialog.confirm": { text: "B\u1EA1n c\xF3 ch\u1EAFc ch\u1EAFn kh\xF4ng?" },
|
|
52
|
+
// ------------------------------------------------------
|
|
53
|
+
// operation-error
|
|
54
|
+
// ------------------------------------------------------
|
|
55
|
+
"operation-error": {
|
|
56
|
+
"rate-limited": {
|
|
57
|
+
text: "B\u1EA1n \u0111\xE3 th\u1EED qu\xE1 nhi\u1EC1u l\u1EA7n. Vui l\xF2ng \u0111\u1EE3i r\u1ED3i th\u1EED l\u1EA1i."
|
|
58
|
+
},
|
|
59
|
+
unauthenticated: {
|
|
60
|
+
text: "Phi\xEAn \u0111\u0103ng nh\u1EADp kh\xF4ng kh\u1EA3 d\u1EE5ng ho\u1EB7c \u0111\xE3 h\u1EBFt h\u1EA1n. Vui l\xF2ng \u0111\u0103ng nh\u1EADp l\u1EA1i."
|
|
61
|
+
},
|
|
62
|
+
unauthorized: {
|
|
63
|
+
text: "B\u1EA1n kh\xF4ng c\xF3 quy\u1EC1n th\u1EF1c hi\u1EC7n thao t\xE1c n\xE0y."
|
|
64
|
+
},
|
|
65
|
+
validation: { text: "Vui l\xF2ng ki\u1EC3m tra th\xF4ng tin \u0111\xE3 nh\u1EADp r\u1ED3i th\u1EED l\u1EA1i." },
|
|
66
|
+
unknown: {
|
|
67
|
+
text: "Kh\xF4ng th\u1EC3 ho\xE0n t\u1EA5t thao t\xE1c. Vui l\xF2ng th\u1EED l\u1EA1i."
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
// ------------------------------------------------------
|
|
71
|
+
// field-error
|
|
72
|
+
// ------------------------------------------------------
|
|
73
|
+
"field-error": {
|
|
74
|
+
"password-confirmation-mismatch": {
|
|
75
|
+
text: "M\u1EADt kh\u1EA9u x\xE1c nh\u1EADn kh\xF4ng kh\u1EDBp."
|
|
76
|
+
},
|
|
77
|
+
"email-already-exists": { text: "\u0110\u1ECBa ch\u1EC9 email n\xE0y \u0111\xE3 \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng." },
|
|
78
|
+
duplicate: { text: "Gi\xE1 tr\u1ECB n\xE0y \u0111\xE3 \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng." },
|
|
79
|
+
"file-required": { text: "Vui l\xF2ng ch\u1ECDn m\u1ED9t t\u1EC7p." },
|
|
80
|
+
"file-too-large": { text: "T\u1EC7p v\u01B0\u1EE3t qu\xE1 dung l\u01B0\u1EE3ng cho ph\xE9p." },
|
|
81
|
+
"file-type-not-allowed": { text: "Lo\u1EA1i t\u1EC7p n\xE0y kh\xF4ng \u0111\u01B0\u1EE3c ph\xE9p." },
|
|
82
|
+
"too-many-items": { text: "S\u1ED1 l\u01B0\u1EE3ng m\u1EE5c v\u01B0\u1EE3t qu\xE1 gi\u1EDBi h\u1EA1n cho ph\xE9p." },
|
|
83
|
+
"invalid-selection": { text: "M\u1EE5c \u0111\xE3 ch\u1ECDn kh\xF4ng h\u1EE3p l\u1EC7." },
|
|
84
|
+
"invalid-json": { text: "Vui l\xF2ng nh\u1EADp JSON h\u1EE3p l\u1EC7." },
|
|
85
|
+
invalid: { text: "Vui l\xF2ng ki\u1EC3m tra d\u1EEF li\u1EC7u \u0111\xE3 nh\u1EADp r\u1ED3i th\u1EED l\u1EA1i." }
|
|
86
|
+
},
|
|
87
|
+
// ------------------------------------------------------
|
|
88
|
+
// navbar
|
|
89
|
+
// ------------------------------------------------------
|
|
90
|
+
navbar: {
|
|
91
|
+
"website-homepage": { text: "Trang ch\u1EE7 website" },
|
|
92
|
+
"i18n-selector": { label: { text: "Ng\xF4n ng\u1EEF qu\u1EA3n tr\u1ECB" } },
|
|
93
|
+
"theme-selector": {
|
|
94
|
+
label: { text: "Giao di\u1EC7n qu\u1EA3n tr\u1ECB" },
|
|
95
|
+
light: { text: "S\xE1ng" },
|
|
96
|
+
dark: { text: "T\u1ED1i" },
|
|
97
|
+
system: { text: "H\u1EC7 th\u1ED1ng" }
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
// ------------------------------------------------------
|
|
101
|
+
// list-container
|
|
102
|
+
// ------------------------------------------------------
|
|
103
|
+
"list-container": {
|
|
104
|
+
"per-page": { text: "S\u1ED1 m\u1EE5c m\u1ED7i trang" }
|
|
105
|
+
},
|
|
106
|
+
// ------------------------------------------------------
|
|
107
|
+
// blob-file
|
|
108
|
+
// ------------------------------------------------------
|
|
109
|
+
"blob-file": {
|
|
110
|
+
status: {
|
|
111
|
+
"created-select-from-list": {
|
|
112
|
+
text: "\u0110\xE3 t\u1EA1o t\u1EC7p. H\xE3y ch\u1ECDn t\u1EC7p trong danh s\xE1ch sau khi t\u1EA3i xong."
|
|
113
|
+
},
|
|
114
|
+
empty: { text: "Kh\xF4ng th\u1EC3 t\u1EA3i l\xEAn t\u1EC7p r\u1ED7ng." },
|
|
115
|
+
"too-large": { text: "T\u1EC7p v\u01B0\u1EE3t qu\xE1 gi\u1EDBi h\u1EA1n dung l\u01B0\u1EE3ng." },
|
|
116
|
+
"type-not-allowed": { text: "Lo\u1EA1i t\u1EC7p n\xE0y kh\xF4ng \u0111\u01B0\u1EE3c ph\xE9p." },
|
|
117
|
+
"single-only": { text: "Vui l\xF2ng ch\u1EC9 ch\u1ECDn m\u1ED9t t\u1EC7p." },
|
|
118
|
+
duplicates: { text: "\u0110\xE3 b\u1ECF qua c\xE1c t\u1EC7p tr\xF9ng l\u1EB7p." },
|
|
119
|
+
remove: { text: "B\u1ECF t\u1EC7p \u0111\xE3 ch\u1ECDn" },
|
|
120
|
+
"cancel-replacement": { text: "H\u1EE7y thay th\u1EBF" },
|
|
121
|
+
invalid: {
|
|
122
|
+
text: "Vui l\xF2ng kh\u1EAFc ph\u1EE5c c\xE1c l\u1ED7i c\u1EE7a t\u1EC7p \u0111\xE3 ch\u1ECDn tr\u01B0\u1EDBc khi t\u1EA3i l\xEAn."
|
|
123
|
+
},
|
|
124
|
+
reading: { text: "\u0110ang \u0111\u1ECDc th\xF4ng tin t\u1EC7p\u2026" },
|
|
125
|
+
"media-warning": {
|
|
126
|
+
text: "Kh\xF4ng th\u1EC3 \u0111\u1ECDc th\xF4ng tin \u0111a ph\u01B0\u01A1ng ti\u1EC7n. B\u1EA1n v\u1EABn c\xF3 th\u1EC3 t\u1EA3i t\u1EC7p n\xE0y l\xEAn."
|
|
127
|
+
},
|
|
128
|
+
uploading: { text: "\u0110ang t\u1EA3i l\xEAn\u2026" },
|
|
129
|
+
registering: { text: "\u0110ang l\u01B0u\u2026" },
|
|
130
|
+
success: { text: "\u0110\xE3 t\u1EA1o" },
|
|
131
|
+
"upload-error": {
|
|
132
|
+
text: "T\u1EA3i l\xEAn kh\xF4ng th\xE0nh c\xF4ng. Vui l\xF2ng g\u1EEDi l\u1EA1i \u0111\u1EC3 th\u1EED l\u1EA1i."
|
|
133
|
+
},
|
|
134
|
+
"registration-error": {
|
|
135
|
+
text: "L\u01B0u kh\xF4ng th\xE0nh c\xF4ng. Vui l\xF2ng g\u1EEDi l\u1EA1i \u0111\u1EC3 th\u1EED l\u1EA1i."
|
|
136
|
+
},
|
|
137
|
+
unknown: {
|
|
138
|
+
text: "Kh\xF4ng th\u1EC3 x\xE1c nh\u1EADn k\u1EBFt qu\u1EA3 l\u01B0u. Vui l\xF2ng ki\u1EC3m tra th\u01B0 vi\u1EC7n t\u1EC7p tr\u01B0\u1EDBc khi t\u1EA3i l\xEAn l\u1EA1i."
|
|
139
|
+
},
|
|
140
|
+
retry: { text: "Th\u1EED l\u1EA1i c\xE1c t\u1EC7p c\xF2n l\u1EA1i" }
|
|
141
|
+
},
|
|
142
|
+
"file-info": {
|
|
143
|
+
"file-link": { text: "Li\xEAn k\u1EBFt t\u1EC7p" },
|
|
144
|
+
"file-name": { text: "T\xEAn t\u1EC7p" },
|
|
145
|
+
"file-type": { text: "Lo\u1EA1i t\u1EC7p" },
|
|
146
|
+
"file-size": { text: "Dung l\u01B0\u1EE3ng t\u1EC7p" }
|
|
147
|
+
},
|
|
148
|
+
"file-preview-list": {
|
|
149
|
+
"file-details": { text: "Chi ti\u1EBFt t\u1EC7p" },
|
|
150
|
+
"no-file-selected": { text: "Ch\u01B0a ch\u1ECDn t\u1EC7p" }
|
|
151
|
+
},
|
|
152
|
+
"file-picker": {
|
|
153
|
+
"select-file": { text: "Ch\u1ECDn t\u1EC7p" },
|
|
154
|
+
"drag-hint": { text: "B\u1EA1n c\xF3 th\u1EC3 k\xE9o v\xE0 th\u1EA3 t\u1EC7p v\xE0o \u0111\xE2y" }
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
// ------------------------------------------------------
|
|
158
|
+
// pick-modal
|
|
159
|
+
// ------------------------------------------------------
|
|
160
|
+
"pick-modal": {
|
|
161
|
+
pick: { text: "Ch\u1ECDn" },
|
|
162
|
+
picked: { text: "\u0110\xE3 ch\u1ECDn" },
|
|
163
|
+
single: { text: "M\u1ED9t m\u1EE5c" },
|
|
164
|
+
multiple: { text: "Nhi\u1EC1u m\u1EE5c" },
|
|
165
|
+
clear: { text: "B\u1ECF ch\u1ECDn" }
|
|
166
|
+
},
|
|
167
|
+
// ------------------------------------------------------
|
|
168
|
+
// control-fields
|
|
169
|
+
// ------------------------------------------------------
|
|
170
|
+
"boolean-filter": {
|
|
171
|
+
clear: { text: "X\xF3a b\u1ED9 l\u1ECDc" },
|
|
172
|
+
yes: { text: "C\xF3" },
|
|
173
|
+
no: { text: "Kh\xF4ng" }
|
|
174
|
+
},
|
|
175
|
+
"control-fields": {
|
|
176
|
+
"is-active": { text: "\u0110ang ho\u1EA1t \u0111\u1ED9ng" },
|
|
177
|
+
"is-index-active": { text: "B\u1EADt s\u1EAFp x\u1EBFp" },
|
|
178
|
+
index: { text: "Th\u1EE9 t\u1EF1" },
|
|
179
|
+
"is-slug-active": { text: "B\u1EADt \u0111\u01B0\u1EDDng d\u1EABn" },
|
|
180
|
+
slug: { text: "Slug URL (ph\u1EA3i l\xE0 duy nh\u1EA5t)" },
|
|
181
|
+
"is-featured": { text: "N\u1ED5i b\u1EADt" },
|
|
182
|
+
"is-shown-on-home": { text: "Hi\u1EC3n th\u1ECB tr\xEAn trang ch\u1EE7" }
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
export { ui };
|
|
@@ -70,7 +70,7 @@ function AdminTable({
|
|
|
70
70
|
const title = name ?? t("ui.no-data.text");
|
|
71
71
|
const isSelecting = onSelect !== void 0;
|
|
72
72
|
const selectionLabel = t(
|
|
73
|
-
isPicked ? "ui.picked.text" : "ui.pick.text"
|
|
73
|
+
isPicked ? "ui.pick-modal.picked.text" : "ui.pick-modal.pick.text"
|
|
74
74
|
);
|
|
75
75
|
function activateRow() {
|
|
76
76
|
if (onSelect) {
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
3
3
|
import { useTranslator } from 'intor/react';
|
|
4
4
|
import { useRouter } from 'next/navigation';
|
|
5
|
+
import { resolveCmsText } from '../../../../../../shared/resolve-cms-text.js';
|
|
5
6
|
import 'mime-types';
|
|
6
7
|
import 'sitero-domain';
|
|
7
8
|
import 'react';
|
|
@@ -93,7 +94,7 @@ function ConfigEditContent({
|
|
|
93
94
|
return /* @__PURE__ */ jsx(ContentContainer, { isNotFound, children: /* @__PURE__ */ jsxs(Form, { onSubmit: () => void execute(), children: [
|
|
94
95
|
/* @__PURE__ */ jsxs(FieldsContainer, { children: [
|
|
95
96
|
/* @__PURE__ */ jsx(MainFields, { children: /* @__PURE__ */ jsx(Fragment, { children: Object.entries(fields).map(([key, field]) => {
|
|
96
|
-
const label = field.label
|
|
97
|
+
const label = resolveCmsText(field.label, locale);
|
|
97
98
|
if (key.startsWith("text")) {
|
|
98
99
|
return /* @__PURE__ */ jsx(
|
|
99
100
|
FormField,
|
|
@@ -4,6 +4,7 @@ import { useTranslator } from 'intor/react';
|
|
|
4
4
|
import '../../../../../../constants/paths/redirect.js';
|
|
5
5
|
import { DATE_FORMAT_OPTIONS } from '../../../../../../constants/date.js';
|
|
6
6
|
import '../../../../../../constants/cms-locale.js';
|
|
7
|
+
import { resolveCmsText } from '../../../../../../shared/resolve-cms-text.js';
|
|
7
8
|
import { ArrayList } from '../../ui/display/array-list.js';
|
|
8
9
|
import 'mime-types';
|
|
9
10
|
import 'sitero-domain';
|
|
@@ -56,7 +57,7 @@ function ConfigShowContent({
|
|
|
56
57
|
const { t, locale, format } = useTranslator();
|
|
57
58
|
return /* @__PURE__ */ jsx(ContentContainer, { isNotFound, children: /* @__PURE__ */ jsxs(FieldsContainer, { children: [
|
|
58
59
|
/* @__PURE__ */ jsx(MainFields, { children: /* @__PURE__ */ jsx(Fragment, { children: Object.entries(fields).map(([key, field]) => {
|
|
59
|
-
const label = field.label
|
|
60
|
+
const label = resolveCmsText(field.label, locale);
|
|
60
61
|
if (key.startsWith("text")) {
|
|
61
62
|
return /* @__PURE__ */ jsx(Field, { label, children: /* @__PURE__ */ jsx(
|
|
62
63
|
FieldBody,
|
|
@@ -68,7 +68,7 @@ function FileTable({
|
|
|
68
68
|
const title = name ?? t("ui.no-data.text");
|
|
69
69
|
const isSelecting = onSelect !== void 0;
|
|
70
70
|
const selectionLabel = t(
|
|
71
|
-
isPicked ? "ui.picked.text" : "ui.pick.text"
|
|
71
|
+
isPicked ? "ui.pick-modal.picked.text" : "ui.pick-modal.pick.text"
|
|
72
72
|
);
|
|
73
73
|
function activateRow() {
|
|
74
74
|
if (onSelect) {
|
package/dist/src/cms/client/interfaces/components/resources/page/content/page-edit-content.js
CHANGED
|
@@ -4,6 +4,7 @@ import { useTranslator } from 'intor/react';
|
|
|
4
4
|
import { useRouter } from 'next/navigation';
|
|
5
5
|
import { Fragment } from 'react';
|
|
6
6
|
import { PAGE_MEDIA_FIELDS, PAGE_TEXT_FIELDS } from 'sitero-domain';
|
|
7
|
+
import { resolveCmsText } from '../../../../../../../shared/resolve-cms-text.js';
|
|
7
8
|
import 'mime-types';
|
|
8
9
|
import 'ua-parser-js';
|
|
9
10
|
import '../../../../../../../shared/client/react-query/client.js';
|
|
@@ -118,7 +119,7 @@ function createPageEditContent({
|
|
|
118
119
|
const mediaField = field;
|
|
119
120
|
const isMedia = PAGE_MEDIA_FIELDS.includes(field);
|
|
120
121
|
const defaultLabel = isMedia ? t("resources.page.cover-media.text") : labels[labelKey];
|
|
121
|
-
const label = config.label
|
|
122
|
+
const label = resolveCmsText(config.label, locale) ?? (section ? `${t("resources.page.section.text")} ${section} \xB7 ${defaultLabel}` : defaultLabel);
|
|
122
123
|
if (isMedia)
|
|
123
124
|
return /* @__PURE__ */ jsx(
|
|
124
125
|
FormField,
|
package/dist/src/cms/client/interfaces/components/resources/page/content/page-show-content.js
CHANGED
|
@@ -3,6 +3,7 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
3
3
|
import { useTranslator } from 'intor/react';
|
|
4
4
|
import { Fragment } from 'react';
|
|
5
5
|
import { PAGE_MEDIA_FIELDS } from 'sitero-domain';
|
|
6
|
+
import { resolveCmsText } from '../../../../../../../shared/resolve-cms-text.js';
|
|
6
7
|
import '@radix-ui/react-avatar';
|
|
7
8
|
import 'mime-types';
|
|
8
9
|
import 'ua-parser-js';
|
|
@@ -71,7 +72,7 @@ function createPageShowContent({
|
|
|
71
72
|
const base = field.replace(/^section\d+/, "");
|
|
72
73
|
const labelKey = base.charAt(0).toLowerCase() + base.slice(1);
|
|
73
74
|
const defaultLabel = isMedia ? t("resources.page.cover-media.text") : labels[labelKey];
|
|
74
|
-
const label = fields[field]?.label
|
|
75
|
+
const label = resolveCmsText(fields[field]?.label, locale) ?? (section ? `${t("resources.page.section.text")} ${section} \xB7 ${defaultLabel}` : defaultLabel);
|
|
75
76
|
if (isMedia)
|
|
76
77
|
return /* @__PURE__ */ jsx(Field, { label, children: /* @__PURE__ */ jsx(
|
|
77
78
|
FieldBody,
|
|
@@ -14,6 +14,7 @@ import '@tanstack/react-query';
|
|
|
14
14
|
import 'clsx';
|
|
15
15
|
import 'tailwind-merge';
|
|
16
16
|
import { joinUrl } from '../../../../../../../shared/utils/join-url.js';
|
|
17
|
+
import { resolveCmsText } from '../../../../../../../shared/resolve-cms-text.js';
|
|
17
18
|
import { ResourceCard } from '../../../ui/cards/resource-card.js';
|
|
18
19
|
import 'intor/react';
|
|
19
20
|
import '@radix-ui/react-avatar';
|
|
@@ -61,7 +62,10 @@ function createCategoryCard({
|
|
|
61
62
|
}) {
|
|
62
63
|
const resolvedTopicKey = category.topicKey ?? topicKey;
|
|
63
64
|
const topicT = {
|
|
64
|
-
title:
|
|
65
|
+
title: resolveCmsText(
|
|
66
|
+
topics[category.topicKey ?? ""]?.title,
|
|
67
|
+
defaultWebLocale
|
|
68
|
+
) ?? category.topicKey ?? ""
|
|
65
69
|
};
|
|
66
70
|
const categoryT = findTranslation(category?.translations, defaultWebLocale);
|
|
67
71
|
const href = isSubcategory ? joinUrl(
|
|
@@ -15,6 +15,7 @@ import '../../../../../../../shared/client/react-query/client.js';
|
|
|
15
15
|
import '@tanstack/react-query';
|
|
16
16
|
import { cn } from '../../../../../../../shared/utils/cn.js';
|
|
17
17
|
import { joinUrl } from '../../../../../../../shared/utils/join-url.js';
|
|
18
|
+
import { resolveCmsText } from '../../../../../../../shared/resolve-cms-text.js';
|
|
18
19
|
import '@radix-ui/react-avatar';
|
|
19
20
|
import '../../../shadcn/badge.js';
|
|
20
21
|
import '../../../shadcn/button.js';
|
|
@@ -64,7 +65,10 @@ function CategoryTable({
|
|
|
64
65
|
] }) }),
|
|
65
66
|
/* @__PURE__ */ jsx(TableBody, { children: categories.map((category) => {
|
|
66
67
|
const topicT = {
|
|
67
|
-
title:
|
|
68
|
+
title: resolveCmsText(
|
|
69
|
+
topics[category.topicKey ?? ""]?.title,
|
|
70
|
+
contentLocale
|
|
71
|
+
) ?? category.topicKey ?? ""
|
|
68
72
|
};
|
|
69
73
|
const isPicked = !!pickedItems?.some(
|
|
70
74
|
(item) => item.id === category.id
|
|
@@ -87,7 +91,7 @@ function CategoryTable({
|
|
|
87
91
|
const title = categoryT.title || void 0;
|
|
88
92
|
const isSelecting = onSelect !== void 0;
|
|
89
93
|
const selectionLabel = t(
|
|
90
|
-
isPicked ? "ui.picked.text" : "ui.pick.text"
|
|
94
|
+
isPicked ? "ui.pick-modal.picked.text" : "ui.pick-modal.pick.text"
|
|
91
95
|
);
|
|
92
96
|
function activateRow() {
|
|
93
97
|
if (onSelect) {
|
package/dist/src/cms/client/interfaces/components/resources/post/content/post-create-content.js
CHANGED
|
@@ -59,6 +59,7 @@ import '../../../ui/inputs/switch-input.js';
|
|
|
59
59
|
import '../../../ui/inputs/password-input.js';
|
|
60
60
|
import '../../../ui/inputs/input.js';
|
|
61
61
|
import { ObjectArrayInput } from '../../../ui/inputs/object-array-input.js';
|
|
62
|
+
import { resolveEditorLocale } from '../../../ui/inputs/editor/resolve-editor-locale.js';
|
|
62
63
|
import 'intor/next';
|
|
63
64
|
import { ContentContainer } from '../../../ui/layouts/content-container.js';
|
|
64
65
|
import { CategoryTable } from '../category/category-table.js';
|
|
@@ -101,7 +102,7 @@ function createPostCreateContent({
|
|
|
101
102
|
const router = useRouter();
|
|
102
103
|
const parentPathname = useParentPathname();
|
|
103
104
|
const { admin } = useAdmin();
|
|
104
|
-
const editorLocale = cmsLocale
|
|
105
|
+
const editorLocale = resolveEditorLocale(cmsLocale);
|
|
105
106
|
const isFieldAllowed = (type, field, fieldRuleKey) => allowField({ topicKey, type, field, fieldRuleKey });
|
|
106
107
|
const { formData, setFormData } = usePostCreateFormData({
|
|
107
108
|
type: postType,
|
|
@@ -420,7 +421,7 @@ function createPostCreateContent({
|
|
|
420
421
|
isError: activeErrors.length > 0,
|
|
421
422
|
...controlProps
|
|
422
423
|
},
|
|
423
|
-
contentLocale
|
|
424
|
+
`${contentLocale}-${editorLocale}`
|
|
424
425
|
)
|
|
425
426
|
}
|
|
426
427
|
)
|
package/dist/src/cms/client/interfaces/components/resources/post/content/post-edit-content.js
CHANGED
|
@@ -57,6 +57,7 @@ import '../../../ui/inputs/switch-input.js';
|
|
|
57
57
|
import '../../../ui/inputs/password-input.js';
|
|
58
58
|
import '../../../ui/inputs/input.js';
|
|
59
59
|
import { ObjectArrayInput } from '../../../ui/inputs/object-array-input.js';
|
|
60
|
+
import { resolveEditorLocale } from '../../../ui/inputs/editor/resolve-editor-locale.js';
|
|
60
61
|
import '../../../../../infrastructure/admin-session/admin-context.js';
|
|
61
62
|
import 'intor/next';
|
|
62
63
|
import { ContentContainer } from '../../../ui/layouts/content-container.js';
|
|
@@ -98,7 +99,7 @@ function createPostEditContent({
|
|
|
98
99
|
const { t, locale: cmsLocale } = useTranslator();
|
|
99
100
|
const router = useRouter();
|
|
100
101
|
const parentPathname = useParentPathname();
|
|
101
|
-
const editorLocale = cmsLocale
|
|
102
|
+
const editorLocale = resolveEditorLocale(cmsLocale);
|
|
102
103
|
const id = post?.id ?? "";
|
|
103
104
|
const slug = post?.slug;
|
|
104
105
|
const topicKey = post?.topicKey ?? void 0;
|
|
@@ -418,7 +419,7 @@ function createPostEditContent({
|
|
|
418
419
|
isError: activeErrors.length > 0,
|
|
419
420
|
...controlProps
|
|
420
421
|
},
|
|
421
|
-
contentLocale
|
|
422
|
+
`${contentLocale}-${editorLocale}`
|
|
422
423
|
)
|
|
423
424
|
}
|
|
424
425
|
)
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { resolveCmsText } from '../../../../../../../shared/resolve-cms-text.js';
|
|
2
2
|
|
|
3
3
|
function resolveControlFieldLabel(label, locale) {
|
|
4
|
-
|
|
5
|
-
const cmsLocale = CMS_LOCALES_ARRAY.find((supported) => supported === locale) ?? CMS_DEFAULT_LOCALE;
|
|
6
|
-
return label[cmsLocale] ?? label[CMS_DEFAULT_LOCALE];
|
|
4
|
+
return typeof label === "string" ? label : resolveCmsText(label, locale);
|
|
7
5
|
}
|
|
8
6
|
|
|
9
7
|
export { resolveControlFieldLabel };
|
|
@@ -13,6 +13,7 @@ import '../../../../../../shared/client/react-query/client.js';
|
|
|
13
13
|
import '@tanstack/react-query';
|
|
14
14
|
import { cn } from '../../../../../../shared/utils/cn.js';
|
|
15
15
|
import { joinUrl } from '../../../../../../shared/utils/join-url.js';
|
|
16
|
+
import { resolveCmsText } from '../../../../../../shared/resolve-cms-text.js';
|
|
16
17
|
import { ResourceCard } from '../../ui/cards/resource-card.js';
|
|
17
18
|
import 'intor/react';
|
|
18
19
|
import '@radix-ui/react-avatar';
|
|
@@ -66,7 +67,7 @@ function createPostCard({
|
|
|
66
67
|
}) {
|
|
67
68
|
const resolvedTopicKey = post.topicKey ?? topicKey;
|
|
68
69
|
const topicT = {
|
|
69
|
-
title: topics[post.topicKey ?? ""]?.title
|
|
70
|
+
title: resolveCmsText(topics[post.topicKey ?? ""]?.title, defaultWebLocale) ?? post.topicKey ?? ""
|
|
70
71
|
};
|
|
71
72
|
const postT = findTranslation(post.translations, defaultWebLocale);
|
|
72
73
|
const strategy = strategies?.[post.type]?.[resolvedTopicKey ?? ""] ?? {};
|
|
@@ -15,6 +15,7 @@ import '../../../../../../shared/client/react-query/client.js';
|
|
|
15
15
|
import '@tanstack/react-query';
|
|
16
16
|
import { cn } from '../../../../../../shared/utils/cn.js';
|
|
17
17
|
import { joinUrl } from '../../../../../../shared/utils/join-url.js';
|
|
18
|
+
import { resolveCmsText } from '../../../../../../shared/resolve-cms-text.js';
|
|
18
19
|
import '@radix-ui/react-avatar';
|
|
19
20
|
import '../../shadcn/badge.js';
|
|
20
21
|
import '../../shadcn/button.js';
|
|
@@ -68,7 +69,10 @@ function PostTable({
|
|
|
68
69
|
] }) }),
|
|
69
70
|
/* @__PURE__ */ jsx(TableBody, { children: posts.map((post) => {
|
|
70
71
|
const topicT = {
|
|
71
|
-
title:
|
|
72
|
+
title: resolveCmsText(
|
|
73
|
+
topics[post.topicKey ?? ""]?.title,
|
|
74
|
+
contentLocale
|
|
75
|
+
) ?? post.topicKey ?? ""
|
|
72
76
|
};
|
|
73
77
|
const isPicked = !!pickedItems?.some((item) => item.id === post.id);
|
|
74
78
|
const postT = findTranslation(post.translations, contentLocale);
|
|
@@ -83,7 +87,7 @@ function PostTable({
|
|
|
83
87
|
const title = presentation.title;
|
|
84
88
|
const isSelecting = onSelect !== void 0;
|
|
85
89
|
const selectionLabel = t(
|
|
86
|
-
isPicked ? "ui.picked.text" : "ui.pick.text"
|
|
90
|
+
isPicked ? "ui.pick-modal.picked.text" : "ui.pick-modal.pick.text"
|
|
87
91
|
);
|
|
88
92
|
function activateRow() {
|
|
89
93
|
if (onSelect) {
|
|
@@ -68,7 +68,7 @@ function TagTable({
|
|
|
68
68
|
const title = tagT.title || void 0;
|
|
69
69
|
const isSelecting = onSelect !== void 0;
|
|
70
70
|
const selectionLabel = t(
|
|
71
|
-
isPicked ? "ui.picked.text" : "ui.pick.text"
|
|
71
|
+
isPicked ? "ui.pick-modal.picked.text" : "ui.pick-modal.pick.text"
|
|
72
72
|
);
|
|
73
73
|
function activateRow() {
|
|
74
74
|
if (onSelect) {
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { ClassicEditor } from 'ckeditor5';
|
|
3
3
|
import enTranslations from 'ckeditor5/translations/en.js';
|
|
4
|
+
import viTranslations from 'ckeditor5/translations/vi.js';
|
|
4
5
|
import zhTranslations from 'ckeditor5/translations/zh.js';
|
|
5
6
|
import { ASSET_MANAGER_PLUGIN_NAME } from '../plugins/asset-manager/asset-manager.js';
|
|
6
7
|
import 'intor/react';
|
|
@@ -24,7 +25,7 @@ class BaseEditor extends ClassicEditor {
|
|
|
24
25
|
static defaultConfig = {
|
|
25
26
|
licenseKey: "GPL",
|
|
26
27
|
//====== Translations ======
|
|
27
|
-
translations: [zhTranslations, enTranslations],
|
|
28
|
+
translations: [zhTranslations, enTranslations, viTranslations],
|
|
28
29
|
// schema: { allowIn: ["figure"], allowAttributes: ["src"] },
|
|
29
30
|
//====== Toolbar ======
|
|
30
31
|
toolbar: {
|
|
@@ -13,7 +13,6 @@ import '@tanstack/react-query';
|
|
|
13
13
|
import 'clsx';
|
|
14
14
|
import 'tailwind-merge';
|
|
15
15
|
import { localeToFlagEmoji } from '../../../../../../../shared/utils/locale-to-flag-emoji.js';
|
|
16
|
-
import { getLocaleLanguageCode } from '../../../../../../../shared/utils/get-locale-language-code.js';
|
|
17
16
|
import '@radix-ui/react-avatar';
|
|
18
17
|
import '../../../shadcn/badge.js';
|
|
19
18
|
import '../../../shadcn/button.js';
|
|
@@ -36,19 +35,19 @@ import 'next/navigation';
|
|
|
36
35
|
import '../../../../../../../constants/paths/redirect.js';
|
|
37
36
|
|
|
38
37
|
function I18nSelector() {
|
|
39
|
-
const { t
|
|
38
|
+
const { t } = useTranslator();
|
|
40
39
|
return /* @__PURE__ */ jsxs(DropdownMenu, { children: [
|
|
41
40
|
/* @__PURE__ */ jsx(DropdownMenuTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(ActionButton, { variant: "outline", size: "icon-lg", children: [
|
|
42
41
|
/* @__PURE__ */ jsx(Languages, {}),
|
|
43
|
-
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "
|
|
42
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: t("ui.navbar.i18n-selector.label.text") })
|
|
44
43
|
] }) }),
|
|
45
44
|
/* @__PURE__ */ jsxs(DropdownMenuContent, { align: "end", children: [
|
|
46
45
|
/* @__PURE__ */ jsx(DropdownMenuLabel, { className: "text-muted-foreground px-1.5 py-1 text-xs font-medium data-inset:pl-7", children: t("ui.navbar.i18n-selector.label.text") }),
|
|
47
46
|
CMS_LOCALES_ARRAY.map((locale) => {
|
|
48
|
-
const
|
|
47
|
+
const displayName = new Intl.DisplayNames([locale], { type: "language" }).of(locale) ?? locale;
|
|
49
48
|
return /* @__PURE__ */ jsx(Link, { locale, children: /* @__PURE__ */ jsxs(DropdownMenuItem, { children: [
|
|
50
49
|
/* @__PURE__ */ jsx("span", { className: "mr-1", children: localeToFlagEmoji(locale) }),
|
|
51
|
-
|
|
50
|
+
displayName
|
|
52
51
|
] }) }, locale);
|
|
53
52
|
})
|
|
54
53
|
] })
|
|
@@ -15,6 +15,7 @@ import 'mime-types';
|
|
|
15
15
|
import 'clsx';
|
|
16
16
|
import 'tailwind-merge';
|
|
17
17
|
import { ensureArray } from '../../../../../../../../../../../shared/utils/ensure-array.js';
|
|
18
|
+
import { resolveCmsText } from '../../../../../../../../../../../shared/resolve-cms-text.js';
|
|
18
19
|
import { getControlMeta } from '../../../../../../../../../applications/form/get-control-meta.js';
|
|
19
20
|
import '../../../../../../../../../../../constants/paths/redirect.js';
|
|
20
21
|
import '../../../../../../../../../../../constants/cms-locale.js';
|
|
@@ -90,7 +91,7 @@ function createCategoryEditPage({
|
|
|
90
91
|
titleProps: {
|
|
91
92
|
icon: Notebook,
|
|
92
93
|
title: t("resources.category.text"),
|
|
93
|
-
leftChildren: /* @__PURE__ */ jsx(Badge, { children: topic?.title
|
|
94
|
+
leftChildren: /* @__PURE__ */ jsx(Badge, { children: resolveCmsText(topic?.title, locale) })
|
|
94
95
|
}
|
|
95
96
|
}
|
|
96
97
|
),
|
|
@@ -18,6 +18,7 @@ import '@tanstack/react-query';
|
|
|
18
18
|
import 'clsx';
|
|
19
19
|
import 'tailwind-merge';
|
|
20
20
|
import { joinUrl } from '../../../../../../../../../../shared/utils/join-url.js';
|
|
21
|
+
import { resolveCmsText } from '../../../../../../../../../../shared/resolve-cms-text.js';
|
|
21
22
|
import 'next/link';
|
|
22
23
|
import '@radix-ui/react-avatar';
|
|
23
24
|
import '../../../../../../../components/shadcn/badge.js';
|
|
@@ -103,7 +104,7 @@ function createCategoryShowPage({
|
|
|
103
104
|
titleProps: {
|
|
104
105
|
icon: Notebook,
|
|
105
106
|
title: t("resources.category.text"),
|
|
106
|
-
leftChildren: /* @__PURE__ */ jsx(Badge, { children: topic?.title
|
|
107
|
+
leftChildren: /* @__PURE__ */ jsx(Badge, { children: resolveCmsText(topic?.title, locale) }),
|
|
107
108
|
rightChildren: category?.isLocked && /* @__PURE__ */ jsx(
|
|
108
109
|
Lock,
|
|
109
110
|
{
|
|
@@ -18,6 +18,7 @@ import 'clsx';
|
|
|
18
18
|
import 'tailwind-merge';
|
|
19
19
|
import { ensureArray } from '../../../../../../../../../../shared/utils/ensure-array.js';
|
|
20
20
|
import { joinUrl } from '../../../../../../../../../../shared/utils/join-url.js';
|
|
21
|
+
import { resolveCmsText } from '../../../../../../../../../../shared/resolve-cms-text.js';
|
|
21
22
|
import { getControlMeta } from '../../../../../../../../applications/form/get-control-meta.js';
|
|
22
23
|
import 'lucide-react';
|
|
23
24
|
import { PageHeaderLayout } from '../../../../../../../components/ui/blocks/page-header/page-header-layout.js';
|
|
@@ -79,7 +80,7 @@ function createCategoryCreatePage({
|
|
|
79
80
|
navigation: /* @__PURE__ */ jsx(ReturnButton, { useConfirm: true, href: returnHref }),
|
|
80
81
|
titleProps: {
|
|
81
82
|
title: t("resources.category.text"),
|
|
82
|
-
leftChildren: /* @__PURE__ */ jsx(Badge, { children: topic?.title
|
|
83
|
+
leftChildren: /* @__PURE__ */ jsx(Badge, { children: resolveCmsText(topic?.title, locale) })
|
|
83
84
|
}
|
|
84
85
|
}
|
|
85
86
|
),
|
package/dist/src/cms/client/interfaces/pages/dashboard/content/content-management/_topicKey_/page.js
CHANGED
|
@@ -18,6 +18,7 @@ import 'clsx';
|
|
|
18
18
|
import 'tailwind-merge';
|
|
19
19
|
import { joinUrl } from '../../../../../../../../shared/utils/join-url.js';
|
|
20
20
|
import { DO_NOT_FETCH_KEY } from '../../../../../../../../shared/list-item.js';
|
|
21
|
+
import { resolveCmsText } from '../../../../../../../../shared/resolve-cms-text.js';
|
|
21
22
|
import 'next/link';
|
|
22
23
|
import '@radix-ui/react-avatar';
|
|
23
24
|
import '../../../../../components/shadcn/badge.js';
|
|
@@ -75,7 +76,7 @@ function createTopicScopePage({
|
|
|
75
76
|
POST_TYPES.SUBCATEGORY
|
|
76
77
|
);
|
|
77
78
|
const topic = Object.hasOwn(staticTopics, topicKey) ? staticTopics[topicKey] : void 0;
|
|
78
|
-
const topicT = { title: topic?.title
|
|
79
|
+
const topicT = { title: resolveCmsText(topic?.title, locale) ?? "" };
|
|
79
80
|
const [categoryStates, setCategoryStates] = useState({});
|
|
80
81
|
const [subcategoryStates, setSubcategoryStates] = useState({});
|
|
81
82
|
const [postStates, setPostStates] = useState(
|
|
@@ -18,6 +18,7 @@ import 'clsx';
|
|
|
18
18
|
import 'tailwind-merge';
|
|
19
19
|
import { ensureArray } from '../../../../../../../../../../../shared/utils/ensure-array.js';
|
|
20
20
|
import { joinUrl } from '../../../../../../../../../../../shared/utils/join-url.js';
|
|
21
|
+
import { resolveCmsText } from '../../../../../../../../../../../shared/resolve-cms-text.js';
|
|
21
22
|
import { getControlMeta } from '../../../../../../../../../applications/form/get-control-meta.js';
|
|
22
23
|
import 'lucide-react';
|
|
23
24
|
import { PageHeaderLayout } from '../../../../../../../../components/ui/blocks/page-header/page-header-layout.js';
|
|
@@ -105,7 +106,7 @@ function createPostEditPage({
|
|
|
105
106
|
),
|
|
106
107
|
titleProps: {
|
|
107
108
|
title: t("resources.post.text"),
|
|
108
|
-
leftChildren: /* @__PURE__ */ jsx(Badge, { isLoading: isFetching, children: topic?.title
|
|
109
|
+
leftChildren: /* @__PURE__ */ jsx(Badge, { isLoading: isFetching, children: resolveCmsText(topic?.title, defaultWebLocale) })
|
|
109
110
|
}
|
|
110
111
|
}
|
|
111
112
|
),
|
|
@@ -18,6 +18,7 @@ import '@tanstack/react-query';
|
|
|
18
18
|
import 'clsx';
|
|
19
19
|
import 'tailwind-merge';
|
|
20
20
|
import { joinUrl } from '../../../../../../../../../../shared/utils/join-url.js';
|
|
21
|
+
import { resolveCmsText } from '../../../../../../../../../../shared/resolve-cms-text.js';
|
|
21
22
|
import 'next/link';
|
|
22
23
|
import '@radix-ui/react-avatar';
|
|
23
24
|
import '../../../../../../../components/shadcn/badge.js';
|
|
@@ -106,7 +107,7 @@ function createPostShowPage({
|
|
|
106
107
|
),
|
|
107
108
|
titleProps: {
|
|
108
109
|
title: t("resources.post.text"),
|
|
109
|
-
leftChildren: /* @__PURE__ */ jsx(Badge, { children: topic?.title
|
|
110
|
+
leftChildren: /* @__PURE__ */ jsx(Badge, { children: resolveCmsText(topic?.title, defaultWebLocale) }),
|
|
110
111
|
rightChildren: post?.isLocked && /* @__PURE__ */ jsx(
|
|
111
112
|
Lock,
|
|
112
113
|
{
|