{
"cli.capabilities.marked_failed": "đã đánh dấu năng lực thất bại: {}",
"cli.capabilities.marked_ready": "đã đánh dấu năng lực sẵn sàng: {}",
"cli.capabilities.none_requiring_setup": "không tìm thấy năng lực nào cần thiết lập",
"cli.capabilities.outcome.error": "lỗi: {}",
"cli.capabilities.outcome.raw": "thô:\n{}",
"cli.capabilities.outcome.success": "thành công: {}",
"cli.common.answer_yes_no": "vui lòng trả lời y hoặc n",
"cli.common.failed": "thất bại",
"cli.common.ok": "ok",
"cli.common.success": "thành công",
"cli.demo.debug.after_encode": "[demo] sau khi mã hóa đầu ra:\n{}",
"cli.demo.debug.after_encode_serialize_failed": "[demo] sau khi mã hóa đầu ra: không thể tuần tự hóa đầu ra: {}",
"cli.demo.debug.after_render_plan": "[demo] sau render_plan đầu ra:\n{}",
"cli.demo.debug.after_render_plan_serialize_failed": "[demo] sau render_plan đầu ra: không thể tuần tự hóa đầu ra: {}",
"cli.demo.debug.after_send_payload": "[demo] sau send_payload đầu ra:\n{}",
"cli.demo.debug.after_send_payload_serialize_failed": "[demo] sau send_payload đầu ra: không thể tuần tự hóa đầu ra: {}",
"cli.demo.debug.before_envelope": "[demo] trước phong bì {}:\n{}",
"cli.demo.debug.before_envelope_serialize_failed": "[demo] trước phong bì {}: không thể tuần tự hóa phong bì: {}",
"cli.demo.debug.encode_input": "[demo] mã hóa đầu vào:\n{}",
"cli.demo.debug.encode_input_serialize_failed": "[demo] mã hóa đầu vào: không thể tuần tự hóa đầu vào: {}",
"cli.demo.help.command.allow": "Cho phép tenant/team truy cập pack/flow/node",
"cli.demo.help.command.build": "Xây dựng gói demo di động.",
"cli.demo.help.command.capability": "Quản lý phân giải/gọi năng lực trong các gói demo",
"cli.demo.help.command.doctor": "Chạy xác thực demo doctor từ một gói.",
"cli.demo.help.command.forbid": "Cấm tenant/team truy cập pack/flow/node",
"cli.demo.help.command.help": "In thông báo này hoặc trợ giúp của (các) lệnh con được chỉ định",
"cli.demo.help.command.ingress": "Gửi yêu cầu HTTP tổng hợp qua pipeline ingress nhắn tin",
"cli.demo.help.command.list_flows": "Liệt kê các flow được khai báo bởi một pack",
"cli.demo.help.command.list_packs": "Liệt kê các pack đã phân giải từ một gói",
"cli.demo.help.command.logs": "Hiển thị log demo do operator và dịch vụ tạo ra.",
"cli.demo.help.command.new": "Tạo khung gói demo mới.",
"cli.demo.help.command.run": "Chạy pack/flow với đầu vào nội tuyến",
"cli.demo.help.command.send": "Gửi tin nhắn demo qua một provider pack.",
"cli.demo.help.command.setup": "Chạy các flow thiết lập provider với một gói demo.",
"cli.demo.help.command.start": "Khởi động dịch vụ demo từ một gói.",
"cli.demo.help.command.status": "Hiển thị trạng thái dịch vụ demo bằng trạng thái runtime.",
"cli.demo.help.command.subscriptions": "Quản lý đăng ký demo qua các thành phần provider",
"cli.demo.help.command.wizard": "Bí danh của wizard. Lập kế hoạch hoặc tạo gói demo từ pack refs và quy tắc allow",
"cli.demo.help.commands_header": "Lệnh:",
"cli.demo.help.option_debug": "",
"cli.demo.help.option_help": "In trợ giúp",
"cli.demo.help.option_locale": "Ngôn ngữ CLI (cho đầu ra đã dịch).",
"cli.demo.help.options_header": "Tùy chọn:",
"cli.demo.help.usage_label": "Cách dùng:",
"cli.demo_new.created_scaffold": "đã tạo khung gói demo tại {}",
"cli.demo_send.debug_invalid_json_output": "[demo] sau send_payload đầu ra: đầu ra JSON không hợp lệ",
"cli.demo_send.debug_parse_send_payload_failed": "[demo] sau send_payload đầu ra: không thể phân tích SendPayloadOutV1\n{}",
"cli.demo_send.flow_error": "Lỗi flow: {}",
"cli.demo_send.flow_result": "Kết quả flow: {}",
"cli.demo_send.missing_secret_uris": "thiếu URI bí mật:\n{}",
"cli.domain.best_effort_flows_failed": "Best-effort: {} flow thất bại.",
"cli.domain.best_effort_skipped_missing_setup": "Best-effort: đã bỏ qua {} pack thiếu {}.",
"cli.domain.no_provider_packs_matched": "Không có provider pack nào khớp. Hãy thử --provider <pack_id>.",
"cli.domain.no_provider_packs_matched_or_project_root": "Không có provider pack nào khớp. Hãy thử --provider <pack_id> hoặc --project-root.",
"cli.domain.plan_header": "Kế hoạch:",
"cli.domain.plan_item": " {} -> {}",
"cli.domain.warn_skip_missing_packs": "[warn] bỏ qua thiết lập domain={} thiếu pack: {}",
"cli.ingress.dlq_log_location": "Vị trí log DLQ: {}",
"cli.ingress.http_body": " nội dung: {}",
"cli.ingress.http_body_base64": " nội dung (base64): {}",
"cli.ingress.http_header": " {}: {}",
"cli.ingress.http_out_status": "HTTP OUT: trạng thái {}",
"cli.list_flows.header": "các luồng được khai báo bởi pack {} ({}):",
"cli.list_flows.item": " - {}",
"cli.list_packs.for_applications": "các pack cho ứng dụng:",
"cli.list_packs.for_domain": "các pack cho {}:",
"cli.list_packs.none_for_domain": "không tìm thấy pack cho domain {}",
"cli.main.help.command_demo": "",
"cli.main.help.command_help": "In thông báo này hoặc trợ giúp của (các) lệnh con được chỉ định",
"cli.main.help.command_wizard": "Bí danh của demo wizard. Lập kế hoạch/tạo một gói demo với tham chiếu pack và quy tắc cho phép.",
"cli.main.help.commands_header": "Lệnh:",
"cli.main.help.option_help": "In trợ giúp",
"cli.main.help.option_locale": "Ngôn ngữ CLI (cho đầu ra đã dịch).",
"cli.main.help.option_version": "In phiên bản",
"cli.main.help.options_header": "Tùy chọn:",
"cli.main.help.tagline": "Công cụ vận hành Greentic",
"cli.main.help.usage_label": "Cách dùng:",
"cli.main.more_info": "Để biết thêm thông tin, hãy thử '--help'.",
"cli.main.requires_subcommand": "lỗi: 'greentic-operator' yêu cầu một lệnh con nhưng chưa được cung cấp",
"cli.main.subcommands": "lệnh con",
"cli.main.usage_label": "Cách dùng:",
"cli.plan.item_result_error": "{} {} -> {}",
"cli.plan.item_result_error_with_summary": "{} {} -> {} ({})",
"cli.plan.item_result_ok": "{} {} -> {}",
"cli.plan.warn_skip_missing_secrets": "[warn] bỏ qua thiết lập domain={} tenant={} provider={}: thiếu bí mật:\n{}",
"cli.plan.warn_skip_secrets_check_failed": "[warn] bỏ qua thiết lập domain={} tenant={} provider={}: kiểm tra bí mật thất bại: {}",
"cli.qa.add_item_prompt": "Thêm mục #{}? [y/N]:",
"cli.qa.at_least_one_item": "cần ít nhất một mục",
"cli.qa.choice.access_mode.all_selected_get_all_packs": "Tất cả tenant và team đều có quyền truy cập tất cả pack",
"cli.qa.choice.access_mode.per_pack_matrix": "Kiểm soát truy cập chi tiết",
"cli.qa.choice.access_scope.all_tenants": "tất cả tenant",
"cli.qa.choice.access_scope.specific_team": "một team cụ thể cho một tenant cụ thể",
"cli.qa.choice.access_scope.tenant_all_teams": "tất cả team từ một tenant cụ thể",
"cli.qa.custom_provider_refs.add_prompt": "Do you want to add a non-well-known provider by pack reference? [y,N]",
"cli.qa.invalid_choice": "lựa chọn không hợp lệ",
"cli.qa.list_finish_hint": "Nhấn Enter tại 'Add item?' để hoàn tất.",
"cli.qa.pack_ref.access_scope_title": "Ai có thể truy cập ứng dụng này?",
"cli.qa.pack_ref.make_default_pack_title": "Pack này có phải là pack mặc định khi không chỉ định pack không?",
"cli.qa.pack_ref.team_id_title": "ID team có thể truy cập ứng dụng này là gì?",
"cli.qa.pack_ref.tenant_id_title": "ID tenant có thể truy cập ứng dụng này là gì?",
"cli.qa.pack_ref_field_title": "Tham chiếu pack (ví dụ: /path/to/app.gtpack, file://..., oci://ghcr.io/..., repo://..., store://...)",
"cli.qa.pack_refs.add_prompt": "Bạn có muốn thêm một pack ứng dụng không? [Y,n]",
"cli.qa.providers.add_prompt": "Bạn có muốn thêm provider (ví dụ: messaging, events, v.v.) không? [Y,n]",
"cli.qa.select_number_or_value": "Chọn số hoặc giá trị:",
"cli.qa.value_required": "bắt buộc phải có giá trị",
"cli.qa.yes_no_suffix_default_no": "[y,N]",
"cli.qa.yes_no_suffix_default_yes": "[Y,n]",
"cli.run.enter_interactive": "Đang vào chế độ tương tác (gõ @help để xem lệnh).",
"cli.run.summary_flow": " luồng: {}",
"cli.run.summary_header": "Tóm tắt lần chạy:",
"cli.run.summary_input": " đầu vào: {}",
"cli.run.summary_pack": " gói: {} ({})",
"cli.run.summary_tenant_team": " tenant: {} team: {}",
"cli.secrets.hint_setup_or_add_key": "gợi ý: chạy `greentic-operator setup` hoặc thêm khóa vào {}",
"cli.secrets.key": " khóa: {}",
"cli.secrets.not_found": "Không tìm thấy secret:",
"cli.secrets.store": " kho: {}",
"cli.secrets.uri": " uri: {}",
"cli.start.events_timer_scheduler_ready": "bộ lập lịch bộ đếm thời gian sự kiện đã sẵn sàng",
"cli.start.http_ingress_ready": "HTTP ingress sẵn sàng tại http://{}:{}",
"cli.start.public_url_setup_domains": "URL công khai (miền thiết lập cloudflared={}): {}",
"cli.start.warn_events_timer_scheduler_disabled": "Cảnh báo: bộ lập lịch bộ đếm thời gian sự kiện bị tắt: {}",
"cli.start.warn_failed_stop_earlier_target": "Cảnh báo: không thể dừng mục tiêu trước đó tenant={} team={} : {}",
"cli.start.warn_http_ingress_disabled": "Cảnh báo: HTTP ingress bị tắt: {}",
"cli.start.warn_legacy_nats": "Cảnh báo: '--nats=on' sử dụng ngăn xếp GSM NATS cũ; hãy chuyển sang chế độ nhúng khi có thể.",
"cli.subscriptions.deleted": "đã xóa {}",
"cli.subscriptions.none": "không tìm thấy subscription nào",
"cli.subscriptions.renewed": "đã gia hạn {}",
"cli.subscriptions.renewed_eligible": "đã gia hạn các subscription đủ điều kiện",
"cli.tunnel.invalid_selection": "Lựa chọn không hợp lệ. Đang chạy không dùng đường hầm.",
"cli.tunnel.option_cloudflared": "Cloudflare Tunnel (cloudflared)",
"cli.tunnel.option_ngrok": "ngrok",
"cli.tunnel.option_none": "Không dùng đường hầm (chỉ cục bộ)",
"cli.tunnel.prompt": "Dịch vụ đường hầm (cho webhook của nhà cung cấp bên ngoài):",
"cli.tunnel.selected_none": "Đang chạy không dùng đường hầm.",
"cli.wizard.answers_output_prompt": "Tệp đầu ra câu trả lời [answers.json]:",
"cli.wizard.bundle": "bundle:",
"cli.wizard.execution_aborted": "thực thi wizard đã bị người dùng hủy",
"cli.wizard.help.long_about": "Trước tiên xây dựng một kế hoạch wizard xác định. Việc thực thi tái sử dụng cùng vòng đời gmap + resolver + resolved-copy như demo allow.",
"cli.wizard.help.main_options_bundle": " --bundle <DIR> (hoặc cung cấp trong --answers/--qa-answers)",
"cli.wizard.help.main_options_header": "Tùy chọn chính:",
"cli.wizard.help.main_options_mode": " --mode <create|update|remove>",
"cli.wizard.help.option_allow": "Cho phép đường dẫn PACK[/FLOW[/NODE]] cho tenant/team; có thể lặp lại.",
"cli.wizard.help.option_answers": "AnswerDocument JSON/YAML (hoặc câu trả lời wizard thô kiểu cũ).",
"cli.wizard.help.option_apply": "Áp dụng tác động phụ (bí danh của --execute).",
"cli.wizard.help.option_bundle": "Đường dẫn đến demo bundle cần tạo.",
"cli.wizard.help.option_catalog_file": "Tệp catalog JSON/YAML tùy chọn.",
"cli.wizard.help.option_catalog_pack": "ID catalog pack cần bao gồm (có thể lặp lại).",
"cli.wizard.help.option_dry_run": "Buộc chế độ chỉ lập kế hoạch (dry-run).",
"cli.wizard.help.option_emit_answers": "Ghi câu trả lời đã hợp nhất dưới dạng AnswerDocument JSON.",
"cli.wizard.help.option_execute": "Thực thi kế hoạch. Nếu không có tùy chọn này, chỉ in kế hoạch.",
"cli.wizard.help.option_help": "In trợ giúp (xem bản tóm tắt với '-h')",
"cli.wizard.help.option_locale": "Thẻ locale để hiển thị QA của wizard.",
"cli.wizard.help.option_migrate": "Cho phép migrate phiên bản schema AnswerDocument khi cần.",
"cli.wizard.help.option_mode": "[mặc định: create]",
"cli.wizard.help.option_mode_values": "[giá trị có thể: create, update, remove]",
"cli.wizard.help.option_offline": "Resolve pack ở chế độ offline (chỉ cache).",
"cli.wizard.help.option_pack_ref": "Pack ref tùy chỉnh (oci://, repo://, store://); có thể lặp lại.",
"cli.wizard.help.option_provider_registry": "Ghi đè provider registry (file://<path> hoặc đường dẫn cục bộ).",
"cli.wizard.help.option_qa_answers": "Câu trả lời JSON/YAML tùy chọn do greentic-qa phát ra.",
"cli.wizard.help.option_run_setup": "Chạy các luồng setup provider hiện có sau khi thực thi.",
"cli.wizard.help.option_schema_version": "Phiên bản schema để nhúng vào AnswerDocument được phát ra.",
"cli.wizard.help.option_setup_input": "setup-input JSON/YAML tùy chọn được truyền cho setup runner.",
"cli.wizard.help.option_target": "Mục tiêu tenant ở dạng tenant[:team]; có thể lặp lại.",
"cli.wizard.help.option_team": "Team tùy chọn cho các quy tắc allow.",
"cli.wizard.help.option_tenant": "Tenant cho các quy tắc allow.",
"cli.wizard.help.option_tenant_default": "[mặc định: demo]",
"cli.wizard.help.option_validate": "Chỉ validate/lập kế hoạch (không có tác động phụ).",
"cli.wizard.help.option_verbose": "In chi tiết các trường bước trong kế hoạch.",
"cli.wizard.help.optional_options.allow": " --allow <PACK[/FLOW[/NODE]]> (có thể lặp lại)",
"cli.wizard.help.optional_options.answers": " --answers <PATH>",
"cli.wizard.help.optional_options.apply": " --apply",
"cli.wizard.help.optional_options.catalog_pack": " --catalog-pack <ID> (có thể lặp lại)",
"cli.wizard.help.optional_options.dry_run": " --dry-run",
"cli.wizard.help.optional_options.emit_answers": " --emit-answers <PATH>",
"cli.wizard.help.optional_options.execute": " --execute",
"cli.wizard.help.optional_options.locale": " --locale <TAG> (mặc định: phát hiện từ locale hệ thống)",
"cli.wizard.help.optional_options.migrate": " --migrate",
"cli.wizard.help.optional_options.offline": " --offline",
"cli.wizard.help.optional_options.pack_ref": " --pack-ref <REF> (có thể lặp lại, oci://|repo://|store://)",
"cli.wizard.help.optional_options.provider_registry": " --provider-registry <REF>",
"cli.wizard.help.optional_options.qa_answers": " --qa-answers <PATH> (bí danh cũ)",
"cli.wizard.help.optional_options.run_setup": " --run-setup",
"cli.wizard.help.optional_options.schema_version": " --schema-version <VER>",
"cli.wizard.help.optional_options.target": " --target <tenant[:team]> (có thể lặp lại)",
"cli.wizard.help.optional_options.team": " --team <TEAM>",
"cli.wizard.help.optional_options.tenant": " --tenant <TENANT> (mặc định: demo)",
"cli.wizard.help.optional_options.validate": " --validate",
"cli.wizard.help.optional_options.verbose": " --verbose",
"cli.wizard.help.optional_options_header": "Tùy chọn bổ sung:",
"cli.wizard.help.options_header": "Tùy chọn:",
"cli.wizard.help.usage_label": "Cách dùng:",
"cli.wizard.noop_steps": "các bước không thao tác:",
"cli.wizard.plan_header": "kế hoạch wizard:",
"cli.wizard.saved_answers": "đã lưu câu trả lời wizard:",
"cli.wizard.skip_setup_remove": "bỏ qua thiết lập cho chế độ xóa",
"cli.wizard.step.apply_pack_setup": "Áp dụng đầu ra thiết lập được khai báo bởi pack thông qua các hook thiết lập nội bộ",
"cli.wizard.step.copy_packs": "Sao chép các pack đã tải vào bundle/packs",
"cli.wizard.step.copy_resolved": "Sao chép manifest state/resolved vào resolved/ để khởi động demo",
"cli.wizard.step.create_bundle": "Tạo khung bundle demo theo các quy ước hiện có",
"cli.wizard.step.resolve_packs": "Phân giải các tham chiếu pack đã chọn qua client distributor",
"cli.wizard.step.run_resolver_create": "Chạy pipeline resolver (giống demo allow)",
"cli.wizard.step.validate_bundle": "Xác thực bundle có thể được nạp bởi pipeline demo nội bộ",
"cli.wizard.step.write_gmap": "Ghi các quy tắc cho phép tenant/team vào gmap",
"cli.wizard.warning": "cảnh báo: {}",
"demo.build.warn_copying_pack_directory": "Cảnh báo: đang sao chép thư mục pack vào bundle demo (không di động): {}",
"demo.card.action": "hành động",
"demo.card.action_line": " - {} (id={}: type={})",
"demo.card.actions": " hành động:",
"demo.card.adaptive_card": "Thẻ thích ứng",
"demo.card.body": " nội dung:",
"demo.card.hint": "Gợi ý: @input <field>=<value> để đặt đầu vào, @click <action_id> để gửi, @show để xem lại thẻ, @json để xem payload thô.",
"demo.card.input": "đầu vào",
"demo.card.input_line": " - {} (id={}: type={})",
"demo.card.inputs": " đầu vào:",
"demo.card.placeholder": " chỗ giữ chỗ: {}",
"demo.card.received": "Đã nhận thẻ: {}",
"demo.repl.already_earliest_state": "Đã ở trạng thái bị chặn sớm nhất.",
"demo.repl.finished_with_output": "Luồng đã hoàn tất với đầu ra:",
"demo.repl.help": "Các lệnh khả dụng:\n @show ─ hiển thị tóm tắt adaptive card gần nhất\n @json ─ xuất giá trị JSON thô nhận từ luồng\n @back ─ hoàn nguyên về card/đầu vào bị chặn trước đó\n @input <k>=<v> ─ đặt hoặc ghi đè một trường đầu vào\n @click <action_id> ─ gửi card với hành động được cung cấp\n @help ─ in văn bản trợ giúp này\n @quit ─ thoát REPL",
"demo.repl.no_card": "Không có adaptive card để hiển thị.",
"demo.repl.no_output": "Không có đầu ra.",
"demo.repl.restored_previous_state": "Đã khôi phục trạng thái bị chặn trước đó.",
"demo.repl.set_input": "Đặt {}={}",
"demo.repl.unknown_action": "Hành động '{}' không xác định. Các hành động khả dụng: {}",
"demo.repl.unknown_command": "Lệnh không xác định. Xem @help.",
"demo.repl.unknown_input": "Đầu vào '{}' không xác định. Các đầu vào khả dụng: {}",
"demo.repl.waiting_for_input": "Đang chờ đầu vào: {}",
"demo.repl.waiting_no_card": "Luồng đang chờ đầu vào (không phát hiện adaptive card).",
"demo.runtime.events_in_process": "events: được xử lý trong tiến trình (HTTP ingress + bộ lập lịch hẹn giờ)",
"demo.runtime.messaging_embedded": "messaging: đang chạy runner nhúng (không có cổng/gửi ra gsm)",
"demo.runtime.no_services_to_stop": "Không có dịch vụ nào để dừng.",
"demo.runtime.none_running": "không có dịch vụ nào đang chạy",
"demo.runtime.public_url_cloudflared": "URL công khai (service=cloudflared): {}",
"demo.runtime.public_url_cloudflared_domains": "URL công khai (service=cloudflared domains={}): {}",
"demo.runtime.service_already_running": "{}: đã chạy (pid={})",
"demo.runtime.service_started": "{}: đã khởi động (pid={})",
"demo.runtime.started_services": "Các dịch vụ đã khởi động:",
"demo.runtime.status_running": "đang chạy",
"demo.runtime.status_stopped": "đã dừng",
"demo.runtime.stopped_all_under": "Đã dừng tất cả dịch vụ dưới {}",
"wizard.create.access_mode": "Chế độ truy cập",
"wizard.create.bundle_name": "Tên bundle",
"wizard.create.bundle_path": "Đường dẫn đầu ra bundle",
"wizard.create.execution_mode": "Chế độ thực thi",
"wizard.create.locale": "Ngôn ngữ",
"wizard.create.pack_refs": "Tham chiếu gói",
"wizard.create.providers": "Nhà cung cấp",
"wizard.create.targets": "Tenant và nhóm",
"wizard.remove.bundle_path": "Đường dẫn bundle",
"wizard.remove.execution_mode": "Chế độ thực thi",
"wizard.remove.targets": "Mục tiêu cần xóa",
"wizard.update.bundle_path": "Đường dẫn bundle",
"wizard.update.execution_mode": "Chế độ thực thi",
"wizard.update.ops": "Thao tác cập nhật"
}