greentic-setup-dev 1.1.27821248534

End-to-end bundle setup engine for the Greentic platform — pack discovery, QA-driven configuration, secrets persistence, and bundle lifecycle management
Documentation
{
  "cli.bundle.add.adding": "Đang thêm pack vào bundle...",
  "cli.bundle.add.bundle": "  Bundle: {}",
  "cli.bundle.add.created_structure": "Đã tạo cấu trúc bundle tại {}",
  "cli.bundle.add.dry_run": "[dry-run] Sẽ thêm pack vào bundle",
  "cli.bundle.add.env": "  Env: {}",
  "cli.bundle.add.pack_ref": "  Pack ref: {}",
  "cli.bundle.add.resolved": "  Pack đã giải quyết: {}",
  "cli.bundle.add.success": "Đã thêm pack vào bundle thành công.",
  "cli.bundle.add.team": "  Team: {}",
  "cli.bundle.add.tenant": "  Tenant: {}",
  "cli.bundle.add.version_warning": "Cảnh báo: Xác thực phiên bản {} thất bại: {}",
  "cli.bundle.build.building": "Đang xây dựng bundle di động...",
  "cli.bundle.build.output": "  Output: {}",
  "cli.bundle.build.running_doctor": "Đang chạy kiểm tra xác thực...",
  "cli.bundle.build.success": "Bundle đã được xây dựng thành công tại {}",
  "cli.bundle.init.created": "Bundle đã được tạo tại {}",
  "cli.bundle.init.creating": "Đang tạo bundle tại {}...",
  "cli.bundle.init.exists": "Bundle đã tồn tại tại {}",
  "cli.bundle.init.next_steps": "Các bước tiếp theo:",
  "cli.bundle.init.step_add": "  1. greentic-setup bundle add <pack.gtpack> --bundle {}",
  "cli.bundle.init.step_setup": "  2. greentic-setup bundle setup --bundle {} --answers answers.yaml",
  "cli.bundle.list.bundle": "Bundle: {}",
  "cli.bundle.list.domain": "Domain: {}",
  "cli.bundle.list.packs_found": "Số pack tìm thấy: {}",
  "cli.bundle.remove.cancelled": "đã hủy xóa - sử dụng --force để xác nhận",
  "cli.bundle.remove.complete": "Đã xóa provider: {}",
  "cli.bundle.remove.confirm": "Thao tác này sẽ xóa cấu hình provider.",
  "cli.bundle.remove.removing": "Đang xóa provider...",
  "cli.bundle.remove.use_force": "Sử dụng --force để xác nhận.",
  "cli.bundle.setup.complete": "Thiết lập provider hoàn tất: {}",
  "cli.bundle.setup.domain": "  Domain: {}",
  "cli.bundle.setup.dry_run": "[dry-run] Sẽ thiết lập provider: {}",
  "cli.bundle.setup.emit_usage": "Chỉnh sửa và sử dụng với: greentic-setup bundle setup --answers {}",
  "cli.bundle.setup.emit_written": "Mẫu câu trả lời đã được ghi vào: {}",
  "cli.bundle.setup.env_bootstrap_created": "Đã khởi tạo môi trường `local` với các liên kết năng lực mặc định tại {}.",
  "cli.bundle.setup.interactive_not_impl": "Thiết lập tương tác chưa được triển khai.",
  "cli.bundle.setup.provider": "  Provider: {}",
  "cli.bundle.setup.setting_up": "Đang thiết lập provider...",
  "cli.bundle.setup.use_answers": "Sử dụng --answers <file> để cung cấp câu trả lời thiết lập.",
  "cli.bundle.setup.use_emit_answers": "Hoặc sử dụng --emit-answers <file> để tạo mẫu câu trả lời.",
  "cli.bundle.status.bundle_label": "Bundle: {}",
  "cli.bundle.status.not_found": "Không tìm thấy bundle: {}",
  "cli.bundle.status.packs": "Packs: {} đã cài đặt",
  "cli.bundle.status.tenants": "Tenants: {}",
  "cli.bundle.status.valid_no": "không (thiếu greentic.demo.yaml)",
  "cli.bundle.status.valid_yes": "",
  "cli.bundle.update.complete": "Cập nhật provider hoàn tất: {}",
  "cli.bundle.update.dry_run": "[dry-run] Sẽ cập nhật provider: {}",
  "cli.bundle.update.emit_usage": "Chỉnh sửa và sử dụng với: greentic-setup bundle update --answers {}",
  "cli.bundle.update.updating": "Đang cập nhật cấu hình provider...",
  "cli.error.answers_required": "--answers bắt buộc ở chế độ không tương tác",
  "cli.error.failed_build_plan": "không thể xây dựng kế hoạch",
  "cli.error.failed_create_bundle": "không thể tạo cấu trúc bundle",
  "cli.error.failed_emit_answers": "không thể tạo mẫu câu trả lời",
  "cli.error.failed_execute_plan": "không thể thực thi kế hoạch",
  "cli.error.failed_read_answers": "không thể đọc file câu trả lời",
  "cli.error.interactive_required": "thiết lập tương tác yêu cầu file --answers",
  "cli.error.invalid_bundle": "thư mục bundle không hợp lệ",
  "cli.help.for_help": "Để xem trợ giúp: greentic-setup --help",
  "cli.simple.bundle_required": "Đường dẫn bundle là bắt buộc. Cách dùng: greentic-setup [OPTIONS] <BUNDLE>",
  "cli.simple.dry_run": "[dry-run] Sẽ thiết lập bundle: {}",
  "cli.simple.emit_usage": "Chỉnh sửa và sử dụng với: greentic-setup --answers {} {}",
  "cli.simple.expected_bundle_format": "mong đợi thư mục hoặc file .gtbundle: {}",
  "cli.simple.extracted_to": "  Đã giải nén vào: {}",
  "cli.simple.extracting": "Đang giải nén archive .gtbundle...",
  "cli.simple.header": "Greentic Setup",
  "cli.simple.interactive_mode": "Chế độ wizard tương tác",
  "cli.simple.wizard_not_impl": "wizard tương tác chưa được triển khai - sử dụng --answers <file>",
  "env_wizard.basic_mode": "Chế độ cơ bản — truyền --advanced để cũng thiết lập id khách hàng, ghi đè cấu hình, máy chủ tuyến, luồng chào mừng và tham chiếu bí mật của endpoint.",
  "env_wizard.dry_run_secrets_note": "Lưu ý: --dry-run chỉ xem trước — {} giá trị bí mật đã dán mà bạn nhập sẽ KHÔNG được ghi vào kho. Chạy lại không có --dry-run và xác nhận kế hoạch để lưu chúng.",
  "env_wizard.form.desc": "Tạo manifest `greentic.env-manifest.v1` — tài liệu trạng thái mong muốn bền vững, có thể áp dụng lại cho một môi trường.",
  "env_wizard.form.title": "Thiết lập môi trường",
  "env_wizard.list.bundles.item_label": "gói",
  "env_wizard.list.messaging_endpoints.item_label": "Endpoint nhắn tin",
  "env_wizard.list.secrets.item_label": "bí mật",
  "env_wizard.manifest_prompt": "Tệp manifest [{}]: ",
  "env_wizard.q.bundle_id.desc": "Khóa tự nhiên — duy nhất trong manifest.",
  "env_wizard.q.bundle_id.title": "Id gói",
  "env_wizard.q.bundle_path.desc": "Tệp `.gtbundle` cục bộ. Đường dẫn tương đối được phân giải theo thư mục của tệp manifest.",
  "env_wizard.q.bundle_path.title": "Đường dẫn gói",
  "env_wizard.q.bundles.desc": "Các triển khai gói cho môi trường này.",
  "env_wizard.q.bundles.title": "Gói",
  "env_wizard.q.config_overrides.desc": "Đối tượng JSON `{\"<pack_id>\": {\"<key>\": <value>}}`. Để trống = giữ nguyên; `{}` = xóa rõ ràng.",
  "env_wizard.q.config_overrides.title": "Ghi đè cấu hình (JSON)",
  "env_wizard.q.customer_id.desc": "Chủ thể thanh toán — bắt buộc khi áp dụng cho môi trường không phải `local`.",
  "env_wizard.q.customer_id.title": "Id khách hàng",
  "env_wizard.q.environment_id.desc": "Môi trường để áp dụng. `local` được khởi tạo với các liên kết env-pack mặc định; mọi id khác phải đã tồn tại (apply sẽ điều hòa nó; việc tạo môi trường không cục bộ được dành riêng cho kho operator).",
  "env_wizard.q.environment_id.title": "Id môi trường",
  "env_wizard.q.from_env.desc": "Tên biến chứa giá trị bí mật (ví dụ: TELEGRAM_BOT_TOKEN) — tên, không bao giờ là giá trị. Bắt buộc khi nguồn là `env`.",
  "env_wizard.q.from_env.title": "Tên biến môi trường",
  "env_wizard.q.links.desc": "Các `bundle_id` được endpoint này chấp nhận, phân tách bằng dấu phẩy.",
  "env_wizard.q.links.title": "Id gói đã liên kết",
  "env_wizard.q.messaging_endpoints.desc": "Các endpoint nhắn tin và liên kết gói của chúng.",
  "env_wizard.q.messaging_endpoints.title": "Endpoint nhắn tin",
  "env_wizard.q.name.desc": "Handle cục bộ trong manifest và tên hiển thị. Khóa upsert cùng với loại provider.",
  "env_wizard.q.name.title": "Tên endpoint",
  "env_wizard.q.path.desc": "`<tenant>/<team>/<pack>/<name>`, ví dụ: default/_/messaging-telegram/telegram_bot_token",
  "env_wizard.q.path.title": "Đường dẫn bí mật",
  "env_wizard.q.provider_type.desc": "Lớp provider, ví dụ: messaging.telegram.bot.",
  "env_wizard.q.provider_type.title": "Loại provider",
  "env_wizard.q.public_base_url.desc": "URL chỉ gồm origin được lưu trên môi trường (ví dụ: https://bots.example.com). Để trống để giữ giá trị hiện tại.",
  "env_wizard.q.public_base_url.title": "URL gốc công khai",
  "env_wizard.q.route_hosts.desc": "Tên máy chủ cho liên kết tuyến, phân tách bằng dấu phẩy.",
  "env_wizard.q.route_hosts.title": "Máy chủ tuyến",
  "env_wizard.q.route_path_prefixes.desc": "Các tiền tố đường dẫn HTTP, phân tách bằng dấu phẩy, mỗi tiền tố bắt đầu bằng `/` (ví dụ: /legal).",
  "env_wizard.q.route_path_prefixes.title": "Tiền tố đường dẫn tuyến",
  "env_wizard.q.route_team.desc": "Nhóm cho bộ chọn tenant của liên kết tuyến — đặt cùng với `route_tenant`.",
  "env_wizard.q.route_team.title": "Nhóm tuyến",
  "env_wizard.q.route_tenant.desc": "Tenant cho bộ chọn tenant của liên kết tuyến — đặt cùng với `route_team`.",
  "env_wizard.q.route_tenant.title": "Tenant tuyến",
  "env_wizard.q.secret_refs.desc": "Các tham chiếu bí mật được chuyển tiếp khi tạo endpoint, phân tách bằng dấu phẩy.",
  "env_wizard.q.secret_refs.title": "Tham chiếu bí mật",
  "env_wizard.q.secrets.desc": "Các mục bí mật trong dev-store. Giá trị của mỗi bí mật đến từ một biến môi trường được đặt tên hoặc từ giá trị bạn dán vào — các giá trị không bao giờ đi vào manifest.",
  "env_wizard.q.secrets.title": "Bí mật",
  "env_wizard.q.source.desc": "`env` đọc giá trị từ một biến môi trường được đặt tên tại thời điểm áp dụng; `paste` cho phép bạn nhập giá trị tương tác — giá trị được lưu trong kho bí mật của env, không bao giờ trong manifest.",
  "env_wizard.q.source.title": "Nguồn bí mật",
  "env_wizard.q.trust_root_bootstrap.desc": "Gieo trust root của môi trường bằng khóa operator cục bộ (idempotent; bắt buộc một lần trước khi các gói có thể được staged).",
  "env_wizard.q.trust_root_bootstrap.title": "Khởi tạo gốc tin cậy?",
  "env_wizard.q.webchat_gui.desc": "Phục vụ bảng điều khiển webchat tích hợp để bạn có thể trò chuyện với môi trường này bằng cách mở URL của nó trong trình duyệt. Bật mặc định cho `local`; đường dẫn chat chỉ dành cho loopback và không xác thực, nên hãy tắt nó đối với các môi trường được hiển thị trên URL công khai trừ khi bạn chủ ý làm vậy.",
  "env_wizard.q.webchat_gui.title": "Thêm GUI webchat?",
  "env_wizard.q.welcome_bundle_id.desc": "Đặt ba trường welcome_* cùng nhau (hoặc không đặt trường nào).",
  "env_wizard.q.welcome_bundle_id.title": "Luồng chào mừng: id bundle",
  "env_wizard.q.welcome_flow_id.desc": "Đặt ba trường welcome_* cùng nhau (hoặc không đặt trường nào).",
  "env_wizard.q.welcome_flow_id.title": "Luồng chào mừng: id luồng",
  "env_wizard.q.welcome_pack_id.desc": "Đặt ba trường welcome_* cùng nhau (hoặc không đặt trường nào).",
  "env_wizard.q.welcome_pack_id.title": "Luồng chào mừng: id gói",
  "env_wizard.secrets.choose": "Với mỗi mục, chọn nguồn lấy giá trị: một biến môi trường\ncó tên, hoặc dán giá trị ngay bây giờ. Các giá trị đã dán được lưu trong kho bí mật\ncủa môi trường — không bao giờ được ghi vào manifest.",
  "env_wizard.secrets.entry": "{} — {} (bundle: {}){}",
  "env_wizard.secrets.envvar_prompt": "tên biến môi trường [{}]: ",
  "env_wizard.secrets.envvar_required": "Cần có tên biến môi trường.",
  "env_wizard.secrets.keep_env_note": "ghi chú: giữ bí mật hiện có `{}` (bundle không được dựng lại)",
  "env_wizard.secrets.keep_paste_note": "ghi chú: giữ bí mật đã dán hiện có `{}` (bundle không được dựng lại)",
  "env_wizard.secrets.need": "Bí mật — các bundle đã cấu hình cần {} bí mật.",
  "env_wizard.secrets.none": "Bí mật — các bundle đã cấu hình không khai báo bí mật nào; không có gì để nhập.",
  "env_wizard.secrets.optional_suffix": " [tùy chọn]",
  "env_wizard.secrets.paste_prompt": "dán giá trị (ẩn, một dòng): ",
  "env_wizard.secrets.paste_prompt_keep": "dán giá trị (ẩn, một dòng; để trống để giữ giá trị đã lưu): ",
  "env_wizard.secrets.paste_required": "Cần có một giá trị.",
  "env_wizard.secrets.path": "đường dẫn bí mật: {}",
  "env_wizard.secrets.source_invalid": "Nhập 1 (biến môi trường) hoặc 2 (dán).",
  "env_wizard.secrets.source_prompt": "giá trị từ [1] biến môi trường hay [2] dán ngay bây giờ? [{}]: ",
  "env_wizard.wrote_manifest": "Đã ghi `{}` — manifest là tạo phẩm bền vững; hãy lưu nó trong hệ thống quản lý phiên bản.",
  "setup.answers.emitted": "Mẫu câu trả lời đã được ghi vào {}",
  "setup.answers.loaded": "Đã tải câu trả lời từ {}",
  "setup.capability.not_found": "Không tìm thấy capability '{}'",
  "setup.capability.resolved": "Đã giải quyết capability: pack_id={} stable_id={}",
  "setup.discovering_packs": "Đang khám phá các pack trong bundle...",
  "setup.dry_run.header": "Kế hoạch thiết lập (dry-run):",
  "setup.error.bundle_not_found": "Không tìm thấy bundle: {}",
  "setup.error.protocol_not_supported": "Protocol chưa được hỗ trợ: {}",
  "setup.error.version_mismatch": "Phiên bản tag ({}) không khớp với phiên bản crate ({})",
  "setup.execute.failed": "Thiết lập thất bại: {}",
  "setup.execute.success": "Thiết lập hoàn tất: {}",
  "setup.found_packs": "Tìm thấy {} pack(s): {}",
  "setup.plan.header": "Kế hoạch thiết lập:",
  "setup.plan.step.collect_answers": "Thu thập câu trả lời cho {}",
  "setup.plan.step.discover": "Khám phá các pack",
  "setup.plan.step.resolve": "Tạo manifest đã giải quyết",
  "setup.plan.step.run_setup": "Chạy flow thiết lập cho {}",
  "setup.plan.step.seed_secrets": "Khởi tạo secrets cho {}",
  "setup.plan.step.validate": "Xác thực bundle",
  "setup.plan.step.webhooks": "Đăng ký webhooks cho {}",
  "setup.plan.step.write_config": "Ghi cấu hình cho {}",
  "setup.qa.invalid_choice": "Lựa chọn không hợp lệ. Các tùy chọn: {}",
  "setup.qa.list.add_first": "Thêm {}? [y/N] ",
  "setup.qa.list.add_more": "Thêm {} khác? [y/N] ",
  "setup.qa.list.field_required_row": "Trường này là bắt buộc — cần ít nhất một hàng.",
  "setup.qa.list.max_reached": "(đã đạt tối đa {} hàng)",
  "setup.qa.list.min_required": "Cần ít nhất {} hàng — hiện có {}. Nhập 'y' để thêm hàng khác.",
  "setup.qa.list.row_dropped": "(hàng đã bị bỏ — các cột bắt buộc trống)",
  "setup.qa.list.row_header": "Hàng #{}:",
  "setup.qa.prompt.configuring": "Đang cấu hình {}: {}",
  "setup.qa.prompt.default": "(mặc định: {}) ",
  "setup.qa.prompt.field_required": "Trường này là bắt buộc.",
  "setup.qa.prompt.invalid_choice": "Lựa chọn không hợp lệ. Tùy chọn: {}",
  "setup.qa.prompt.invalid_format": "Định dạng không hợp lệ. Mẫu mong đợi: {}",
  "setup.qa.prompt.mode_advanced": " (nâng cao)",
  "setup.qa.prompt.optional_marker": " (tùy chọn)",
  "setup.qa.prompt.required_marker": " (bắt buộc)",
  "setup.qa.question_prompt": "{}",
  "setup.qa.required_field": "Trường này là bắt buộc",
  "setup.qa.secret_input": "Nhập giá trị secret (ẩn):",
  "setup.secrets.failed": "Không thể khởi tạo secrets cho provider={} tenant={}: {}",
  "setup.secrets.seeded": "Đã khởi tạo {} secret(s) cho provider={} tenant={}",
  "setup.state_store.fallback": "Sử dụng state store trong bộ nhớ (không có Redis URL)",
  "setup.state_store.upgraded": "State store đã nâng cấp lên Redis: {}",
  "ui.back": "Quay lại",
  "ui.close": "Đóng",
  "ui.configure": "Cấu hình {}",
  "ui.continue": "Tiếp tục",
  "ui.dashboard.add_scope": "Thêm phạm vi",
  "ui.dashboard.back": "Quay lại Bảng điều khiển",
  "ui.dashboard.configured": "đã cấu hình",
  "ui.dashboard.delete": "Xóa",
  "ui.dashboard.description": "Cấu hình {} nhà cung cấp trong {}. Tạo nhiều phạm vi cho các tenant/môi trường khác nhau.",
  "ui.dashboard.executed": "Đã thực thi",
  "ui.dashboard.export": "Xuất câu trả lời",
  "ui.description": "Cấu hình {} nhà cung cấp trong {}",
  "ui.discovering": "Đang tìm nhà cung cấp...",
  "ui.discovering_sub": "Đang đọc cấu hình gói",
  "ui.done": "Hoàn tất",
  "ui.execute_setup": "Thực thi thiết lập",
  "ui.executing.sub": "Đang áp dụng cấu hình cho gói",
  "ui.executing.title": "Đang chạy thiết lập...",
  "ui.export.description": "Tải cấu hình xuống dưới dạng tệp câu trả lời JSON tương thích với chế độ --answers.",
  "ui.export.download": "Tải xuống answers.json",
  "ui.export.password": "Mật khẩu mã hóa",
  "ui.export.password_help": "Nếu được đặt, các giá trị bí mật sẽ được mã hóa bằng AES-256-GCM. Bạn sẽ cần mật khẩu này khi dùng --answers --key.",
  "ui.export.password_hint": "Để trống nếu không mã hóa",
  "ui.export.title": "Xuất câu trả lời",
  "ui.field.required": "{} là bắt buộc.",
  "ui.import.decrypt_failed": "Giải mã thất bại",
  "ui.import.dropzone": "Thả answers.json vào đây hoặc nhấp để nhập",
  "ui.import.no_scopes": "Không tìm thấy phạm vi hợp lệ trong tệp.",
  "ui.import.parse_error": "Không thể phân tích tệp",
  "ui.import.password_prompt": "Tệp này chứa các bí mật đã mã hóa. Nhập mật khẩu giải mã:",
  "ui.new_setup": "Thiết lập mới",
  "ui.no_providers": "Không tìm thấy nhà cung cấp nào trong gói.",
  "ui.nothing_to_configure": "Không có gì để cấu hình.",
  "ui.pending": "Đang chờ",
  "ui.provider.configure": "Cấu hình {}",
  "ui.q.api_base_url": "URL cơ sở API",
  "ui.q.base_url": "URL cơ sở",
  "ui.q.channel_id": "ID kênh",
  "ui.q.default_channel": "Kênh mặc định",
  "ui.q.default_room_id": "ID phòng mặc định",
  "ui.q.default_to_person_email": "Email người nhận mặc định",
  "ui.q.enabled": "Bật nhà cung cấp",
  "ui.q.jwt_signing_key": "Khóa ký JWT",
  "ui.q.jwt_signing_key.help": "Khóa bí mật dùng để ký token Direct Line. Dùng bất kỳ chuỗi ngẫu nhiên nào (ví dụ: openssl rand -hex 32).",
  "ui.q.mode": "Chế độ",
  "ui.q.ms_bot_app_id": "ID ứng dụng Bot",
  "ui.q.ms_bot_app_id.help": "ID ứng dụng Microsoft Bot từ đăng ký Azure Bot Service",
  "ui.q.ms_bot_app_password": "Mật khẩu ứng dụng Bot",
  "ui.q.oauth_custom_auth_url": "URL ủy quyền",
  "ui.q.oauth_custom_client_id": "ID ứng dụng khách",
  "ui.q.oauth_custom_label": "Tên hiển thị của nhà cung cấp",
  "ui.q.oauth_custom_scopes": "Phạm vi",
  "ui.q.oauth_custom_token_url": "URL token",
  "ui.q.oauth_enable_custom": "Bật nhà cung cấp OIDC tùy chỉnh",
  "ui.q.oauth_enable_github": "Bật đăng nhập GitHub",
  "ui.q.oauth_enable_google": "Bật đăng nhập Google",
  "ui.q.oauth_enable_microsoft": "Bật đăng nhập Microsoft",
  "ui.q.oauth_enabled": "Bật đăng nhập OAuth",
  "ui.q.oauth_enabled.help": "Yêu cầu người dùng đăng nhập trước khi truy cập chat",
  "ui.q.oauth_github_client_id": "ID ứng dụng khách GitHub",
  "ui.q.oauth_github_client_secret": "Mã bí mật ứng dụng khách GitHub",
  "ui.q.oauth_google_client_id": "ID ứng dụng khách Google",
  "ui.q.oauth_google_client_secret": "Mã bí mật ứng dụng khách Google",
  "ui.q.oauth_microsoft_client_id": "ID ứng dụng khách Microsoft",
  "ui.q.oauth_microsoft_client_secret": "Mã bí mật ứng dụng khách Microsoft",
  "ui.q.public_base_url": "URL cơ sở công khai",
  "ui.q.public_base_url.help": "URL công khai cho callback webhook (ví dụ: https://xxxx.trycloudflare.com)",
  "ui.q.route": "Tuyến",
  "ui.q.slack_app_id": "ID ứng dụng Slack",
  "ui.q.slack_bot_token": "Token bot Slack",
  "ui.q.slack_configuration_token": "Token cấu hình Slack",
  "ui.q.team_id": "ID nhóm",
  "ui.q.tenant_channel_id": "ID kênh tenant",
  "ui.q.webex_bot_token": "Token bot Webex",
  "ui.questions": "câu hỏi",
  "ui.result.closed": "Thiết lập đã đóng.",
  "ui.result.closed_sub": "Bạn có thể đóng tab này.",
  "ui.result.fail.description": "Đã xảy ra sự cố trong quá trình thiết lập.",
  "ui.result.fail.title": "Thiết lập thất bại",
  "ui.result.log": "Nhật ký",
  "ui.result.manual_steps": "Cần thực hiện các bước thủ công",
  "ui.result.output": "Đầu ra",
  "ui.result.success.description": "Gói đã được cấu hình thành công.",
  "ui.result.success.title": "Thiết lập hoàn tất",
  "ui.review.description": "Xem lại cấu hình trước khi áp dụng cho gói.",
  "ui.review.no": "Không",
  "ui.review.secret_mask": "********",
  "ui.review.title": "Xem lại & Thực thi",
  "ui.review.yes": "",
  "ui.review_execute": "Xem lại & Thực thi",
  "ui.scope.description": "Cấu hình tenant, môi trường và nhóm đích cho thiết lập này.",
  "ui.scope.detected_tenant": "Đã phát hiện từ bundle: {}",
  "ui.scope.env": "Môi trường",
  "ui.scope.env_help": "Phải khớp với GREENTIC_ENV được runtime sử dụng (dev, local, test).",
  "ui.scope.hint": "Các giá trị này xác định nơi lưu trữ bí mật và cấu hình. Hãy đảm bảo chúng khớp với cài đặt runtime của bạn.",
  "ui.scope.team": "Nhóm",
  "ui.scope.team_help": "Để trống để dùng mặc định. Dùng để đặt phạm vi bí mật theo nhóm.",
  "ui.scope.tenant": "Tenant",
  "ui.scope.title": "Phạm vi thiết lập",
  "ui.select_action": "Chọn một hành động để bắt đầu.",
  "ui.shared.description": "Những câu hỏi này áp dụng cho tất cả nhà cung cấp.",
  "ui.shared.title": "Cấu hình dùng chung",
  "ui.start_config": "Bắt đầu cấu hình",
  "ui.title": "Thiết lập Greentic"
}