Lewati ke konten utama
Halaman ini belum tersedia dalam bahasa Anda, atau terjemahannya sedang menunggu tinjauan teknis. Teks asli dalam bahasa Inggris ditampilkan di bawah. Buka halaman berbahasa Inggris

Localized block messages

The human-readable reason Control Zero shows when a rule denies, warns on, or observes a tool call is plain UTF-8 text. You can write it in any language, and you can serve more than one language from a single policy.

The translations are pure in-binary maps with no runtime internationalization library and no network calls, so they behave identically on Control Zero Cloud and in restricted-network environments.

Per-rule overrides with reason_localized​

Add a reason_localized map to any rule. It is keyed by locale; the value is the message shown when that locale is active. Keep reason as the English (or default-language) text:

version: '1'
rules:
- deny: 'delete_*'
reason: 'Deletes need human approval'
reason_localized:
ko: '삭제는 사람의 승인이 필요합니다'
- allow: '*'

Select the active locale with the CONTROLZERO_LOCALE environment variable, read by every SDK and the hook-check CLI:

export CONTROLZERO_LOCALE=ko

Region subtags are tolerated: ko-KR and ko_KR both resolve to the ko entry.

Behavior and guarantees​

  • When CONTROLZERO_LOCALE is unset, or the active locale has no entry in a rule's reason_localized, the plain reason is used. Existing policies are unaffected and the English text is byte-identical to before.
  • Control Zero's own built-in messages (no-rule-match, DLP block, empty/observe bundle, tamper) ship an English default plus a Korean translation, selected by the same CONTROLZERO_LOCALE variable.
  • Localization is display-only. It never changes which rule matches, the decided effect, or the machine-readable reason_code that automation should branch on.
  • Hosted (signed-bundle) policies carry reason_localized end-to-end: the backend serializes it and every SDK preserves it through bundle translation.
  • The localized message is emitted verbatim as UTF-8 in the hook output (for example the Claude Code permissionDecisionReason), not escaped.

Supported locales​

LocaleStatus
enDefault. Always present for every built-in message.
koKorean. Built-in message pack shipped; review with your localizers.

Any locale you author in reason_localized works immediately. The built-in system-message pack currently ships English and Korean; additional languages can be added to the pack.

catatan

The bundled Korean translations are a professional draft. Have your own reviewers confirm the wording before relying on it in production.