@seshuk/payload-plugin-openapi 1.0.0-beta.1 → 1.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -4
- package/dist/server/spec/buildDocument.js +62 -9
- package/dist/server/spec/buildDocument.js.map +1 -1
- package/dist/server/spec/components.js.map +1 -1
- package/dist/server/spec/entitySchemas.d.ts +5 -6
- package/dist/server/spec/entitySchemas.js.map +1 -1
- package/dist/server/spec/filters.d.ts +5 -1
- package/dist/server/spec/filters.js +21 -10
- package/dist/server/spec/filters.js.map +1 -1
- package/dist/server/spec/hierarchy.js +9 -4
- package/dist/server/spec/hierarchy.js.map +1 -1
- package/dist/server/spec/paths/collections.js +111 -7
- package/dist/server/spec/paths/collections.js.map +1 -1
- package/dist/server/spec/paths/custom.d.ts +4 -2
- package/dist/server/spec/paths/custom.js +1 -1
- package/dist/server/spec/paths/custom.js.map +1 -1
- package/dist/server/spec/paths/system.d.ts +2 -1
- package/dist/server/spec/paths/system.js +67 -1
- package/dist/server/spec/paths/system.js.map +1 -1
- package/dist/server/spec/plugins/ecommerce.d.ts +3 -0
- package/dist/server/spec/plugins/ecommerce.js +270 -0
- package/dist/server/spec/plugins/ecommerce.js.map +1 -0
- package/dist/server/spec/plugins/importExport.d.ts +3 -0
- package/dist/server/spec/plugins/importExport.js +202 -0
- package/dist/server/spec/plugins/importExport.js.map +1 -0
- package/dist/server/spec/plugins/index.d.ts +3 -0
- package/dist/server/spec/plugins/index.js +21 -0
- package/dist/server/spec/plugins/index.js.map +1 -0
- package/dist/server/spec/plugins/mcp.d.ts +3 -0
- package/dist/server/spec/plugins/mcp.js +118 -0
- package/dist/server/spec/plugins/mcp.js.map +1 -0
- package/dist/server/spec/plugins/multiTenant.d.ts +3 -0
- package/dist/server/spec/plugins/multiTenant.js +39 -0
- package/dist/server/spec/plugins/multiTenant.js.map +1 -0
- package/dist/server/spec/plugins/search.d.ts +3 -0
- package/dist/server/spec/plugins/search.js +43 -0
- package/dist/server/spec/plugins/search.js.map +1 -0
- package/dist/server/spec/plugins/seo.d.ts +3 -0
- package/dist/server/spec/plugins/seo.js +83 -0
- package/dist/server/spec/plugins/seo.js.map +1 -0
- package/dist/server/spec/plugins/shared.d.ts +35 -0
- package/dist/server/spec/plugins/shared.js +37 -0
- package/dist/server/spec/plugins/shared.js.map +1 -0
- package/dist/server/spec/plugins/storageR2.d.ts +3 -0
- package/dist/server/spec/plugins/storageR2.js +91 -0
- package/dist/server/spec/plugins/storageR2.js.map +1 -0
- package/dist/server/spec/plugins/stripe.d.ts +10 -0
- package/dist/server/spec/plugins/stripe.js +102 -0
- package/dist/server/spec/plugins/stripe.js.map +1 -0
- package/dist/server/spec/security.d.ts +2 -1
- package/dist/server/spec/security.js +5 -2
- package/dist/server/spec/security.js.map +1 -1
- package/dist/server/spec/tags.d.ts +4 -1
- package/dist/server/spec/tags.js +18 -2
- package/dist/server/spec/tags.js.map +1 -1
- package/dist/server/ui/html.js +2 -2
- package/dist/server/ui/html.js.map +1 -1
- package/dist/shared/translations/locales/ar.js +74 -0
- package/dist/shared/translations/locales/ar.js.map +1 -1
- package/dist/shared/translations/locales/az.js +74 -0
- package/dist/shared/translations/locales/az.js.map +1 -1
- package/dist/shared/translations/locales/bg.js +74 -0
- package/dist/shared/translations/locales/bg.js.map +1 -1
- package/dist/shared/translations/locales/bnBd.js +74 -0
- package/dist/shared/translations/locales/bnBd.js.map +1 -1
- package/dist/shared/translations/locales/bnIn.js +74 -0
- package/dist/shared/translations/locales/bnIn.js.map +1 -1
- package/dist/shared/translations/locales/ca.js +74 -0
- package/dist/shared/translations/locales/ca.js.map +1 -1
- package/dist/shared/translations/locales/cs.js +74 -0
- package/dist/shared/translations/locales/cs.js.map +1 -1
- package/dist/shared/translations/locales/da.js +74 -0
- package/dist/shared/translations/locales/da.js.map +1 -1
- package/dist/shared/translations/locales/de.js +74 -0
- package/dist/shared/translations/locales/de.js.map +1 -1
- package/dist/shared/translations/locales/en.js +74 -0
- package/dist/shared/translations/locales/en.js.map +1 -1
- package/dist/shared/translations/locales/es.js +74 -0
- package/dist/shared/translations/locales/es.js.map +1 -1
- package/dist/shared/translations/locales/et.js +74 -0
- package/dist/shared/translations/locales/et.js.map +1 -1
- package/dist/shared/translations/locales/fa.js +74 -0
- package/dist/shared/translations/locales/fa.js.map +1 -1
- package/dist/shared/translations/locales/fr.js +74 -0
- package/dist/shared/translations/locales/fr.js.map +1 -1
- package/dist/shared/translations/locales/he.js +74 -0
- package/dist/shared/translations/locales/he.js.map +1 -1
- package/dist/shared/translations/locales/hr.js +74 -0
- package/dist/shared/translations/locales/hr.js.map +1 -1
- package/dist/shared/translations/locales/hu.js +74 -0
- package/dist/shared/translations/locales/hu.js.map +1 -1
- package/dist/shared/translations/locales/hy.js +74 -0
- package/dist/shared/translations/locales/hy.js.map +1 -1
- package/dist/shared/translations/locales/id.js +74 -0
- package/dist/shared/translations/locales/id.js.map +1 -1
- package/dist/shared/translations/locales/is.js +74 -0
- package/dist/shared/translations/locales/is.js.map +1 -1
- package/dist/shared/translations/locales/it.js +74 -0
- package/dist/shared/translations/locales/it.js.map +1 -1
- package/dist/shared/translations/locales/ja.js +74 -0
- package/dist/shared/translations/locales/ja.js.map +1 -1
- package/dist/shared/translations/locales/ko.js +74 -0
- package/dist/shared/translations/locales/ko.js.map +1 -1
- package/dist/shared/translations/locales/lt.js +74 -0
- package/dist/shared/translations/locales/lt.js.map +1 -1
- package/dist/shared/translations/locales/lv.js +74 -0
- package/dist/shared/translations/locales/lv.js.map +1 -1
- package/dist/shared/translations/locales/my.js +74 -0
- package/dist/shared/translations/locales/my.js.map +1 -1
- package/dist/shared/translations/locales/nb.js +74 -0
- package/dist/shared/translations/locales/nb.js.map +1 -1
- package/dist/shared/translations/locales/nl.js +74 -0
- package/dist/shared/translations/locales/nl.js.map +1 -1
- package/dist/shared/translations/locales/pl.js +74 -0
- package/dist/shared/translations/locales/pl.js.map +1 -1
- package/dist/shared/translations/locales/pt.js +74 -0
- package/dist/shared/translations/locales/pt.js.map +1 -1
- package/dist/shared/translations/locales/ro.js +74 -0
- package/dist/shared/translations/locales/ro.js.map +1 -1
- package/dist/shared/translations/locales/rs.js +74 -0
- package/dist/shared/translations/locales/rs.js.map +1 -1
- package/dist/shared/translations/locales/rsLatin.js +74 -0
- package/dist/shared/translations/locales/rsLatin.js.map +1 -1
- package/dist/shared/translations/locales/ru.js +74 -0
- package/dist/shared/translations/locales/ru.js.map +1 -1
- package/dist/shared/translations/locales/sk.js +74 -0
- package/dist/shared/translations/locales/sk.js.map +1 -1
- package/dist/shared/translations/locales/sl.js +74 -0
- package/dist/shared/translations/locales/sl.js.map +1 -1
- package/dist/shared/translations/locales/sv.js +74 -0
- package/dist/shared/translations/locales/sv.js.map +1 -1
- package/dist/shared/translations/locales/ta.js +74 -0
- package/dist/shared/translations/locales/ta.js.map +1 -1
- package/dist/shared/translations/locales/th.js +74 -0
- package/dist/shared/translations/locales/th.js.map +1 -1
- package/dist/shared/translations/locales/tr.js +74 -0
- package/dist/shared/translations/locales/tr.js.map +1 -1
- package/dist/shared/translations/locales/uk.js +74 -0
- package/dist/shared/translations/locales/uk.js.map +1 -1
- package/dist/shared/translations/locales/vi.js +74 -0
- package/dist/shared/translations/locales/vi.js.map +1 -1
- package/dist/shared/translations/locales/zh.js +74 -0
- package/dist/shared/translations/locales/zh.js.map +1 -1
- package/dist/shared/translations/locales/zhTw.js +74 -0
- package/dist/shared/translations/locales/zhTw.js.map +1 -1
- package/dist/shared/translations/types.d.ts +74 -0
- package/dist/shared/types/index.d.ts +23 -8
- package/package.json +23 -15
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vi.js","names":[],"sources":["../../../../src/shared/translations/locales/vi.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject } from '@/shared/translations/types.js'\n\nexport const vi: PluginDefaultTranslationsObject = {\n '@seshuk/payload-plugin-openapi': {\n paramDepth: 'Số cấp tài liệu liên quan cần được điền dữ liệu.',\n paramSort: 'Trường để sắp xếp; thêm tiền tố `-` để sắp xếp giảm dần, ví dụ `-createdAt`.',\n paramSortShort: 'Trường để sắp xếp; thêm tiền tố `-` để sắp xếp giảm dần.',\n paramDraft: 'Trả về các phiên bản nháp.',\n paramTrash: 'Bao gồm các tài liệu đã đưa vào thùng rác.',\n paramAutosave: 'Lưu dưới dạng tự động lưu: cập nhật phiên bản tự động lưu gần nhất thay vì thêm phiên bản mới.',\n paramPublishAllLocales: 'Xuất bản mọi ngôn ngữ, không chỉ ngôn ngữ của yêu cầu.',\n paramUnpublishAllLocales: 'Hủy xuất bản mọi ngôn ngữ và đưa tài liệu về bản nháp.',\n paramOverrideLock: 'Bỏ qua khóa của người dùng khác. Mặc định false.',\n paramSelectedLocales: 'Chỉ sao chép các ngôn ngữ này sang bản sao. Mặc định: mọi ngôn ngữ.',\n paramFlattenLocales:\n 'Với `locale=all`, đặt false để giữ các trường đa ngôn ngữ dưới dạng đối tượng theo từng ngôn ngữ. Mặc định là true.',\n paramLocale: 'Ngôn ngữ cần trả về, hoặc `all` để lấy mọi ngôn ngữ. Xem phần Đa ngôn ngữ trong phần mô tả API.',\n paramFallbackLocale: 'Ngôn ngữ dự phòng cho các giá trị đa ngôn ngữ bị thiếu, hoặc `none` để tắt.',\n paramValidateLocale:\n 'Các ngôn ngữ cần xác thực, hoặc `all` để lấy mọi ngôn ngữ. Lặp lại tham số nếu có nhiều ngôn ngữ.',\n paramComputeHierarchyPaths:\n 'Đặt true để tính các đường dẫn `{{slugPath}}` và `{{titlePath}}`. Chọn một trong hai trường cũng sẽ tính chúng.',\n\n schemaSelect: 'Chọn các trường cần trả về, ví dụ `select[title]=true`. Bỏ trống để trả về tất cả.',\n schemaPopulate: 'Điền dữ liệu các tài liệu liên quan theo từng collection, ví dụ `populate[posts][title]=true`.',\n schemaJoins: 'Tùy chỉnh theo từng phép join (limit/page/sort/where/count), ví dụ `joins[posts][limit]=10`.',\n schemaWhere:\n 'Bộ lọc `where` của Payload. Lồng một trường rồi đến một toán tử: `where[field][equals]=value`. Kết hợp các mệnh đề bằng mảng `and` / `or`, ví dụ `where[or][0][field][equals]=value`. Mỗi trường chỉ liệt kê các toán tử hợp lệ với kiểu của nó.',\n schemaSupportedTimezones: 'Các múi giờ được hỗ trợ theo định dạng IANA.',\n schemaPerLocale: 'Giá trị theo từng ngôn ngữ, được trả về khi dùng `locale=all`.',\n schemaHierarchySlugPath:\n 'Đường dẫn slug, ví dụ `parent/child`. Được tính khi đọc với `computeHierarchyPaths=true` hoặc khi được chọn. Không dùng được trong `where`.',\n schemaHierarchyTitlePath:\n 'Đường dẫn tiêu đề, ví dụ `Parent/Child`. Được tính khi đọc với `computeHierarchyPaths=true` hoặc khi được chọn. Không dùng được trong `where`.',\n\n collectionList: 'Danh sách tài liệu được phân trang',\n collectionDoc: 'Một tài liệu đơn lẻ',\n collectionCreated: 'Tài liệu đã được tạo',\n collectionUpdated: 'Tài liệu đã được cập nhật',\n collectionDeleted: 'Tài liệu đã được xóa',\n collectionBulkUpdate: 'Kết quả cập nhật hàng loạt',\n collectionBulkDelete: 'Kết quả xóa hàng loạt',\n collectionCount: 'Số lượng tài liệu',\n collectionDuplicated: 'Tài liệu đã được nhân bản',\n validateResult:\n 'Kết quả xác thực. Không có gì được lưu. Giá trị trường không hợp lệ trả về `valid: false` kèm các lỗi, không phải trạng thái lỗi.',\n validateBody:\n 'Dữ liệu tài liệu cần xác thực. Với tài liệu đã lưu hoặc tài liệu global, dữ liệu được gộp lên bản nháp mới nhất, hoặc tài liệu đã lưu nếu không có bản nháp.',\n\n globalDoc: 'Tài liệu global',\n\n authLogin: 'Kết quả đăng nhập',\n authLogout: 'Kết quả đăng xuất',\n authMe: 'Người dùng hiện đang được xác thực',\n authRefreshToken: 'Token đã được làm mới',\n authForgotPassword: 'Email đặt lại mật khẩu đã được gửi',\n authResetPassword: 'Kết quả đặt lại mật khẩu',\n authFirstRegister: 'Người dùng đầu tiên, được tạo cùng với một token xác thực',\n authInit: 'Cho biết collection xác thực này đã có người dùng nào hay chưa',\n authAccess: 'Quyền của người dùng hiện tại đối với mọi collection và global',\n docAccess: 'Quyền của người dùng hiện tại đối với tài liệu này',\n docAccessBody:\n 'Dữ liệu tài liệu dùng để kiểm tra quyền truy cập. Nếu không có, Payload dùng tài liệu đã lưu, nếu có.',\n authUnlock: 'Kết quả mở khóa',\n authVerify: 'Kết quả xác minh',\n apiKeyReveal: 'API key đã được giải mã',\n\n versionList: 'Danh sách phiên bản được phân trang',\n versionSingle: 'Một phiên bản đơn lẻ',\n versionRestored: 'Tài liệu đã được khôi phục',\n versionWhere: 'Lọc theo các trường phiên bản, ví dụ `where[parent][equals]=<docId>`.',\n\n jobsRunSummary: 'Chạy các job đang xếp hàng (và, theo mặc định, xử lý lịch trình)',\n jobsSchedulesSummary: 'Xếp hàng các job đến hạn theo lịch trình của chúng',\n jobsRunResult: 'Kết quả chạy',\n jobsSchedulesResult: 'Kết quả lập lịch',\n jobsRunAllQueues: 'Chạy các job trên tất cả các hàng đợi.',\n jobsLimit: 'Số job tối đa được chạy.',\n jobsDisableScheduling: 'Bỏ qua việc xử lý lịch trình mà `run` thực hiện theo mặc định.',\n jobsSilent: 'Tắt ghi log khi chạy.',\n jobsSchedulesAllQueues: 'Xử lý lịch trình trên tất cả các hàng đợi.',\n jobsQueue: 'Giới hạn thao tác chỉ trong một hàng đợi. Các hàng đợi đã biết: {{queues}}.',\n\n uploadFile: 'Tệp nhị phân cần tải lên.',\n uploadBody:\n 'Gửi `multipart/form-data` để tải lên một tệp (một phần `file` nhị phân cùng với một phần `_payload` chứa các trường đã được chuyển thành chuỗi JSON), hoặc gửi `application/json` chỉ với các trường khi không có tệp.',\n uploadPayloadField: 'Các trường {{schema}} đã được chuyển thành chuỗi JSON. Ví dụ: `{\"alt\":\"A caption\"}`.',\n fileServe: 'Tệp',\n filePartial: 'Một phần của tệp, cho yêu cầu `Range`',\n uploadInstructionsSummary: 'Lấy hướng dẫn tải tệp lên trước khi lưu tài liệu',\n uploadInstructionsResult: 'Nơi gửi các byte của tệp, và giá trị `file` cần gửi kèm yêu cầu tạo hoặc cập nhật',\n uploadStagePutSummary: 'Gửi các byte của tệp cho một lần tải lên tạm thời',\n uploadStageDeleteSummary: 'Xóa một lần tải lên tạm thời',\n uploadStageResult: 'Xong, không có nội dung',\n\n error400: 'Lỗi xác thực hoặc lỗi truy vấn (ValidationError, QueryError)',\n error401: 'Chưa được xác thực (AuthenticationError)',\n error403: 'Bị từ chối bởi kiểm soát truy cập (Forbidden, UnverifiedEmail)',\n error404: 'Không tìm thấy tài liệu (NotFound)',\n error500: 'Lỗi máy chủ nội bộ (APIError)',\n\n securityBearer:\n 'Dán `token` được trả về bởi endpoint đăng nhập. Được gửi dưới dạng `Authorization: Bearer <token>`. Payload cũng chấp nhận lược đồ `JWT <token>` và cookie `{{cookiePrefix}}-token`.',\n securityInteractive:\n 'Đăng nhập tương tác: nhập tên người dùng (hoặc email) và mật khẩu; để trống Client ID/Secret.',\n\n tagCollections: 'Collections',\n tagCollectionsDesc: 'Các endpoint của collection tài liệu (CRUD, đếm, nhân bản).',\n tagGlobals: 'Globals',\n tagGlobalsDesc: 'Các endpoint của tài liệu global.',\n tagSystem: 'Hệ thống',\n tagSystemDesc: 'Các endpoint hệ thống của Payload.',\n tagAuth: 'Xác thực',\n tagVersions: 'Phiên bản',\n tagJobs: 'Jobs',\n tagUploads: 'Tải lên',\n tagAccess: 'Truy cập',\n\n localizationHeading: 'Đa ngôn ngữ',\n localizationNote:\n 'Các ngôn ngữ khả dụng: {{locales}}. Truyền `?locale=<code>` vào một endpoint đọc để chọn một ngôn ngữ. Truyền `?locale=all` để nhận mọi ngôn ngữ cùng lúc — khi đó mỗi trường đa ngôn ngữ sẽ được trả về dưới dạng một đối tượng có khóa là mã ngôn ngữ (ví dụ `{ \"en\": \"Hello\", \"de\": \"Hallo\" }`) thay vì một giá trị đơn lẻ. Đặt `?flattenLocales=false` cùng với `locale=all` để giữ dạng đối tượng theo từng ngôn ngữ đó. Lược đồ trường hiển thị cấu trúc của một ngôn ngữ đơn lẻ.',\n docLanguagesNote:\n 'Tài liệu này có sẵn bằng các ngôn ngữ: {{languages}}. Thêm `?lang=<code>` vào URL spec này để chuyển đổi.',\n },\n}\n"],"mappings":"AAEA,MAAa,KAAsC,EACjD,kCAAkC;CAChC,YAAY;CACZ,WAAW;CACX,gBAAgB;CAChB,YAAY;CACZ,YAAY;CACZ,eAAe;CACf,wBAAwB;CACxB,0BAA0B;CAC1B,mBAAmB;CACnB,sBAAsB;CACtB,qBACE;CACF,aAAa;CACb,qBAAqB;CACrB,qBACE;CACF,4BACE;CAEF,cAAc;CACd,gBAAgB;CAChB,aAAa;CACb,aACE;CACF,0BAA0B;CAC1B,iBAAiB;CACjB,yBACE;CACF,0BACE;CAEF,gBAAgB;CAChB,eAAe;CACf,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,sBAAsB;CACtB,sBAAsB;CACtB,iBAAiB;CACjB,sBAAsB;CACtB,gBACE;CACF,cACE;CAEF,WAAW;CAEX,WAAW;CACX,YAAY;CACZ,QAAQ;CACR,kBAAkB;CAClB,oBAAoB;CACpB,mBAAmB;CACnB,mBAAmB;CACnB,UAAU;CACV,YAAY;CACZ,WAAW;CACX,eACE;CACF,YAAY;CACZ,YAAY;CACZ,cAAc;CAEd,aAAa;CACb,eAAe;CACf,iBAAiB;CACjB,cAAc;CAEd,gBAAgB;CAChB,sBAAsB;CACtB,eAAe;CACf,qBAAqB;CACrB,kBAAkB;CAClB,WAAW;CACX,uBAAuB;CACvB,YAAY;CACZ,wBAAwB;CACxB,WAAW;CAEX,YAAY;CACZ,YACE;CACF,oBAAoB;CACpB,WAAW;CACX,aAAa;CACb,2BAA2B;CAC3B,0BAA0B;CAC1B,uBAAuB;CACvB,0BAA0B;CAC1B,mBAAmB;CAEnB,UAAU;CACV,UAAU;CACV,UAAU;CACV,UAAU;CACV,UAAU;CAEV,gBACE;CACF,qBACE;CAEF,gBAAgB;CAChB,oBAAoB;CACpB,YAAY;CACZ,gBAAgB;CAChB,WAAW;CACX,eAAe;CACf,SAAS;CACT,aAAa;CACb,SAAS;CACT,YAAY;CACZ,WAAW;CAEX,qBAAqB;CACrB,kBACE;CACF,kBACE;AACJ,EACF"}
|
|
1
|
+
{"version":3,"file":"vi.js","names":[],"sources":["../../../../src/shared/translations/locales/vi.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject } from '@/shared/translations/types.js'\n\nexport const vi: PluginDefaultTranslationsObject = {\n '@seshuk/payload-plugin-openapi': {\n paramDepth: 'Số cấp tài liệu liên quan cần được điền dữ liệu.',\n paramSort: 'Trường để sắp xếp; thêm tiền tố `-` để sắp xếp giảm dần, ví dụ `-createdAt`.',\n paramSortShort: 'Trường để sắp xếp; thêm tiền tố `-` để sắp xếp giảm dần.',\n paramDraft: 'Trả về các phiên bản nháp.',\n paramTrash: 'Bao gồm các tài liệu đã đưa vào thùng rác.',\n paramAutosave: 'Lưu dưới dạng tự động lưu: cập nhật phiên bản tự động lưu gần nhất thay vì thêm phiên bản mới.',\n paramPublishAllLocales: 'Xuất bản mọi ngôn ngữ, không chỉ ngôn ngữ của yêu cầu.',\n paramUnpublishAllLocales: 'Hủy xuất bản mọi ngôn ngữ và đưa tài liệu về bản nháp.',\n paramOverrideLock: 'Bỏ qua khóa của người dùng khác. Mặc định false.',\n paramSelectedLocales: 'Chỉ sao chép các ngôn ngữ này sang bản sao. Mặc định: mọi ngôn ngữ.',\n paramFlattenLocales:\n 'Với `locale=all`, đặt false để giữ các trường đa ngôn ngữ dưới dạng đối tượng theo từng ngôn ngữ. Mặc định là true.',\n paramLocale: 'Ngôn ngữ cần trả về, hoặc `all` để lấy mọi ngôn ngữ. Xem phần Đa ngôn ngữ trong phần mô tả API.',\n paramFallbackLocale: 'Ngôn ngữ dự phòng cho các giá trị đa ngôn ngữ bị thiếu, hoặc `none` để tắt.',\n paramValidateLocale:\n 'Các ngôn ngữ cần xác thực, hoặc `all` để lấy mọi ngôn ngữ. Lặp lại tham số nếu có nhiều ngôn ngữ.',\n paramComputeHierarchyPaths:\n 'Đặt true để tính các đường dẫn `{{slugPath}}` và `{{titlePath}}`. Chọn một trong hai trường cũng sẽ tính chúng.',\n\n schemaSelect: 'Chọn các trường cần trả về, ví dụ `select[title]=true`. Bỏ trống để trả về tất cả.',\n schemaPopulate: 'Điền dữ liệu các tài liệu liên quan theo từng collection, ví dụ `populate[posts][title]=true`.',\n schemaJoins: 'Tùy chỉnh theo từng phép join (limit/page/sort/where/count), ví dụ `joins[posts][limit]=10`.',\n schemaWhere:\n 'Bộ lọc `where` của Payload. Lồng một trường rồi đến một toán tử: `where[field][equals]=value`. Kết hợp các mệnh đề bằng mảng `and` / `or`, ví dụ `where[or][0][field][equals]=value`. Mỗi trường chỉ liệt kê các toán tử hợp lệ với kiểu của nó.',\n schemaSupportedTimezones: 'Các múi giờ được hỗ trợ theo định dạng IANA.',\n schemaPerLocale: 'Giá trị theo từng ngôn ngữ, được trả về khi dùng `locale=all`.',\n schemaHierarchySlugPath:\n 'Đường dẫn slug, ví dụ `parent/child`. Được tính khi đọc với `computeHierarchyPaths=true` hoặc khi được chọn. Không dùng được trong `where`.',\n schemaHierarchyTitlePath:\n 'Đường dẫn tiêu đề, ví dụ `Parent/Child`. Được tính khi đọc với `computeHierarchyPaths=true` hoặc khi được chọn. Không dùng được trong `where`.',\n\n collectionList: 'Danh sách tài liệu được phân trang',\n collectionDoc: 'Một tài liệu đơn lẻ',\n collectionCreated: 'Tài liệu đã được tạo',\n collectionUpdated: 'Tài liệu đã được cập nhật',\n collectionDeleted: 'Tài liệu đã được xóa',\n collectionBulkUpdate: 'Kết quả cập nhật hàng loạt',\n collectionBulkDelete: 'Kết quả xóa hàng loạt',\n collectionCount: 'Số lượng tài liệu',\n collectionDuplicated: 'Tài liệu đã được nhân bản',\n validateResult:\n 'Kết quả xác thực. Không có gì được lưu. Giá trị trường không hợp lệ trả về `valid: false` kèm các lỗi, không phải trạng thái lỗi.',\n validateBody:\n 'Dữ liệu tài liệu cần xác thực. Với tài liệu đã lưu hoặc tài liệu global, dữ liệu được gộp lên bản nháp mới nhất, hoặc tài liệu đã lưu nếu không có bản nháp.',\n\n globalDoc: 'Tài liệu global',\n\n authLogin: 'Kết quả đăng nhập',\n authLogout: 'Kết quả đăng xuất',\n authMe: 'Người dùng hiện đang được xác thực',\n authRefreshToken: 'Token đã được làm mới',\n authForgotPassword: 'Email đặt lại mật khẩu đã được gửi',\n authResetPassword: 'Kết quả đặt lại mật khẩu',\n authFirstRegister: 'Người dùng đầu tiên, được tạo cùng với một token xác thực',\n authInit: 'Cho biết collection xác thực này đã có người dùng nào hay chưa',\n authAccess: 'Quyền của người dùng hiện tại đối với mọi collection và global',\n docAccess: 'Quyền của người dùng hiện tại đối với tài liệu này',\n docAccessBody:\n 'Dữ liệu tài liệu dùng để kiểm tra quyền truy cập. Nếu không có, Payload dùng tài liệu đã lưu, nếu có.',\n authUnlock: 'Kết quả mở khóa',\n authVerify: 'Kết quả xác minh',\n apiKeyReveal: 'API key đã được giải mã',\n\n versionList: 'Danh sách phiên bản được phân trang',\n versionSingle: 'Một phiên bản đơn lẻ',\n versionRestored: 'Tài liệu đã được khôi phục',\n versionWhere: 'Lọc theo các trường phiên bản, ví dụ `where[parent][equals]=<docId>`.',\n\n jobsRunSummary: 'Chạy các job đang xếp hàng (và, theo mặc định, xử lý lịch trình)',\n jobsSchedulesSummary: 'Xếp hàng các job đến hạn theo lịch trình của chúng',\n jobsRunResult: 'Kết quả chạy',\n jobsSchedulesResult: 'Kết quả lập lịch',\n jobsRunAllQueues: 'Chạy các job trên tất cả các hàng đợi.',\n jobsLimit: 'Số job tối đa được chạy.',\n jobsDisableScheduling: 'Bỏ qua việc xử lý lịch trình mà `run` thực hiện theo mặc định.',\n jobsSilent: 'Tắt ghi log khi chạy.',\n jobsSchedulesAllQueues: 'Xử lý lịch trình trên tất cả các hàng đợi.',\n jobsQueue: 'Giới hạn thao tác chỉ trong một hàng đợi. Các hàng đợi đã biết: {{queues}}.',\n\n uploadFile: 'Tệp nhị phân cần tải lên.',\n uploadBody:\n 'Gửi `multipart/form-data` để tải lên một tệp (một phần `file` nhị phân cùng với một phần `_payload` chứa các trường đã được chuyển thành chuỗi JSON), hoặc gửi `application/json` chỉ với các trường khi không có tệp.',\n uploadPayloadField: 'Các trường {{schema}} đã được chuyển thành chuỗi JSON. Ví dụ: `{\"alt\":\"A caption\"}`.',\n fileServe: 'Tệp',\n filePartial: 'Một phần của tệp, cho yêu cầu `Range`',\n paramFileVersion: 'Trả về tệp được lưu với ID phiên bản này.',\n uploadInstructionsSummary: 'Lấy hướng dẫn tải tệp lên trước khi lưu tài liệu',\n uploadInstructionsResult: 'Nơi gửi các byte của tệp, và giá trị `file` cần gửi kèm yêu cầu tạo hoặc cập nhật',\n uploadStagePutSummary: 'Gửi các byte của tệp cho một lần tải lên tạm thời',\n uploadStageDeleteSummary: 'Xóa một lần tải lên tạm thời',\n uploadStageResult: 'Xong, không có nội dung',\n paramPreferenceKey: 'Khóa của tùy chọn, ví dụ `nav`.',\n preferenceGet: 'Lấy một tùy chọn của người dùng hiện tại',\n preferenceGetResult: 'Tùy chọn đã lưu, hoặc `value: null` nếu không có',\n preferenceSet: 'Lưu một tùy chọn của người dùng hiện tại',\n preferenceSetBody: 'Gửi giá trị trong `value`. Body không có `value` sẽ được lưu nguyên vẹn làm giá trị.',\n preferenceSetResult: 'Tùy chọn đã lưu',\n preferenceDelete: 'Xóa một tùy chọn của người dùng hiện tại',\n preferenceDeleteResult: 'Tùy chọn đã xóa',\n reorder: 'Di chuyển tài liệu trong danh sách có thể sắp xếp',\n reorderBody:\n 'Di chuyển `docsToMove` ra sau `target` với `newKeyWillBe: \"greater\"`, hoặc ra trước với `\"less\"`. `orderableFieldName` là `_order` với collection có thể sắp xếp, hoặc trường thứ tự của join có thể sắp xếp. Khi không có `target.key`, Payload chỉ gán khóa thứ tự cho các tài liệu chưa có.',\n reorderResult: 'Các khóa thứ tự mới, hoặc `message: \"initial migration\"` khi Payload gán khóa thứ tự lần đầu',\n errorReorder400: 'Body yêu cầu không hợp lệ; lý do nằm trong `error`',\n\n error400: 'Lỗi xác thực hoặc lỗi truy vấn (ValidationError, QueryError)',\n error401: 'Chưa được xác thực (AuthenticationError)',\n error403: 'Bị từ chối bởi kiểm soát truy cập (Forbidden, UnverifiedEmail)',\n error404: 'Không tìm thấy tài liệu (NotFound)',\n error500: 'Lỗi máy chủ nội bộ (APIError)',\n\n securityBearer:\n 'Dán `token` được trả về bởi endpoint đăng nhập. Được gửi dưới dạng `Authorization: Bearer <token>`. Payload cũng chấp nhận lược đồ `JWT <token>` và cookie `{{cookiePrefix}}-token`.',\n securityInteractive:\n 'Đăng nhập tương tác: nhập tên người dùng (hoặc email) và mật khẩu; để trống Client ID/Secret.',\n\n tagCollections: 'Collections',\n tagCollectionsDesc: 'Các endpoint của collection tài liệu (CRUD, đếm, nhân bản).',\n tagGlobals: 'Globals',\n tagGlobalsDesc: 'Các endpoint của tài liệu global.',\n tagSystem: 'Hệ thống',\n tagSystemDesc: 'Các endpoint hệ thống của Payload.',\n tagAuth: 'Xác thực',\n tagVersions: 'Phiên bản',\n tagJobs: 'Jobs',\n tagUploads: 'Tải lên',\n tagAccess: 'Truy cập',\n tagReorder: 'Sắp xếp lại',\n tagPlugins: 'Plugin',\n tagPluginsDesc: 'Các endpoint do plugin chính thức của Payload thêm vào.',\n errorPlugin400: 'Yêu cầu không hợp lệ',\n errorPlugin401: 'Chưa xác thực',\n errorPlugin403: 'Bị cấm',\n errorPlugin404: 'Không tìm thấy',\n errorPlugin500: 'Lỗi máy chủ nội bộ',\n ecommerceAddItem: 'Thêm sản phẩm vào giỏ hàng',\n ecommerceRemoveItem: 'Xóa sản phẩm khỏi giỏ hàng',\n ecommerceUpdateItem: 'Đổi số lượng của một sản phẩm trong giỏ',\n ecommerceClearCart: 'Xóa mọi sản phẩm khỏi giỏ hàng',\n ecommerceMergeCart: 'Gộp giỏ hàng khách vào giỏ hàng này',\n ecommerceCartAccess: 'Cho phép chủ giỏ hàng, hoặc giỏ hàng khách có `secret` trong body.',\n ecommerceCartResult: 'Giỏ hàng đã cập nhật',\n errorPluginEcommerce404: 'Không tìm thấy giỏ hàng hoặc không thể truy cập',\n ecommerceQuantity: 'Số lượng mới, hoặc `{ \"$inc\": n }` để thay đổi thêm n.',\n ecommerceInitiatePayment: 'Bắt đầu thanh toán bằng `{{method}}`',\n ecommerceConfirmOrder: 'Xác nhận thanh toán bằng `{{method}}` và tạo đơn hàng',\n ecommercePaymentBody:\n 'Dùng `cartID` (kèm `secret` với giỏ hàng khách) hoặc giỏ hàng của người dùng. Không có người dùng thì bắt buộc `customerEmail`. Adapter thanh toán có thể cần thêm trường.',\n ecommerceInitiateResult: 'Đã bắt đầu thanh toán. Adapter thêm các trường riêng, ví dụ client secret.',\n ecommerceConfirmResult: 'Đơn hàng đã được tạo',\n stripeWebhook: 'Nhận sự kiện webhook từ Stripe',\n stripeWebhookBody:\n 'Sự kiện Stripe thô, được ký trong header `Stripe-Signature`. Do Stripe gọi, không phải client API.',\n stripeWebhookResult: 'Đã nhận sự kiện',\n errorPluginStripeWebhook400: 'Kiểm tra chữ ký thất bại',\n stripeRest: 'Gọi một phương thức Stripe API được phép',\n stripeRestResult: 'Kết quả từ Stripe API',\n errorPluginStripeRest404: 'Stripe API trả về lỗi',\n mcp: 'Gửi một thông điệp MCP JSON-RPC',\n mcpDesc:\n 'Model Context Protocol qua Streamable HTTP, phản hồi bằng JSON. Yêu cầu ẩn danh vẫn hoạt động; các công cụ được liệt kê tùy theo quyền của người dùng. Client dùng phiên bản giao thức năm 2025 phải gửi `Accept: application/json, text/event-stream`.',\n mcpResult: 'Phản hồi JSON-RPC',\n mcpOverrideAccess: 'Bỏ qua kiểm tra quyền truy cập. Chỉ dùng khi phát triển.',\n mcpGet: 'Không hỗ trợ: máy chủ không mở luồng sự kiện',\n errorPluginMcpGet405: 'Phương thức không được phép, hãy dùng POST',\n mcpProtocolVersion: 'Phiên bản giao thức MCP đã thỏa thuận, ví dụ `2025-06-18`.',\n mcpResult202: 'Đã chấp nhận: body chỉ chứa thông báo hoặc phản hồi',\n errorPluginMcp404: 'Phương thức MCP không xác định',\n errorPluginMcp406: 'Header `Accept` thiếu `application/json` hoặc `text/event-stream`',\n errorPluginMcp413: 'Body của yêu cầu quá lớn',\n errorPluginMcp415: '`Content-Type` phải là `application/json`',\n seoTitle: 'Tạo tiêu đề meta',\n seoDescription: 'Tạo mô tả meta',\n seoUrl: 'Tạo URL xem trước',\n seoImage: 'Tạo ảnh meta',\n seoBody:\n 'Tài liệu đang chỉnh sửa: `collectionSlug` hoặc `globalSlug`, `id` của nó và dữ liệu `doc` hiện tại. Được chuyển cho hàm generate của bạn.',\n seoResult: 'Giá trị được tạo. Chuỗi rỗng khi chưa đặt hàm generate.',\n searchReindex: 'Xây dựng lại chỉ mục tìm kiếm cho một số collection',\n searchReindexResult: 'Tóm tắt lập chỉ mục lại',\n tenantOptions: 'Liệt kê các tenant mà người dùng có thể chọn',\n tenantOptionsResult: 'Tùy chọn tenant',\n exportDownload: 'Xuất tài liệu ra tệp',\n exportDownloadResult: 'Tệp xuất',\n exportPreview: 'Xem trước bản xuất',\n importPreview: 'Xem trước tệp nhập',\n previewResult: 'Một trang tài liệu xem trước',\n importFileData: 'Nội dung tệp, mã hóa base64.',\n r2Upload: 'Tải tệp lên R2 theo từng phần',\n r2UploadDesc:\n 'Ba bước trên một route. Bắt đầu: gửi `collection`, `fileName` và `fileType`. Mỗi phần: thêm `multipartId`, `multipartKey`, `multipartNumber` và `signedReceipt`, rồi gửi các byte. Hoàn tất: như trên nhưng không có `multipartNumber`, kèm danh sách JSON các phần.',\n r2UploadResult: 'Đã bắt đầu tải lên, đã tải lên một phần hoặc đã hoàn tất (khóa đối tượng dạng văn bản)',\n errorStorageR2412: 'Đã có tệp tại khóa này',\n\n localizationHeading: 'Đa ngôn ngữ',\n localizationNote:\n 'Các ngôn ngữ khả dụng: {{locales}}. Truyền `?locale=<code>` vào một endpoint đọc để chọn một ngôn ngữ. Truyền `?locale=all` để nhận mọi ngôn ngữ cùng lúc — khi đó mỗi trường đa ngôn ngữ sẽ được trả về dưới dạng một đối tượng có khóa là mã ngôn ngữ (ví dụ `{ \"en\": \"Hello\", \"de\": \"Hallo\" }`) thay vì một giá trị đơn lẻ. Đặt `?flattenLocales=false` cùng với `locale=all` để giữ dạng đối tượng theo từng ngôn ngữ đó. Lược đồ trường hiển thị cấu trúc của một ngôn ngữ đơn lẻ.',\n docLanguagesNote:\n 'Tài liệu này có sẵn bằng các ngôn ngữ: {{languages}}. Thêm `?lang=<code>` vào URL spec này để chuyển đổi.',\n },\n}\n"],"mappings":"AAEA,MAAa,KAAsC,EACjD,kCAAkC;CAChC,YAAY;CACZ,WAAW;CACX,gBAAgB;CAChB,YAAY;CACZ,YAAY;CACZ,eAAe;CACf,wBAAwB;CACxB,0BAA0B;CAC1B,mBAAmB;CACnB,sBAAsB;CACtB,qBACE;CACF,aAAa;CACb,qBAAqB;CACrB,qBACE;CACF,4BACE;CAEF,cAAc;CACd,gBAAgB;CAChB,aAAa;CACb,aACE;CACF,0BAA0B;CAC1B,iBAAiB;CACjB,yBACE;CACF,0BACE;CAEF,gBAAgB;CAChB,eAAe;CACf,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,sBAAsB;CACtB,sBAAsB;CACtB,iBAAiB;CACjB,sBAAsB;CACtB,gBACE;CACF,cACE;CAEF,WAAW;CAEX,WAAW;CACX,YAAY;CACZ,QAAQ;CACR,kBAAkB;CAClB,oBAAoB;CACpB,mBAAmB;CACnB,mBAAmB;CACnB,UAAU;CACV,YAAY;CACZ,WAAW;CACX,eACE;CACF,YAAY;CACZ,YAAY;CACZ,cAAc;CAEd,aAAa;CACb,eAAe;CACf,iBAAiB;CACjB,cAAc;CAEd,gBAAgB;CAChB,sBAAsB;CACtB,eAAe;CACf,qBAAqB;CACrB,kBAAkB;CAClB,WAAW;CACX,uBAAuB;CACvB,YAAY;CACZ,wBAAwB;CACxB,WAAW;CAEX,YAAY;CACZ,YACE;CACF,oBAAoB;CACpB,WAAW;CACX,aAAa;CACb,kBAAkB;CAClB,2BAA2B;CAC3B,0BAA0B;CAC1B,uBAAuB;CACvB,0BAA0B;CAC1B,mBAAmB;CACnB,oBAAoB;CACpB,eAAe;CACf,qBAAqB;CACrB,eAAe;CACf,mBAAmB;CACnB,qBAAqB;CACrB,kBAAkB;CAClB,wBAAwB;CACxB,SAAS;CACT,aACE;CACF,eAAe;CACf,iBAAiB;CAEjB,UAAU;CACV,UAAU;CACV,UAAU;CACV,UAAU;CACV,UAAU;CAEV,gBACE;CACF,qBACE;CAEF,gBAAgB;CAChB,oBAAoB;CACpB,YAAY;CACZ,gBAAgB;CAChB,WAAW;CACX,eAAe;CACf,SAAS;CACT,aAAa;CACb,SAAS;CACT,YAAY;CACZ,WAAW;CACX,YAAY;CACZ,YAAY;CACZ,gBAAgB;CAChB,gBAAgB;CAChB,gBAAgB;CAChB,gBAAgB;CAChB,gBAAgB;CAChB,gBAAgB;CAChB,kBAAkB;CAClB,qBAAqB;CACrB,qBAAqB;CACrB,oBAAoB;CACpB,oBAAoB;CACpB,qBAAqB;CACrB,qBAAqB;CACrB,yBAAyB;CACzB,mBAAmB;CACnB,0BAA0B;CAC1B,uBAAuB;CACvB,sBACE;CACF,yBAAyB;CACzB,wBAAwB;CACxB,eAAe;CACf,mBACE;CACF,qBAAqB;CACrB,6BAA6B;CAC7B,YAAY;CACZ,kBAAkB;CAClB,0BAA0B;CAC1B,KAAK;CACL,SACE;CACF,WAAW;CACX,mBAAmB;CACnB,QAAQ;CACR,sBAAsB;CACtB,oBAAoB;CACpB,cAAc;CACd,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,UAAU;CACV,gBAAgB;CAChB,QAAQ;CACR,UAAU;CACV,SACE;CACF,WAAW;CACX,eAAe;CACf,qBAAqB;CACrB,eAAe;CACf,qBAAqB;CACrB,gBAAgB;CAChB,sBAAsB;CACtB,eAAe;CACf,eAAe;CACf,eAAe;CACf,gBAAgB;CAChB,UAAU;CACV,cACE;CACF,gBAAgB;CAChB,mBAAmB;CAEnB,qBAAqB;CACrB,kBACE;CACF,kBACE;AACJ,EACF"}
|
|
@@ -67,11 +67,24 @@ const zh = { "@seshuk/payload-plugin-openapi": {
|
|
|
67
67
|
uploadPayloadField: "JSON 字符串化的 {{schema}} 字段。示例:`{\"alt\":\"A caption\"}`。",
|
|
68
68
|
fileServe: "文件",
|
|
69
69
|
filePartial: "`Range` 请求返回的部分文件",
|
|
70
|
+
paramFileVersion: "返回以此版本 ID 保存的文件。",
|
|
70
71
|
uploadInstructionsSummary: "在保存文档前获取上传文件的说明",
|
|
71
72
|
uploadInstructionsResult: "文件字节的发送位置,以及在创建或更新请求中发送的 `file` 值",
|
|
72
73
|
uploadStagePutSummary: "为临时上传发送文件字节",
|
|
73
74
|
uploadStageDeleteSummary: "删除临时上传",
|
|
74
75
|
uploadStageResult: "完成,无内容",
|
|
76
|
+
paramPreferenceKey: "偏好设置的键,例如 `nav`。",
|
|
77
|
+
preferenceGet: "获取当前用户的偏好设置",
|
|
78
|
+
preferenceGetResult: "已保存的偏好设置;不存在时为 `value: null`",
|
|
79
|
+
preferenceSet: "保存当前用户的偏好设置",
|
|
80
|
+
preferenceSetBody: "在 `value` 中发送值。不含 `value` 的请求体会整体作为值保存。",
|
|
81
|
+
preferenceSetResult: "已保存的偏好设置",
|
|
82
|
+
preferenceDelete: "删除当前用户的偏好设置",
|
|
83
|
+
preferenceDeleteResult: "已删除的偏好设置",
|
|
84
|
+
reorder: "在可排序列表中移动文档",
|
|
85
|
+
reorderBody: "`newKeyWillBe: \"greater\"` 时将 `docsToMove` 移到 `target` 之后,`\"less\"` 时移到其之前。对于可排序集合,`orderableFieldName` 为 `_order`;对于可排序 join,则为其排序字段。没有 `target.key` 时,Payload 只会为尚无排序键的文档分配排序键。",
|
|
86
|
+
reorderResult: "新的排序键;Payload 首次设置排序键时为 `message: \"initial migration\"`",
|
|
87
|
+
errorReorder400: "请求体无效;原因见 `error`",
|
|
75
88
|
error400: "验证或查询错误(ValidationError、QueryError)",
|
|
76
89
|
error401: "未认证(AuthenticationError)",
|
|
77
90
|
error403: "被访问控制拒绝(Forbidden、UnverifiedEmail)",
|
|
@@ -90,6 +103,67 @@ const zh = { "@seshuk/payload-plugin-openapi": {
|
|
|
90
103
|
tagJobs: "作业",
|
|
91
104
|
tagUploads: "上传",
|
|
92
105
|
tagAccess: "访问",
|
|
106
|
+
tagReorder: "排序",
|
|
107
|
+
tagPlugins: "插件",
|
|
108
|
+
tagPluginsDesc: "Payload 官方插件添加的端点。",
|
|
109
|
+
errorPlugin400: "请求无效",
|
|
110
|
+
errorPlugin401: "未认证",
|
|
111
|
+
errorPlugin403: "禁止访问",
|
|
112
|
+
errorPlugin404: "未找到",
|
|
113
|
+
errorPlugin500: "服务器内部错误",
|
|
114
|
+
ecommerceAddItem: "向购物车添加商品",
|
|
115
|
+
ecommerceRemoveItem: "从购物车移除商品",
|
|
116
|
+
ecommerceUpdateItem: "修改购物车商品数量",
|
|
117
|
+
ecommerceClearCart: "清空购物车中的所有商品",
|
|
118
|
+
ecommerceMergeCart: "将访客购物车合并到此购物车",
|
|
119
|
+
ecommerceCartAccess: "允许购物车所有者访问,或在请求体中带上 `secret` 的访客购物车。",
|
|
120
|
+
ecommerceCartResult: "更新后的购物车",
|
|
121
|
+
errorPluginEcommerce404: "购物车不存在或无权访问",
|
|
122
|
+
ecommerceQuantity: "新数量,或用 `{ \"$inc\": n }` 增减 n。",
|
|
123
|
+
ecommerceInitiatePayment: "使用 `{{method}}` 发起支付",
|
|
124
|
+
ecommerceConfirmOrder: "使用 `{{method}}` 确认支付并创建订单",
|
|
125
|
+
ecommercePaymentBody: "使用 `cartID`(访客购物车需带 `secret`)或用户的购物车。没有用户时 `customerEmail` 必填。支付适配器可能需要更多字段。",
|
|
126
|
+
ecommerceInitiateResult: "支付已发起。适配器会添加自己的字段,例如 client secret。",
|
|
127
|
+
ecommerceConfirmResult: "订单已创建",
|
|
128
|
+
stripeWebhook: "接收 Stripe Webhook 事件",
|
|
129
|
+
stripeWebhookBody: "原始 Stripe 事件,在 `Stripe-Signature` 请求头中签名。由 Stripe 调用,而不是 API 客户端。",
|
|
130
|
+
stripeWebhookResult: "已收到事件",
|
|
131
|
+
errorPluginStripeWebhook400: "签名校验失败",
|
|
132
|
+
stripeRest: "调用允许的 Stripe API 方法",
|
|
133
|
+
stripeRestResult: "Stripe API 的结果",
|
|
134
|
+
errorPluginStripeRest404: "Stripe API 返回了错误",
|
|
135
|
+
mcp: "发送 MCP JSON-RPC 消息",
|
|
136
|
+
mcpDesc: "基于 Streamable HTTP 的 Model Context Protocol,以 JSON 响应。支持匿名请求;列出的工具取决于用户权限。使用 2025 年协议版本的客户端必须发送 `Accept: application/json, text/event-stream`。",
|
|
137
|
+
mcpResult: "JSON-RPC 响应",
|
|
138
|
+
mcpOverrideAccess: "跳过访问检查。仅用于开发。",
|
|
139
|
+
mcpGet: "不支持:服务器不会打开事件流",
|
|
140
|
+
errorPluginMcpGet405: "方法不允许,请使用 POST",
|
|
141
|
+
mcpProtocolVersion: "协商的 MCP 协议版本,例如 `2025-06-18`。",
|
|
142
|
+
mcpResult202: "已接受:请求体只包含通知或响应",
|
|
143
|
+
errorPluginMcp404: "未知的 MCP 方法",
|
|
144
|
+
errorPluginMcp406: "`Accept` 请求头缺少 `application/json` 或 `text/event-stream`",
|
|
145
|
+
errorPluginMcp413: "请求体过大",
|
|
146
|
+
errorPluginMcp415: "`Content-Type` 必须是 `application/json`",
|
|
147
|
+
seoTitle: "生成 meta 标题",
|
|
148
|
+
seoDescription: "生成 meta 描述",
|
|
149
|
+
seoUrl: "生成预览 URL",
|
|
150
|
+
seoImage: "生成 meta 图片",
|
|
151
|
+
seoBody: "正在编辑的文档:`collectionSlug` 或 `globalSlug`、其 `id` 以及当前的 `doc` 数据。会传给你的生成函数。",
|
|
152
|
+
seoResult: "生成的值。未设置生成函数时为空字符串。",
|
|
153
|
+
searchReindex: "为部分集合重建搜索索引",
|
|
154
|
+
searchReindexResult: "重建索引摘要",
|
|
155
|
+
tenantOptions: "列出用户可选择的租户",
|
|
156
|
+
tenantOptionsResult: "租户选项",
|
|
157
|
+
exportDownload: "将文档导出到文件",
|
|
158
|
+
exportDownloadResult: "导出文件",
|
|
159
|
+
exportPreview: "预览导出",
|
|
160
|
+
importPreview: "预览导入文件",
|
|
161
|
+
previewResult: "一页预览文档",
|
|
162
|
+
importFileData: "文件内容,base64 编码。",
|
|
163
|
+
r2Upload: "分片上传文件到 R2",
|
|
164
|
+
r2UploadDesc: "同一路由分三步。开始:发送 `collection`、`fileName` 和 `fileType`。每个分片:加上 `multipartId`、`multipartKey`、`multipartNumber` 和 `signedReceipt`,并发送字节。完成:同样的参数但不含 `multipartNumber`,并附上分片的 JSON 列表。",
|
|
165
|
+
r2UploadResult: "上传已开始、分片已上传或上传已完成(以文本返回对象键)",
|
|
166
|
+
errorStorageR2412: "该键已存在文件",
|
|
93
167
|
localizationHeading: "本地化",
|
|
94
168
|
localizationNote: "可用语言区域:{{locales}}。向读取端点传入 `?locale=<code>` 以选择单个语言区域。传入 `?locale=all` 可一次性接收所有语言区域——此时每个本地化字段都会以按语言区域代码为键的对象形式返回(例如 `{ \"en\": \"Hello\", \"de\": \"Hallo\" }`),而非单个值。在使用 `locale=all` 时设置 `?flattenLocales=false` 可保留这种按语言区域划分的对象形式。字段模式展示的是单一语言区域的结构。",
|
|
95
169
|
docLanguagesNote: "本文档提供以下语言版本:{{languages}}。在此规范 URL 后追加 `?lang=<code>` 即可切换语言。"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zh.js","names":[],"sources":["../../../../src/shared/translations/locales/zh.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject } from '@/shared/translations/types.js'\n\nexport const zh: PluginDefaultTranslationsObject = {\n '@seshuk/payload-plugin-openapi': {\n paramDepth: '关联文档的填充层级数量。',\n paramSort: '用于排序的字段;前缀加 `-` 表示降序,例如 `-createdAt`。',\n paramSortShort: '用于排序的字段;前缀加 `-` 表示降序。',\n paramDraft: '返回草稿版本。',\n paramTrash: '包含已删除的文档。',\n paramAutosave: '作为自动保存保存:更新最新的自动保存版本,而不是新增版本。',\n paramPublishAllLocales: '发布所有语言,而不仅是请求的语言。',\n paramUnpublishAllLocales: '取消发布所有语言,并将文档改回草稿。',\n paramOverrideLock: '忽略其他用户持有的锁。默认 false。',\n paramSelectedLocales: '只将这些语言复制到副本。默认:所有语言。',\n paramFlattenLocales: '在使用 `locale=all` 时,设为 false 可将本地化字段保留为按语言区域划分的对象。默认值为 true。',\n paramLocale: '要返回的语言区域,或使用 `all` 返回所有语言区域。参见 API 说明中的本地化(Localization)部分。',\n paramFallbackLocale: '缺少本地化值时回退到的语言区域,或使用 `none` 禁用回退。',\n paramValidateLocale: '要验证的语言区域,或使用 `all` 验证所有语言区域。多个语言区域请重复该参数。',\n paramComputeHierarchyPaths:\n '设为 true 以计算 `{{slugPath}}` 和 `{{titlePath}}` 路径。选择其中任一字段也会计算它们。',\n\n schemaSelect: '选择要返回的字段,例如 `select[title]=true`。省略则返回所有字段。',\n schemaPopulate: '按集合填充关联文档,例如 `populate[posts][title]=true`。',\n schemaJoins: '逐个连接的控制项(limit/page/sort/where/count),例如 `joins[posts][limit]=10`。',\n schemaWhere:\n 'Payload 的 `where` 过滤器。先嵌套字段,再嵌套运算符:`where[field][equals]=value`。使用 `and` / `or` 数组组合多个条件,例如 `where[or][0][field][equals]=value`。每个字段仅列出对其类型有效的运算符。',\n schemaSupportedTimezones: 'IANA 格式的受支持时区。',\n schemaPerLocale: '按语言区域划分的值,在使用 `locale=all` 时返回。',\n schemaHierarchySlugPath:\n 'slug 路径,例如 `parent/child`。在读取时带上 `computeHierarchyPaths=true` 或选择该字段时计算。不能用于 `where`。',\n schemaHierarchyTitlePath:\n '标题路径,例如 `Parent/Child`。在读取时带上 `computeHierarchyPaths=true` 或选择该字段时计算。不能用于 `where`。',\n\n collectionList: '文档的分页列表',\n collectionDoc: '单个文档',\n collectionCreated: '已创建的文档',\n collectionUpdated: '已更新的文档',\n collectionDeleted: '已删除的文档',\n collectionBulkUpdate: '批量更新结果',\n collectionBulkDelete: '批量删除结果',\n collectionCount: '文档数量',\n collectionDuplicated: '复制出的文档',\n validateResult: '验证结果。不会保存任何内容。无效的字段值会返回带有错误信息的 `valid: false`,而不是错误状态。',\n validateBody:\n '要验证的文档数据。对于已保存的文档或全局文档,数据会合并到最新草稿上;没有草稿时合并到已保存的文档上。',\n\n globalDoc: '该全局文档',\n\n authLogin: '登录结果',\n authLogout: '注销结果',\n authMe: '当前已认证的用户',\n authRefreshToken: '刷新后的令牌',\n authForgotPassword: '密码重置邮件已发送',\n authResetPassword: '密码重置结果',\n authFirstRegister: '第一个用户,已创建并附带认证令牌',\n authInit: '该认证集合中是否已存在任何用户',\n authAccess: '当前用户对所有集合和全局的权限',\n docAccess: '当前用户对此文档的权限',\n docAccessBody: '用于检查访问权限的文档数据。省略时,Payload 使用已保存的文档(如果有)。',\n authUnlock: '解锁结果',\n authVerify: '验证结果',\n apiKeyReveal: '解密后的 API 密钥',\n\n versionList: '版本的分页列表',\n versionSingle: '单个版本',\n versionRestored: '已恢复的文档',\n versionWhere: '对版本字段进行过滤,例如 `where[parent][equals]=<docId>`。',\n\n jobsRunSummary: '运行队列中的作业(并在默认情况下处理调度计划)',\n jobsSchedulesSummary: '将按调度计划到期的作业加入队列',\n jobsRunResult: '运行结果',\n jobsSchedulesResult: '调度结果',\n jobsRunAllQueues: '运行所有队列中的作业。',\n jobsLimit: '要运行的最大作业数。',\n jobsDisableScheduling: '跳过 `run` 默认执行的调度计划处理。',\n jobsSilent: '禁止运行日志输出。',\n jobsSchedulesAllQueues: '处理所有队列的调度计划。',\n jobsQueue: '将操作限制在单个队列。已知队列:{{queues}}。',\n\n uploadFile: '要上传的二进制文件。',\n uploadBody:\n '发送 `multipart/form-data` 以上传文件(一个二进制 `file` 部分,加上一个包含 JSON 字符串化字段的 `_payload` 部分),或在没有文件时仅发送字段并使用 `application/json`。',\n uploadPayloadField: 'JSON 字符串化的 {{schema}} 字段。示例:`{\"alt\":\"A caption\"}`。',\n fileServe: '文件',\n filePartial: '`Range` 请求返回的部分文件',\n uploadInstructionsSummary: '在保存文档前获取上传文件的说明',\n uploadInstructionsResult: '文件字节的发送位置,以及在创建或更新请求中发送的 `file` 值',\n uploadStagePutSummary: '为临时上传发送文件字节',\n uploadStageDeleteSummary: '删除临时上传',\n uploadStageResult: '完成,无内容',\n\n error400: '验证或查询错误(ValidationError、QueryError)',\n error401: '未认证(AuthenticationError)',\n error403: '被访问控制拒绝(Forbidden、UnverifiedEmail)',\n error404: '未找到文档(NotFound)',\n error500: '服务器内部错误(APIError)',\n\n securityBearer:\n '粘贴登录端点返回的 `token`。以 `Authorization: Bearer <token>` 形式发送。Payload 也接受 `JWT <token>` 方案以及 `{{cookiePrefix}}-token` Cookie。',\n securityInteractive: '交互式登录:输入用户名(或邮箱)和密码;Client ID/Secret 留空。',\n\n tagCollections: '集合',\n tagCollectionsDesc: '文档集合端点(CRUD、计数、复制)。',\n tagGlobals: '全局',\n tagGlobalsDesc: '全局文档端点。',\n tagSystem: '系统',\n tagSystemDesc: 'Payload 系统端点。',\n tagAuth: '认证',\n tagVersions: '版本',\n tagJobs: '作业',\n tagUploads: '上传',\n tagAccess: '访问',\n\n localizationHeading: '本地化',\n localizationNote:\n '可用语言区域:{{locales}}。向读取端点传入 `?locale=<code>` 以选择单个语言区域。传入 `?locale=all` 可一次性接收所有语言区域——此时每个本地化字段都会以按语言区域代码为键的对象形式返回(例如 `{ \"en\": \"Hello\", \"de\": \"Hallo\" }`),而非单个值。在使用 `locale=all` 时设置 `?flattenLocales=false` 可保留这种按语言区域划分的对象形式。字段模式展示的是单一语言区域的结构。',\n docLanguagesNote: '本文档提供以下语言版本:{{languages}}。在此规范 URL 后追加 `?lang=<code>` 即可切换语言。',\n },\n}\n"],"mappings":"AAEA,MAAa,KAAsC,EACjD,kCAAkC;CAChC,YAAY;CACZ,WAAW;CACX,gBAAgB;CAChB,YAAY;CACZ,YAAY;CACZ,eAAe;CACf,wBAAwB;CACxB,0BAA0B;CAC1B,mBAAmB;CACnB,sBAAsB;CACtB,qBAAqB;CACrB,aAAa;CACb,qBAAqB;CACrB,qBAAqB;CACrB,4BACE;CAEF,cAAc;CACd,gBAAgB;CAChB,aAAa;CACb,aACE;CACF,0BAA0B;CAC1B,iBAAiB;CACjB,yBACE;CACF,0BACE;CAEF,gBAAgB;CAChB,eAAe;CACf,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,sBAAsB;CACtB,sBAAsB;CACtB,iBAAiB;CACjB,sBAAsB;CACtB,gBAAgB;CAChB,cACE;CAEF,WAAW;CAEX,WAAW;CACX,YAAY;CACZ,QAAQ;CACR,kBAAkB;CAClB,oBAAoB;CACpB,mBAAmB;CACnB,mBAAmB;CACnB,UAAU;CACV,YAAY;CACZ,WAAW;CACX,eAAe;CACf,YAAY;CACZ,YAAY;CACZ,cAAc;CAEd,aAAa;CACb,eAAe;CACf,iBAAiB;CACjB,cAAc;CAEd,gBAAgB;CAChB,sBAAsB;CACtB,eAAe;CACf,qBAAqB;CACrB,kBAAkB;CAClB,WAAW;CACX,uBAAuB;CACvB,YAAY;CACZ,wBAAwB;CACxB,WAAW;CAEX,YAAY;CACZ,YACE;CACF,oBAAoB;CACpB,WAAW;CACX,aAAa;CACb,2BAA2B;CAC3B,0BAA0B;CAC1B,uBAAuB;CACvB,0BAA0B;CAC1B,mBAAmB;CAEnB,UAAU;CACV,UAAU;CACV,UAAU;CACV,UAAU;CACV,UAAU;CAEV,gBACE;CACF,qBAAqB;CAErB,gBAAgB;CAChB,oBAAoB;CACpB,YAAY;CACZ,gBAAgB;CAChB,WAAW;CACX,eAAe;CACf,SAAS;CACT,aAAa;CACb,SAAS;CACT,YAAY;CACZ,WAAW;CAEX,qBAAqB;CACrB,kBACE;CACF,kBAAkB;AACpB,EACF"}
|
|
1
|
+
{"version":3,"file":"zh.js","names":[],"sources":["../../../../src/shared/translations/locales/zh.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject } from '@/shared/translations/types.js'\n\nexport const zh: PluginDefaultTranslationsObject = {\n '@seshuk/payload-plugin-openapi': {\n paramDepth: '关联文档的填充层级数量。',\n paramSort: '用于排序的字段;前缀加 `-` 表示降序,例如 `-createdAt`。',\n paramSortShort: '用于排序的字段;前缀加 `-` 表示降序。',\n paramDraft: '返回草稿版本。',\n paramTrash: '包含已删除的文档。',\n paramAutosave: '作为自动保存保存:更新最新的自动保存版本,而不是新增版本。',\n paramPublishAllLocales: '发布所有语言,而不仅是请求的语言。',\n paramUnpublishAllLocales: '取消发布所有语言,并将文档改回草稿。',\n paramOverrideLock: '忽略其他用户持有的锁。默认 false。',\n paramSelectedLocales: '只将这些语言复制到副本。默认:所有语言。',\n paramFlattenLocales: '在使用 `locale=all` 时,设为 false 可将本地化字段保留为按语言区域划分的对象。默认值为 true。',\n paramLocale: '要返回的语言区域,或使用 `all` 返回所有语言区域。参见 API 说明中的本地化(Localization)部分。',\n paramFallbackLocale: '缺少本地化值时回退到的语言区域,或使用 `none` 禁用回退。',\n paramValidateLocale: '要验证的语言区域,或使用 `all` 验证所有语言区域。多个语言区域请重复该参数。',\n paramComputeHierarchyPaths:\n '设为 true 以计算 `{{slugPath}}` 和 `{{titlePath}}` 路径。选择其中任一字段也会计算它们。',\n\n schemaSelect: '选择要返回的字段,例如 `select[title]=true`。省略则返回所有字段。',\n schemaPopulate: '按集合填充关联文档,例如 `populate[posts][title]=true`。',\n schemaJoins: '逐个连接的控制项(limit/page/sort/where/count),例如 `joins[posts][limit]=10`。',\n schemaWhere:\n 'Payload 的 `where` 过滤器。先嵌套字段,再嵌套运算符:`where[field][equals]=value`。使用 `and` / `or` 数组组合多个条件,例如 `where[or][0][field][equals]=value`。每个字段仅列出对其类型有效的运算符。',\n schemaSupportedTimezones: 'IANA 格式的受支持时区。',\n schemaPerLocale: '按语言区域划分的值,在使用 `locale=all` 时返回。',\n schemaHierarchySlugPath:\n 'slug 路径,例如 `parent/child`。在读取时带上 `computeHierarchyPaths=true` 或选择该字段时计算。不能用于 `where`。',\n schemaHierarchyTitlePath:\n '标题路径,例如 `Parent/Child`。在读取时带上 `computeHierarchyPaths=true` 或选择该字段时计算。不能用于 `where`。',\n\n collectionList: '文档的分页列表',\n collectionDoc: '单个文档',\n collectionCreated: '已创建的文档',\n collectionUpdated: '已更新的文档',\n collectionDeleted: '已删除的文档',\n collectionBulkUpdate: '批量更新结果',\n collectionBulkDelete: '批量删除结果',\n collectionCount: '文档数量',\n collectionDuplicated: '复制出的文档',\n validateResult: '验证结果。不会保存任何内容。无效的字段值会返回带有错误信息的 `valid: false`,而不是错误状态。',\n validateBody:\n '要验证的文档数据。对于已保存的文档或全局文档,数据会合并到最新草稿上;没有草稿时合并到已保存的文档上。',\n\n globalDoc: '该全局文档',\n\n authLogin: '登录结果',\n authLogout: '注销结果',\n authMe: '当前已认证的用户',\n authRefreshToken: '刷新后的令牌',\n authForgotPassword: '密码重置邮件已发送',\n authResetPassword: '密码重置结果',\n authFirstRegister: '第一个用户,已创建并附带认证令牌',\n authInit: '该认证集合中是否已存在任何用户',\n authAccess: '当前用户对所有集合和全局的权限',\n docAccess: '当前用户对此文档的权限',\n docAccessBody: '用于检查访问权限的文档数据。省略时,Payload 使用已保存的文档(如果有)。',\n authUnlock: '解锁结果',\n authVerify: '验证结果',\n apiKeyReveal: '解密后的 API 密钥',\n\n versionList: '版本的分页列表',\n versionSingle: '单个版本',\n versionRestored: '已恢复的文档',\n versionWhere: '对版本字段进行过滤,例如 `where[parent][equals]=<docId>`。',\n\n jobsRunSummary: '运行队列中的作业(并在默认情况下处理调度计划)',\n jobsSchedulesSummary: '将按调度计划到期的作业加入队列',\n jobsRunResult: '运行结果',\n jobsSchedulesResult: '调度结果',\n jobsRunAllQueues: '运行所有队列中的作业。',\n jobsLimit: '要运行的最大作业数。',\n jobsDisableScheduling: '跳过 `run` 默认执行的调度计划处理。',\n jobsSilent: '禁止运行日志输出。',\n jobsSchedulesAllQueues: '处理所有队列的调度计划。',\n jobsQueue: '将操作限制在单个队列。已知队列:{{queues}}。',\n\n uploadFile: '要上传的二进制文件。',\n uploadBody:\n '发送 `multipart/form-data` 以上传文件(一个二进制 `file` 部分,加上一个包含 JSON 字符串化字段的 `_payload` 部分),或在没有文件时仅发送字段并使用 `application/json`。',\n uploadPayloadField: 'JSON 字符串化的 {{schema}} 字段。示例:`{\"alt\":\"A caption\"}`。',\n fileServe: '文件',\n filePartial: '`Range` 请求返回的部分文件',\n paramFileVersion: '返回以此版本 ID 保存的文件。',\n uploadInstructionsSummary: '在保存文档前获取上传文件的说明',\n uploadInstructionsResult: '文件字节的发送位置,以及在创建或更新请求中发送的 `file` 值',\n uploadStagePutSummary: '为临时上传发送文件字节',\n uploadStageDeleteSummary: '删除临时上传',\n uploadStageResult: '完成,无内容',\n paramPreferenceKey: '偏好设置的键,例如 `nav`。',\n preferenceGet: '获取当前用户的偏好设置',\n preferenceGetResult: '已保存的偏好设置;不存在时为 `value: null`',\n preferenceSet: '保存当前用户的偏好设置',\n preferenceSetBody: '在 `value` 中发送值。不含 `value` 的请求体会整体作为值保存。',\n preferenceSetResult: '已保存的偏好设置',\n preferenceDelete: '删除当前用户的偏好设置',\n preferenceDeleteResult: '已删除的偏好设置',\n reorder: '在可排序列表中移动文档',\n reorderBody:\n '`newKeyWillBe: \"greater\"` 时将 `docsToMove` 移到 `target` 之后,`\"less\"` 时移到其之前。对于可排序集合,`orderableFieldName` 为 `_order`;对于可排序 join,则为其排序字段。没有 `target.key` 时,Payload 只会为尚无排序键的文档分配排序键。',\n reorderResult: '新的排序键;Payload 首次设置排序键时为 `message: \"initial migration\"`',\n errorReorder400: '请求体无效;原因见 `error`',\n\n error400: '验证或查询错误(ValidationError、QueryError)',\n error401: '未认证(AuthenticationError)',\n error403: '被访问控制拒绝(Forbidden、UnverifiedEmail)',\n error404: '未找到文档(NotFound)',\n error500: '服务器内部错误(APIError)',\n\n securityBearer:\n '粘贴登录端点返回的 `token`。以 `Authorization: Bearer <token>` 形式发送。Payload 也接受 `JWT <token>` 方案以及 `{{cookiePrefix}}-token` Cookie。',\n securityInteractive: '交互式登录:输入用户名(或邮箱)和密码;Client ID/Secret 留空。',\n\n tagCollections: '集合',\n tagCollectionsDesc: '文档集合端点(CRUD、计数、复制)。',\n tagGlobals: '全局',\n tagGlobalsDesc: '全局文档端点。',\n tagSystem: '系统',\n tagSystemDesc: 'Payload 系统端点。',\n tagAuth: '认证',\n tagVersions: '版本',\n tagJobs: '作业',\n tagUploads: '上传',\n tagAccess: '访问',\n tagReorder: '排序',\n tagPlugins: '插件',\n tagPluginsDesc: 'Payload 官方插件添加的端点。',\n errorPlugin400: '请求无效',\n errorPlugin401: '未认证',\n errorPlugin403: '禁止访问',\n errorPlugin404: '未找到',\n errorPlugin500: '服务器内部错误',\n ecommerceAddItem: '向购物车添加商品',\n ecommerceRemoveItem: '从购物车移除商品',\n ecommerceUpdateItem: '修改购物车商品数量',\n ecommerceClearCart: '清空购物车中的所有商品',\n ecommerceMergeCart: '将访客购物车合并到此购物车',\n ecommerceCartAccess: '允许购物车所有者访问,或在请求体中带上 `secret` 的访客购物车。',\n ecommerceCartResult: '更新后的购物车',\n errorPluginEcommerce404: '购物车不存在或无权访问',\n ecommerceQuantity: '新数量,或用 `{ \"$inc\": n }` 增减 n。',\n ecommerceInitiatePayment: '使用 `{{method}}` 发起支付',\n ecommerceConfirmOrder: '使用 `{{method}}` 确认支付并创建订单',\n ecommercePaymentBody:\n '使用 `cartID`(访客购物车需带 `secret`)或用户的购物车。没有用户时 `customerEmail` 必填。支付适配器可能需要更多字段。',\n ecommerceInitiateResult: '支付已发起。适配器会添加自己的字段,例如 client secret。',\n ecommerceConfirmResult: '订单已创建',\n stripeWebhook: '接收 Stripe Webhook 事件',\n stripeWebhookBody: '原始 Stripe 事件,在 `Stripe-Signature` 请求头中签名。由 Stripe 调用,而不是 API 客户端。',\n stripeWebhookResult: '已收到事件',\n errorPluginStripeWebhook400: '签名校验失败',\n stripeRest: '调用允许的 Stripe API 方法',\n stripeRestResult: 'Stripe API 的结果',\n errorPluginStripeRest404: 'Stripe API 返回了错误',\n mcp: '发送 MCP JSON-RPC 消息',\n mcpDesc:\n '基于 Streamable HTTP 的 Model Context Protocol,以 JSON 响应。支持匿名请求;列出的工具取决于用户权限。使用 2025 年协议版本的客户端必须发送 `Accept: application/json, text/event-stream`。',\n mcpResult: 'JSON-RPC 响应',\n mcpOverrideAccess: '跳过访问检查。仅用于开发。',\n mcpGet: '不支持:服务器不会打开事件流',\n errorPluginMcpGet405: '方法不允许,请使用 POST',\n mcpProtocolVersion: '协商的 MCP 协议版本,例如 `2025-06-18`。',\n mcpResult202: '已接受:请求体只包含通知或响应',\n errorPluginMcp404: '未知的 MCP 方法',\n errorPluginMcp406: '`Accept` 请求头缺少 `application/json` 或 `text/event-stream`',\n errorPluginMcp413: '请求体过大',\n errorPluginMcp415: '`Content-Type` 必须是 `application/json`',\n seoTitle: '生成 meta 标题',\n seoDescription: '生成 meta 描述',\n seoUrl: '生成预览 URL',\n seoImage: '生成 meta 图片',\n seoBody: '正在编辑的文档:`collectionSlug` 或 `globalSlug`、其 `id` 以及当前的 `doc` 数据。会传给你的生成函数。',\n seoResult: '生成的值。未设置生成函数时为空字符串。',\n searchReindex: '为部分集合重建搜索索引',\n searchReindexResult: '重建索引摘要',\n tenantOptions: '列出用户可选择的租户',\n tenantOptionsResult: '租户选项',\n exportDownload: '将文档导出到文件',\n exportDownloadResult: '导出文件',\n exportPreview: '预览导出',\n importPreview: '预览导入文件',\n previewResult: '一页预览文档',\n importFileData: '文件内容,base64 编码。',\n r2Upload: '分片上传文件到 R2',\n r2UploadDesc:\n '同一路由分三步。开始:发送 `collection`、`fileName` 和 `fileType`。每个分片:加上 `multipartId`、`multipartKey`、`multipartNumber` 和 `signedReceipt`,并发送字节。完成:同样的参数但不含 `multipartNumber`,并附上分片的 JSON 列表。',\n r2UploadResult: '上传已开始、分片已上传或上传已完成(以文本返回对象键)',\n errorStorageR2412: '该键已存在文件',\n\n localizationHeading: '本地化',\n localizationNote:\n '可用语言区域:{{locales}}。向读取端点传入 `?locale=<code>` 以选择单个语言区域。传入 `?locale=all` 可一次性接收所有语言区域——此时每个本地化字段都会以按语言区域代码为键的对象形式返回(例如 `{ \"en\": \"Hello\", \"de\": \"Hallo\" }`),而非单个值。在使用 `locale=all` 时设置 `?flattenLocales=false` 可保留这种按语言区域划分的对象形式。字段模式展示的是单一语言区域的结构。',\n docLanguagesNote: '本文档提供以下语言版本:{{languages}}。在此规范 URL 后追加 `?lang=<code>` 即可切换语言。',\n },\n}\n"],"mappings":"AAEA,MAAa,KAAsC,EACjD,kCAAkC;CAChC,YAAY;CACZ,WAAW;CACX,gBAAgB;CAChB,YAAY;CACZ,YAAY;CACZ,eAAe;CACf,wBAAwB;CACxB,0BAA0B;CAC1B,mBAAmB;CACnB,sBAAsB;CACtB,qBAAqB;CACrB,aAAa;CACb,qBAAqB;CACrB,qBAAqB;CACrB,4BACE;CAEF,cAAc;CACd,gBAAgB;CAChB,aAAa;CACb,aACE;CACF,0BAA0B;CAC1B,iBAAiB;CACjB,yBACE;CACF,0BACE;CAEF,gBAAgB;CAChB,eAAe;CACf,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,sBAAsB;CACtB,sBAAsB;CACtB,iBAAiB;CACjB,sBAAsB;CACtB,gBAAgB;CAChB,cACE;CAEF,WAAW;CAEX,WAAW;CACX,YAAY;CACZ,QAAQ;CACR,kBAAkB;CAClB,oBAAoB;CACpB,mBAAmB;CACnB,mBAAmB;CACnB,UAAU;CACV,YAAY;CACZ,WAAW;CACX,eAAe;CACf,YAAY;CACZ,YAAY;CACZ,cAAc;CAEd,aAAa;CACb,eAAe;CACf,iBAAiB;CACjB,cAAc;CAEd,gBAAgB;CAChB,sBAAsB;CACtB,eAAe;CACf,qBAAqB;CACrB,kBAAkB;CAClB,WAAW;CACX,uBAAuB;CACvB,YAAY;CACZ,wBAAwB;CACxB,WAAW;CAEX,YAAY;CACZ,YACE;CACF,oBAAoB;CACpB,WAAW;CACX,aAAa;CACb,kBAAkB;CAClB,2BAA2B;CAC3B,0BAA0B;CAC1B,uBAAuB;CACvB,0BAA0B;CAC1B,mBAAmB;CACnB,oBAAoB;CACpB,eAAe;CACf,qBAAqB;CACrB,eAAe;CACf,mBAAmB;CACnB,qBAAqB;CACrB,kBAAkB;CAClB,wBAAwB;CACxB,SAAS;CACT,aACE;CACF,eAAe;CACf,iBAAiB;CAEjB,UAAU;CACV,UAAU;CACV,UAAU;CACV,UAAU;CACV,UAAU;CAEV,gBACE;CACF,qBAAqB;CAErB,gBAAgB;CAChB,oBAAoB;CACpB,YAAY;CACZ,gBAAgB;CAChB,WAAW;CACX,eAAe;CACf,SAAS;CACT,aAAa;CACb,SAAS;CACT,YAAY;CACZ,WAAW;CACX,YAAY;CACZ,YAAY;CACZ,gBAAgB;CAChB,gBAAgB;CAChB,gBAAgB;CAChB,gBAAgB;CAChB,gBAAgB;CAChB,gBAAgB;CAChB,kBAAkB;CAClB,qBAAqB;CACrB,qBAAqB;CACrB,oBAAoB;CACpB,oBAAoB;CACpB,qBAAqB;CACrB,qBAAqB;CACrB,yBAAyB;CACzB,mBAAmB;CACnB,0BAA0B;CAC1B,uBAAuB;CACvB,sBACE;CACF,yBAAyB;CACzB,wBAAwB;CACxB,eAAe;CACf,mBAAmB;CACnB,qBAAqB;CACrB,6BAA6B;CAC7B,YAAY;CACZ,kBAAkB;CAClB,0BAA0B;CAC1B,KAAK;CACL,SACE;CACF,WAAW;CACX,mBAAmB;CACnB,QAAQ;CACR,sBAAsB;CACtB,oBAAoB;CACpB,cAAc;CACd,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,UAAU;CACV,gBAAgB;CAChB,QAAQ;CACR,UAAU;CACV,SAAS;CACT,WAAW;CACX,eAAe;CACf,qBAAqB;CACrB,eAAe;CACf,qBAAqB;CACrB,gBAAgB;CAChB,sBAAsB;CACtB,eAAe;CACf,eAAe;CACf,eAAe;CACf,gBAAgB;CAChB,UAAU;CACV,cACE;CACF,gBAAgB;CAChB,mBAAmB;CAEnB,qBAAqB;CACrB,kBACE;CACF,kBAAkB;AACpB,EACF"}
|
|
@@ -67,11 +67,24 @@ const zhTw = { "@seshuk/payload-plugin-openapi": {
|
|
|
67
67
|
uploadPayloadField: "JSON 字串化的 {{schema}} 欄位。範例:`{\"alt\":\"A caption\"}`。",
|
|
68
68
|
fileServe: "檔案",
|
|
69
69
|
filePartial: "`Range` 請求傳回的部分檔案",
|
|
70
|
+
paramFileVersion: "傳回以此版本 ID 儲存的檔案。",
|
|
70
71
|
uploadInstructionsSummary: "在儲存文件前取得上傳檔案的說明",
|
|
71
72
|
uploadInstructionsResult: "檔案位元組的傳送位置,以及在建立或更新請求中傳送的 `file` 值",
|
|
72
73
|
uploadStagePutSummary: "為暫存上傳傳送檔案位元組",
|
|
73
74
|
uploadStageDeleteSummary: "刪除暫存上傳",
|
|
74
75
|
uploadStageResult: "完成,無內容",
|
|
76
|
+
paramPreferenceKey: "偏好設定的鍵,例如 `nav`。",
|
|
77
|
+
preferenceGet: "取得目前使用者的偏好設定",
|
|
78
|
+
preferenceGetResult: "已儲存的偏好設定;不存在時為 `value: null`",
|
|
79
|
+
preferenceSet: "儲存目前使用者的偏好設定",
|
|
80
|
+
preferenceSetBody: "在 `value` 中傳送值。不含 `value` 的請求內容會整體作為值儲存。",
|
|
81
|
+
preferenceSetResult: "已儲存的偏好設定",
|
|
82
|
+
preferenceDelete: "刪除目前使用者的偏好設定",
|
|
83
|
+
preferenceDeleteResult: "已刪除的偏好設定",
|
|
84
|
+
reorder: "在可排序清單中移動文件",
|
|
85
|
+
reorderBody: "`newKeyWillBe: \"greater\"` 時將 `docsToMove` 移到 `target` 之後,`\"less\"` 時移到其之前。對於可排序集合,`orderableFieldName` 為 `_order`;對於可排序 join,則為其排序欄位。沒有 `target.key` 時,Payload 只會為尚無排序鍵的文件指派排序鍵。",
|
|
86
|
+
reorderResult: "新的排序鍵;Payload 首次設定排序鍵時為 `message: \"initial migration\"`",
|
|
87
|
+
errorReorder400: "請求內容無效;原因見 `error`",
|
|
75
88
|
error400: "驗證或查詢錯誤 (ValidationError, QueryError)",
|
|
76
89
|
error401: "未驗證 (AuthenticationError)",
|
|
77
90
|
error403: "遭存取控制拒絕 (Forbidden, UnverifiedEmail)",
|
|
@@ -90,6 +103,67 @@ const zhTw = { "@seshuk/payload-plugin-openapi": {
|
|
|
90
103
|
tagJobs: "工作",
|
|
91
104
|
tagUploads: "上傳",
|
|
92
105
|
tagAccess: "存取",
|
|
106
|
+
tagReorder: "排序",
|
|
107
|
+
tagPlugins: "外掛程式",
|
|
108
|
+
tagPluginsDesc: "Payload 官方外掛程式新增的端點。",
|
|
109
|
+
errorPlugin400: "請求無效",
|
|
110
|
+
errorPlugin401: "未驗證",
|
|
111
|
+
errorPlugin403: "禁止存取",
|
|
112
|
+
errorPlugin404: "找不到",
|
|
113
|
+
errorPlugin500: "伺服器內部錯誤",
|
|
114
|
+
ecommerceAddItem: "將商品加入購物車",
|
|
115
|
+
ecommerceRemoveItem: "從購物車移除商品",
|
|
116
|
+
ecommerceUpdateItem: "變更購物車商品數量",
|
|
117
|
+
ecommerceClearCart: "移除購物車中的所有商品",
|
|
118
|
+
ecommerceMergeCart: "將訪客購物車合併到此購物車",
|
|
119
|
+
ecommerceCartAccess: "允許購物車擁有者存取,或在請求內容中帶有 `secret` 的訪客購物車。",
|
|
120
|
+
ecommerceCartResult: "更新後的購物車",
|
|
121
|
+
errorPluginEcommerce404: "找不到購物車或無法存取",
|
|
122
|
+
ecommerceQuantity: "新數量,或用 `{ \"$inc\": n }` 增減 n。",
|
|
123
|
+
ecommerceInitiatePayment: "使用 `{{method}}` 開始付款",
|
|
124
|
+
ecommerceConfirmOrder: "使用 `{{method}}` 確認付款並建立訂單",
|
|
125
|
+
ecommercePaymentBody: "使用 `cartID`(訪客購物車需帶 `secret`)或使用者的購物車。沒有使用者時 `customerEmail` 為必填。付款轉接器可能需要更多欄位。",
|
|
126
|
+
ecommerceInitiateResult: "付款已開始。轉接器會加入自己的欄位,例如 client secret。",
|
|
127
|
+
ecommerceConfirmResult: "訂單已建立",
|
|
128
|
+
stripeWebhook: "接收 Stripe Webhook 事件",
|
|
129
|
+
stripeWebhookBody: "原始 Stripe 事件,在 `Stripe-Signature` 標頭中簽署。由 Stripe 呼叫,而非 API 用戶端。",
|
|
130
|
+
stripeWebhookResult: "已收到事件",
|
|
131
|
+
errorPluginStripeWebhook400: "簽章驗證失敗",
|
|
132
|
+
stripeRest: "呼叫允許的 Stripe API 方法",
|
|
133
|
+
stripeRestResult: "Stripe API 的結果",
|
|
134
|
+
errorPluginStripeRest404: "Stripe API 回傳錯誤",
|
|
135
|
+
mcp: "傳送 MCP JSON-RPC 訊息",
|
|
136
|
+
mcpDesc: "透過 Streamable HTTP 的 Model Context Protocol,以 JSON 回應。支援匿名請求;列出的工具取決於使用者權限。使用 2025 年協定版本的用戶端必須傳送 `Accept: application/json, text/event-stream`。",
|
|
137
|
+
mcpResult: "JSON-RPC 回應",
|
|
138
|
+
mcpOverrideAccess: "略過存取檢查。僅供開發使用。",
|
|
139
|
+
mcpGet: "不支援:伺服器不會開啟事件串流",
|
|
140
|
+
errorPluginMcpGet405: "不允許此方法,請使用 POST",
|
|
141
|
+
mcpProtocolVersion: "協商的 MCP 協定版本,例如 `2025-06-18`。",
|
|
142
|
+
mcpResult202: "已接受:請求內容只包含通知或回應",
|
|
143
|
+
errorPluginMcp404: "未知的 MCP 方法",
|
|
144
|
+
errorPluginMcp406: "`Accept` 標頭缺少 `application/json` 或 `text/event-stream`",
|
|
145
|
+
errorPluginMcp413: "請求內容過大",
|
|
146
|
+
errorPluginMcp415: "`Content-Type` 必須是 `application/json`",
|
|
147
|
+
seoTitle: "產生 meta 標題",
|
|
148
|
+
seoDescription: "產生 meta 描述",
|
|
149
|
+
seoUrl: "產生預覽 URL",
|
|
150
|
+
seoImage: "產生 meta 圖片",
|
|
151
|
+
seoBody: "正在編輯的文件:`collectionSlug` 或 `globalSlug`、其 `id` 以及目前的 `doc` 資料。會傳給你的產生函式。",
|
|
152
|
+
seoResult: "產生的值。未設定產生函式時為空字串。",
|
|
153
|
+
searchReindex: "為部分集合重建搜尋索引",
|
|
154
|
+
searchReindexResult: "重建索引摘要",
|
|
155
|
+
tenantOptions: "列出使用者可選擇的租戶",
|
|
156
|
+
tenantOptionsResult: "租戶選項",
|
|
157
|
+
exportDownload: "將文件匯出成檔案",
|
|
158
|
+
exportDownloadResult: "匯出檔案",
|
|
159
|
+
exportPreview: "預覽匯出",
|
|
160
|
+
importPreview: "預覽匯入檔案",
|
|
161
|
+
previewResult: "一頁預覽文件",
|
|
162
|
+
importFileData: "檔案內容,base64 編碼。",
|
|
163
|
+
r2Upload: "分段上傳檔案到 R2",
|
|
164
|
+
r2UploadDesc: "同一路由分三步。開始:傳送 `collection`、`fileName` 和 `fileType`。每個分段:加上 `multipartId`、`multipartKey`、`multipartNumber` 和 `signedReceipt`,並傳送位元組。完成:相同參數但不含 `multipartNumber`,並附上分段的 JSON 清單。",
|
|
165
|
+
r2UploadResult: "上傳已開始、分段已上傳或上傳已完成(以文字回傳物件鍵)",
|
|
166
|
+
errorStorageR2412: "此鍵已存在檔案",
|
|
93
167
|
localizationHeading: "本地化",
|
|
94
168
|
localizationNote: "可用的語系:{{locales}}。對讀取端點傳入 `?locale=<code>` 以選取單一語系。傳入 `?locale=all` 可一次接收所有語系——此時每個本地化欄位會以語系代碼作為鍵的物件回傳(例如 `{ \"en\": \"Hello\", \"de\": \"Hallo\" }`),而非單一值。搭配 `locale=all` 設定 `?flattenLocales=false` 可保留該各語系物件形式。欄位結構描述顯示的是單一語系的形態。",
|
|
95
169
|
docLanguagesNote: "本文件提供以下語言版本:{{languages}}。在此規格 URL 後附加 `?lang=<code>` 即可切換語言。"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zhTw.js","names":[],"sources":["../../../../src/shared/translations/locales/zhTw.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject } from '@/shared/translations/types.js'\n\nexport const zhTw: PluginDefaultTranslationsObject = {\n '@seshuk/payload-plugin-openapi': {\n paramDepth: '要填充的關聯文件層級數。',\n paramSort: '用於排序的欄位;加上 `-` 前綴表示降序,例如 `-createdAt`。',\n paramSortShort: '用於排序的欄位;加上 `-` 前綴表示降序。',\n paramDraft: '回傳草稿版本。',\n paramTrash: '包含已刪除(垃圾桶)的文件。',\n paramAutosave: '以自動儲存方式儲存:更新最新的自動儲存版本,而不是新增版本。',\n paramPublishAllLocales: '發布所有語言,而不只是請求的語言。',\n paramUnpublishAllLocales: '取消發布所有語言,並將文件改回草稿。',\n paramOverrideLock: '忽略其他使用者持有的鎖定。預設 false。',\n paramSelectedLocales: '只將這些語言複製到副本。預設:所有語言。',\n paramFlattenLocales: '搭配 `locale=all` 使用時,設為 false 可將本地化欄位保留為各語系物件。預設為 true。',\n paramLocale: '要回傳的語系,或使用 `all` 取得所有語系。請參閱 API 說明中的「本地化」一節。',\n paramFallbackLocale: '當本地化值缺失時用以回退的語系,或使用 `none` 停用。',\n paramValidateLocale: '要驗證的語系,或使用 `all` 驗證所有語系。多個語系請重複該參數。',\n paramComputeHierarchyPaths:\n '設為 true 以計算 `{{slugPath}}` 與 `{{titlePath}}` 路徑。選擇其中任一欄位也會計算它們。',\n\n schemaSelect: '選擇要回傳的欄位,例如 `select[title]=true`。省略則回傳全部。',\n schemaPopulate: '依集合填充關聯文件,例如 `populate[posts][title]=true`。',\n schemaJoins: '各 join 的控制項(limit/page/sort/where/count),例如 `joins[posts][limit]=10`。',\n schemaWhere:\n 'Payload 的 `where` 篩選器。先巢狀欄位再接運算子:`where[field][equals]=value`。使用 `and` / `or` 陣列組合子句,例如 `where[or][0][field][equals]=value`。每個欄位僅列出其型別適用的運算子。',\n schemaSupportedTimezones: '採用 IANA 格式的支援時區。',\n schemaPerLocale: '各語系的值,於 `locale=all` 時回傳。',\n schemaHierarchySlugPath:\n 'slug 路徑,例如 `parent/child`。在讀取時帶上 `computeHierarchyPaths=true` 或選擇該欄位時計算。不能用於 `where`。',\n schemaHierarchyTitlePath:\n '標題路徑,例如 `Parent/Child`。在讀取時帶上 `computeHierarchyPaths=true` 或選擇該欄位時計算。不能用於 `where`。',\n\n collectionList: '分頁的文件清單',\n collectionDoc: '單一文件',\n collectionCreated: '已建立的文件',\n collectionUpdated: '已更新的文件',\n collectionDeleted: '已刪除的文件',\n collectionBulkUpdate: '批次更新結果',\n collectionBulkDelete: '批次刪除結果',\n collectionCount: '文件數量',\n collectionDuplicated: '已複製的文件',\n validateResult: '驗證結果。不會儲存任何內容。無效的欄位值會回傳含錯誤資訊的 `valid: false`,而不是錯誤狀態。',\n validateBody:\n '要驗證的文件資料。對於已儲存的文件或全域文件,資料會合併到最新草稿上;沒有草稿時合併到已儲存的文件上。',\n\n globalDoc: '全域文件',\n\n authLogin: '登入結果',\n authLogout: '登出結果',\n authMe: '目前已驗證的使用者',\n authRefreshToken: '已重新整理的權杖',\n authForgotPassword: '已寄出密碼重設郵件',\n authResetPassword: '密碼重設結果',\n authFirstRegister: '第一位使用者,建立時附帶驗證權杖',\n authInit: '此驗證集合是否已有任何使用者',\n authAccess: '目前使用者對所有集合與全域的權限',\n docAccess: '目前使用者對此文件的權限',\n docAccessBody: '用於檢查存取權限的文件資料。省略時,Payload 會使用已儲存的文件(如果有)。',\n authUnlock: '解鎖結果',\n authVerify: '驗證結果',\n apiKeyReveal: '解密後的 API 金鑰',\n\n versionList: '分頁的版本清單',\n versionSingle: '單一版本',\n versionRestored: '已還原的文件',\n versionWhere: '針對版本欄位進行篩選,例如 `where[parent][equals]=<docId>`。',\n\n jobsRunSummary: '執行排入佇列的工作(並依預設處理排程)',\n jobsSchedulesSummary: '將依排程到期的工作排入佇列',\n jobsRunResult: '執行結果',\n jobsSchedulesResult: '排程結果',\n jobsRunAllQueues: '執行所有佇列的工作。',\n jobsLimit: '可執行的工作數上限。',\n jobsDisableScheduling: '略過 `run` 預設執行的排程處理。',\n jobsSilent: '抑制執行記錄。',\n jobsSchedulesAllQueues: '處理所有佇列的排程。',\n jobsQueue: '將操作限制於單一佇列。已知佇列:{{queues}}。',\n\n uploadFile: '要上傳的二進位檔案。',\n uploadBody:\n '傳送 `multipart/form-data` 以上傳檔案(一個二進位的 `file` 部分,加上一個含 JSON 字串化欄位的 `_payload` 部分),或在沒有檔案時僅以 `application/json` 傳送欄位。',\n uploadPayloadField: 'JSON 字串化的 {{schema}} 欄位。範例:`{\"alt\":\"A caption\"}`。',\n fileServe: '檔案',\n filePartial: '`Range` 請求傳回的部分檔案',\n uploadInstructionsSummary: '在儲存文件前取得上傳檔案的說明',\n uploadInstructionsResult: '檔案位元組的傳送位置,以及在建立或更新請求中傳送的 `file` 值',\n uploadStagePutSummary: '為暫存上傳傳送檔案位元組',\n uploadStageDeleteSummary: '刪除暫存上傳',\n uploadStageResult: '完成,無內容',\n\n error400: '驗證或查詢錯誤 (ValidationError, QueryError)',\n error401: '未驗證 (AuthenticationError)',\n error403: '遭存取控制拒絕 (Forbidden, UnverifiedEmail)',\n error404: '找不到文件 (NotFound)',\n error500: '伺服器內部錯誤 (APIError)',\n\n securityBearer:\n '貼上登入端點回傳的 `token`。以 `Authorization: Bearer <token>` 傳送。Payload 也接受 `JWT <token>` 方案及 `{{cookiePrefix}}-token` cookie。',\n securityInteractive: '互動式登入:輸入使用者名稱(或電子郵件)與密碼;Client ID/Secret 留空。',\n\n tagCollections: '集合',\n tagCollectionsDesc: '文件集合端點(CRUD、count、duplicate)。',\n tagGlobals: '全域',\n tagGlobalsDesc: '全域文件端點。',\n tagSystem: '系統',\n tagSystemDesc: 'Payload 系統端點。',\n tagAuth: '驗證',\n tagVersions: '版本',\n tagJobs: '工作',\n tagUploads: '上傳',\n tagAccess: '存取',\n\n localizationHeading: '本地化',\n localizationNote:\n '可用的語系:{{locales}}。對讀取端點傳入 `?locale=<code>` 以選取單一語系。傳入 `?locale=all` 可一次接收所有語系——此時每個本地化欄位會以語系代碼作為鍵的物件回傳(例如 `{ \"en\": \"Hello\", \"de\": \"Hallo\" }`),而非單一值。搭配 `locale=all` 設定 `?flattenLocales=false` 可保留該各語系物件形式。欄位結構描述顯示的是單一語系的形態。',\n docLanguagesNote: '本文件提供以下語言版本:{{languages}}。在此規格 URL 後附加 `?lang=<code>` 即可切換語言。',\n },\n}\n"],"mappings":"AAEA,MAAa,OAAwC,EACnD,kCAAkC;CAChC,YAAY;CACZ,WAAW;CACX,gBAAgB;CAChB,YAAY;CACZ,YAAY;CACZ,eAAe;CACf,wBAAwB;CACxB,0BAA0B;CAC1B,mBAAmB;CACnB,sBAAsB;CACtB,qBAAqB;CACrB,aAAa;CACb,qBAAqB;CACrB,qBAAqB;CACrB,4BACE;CAEF,cAAc;CACd,gBAAgB;CAChB,aAAa;CACb,aACE;CACF,0BAA0B;CAC1B,iBAAiB;CACjB,yBACE;CACF,0BACE;CAEF,gBAAgB;CAChB,eAAe;CACf,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,sBAAsB;CACtB,sBAAsB;CACtB,iBAAiB;CACjB,sBAAsB;CACtB,gBAAgB;CAChB,cACE;CAEF,WAAW;CAEX,WAAW;CACX,YAAY;CACZ,QAAQ;CACR,kBAAkB;CAClB,oBAAoB;CACpB,mBAAmB;CACnB,mBAAmB;CACnB,UAAU;CACV,YAAY;CACZ,WAAW;CACX,eAAe;CACf,YAAY;CACZ,YAAY;CACZ,cAAc;CAEd,aAAa;CACb,eAAe;CACf,iBAAiB;CACjB,cAAc;CAEd,gBAAgB;CAChB,sBAAsB;CACtB,eAAe;CACf,qBAAqB;CACrB,kBAAkB;CAClB,WAAW;CACX,uBAAuB;CACvB,YAAY;CACZ,wBAAwB;CACxB,WAAW;CAEX,YAAY;CACZ,YACE;CACF,oBAAoB;CACpB,WAAW;CACX,aAAa;CACb,2BAA2B;CAC3B,0BAA0B;CAC1B,uBAAuB;CACvB,0BAA0B;CAC1B,mBAAmB;CAEnB,UAAU;CACV,UAAU;CACV,UAAU;CACV,UAAU;CACV,UAAU;CAEV,gBACE;CACF,qBAAqB;CAErB,gBAAgB;CAChB,oBAAoB;CACpB,YAAY;CACZ,gBAAgB;CAChB,WAAW;CACX,eAAe;CACf,SAAS;CACT,aAAa;CACb,SAAS;CACT,YAAY;CACZ,WAAW;CAEX,qBAAqB;CACrB,kBACE;CACF,kBAAkB;AACpB,EACF"}
|
|
1
|
+
{"version":3,"file":"zhTw.js","names":[],"sources":["../../../../src/shared/translations/locales/zhTw.ts"],"sourcesContent":["import type { PluginDefaultTranslationsObject } from '@/shared/translations/types.js'\n\nexport const zhTw: PluginDefaultTranslationsObject = {\n '@seshuk/payload-plugin-openapi': {\n paramDepth: '要填充的關聯文件層級數。',\n paramSort: '用於排序的欄位;加上 `-` 前綴表示降序,例如 `-createdAt`。',\n paramSortShort: '用於排序的欄位;加上 `-` 前綴表示降序。',\n paramDraft: '回傳草稿版本。',\n paramTrash: '包含已刪除(垃圾桶)的文件。',\n paramAutosave: '以自動儲存方式儲存:更新最新的自動儲存版本,而不是新增版本。',\n paramPublishAllLocales: '發布所有語言,而不只是請求的語言。',\n paramUnpublishAllLocales: '取消發布所有語言,並將文件改回草稿。',\n paramOverrideLock: '忽略其他使用者持有的鎖定。預設 false。',\n paramSelectedLocales: '只將這些語言複製到副本。預設:所有語言。',\n paramFlattenLocales: '搭配 `locale=all` 使用時,設為 false 可將本地化欄位保留為各語系物件。預設為 true。',\n paramLocale: '要回傳的語系,或使用 `all` 取得所有語系。請參閱 API 說明中的「本地化」一節。',\n paramFallbackLocale: '當本地化值缺失時用以回退的語系,或使用 `none` 停用。',\n paramValidateLocale: '要驗證的語系,或使用 `all` 驗證所有語系。多個語系請重複該參數。',\n paramComputeHierarchyPaths:\n '設為 true 以計算 `{{slugPath}}` 與 `{{titlePath}}` 路徑。選擇其中任一欄位也會計算它們。',\n\n schemaSelect: '選擇要回傳的欄位,例如 `select[title]=true`。省略則回傳全部。',\n schemaPopulate: '依集合填充關聯文件,例如 `populate[posts][title]=true`。',\n schemaJoins: '各 join 的控制項(limit/page/sort/where/count),例如 `joins[posts][limit]=10`。',\n schemaWhere:\n 'Payload 的 `where` 篩選器。先巢狀欄位再接運算子:`where[field][equals]=value`。使用 `and` / `or` 陣列組合子句,例如 `where[or][0][field][equals]=value`。每個欄位僅列出其型別適用的運算子。',\n schemaSupportedTimezones: '採用 IANA 格式的支援時區。',\n schemaPerLocale: '各語系的值,於 `locale=all` 時回傳。',\n schemaHierarchySlugPath:\n 'slug 路徑,例如 `parent/child`。在讀取時帶上 `computeHierarchyPaths=true` 或選擇該欄位時計算。不能用於 `where`。',\n schemaHierarchyTitlePath:\n '標題路徑,例如 `Parent/Child`。在讀取時帶上 `computeHierarchyPaths=true` 或選擇該欄位時計算。不能用於 `where`。',\n\n collectionList: '分頁的文件清單',\n collectionDoc: '單一文件',\n collectionCreated: '已建立的文件',\n collectionUpdated: '已更新的文件',\n collectionDeleted: '已刪除的文件',\n collectionBulkUpdate: '批次更新結果',\n collectionBulkDelete: '批次刪除結果',\n collectionCount: '文件數量',\n collectionDuplicated: '已複製的文件',\n validateResult: '驗證結果。不會儲存任何內容。無效的欄位值會回傳含錯誤資訊的 `valid: false`,而不是錯誤狀態。',\n validateBody:\n '要驗證的文件資料。對於已儲存的文件或全域文件,資料會合併到最新草稿上;沒有草稿時合併到已儲存的文件上。',\n\n globalDoc: '全域文件',\n\n authLogin: '登入結果',\n authLogout: '登出結果',\n authMe: '目前已驗證的使用者',\n authRefreshToken: '已重新整理的權杖',\n authForgotPassword: '已寄出密碼重設郵件',\n authResetPassword: '密碼重設結果',\n authFirstRegister: '第一位使用者,建立時附帶驗證權杖',\n authInit: '此驗證集合是否已有任何使用者',\n authAccess: '目前使用者對所有集合與全域的權限',\n docAccess: '目前使用者對此文件的權限',\n docAccessBody: '用於檢查存取權限的文件資料。省略時,Payload 會使用已儲存的文件(如果有)。',\n authUnlock: '解鎖結果',\n authVerify: '驗證結果',\n apiKeyReveal: '解密後的 API 金鑰',\n\n versionList: '分頁的版本清單',\n versionSingle: '單一版本',\n versionRestored: '已還原的文件',\n versionWhere: '針對版本欄位進行篩選,例如 `where[parent][equals]=<docId>`。',\n\n jobsRunSummary: '執行排入佇列的工作(並依預設處理排程)',\n jobsSchedulesSummary: '將依排程到期的工作排入佇列',\n jobsRunResult: '執行結果',\n jobsSchedulesResult: '排程結果',\n jobsRunAllQueues: '執行所有佇列的工作。',\n jobsLimit: '可執行的工作數上限。',\n jobsDisableScheduling: '略過 `run` 預設執行的排程處理。',\n jobsSilent: '抑制執行記錄。',\n jobsSchedulesAllQueues: '處理所有佇列的排程。',\n jobsQueue: '將操作限制於單一佇列。已知佇列:{{queues}}。',\n\n uploadFile: '要上傳的二進位檔案。',\n uploadBody:\n '傳送 `multipart/form-data` 以上傳檔案(一個二進位的 `file` 部分,加上一個含 JSON 字串化欄位的 `_payload` 部分),或在沒有檔案時僅以 `application/json` 傳送欄位。',\n uploadPayloadField: 'JSON 字串化的 {{schema}} 欄位。範例:`{\"alt\":\"A caption\"}`。',\n fileServe: '檔案',\n filePartial: '`Range` 請求傳回的部分檔案',\n paramFileVersion: '傳回以此版本 ID 儲存的檔案。',\n uploadInstructionsSummary: '在儲存文件前取得上傳檔案的說明',\n uploadInstructionsResult: '檔案位元組的傳送位置,以及在建立或更新請求中傳送的 `file` 值',\n uploadStagePutSummary: '為暫存上傳傳送檔案位元組',\n uploadStageDeleteSummary: '刪除暫存上傳',\n uploadStageResult: '完成,無內容',\n paramPreferenceKey: '偏好設定的鍵,例如 `nav`。',\n preferenceGet: '取得目前使用者的偏好設定',\n preferenceGetResult: '已儲存的偏好設定;不存在時為 `value: null`',\n preferenceSet: '儲存目前使用者的偏好設定',\n preferenceSetBody: '在 `value` 中傳送值。不含 `value` 的請求內容會整體作為值儲存。',\n preferenceSetResult: '已儲存的偏好設定',\n preferenceDelete: '刪除目前使用者的偏好設定',\n preferenceDeleteResult: '已刪除的偏好設定',\n reorder: '在可排序清單中移動文件',\n reorderBody:\n '`newKeyWillBe: \"greater\"` 時將 `docsToMove` 移到 `target` 之後,`\"less\"` 時移到其之前。對於可排序集合,`orderableFieldName` 為 `_order`;對於可排序 join,則為其排序欄位。沒有 `target.key` 時,Payload 只會為尚無排序鍵的文件指派排序鍵。',\n reorderResult: '新的排序鍵;Payload 首次設定排序鍵時為 `message: \"initial migration\"`',\n errorReorder400: '請求內容無效;原因見 `error`',\n\n error400: '驗證或查詢錯誤 (ValidationError, QueryError)',\n error401: '未驗證 (AuthenticationError)',\n error403: '遭存取控制拒絕 (Forbidden, UnverifiedEmail)',\n error404: '找不到文件 (NotFound)',\n error500: '伺服器內部錯誤 (APIError)',\n\n securityBearer:\n '貼上登入端點回傳的 `token`。以 `Authorization: Bearer <token>` 傳送。Payload 也接受 `JWT <token>` 方案及 `{{cookiePrefix}}-token` cookie。',\n securityInteractive: '互動式登入:輸入使用者名稱(或電子郵件)與密碼;Client ID/Secret 留空。',\n\n tagCollections: '集合',\n tagCollectionsDesc: '文件集合端點(CRUD、count、duplicate)。',\n tagGlobals: '全域',\n tagGlobalsDesc: '全域文件端點。',\n tagSystem: '系統',\n tagSystemDesc: 'Payload 系統端點。',\n tagAuth: '驗證',\n tagVersions: '版本',\n tagJobs: '工作',\n tagUploads: '上傳',\n tagAccess: '存取',\n tagReorder: '排序',\n tagPlugins: '外掛程式',\n tagPluginsDesc: 'Payload 官方外掛程式新增的端點。',\n errorPlugin400: '請求無效',\n errorPlugin401: '未驗證',\n errorPlugin403: '禁止存取',\n errorPlugin404: '找不到',\n errorPlugin500: '伺服器內部錯誤',\n ecommerceAddItem: '將商品加入購物車',\n ecommerceRemoveItem: '從購物車移除商品',\n ecommerceUpdateItem: '變更購物車商品數量',\n ecommerceClearCart: '移除購物車中的所有商品',\n ecommerceMergeCart: '將訪客購物車合併到此購物車',\n ecommerceCartAccess: '允許購物車擁有者存取,或在請求內容中帶有 `secret` 的訪客購物車。',\n ecommerceCartResult: '更新後的購物車',\n errorPluginEcommerce404: '找不到購物車或無法存取',\n ecommerceQuantity: '新數量,或用 `{ \"$inc\": n }` 增減 n。',\n ecommerceInitiatePayment: '使用 `{{method}}` 開始付款',\n ecommerceConfirmOrder: '使用 `{{method}}` 確認付款並建立訂單',\n ecommercePaymentBody:\n '使用 `cartID`(訪客購物車需帶 `secret`)或使用者的購物車。沒有使用者時 `customerEmail` 為必填。付款轉接器可能需要更多欄位。',\n ecommerceInitiateResult: '付款已開始。轉接器會加入自己的欄位,例如 client secret。',\n ecommerceConfirmResult: '訂單已建立',\n stripeWebhook: '接收 Stripe Webhook 事件',\n stripeWebhookBody: '原始 Stripe 事件,在 `Stripe-Signature` 標頭中簽署。由 Stripe 呼叫,而非 API 用戶端。',\n stripeWebhookResult: '已收到事件',\n errorPluginStripeWebhook400: '簽章驗證失敗',\n stripeRest: '呼叫允許的 Stripe API 方法',\n stripeRestResult: 'Stripe API 的結果',\n errorPluginStripeRest404: 'Stripe API 回傳錯誤',\n mcp: '傳送 MCP JSON-RPC 訊息',\n mcpDesc:\n '透過 Streamable HTTP 的 Model Context Protocol,以 JSON 回應。支援匿名請求;列出的工具取決於使用者權限。使用 2025 年協定版本的用戶端必須傳送 `Accept: application/json, text/event-stream`。',\n mcpResult: 'JSON-RPC 回應',\n mcpOverrideAccess: '略過存取檢查。僅供開發使用。',\n mcpGet: '不支援:伺服器不會開啟事件串流',\n errorPluginMcpGet405: '不允許此方法,請使用 POST',\n mcpProtocolVersion: '協商的 MCP 協定版本,例如 `2025-06-18`。',\n mcpResult202: '已接受:請求內容只包含通知或回應',\n errorPluginMcp404: '未知的 MCP 方法',\n errorPluginMcp406: '`Accept` 標頭缺少 `application/json` 或 `text/event-stream`',\n errorPluginMcp413: '請求內容過大',\n errorPluginMcp415: '`Content-Type` 必須是 `application/json`',\n seoTitle: '產生 meta 標題',\n seoDescription: '產生 meta 描述',\n seoUrl: '產生預覽 URL',\n seoImage: '產生 meta 圖片',\n seoBody: '正在編輯的文件:`collectionSlug` 或 `globalSlug`、其 `id` 以及目前的 `doc` 資料。會傳給你的產生函式。',\n seoResult: '產生的值。未設定產生函式時為空字串。',\n searchReindex: '為部分集合重建搜尋索引',\n searchReindexResult: '重建索引摘要',\n tenantOptions: '列出使用者可選擇的租戶',\n tenantOptionsResult: '租戶選項',\n exportDownload: '將文件匯出成檔案',\n exportDownloadResult: '匯出檔案',\n exportPreview: '預覽匯出',\n importPreview: '預覽匯入檔案',\n previewResult: '一頁預覽文件',\n importFileData: '檔案內容,base64 編碼。',\n r2Upload: '分段上傳檔案到 R2',\n r2UploadDesc:\n '同一路由分三步。開始:傳送 `collection`、`fileName` 和 `fileType`。每個分段:加上 `multipartId`、`multipartKey`、`multipartNumber` 和 `signedReceipt`,並傳送位元組。完成:相同參數但不含 `multipartNumber`,並附上分段的 JSON 清單。',\n r2UploadResult: '上傳已開始、分段已上傳或上傳已完成(以文字回傳物件鍵)',\n errorStorageR2412: '此鍵已存在檔案',\n\n localizationHeading: '本地化',\n localizationNote:\n '可用的語系:{{locales}}。對讀取端點傳入 `?locale=<code>` 以選取單一語系。傳入 `?locale=all` 可一次接收所有語系——此時每個本地化欄位會以語系代碼作為鍵的物件回傳(例如 `{ \"en\": \"Hello\", \"de\": \"Hallo\" }`),而非單一值。搭配 `locale=all` 設定 `?flattenLocales=false` 可保留該各語系物件形式。欄位結構描述顯示的是單一語系的形態。',\n docLanguagesNote: '本文件提供以下語言版本:{{languages}}。在此規格 URL 後附加 `?lang=<code>` 即可切換語言。',\n },\n}\n"],"mappings":"AAEA,MAAa,OAAwC,EACnD,kCAAkC;CAChC,YAAY;CACZ,WAAW;CACX,gBAAgB;CAChB,YAAY;CACZ,YAAY;CACZ,eAAe;CACf,wBAAwB;CACxB,0BAA0B;CAC1B,mBAAmB;CACnB,sBAAsB;CACtB,qBAAqB;CACrB,aAAa;CACb,qBAAqB;CACrB,qBAAqB;CACrB,4BACE;CAEF,cAAc;CACd,gBAAgB;CAChB,aAAa;CACb,aACE;CACF,0BAA0B;CAC1B,iBAAiB;CACjB,yBACE;CACF,0BACE;CAEF,gBAAgB;CAChB,eAAe;CACf,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,sBAAsB;CACtB,sBAAsB;CACtB,iBAAiB;CACjB,sBAAsB;CACtB,gBAAgB;CAChB,cACE;CAEF,WAAW;CAEX,WAAW;CACX,YAAY;CACZ,QAAQ;CACR,kBAAkB;CAClB,oBAAoB;CACpB,mBAAmB;CACnB,mBAAmB;CACnB,UAAU;CACV,YAAY;CACZ,WAAW;CACX,eAAe;CACf,YAAY;CACZ,YAAY;CACZ,cAAc;CAEd,aAAa;CACb,eAAe;CACf,iBAAiB;CACjB,cAAc;CAEd,gBAAgB;CAChB,sBAAsB;CACtB,eAAe;CACf,qBAAqB;CACrB,kBAAkB;CAClB,WAAW;CACX,uBAAuB;CACvB,YAAY;CACZ,wBAAwB;CACxB,WAAW;CAEX,YAAY;CACZ,YACE;CACF,oBAAoB;CACpB,WAAW;CACX,aAAa;CACb,kBAAkB;CAClB,2BAA2B;CAC3B,0BAA0B;CAC1B,uBAAuB;CACvB,0BAA0B;CAC1B,mBAAmB;CACnB,oBAAoB;CACpB,eAAe;CACf,qBAAqB;CACrB,eAAe;CACf,mBAAmB;CACnB,qBAAqB;CACrB,kBAAkB;CAClB,wBAAwB;CACxB,SAAS;CACT,aACE;CACF,eAAe;CACf,iBAAiB;CAEjB,UAAU;CACV,UAAU;CACV,UAAU;CACV,UAAU;CACV,UAAU;CAEV,gBACE;CACF,qBAAqB;CAErB,gBAAgB;CAChB,oBAAoB;CACpB,YAAY;CACZ,gBAAgB;CAChB,WAAW;CACX,eAAe;CACf,SAAS;CACT,aAAa;CACb,SAAS;CACT,YAAY;CACZ,WAAW;CACX,YAAY;CACZ,YAAY;CACZ,gBAAgB;CAChB,gBAAgB;CAChB,gBAAgB;CAChB,gBAAgB;CAChB,gBAAgB;CAChB,gBAAgB;CAChB,kBAAkB;CAClB,qBAAqB;CACrB,qBAAqB;CACrB,oBAAoB;CACpB,oBAAoB;CACpB,qBAAqB;CACrB,qBAAqB;CACrB,yBAAyB;CACzB,mBAAmB;CACnB,0BAA0B;CAC1B,uBAAuB;CACvB,sBACE;CACF,yBAAyB;CACzB,wBAAwB;CACxB,eAAe;CACf,mBAAmB;CACnB,qBAAqB;CACrB,6BAA6B;CAC7B,YAAY;CACZ,kBAAkB;CAClB,0BAA0B;CAC1B,KAAK;CACL,SACE;CACF,WAAW;CACX,mBAAmB;CACnB,QAAQ;CACR,sBAAsB;CACtB,oBAAoB;CACpB,cAAc;CACd,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,UAAU;CACV,gBAAgB;CAChB,QAAQ;CACR,UAAU;CACV,SAAS;CACT,WAAW;CACX,eAAe;CACf,qBAAqB;CACrB,eAAe;CACf,qBAAqB;CACrB,gBAAgB;CAChB,sBAAsB;CACtB,eAAe;CACf,eAAe;CACf,eAAe;CACf,gBAAgB;CAChB,UAAU;CACV,cACE;CACF,gBAAgB;CAChB,mBAAmB;CAEnB,qBAAqB;CACrB,kBACE;CACF,kBAAkB;AACpB,EACF"}
|
|
@@ -70,11 +70,24 @@ export type PluginDefaultTranslationsObject = {
|
|
|
70
70
|
uploadPayloadField: string;
|
|
71
71
|
fileServe: string;
|
|
72
72
|
filePartial: string;
|
|
73
|
+
paramFileVersion: string;
|
|
73
74
|
uploadInstructionsSummary: string;
|
|
74
75
|
uploadInstructionsResult: string;
|
|
75
76
|
uploadStagePutSummary: string;
|
|
76
77
|
uploadStageDeleteSummary: string;
|
|
77
78
|
uploadStageResult: string;
|
|
79
|
+
paramPreferenceKey: string;
|
|
80
|
+
preferenceGet: string;
|
|
81
|
+
preferenceGetResult: string;
|
|
82
|
+
preferenceSet: string;
|
|
83
|
+
preferenceSetBody: string;
|
|
84
|
+
preferenceSetResult: string;
|
|
85
|
+
preferenceDelete: string;
|
|
86
|
+
preferenceDeleteResult: string;
|
|
87
|
+
reorder: string;
|
|
88
|
+
reorderBody: string;
|
|
89
|
+
reorderResult: string;
|
|
90
|
+
errorReorder400: string;
|
|
78
91
|
error400: string;
|
|
79
92
|
error401: string;
|
|
80
93
|
error403: string;
|
|
@@ -93,6 +106,67 @@ export type PluginDefaultTranslationsObject = {
|
|
|
93
106
|
tagJobs: string;
|
|
94
107
|
tagUploads: string;
|
|
95
108
|
tagAccess: string;
|
|
109
|
+
tagReorder: string;
|
|
110
|
+
tagPlugins: string;
|
|
111
|
+
tagPluginsDesc: string;
|
|
112
|
+
errorPlugin400: string;
|
|
113
|
+
errorPlugin401: string;
|
|
114
|
+
errorPlugin403: string;
|
|
115
|
+
errorPlugin404: string;
|
|
116
|
+
errorPlugin500: string;
|
|
117
|
+
ecommerceAddItem: string;
|
|
118
|
+
ecommerceRemoveItem: string;
|
|
119
|
+
ecommerceUpdateItem: string;
|
|
120
|
+
ecommerceClearCart: string;
|
|
121
|
+
ecommerceMergeCart: string;
|
|
122
|
+
ecommerceCartAccess: string;
|
|
123
|
+
ecommerceCartResult: string;
|
|
124
|
+
errorPluginEcommerce404: string;
|
|
125
|
+
ecommerceQuantity: string;
|
|
126
|
+
ecommerceInitiatePayment: string;
|
|
127
|
+
ecommerceConfirmOrder: string;
|
|
128
|
+
ecommercePaymentBody: string;
|
|
129
|
+
ecommerceInitiateResult: string;
|
|
130
|
+
ecommerceConfirmResult: string;
|
|
131
|
+
stripeWebhook: string;
|
|
132
|
+
stripeWebhookBody: string;
|
|
133
|
+
stripeWebhookResult: string;
|
|
134
|
+
errorPluginStripeWebhook400: string;
|
|
135
|
+
stripeRest: string;
|
|
136
|
+
stripeRestResult: string;
|
|
137
|
+
errorPluginStripeRest404: string;
|
|
138
|
+
mcp: string;
|
|
139
|
+
mcpDesc: string;
|
|
140
|
+
mcpResult: string;
|
|
141
|
+
mcpOverrideAccess: string;
|
|
142
|
+
mcpGet: string;
|
|
143
|
+
errorPluginMcpGet405: string;
|
|
144
|
+
mcpProtocolVersion: string;
|
|
145
|
+
mcpResult202: string;
|
|
146
|
+
errorPluginMcp404: string;
|
|
147
|
+
errorPluginMcp406: string;
|
|
148
|
+
errorPluginMcp413: string;
|
|
149
|
+
errorPluginMcp415: string;
|
|
150
|
+
seoTitle: string;
|
|
151
|
+
seoDescription: string;
|
|
152
|
+
seoUrl: string;
|
|
153
|
+
seoImage: string;
|
|
154
|
+
seoBody: string;
|
|
155
|
+
seoResult: string;
|
|
156
|
+
searchReindex: string;
|
|
157
|
+
searchReindexResult: string;
|
|
158
|
+
tenantOptions: string;
|
|
159
|
+
tenantOptionsResult: string;
|
|
160
|
+
exportDownload: string;
|
|
161
|
+
exportDownloadResult: string;
|
|
162
|
+
exportPreview: string;
|
|
163
|
+
importPreview: string;
|
|
164
|
+
previewResult: string;
|
|
165
|
+
importFileData: string;
|
|
166
|
+
r2Upload: string;
|
|
167
|
+
r2UploadDesc: string;
|
|
168
|
+
r2UploadResult: string;
|
|
169
|
+
errorStorageR2412: string;
|
|
96
170
|
localizationHeading: string;
|
|
97
171
|
localizationNote: string;
|
|
98
172
|
docLanguagesNote: string;
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { BasePayload, PayloadRequest, SanitizedCollectionConfig, SanitizedGlobalConfig } from "payload";
|
|
2
2
|
import { I18n } from "@payloadcms/translations";
|
|
3
|
-
import { ComponentsObject, Document, InfoObject, PathsObject, SecurityRequirementObject, ServerObject, TagObject } from "@scalar/openapi-types/3.2";
|
|
3
|
+
import { ComponentsObject, Document, InfoObject, PathsObject, SchemaObject, SecurityRequirementObject, ServerObject, TagObject } from "@scalar/openapi-types/3.2";
|
|
4
4
|
export type OpenApiVersion = '3.0' | '3.1' | '3.2';
|
|
5
5
|
export type EntityKind = 'collection' | 'global';
|
|
6
|
-
export type OperationKind = EntityKind | 'custom' | 'jobs' | 'system';
|
|
6
|
+
export type OperationKind = EntityKind | 'custom' | 'jobs' | 'system' | 'plugin';
|
|
7
7
|
export type HttpMethod = 'get' | 'post' | 'patch' | 'put' | 'delete';
|
|
8
8
|
export type IDType = 'text' | 'number';
|
|
9
|
+
export type Schema = Exclude<SchemaObject, boolean>;
|
|
9
10
|
export type Entity = SanitizedCollectionConfig | SanitizedGlobalConfig;
|
|
10
11
|
export type EntityOperation = 'read' | 'create' | 'update' | 'delete' | 'validate';
|
|
11
12
|
export type SecurityMarking = 'public' | 'secured';
|
|
@@ -101,23 +102,37 @@ export type EntityMatcher = string | RegExp | {
|
|
|
101
102
|
* an operation is removed if any rule matches it. Fields:
|
|
102
103
|
* - `method` — HTTP method(s); omit to match any.
|
|
103
104
|
* - `slug` — collection or global slug, exact string or RegExp; omit to match any.
|
|
104
|
-
* A rule with `slug` never matches custom, jobs or system operations
|
|
105
|
+
* A rule with `slug` never matches custom, jobs or system operations, or plugin
|
|
106
|
+
* operations mounted at the API root.
|
|
105
107
|
* - `kind` — restrict to one operation group; omit to match all.
|
|
106
108
|
* - `path` — RegExp tested against the final route path (e.g. `/api/posts/{id}`).
|
|
109
|
+
* - `plugin` — slug of the plugin that adds the operation (e.g. `'@payloadcms/plugin-seo'`),
|
|
110
|
+
* exact string or RegExp; omit to match any. A rule with `plugin` never matches an
|
|
111
|
+
* operation without one.
|
|
107
112
|
*/
|
|
108
113
|
export interface OperationRule {
|
|
109
114
|
method?: HttpMethod | HttpMethod[];
|
|
110
115
|
slug?: string | RegExp;
|
|
111
116
|
kind?: OperationKind;
|
|
112
117
|
path?: RegExp;
|
|
118
|
+
plugin?: string | RegExp;
|
|
113
119
|
}
|
|
114
120
|
/** Context passed to `excludeOperations` functions and `security` for each operation. */
|
|
115
121
|
export interface OperationContext {
|
|
116
122
|
method: HttpMethod;
|
|
117
123
|
path: string;
|
|
118
|
-
/**
|
|
124
|
+
/**
|
|
125
|
+
* Collection or global slug. For plugin operations, the collection the plugin
|
|
126
|
+
* mounts them on. Unset for custom, jobs and system operations.
|
|
127
|
+
*/
|
|
119
128
|
slug?: string;
|
|
120
129
|
kind: OperationKind;
|
|
130
|
+
/**
|
|
131
|
+
* Slug of the plugin that adds the operation: an official Payload plugin
|
|
132
|
+
* (kind `'plugin'`), or the `x-payload-plugin` value of a custom endpoint's
|
|
133
|
+
* `custom.openapi`.
|
|
134
|
+
*/
|
|
135
|
+
plugin?: string;
|
|
121
136
|
}
|
|
122
137
|
/** A rule, or a function that drops the operation when it returns (or resolves to) `true`. */
|
|
123
138
|
export type OperationFilter = OperationRule | ((ctx: OperationContext) => boolean | Promise<boolean>);
|
|
@@ -182,15 +197,15 @@ export interface FilterOptions {
|
|
|
182
197
|
*/
|
|
183
198
|
includeJobs?: boolean;
|
|
184
199
|
/**
|
|
185
|
-
* Drops operations from every group: collection, global, custom, jobs
|
|
186
|
-
* system. An operation is removed when any rule matches it or any
|
|
187
|
-
* returns `true`.
|
|
200
|
+
* Drops operations from every group: collection, global, custom, jobs,
|
|
201
|
+
* system and plugin. An operation is removed when any rule matches it or any
|
|
202
|
+
* function returns `true`.
|
|
188
203
|
* @default []
|
|
189
204
|
*/
|
|
190
205
|
excludeOperations?: OperationFilter[];
|
|
191
206
|
}
|
|
192
207
|
export interface OpenApiExtension {
|
|
193
|
-
/** Paths
|
|
208
|
+
/** Paths merged into the generated ones. An operation here replaces the generated operation with the same path and method. */
|
|
194
209
|
paths?: PathsObject;
|
|
195
210
|
/** Components deep-merged into the generated ones. */
|
|
196
211
|
components?: ComponentsObject;
|