원클릭으로
system-i18n-coding
Use when writing localizable PHP code in Zolinga modules — dgettext/dngettext usage, domain naming, and context separators.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Use when writing localizable PHP code in Zolinga modules — dgettext/dngettext usage, domain naming, and context separators.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when creating or updating MCP resources — static files exposed to MCP clients via `resources/list` and `resources/read`. Covers `.meta.json` descriptors, URI rewriting, dynamic resources via `mcp:resources/list` event hook, and the `mcp-system` scheme.
Use when exposing an existing `origin: ["remote"]` listener as an MCP tool without rewriting the handler. Covers the one-line manifest pattern that re-uses the same class+method, plus the minimal schema work needed to satisfy `McpToolsListHandler::collectTools()`. Complements system-create-mcp-tool (which covers the greenfield case).
Use when exposing a Zolinga event handler as an MCP (Model Context Protocol) tool — i.e. a method clients can invoke via JSON-RPC `tools/call`. Covers handler class, manifest binding, JSON Schemas, the `Tools\CallEvent` contract, and the `schema.response` requirement enforced by `McpToolsListHandler::collectTools()`.
Use when working with the JavaScript client-side event system in Zolinga. Covers the Event class, Api gateway, dispatching events from JS to PHP, receiving broadcastBack responses, inter-component communication via BroadcastChannel, and web component integration.
Use when adding localized strings in PHP or HTML, including gettext usage patterns and context-aware translation strings for Zolinga Intl.
Use when writing or reviewing PHP code in this repository to enforce strict typing, naming, file layout, and listener/service interface conventions.
| name | system-i18n-coding |
| description | Use when writing localizable PHP code in Zolinga modules — dgettext/dngettext usage, domain naming, and context separators. |
| argument-hint | <module-name> |
Always use the module folder name as the gettext domain. Never use _() or gettext() without a domain.
// ✅ Correct — domain is the module folder name
echo dgettext('my-module', 'Hello, world!');
// ❌ Wrong — no domain, will use the default domain
echo _('Hello, world!');
// Single string
echo dgettext('my-module', 'Hello, world!');
// Plural — picks singular/plural based on $count
echo sprintf(dngettext('my-module', 'One apple', '%d apples', $count), $count);
For ambiguous single-word strings, prepend context using "\x04" separator (end of transmission character).
echo dgettext('my-module', "Verb: submit\x04Submit");
The .po file stores the full key including the \x04 separator; translators see the context prefix.
locale/ folders or .po/.mo files manually — use the CLI commands (see zolinga-intl module docs)._() or gettext() without domain — always use dgettext() with the module name as domain.The zolinga-intl module must be installed. If not present:
bin/zolinga install --module=zolinga-intl
For JavaScript localization, static HTML translation, web component i18n, the $api->locale service, and the extract/compile pipeline, see the zolinga-intl module documentation:
modules/zolinga-intl/wiki/Zolinga Intl.mdmodules/zolinga-intl/wiki/Zolinga Intl/PHP.mdmodules/zolinga-intl/wiki/Zolinga Intl/JavaScript.mdmodules/zolinga-intl/wiki/Zolinga Intl/HTML.mdmodules/zolinga-intl/wiki/Zolinga Intl.md — primary i18n documentationmodules/zolinga-intl/src/LocaleService.php — locale service implementation