ワンクリックで
flow-code-i18n
Use when adding multi-language support, locale formatting, RTL layouts, or any internationalization/localization work.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when adding multi-language support, locale formatting, RTL layouts, or any internationalization/localization work.
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
Internal pipeline engine. Manages the entire pipeline (brainstorm, plan, plan-review, work, impl-review, close) via flowctl phase commands. Invoked by /flow-code:go.
Use when exploring requirements before planning. Pressure-tests ideas, generates approaches, and outputs a requirements doc for /flow-code:plan. Supports --auto mode for AI self-interview (no human input needed).
Use when exploring requirements before planning. Pressure-tests ideas, generates approaches, and outputs a requirements doc for /flow-code:plan.
Use when planning features or designing implementation. Triggers on /flow-code:plan with text descriptions or Flow IDs.
Use when reviewing code changes — self-review in Worker Phase 6, impl-review, or PR review. Applies five-axis scoring with severity labels.
Use when implementing a plan or working through a spec. Triggers on /flow-code:work with Flow IDs.
SOC 職業分類に基づく
| name | flow-code-i18n |
| description | Use when adding multi-language support, locale formatting, RTL layouts, or any internationalization/localization work. |
| tier | 2 |
| user-invocable | true |
Build software that works across languages, regions, and cultures from day one. i18n is architecture — retrofitting it is 10x harder than building it in. Separate content from code, respect locale conventions, and test with real translations.
When NOT to use:
// Bad: hardcoded string
<button>Submit Order</button>
// Good: translation key
<button>{t('order.submit')}</button>
# Simple
greeting = Hello, {name}!
# Plural
items = {count, plural,
=0 {No items}
one {1 item}
other {{count} items}
}
# Select (gender, type, etc.)
greeting = {gender, select,
male {He joined}
female {She joined}
other {They joined}
}
locales/
en/
common.json # Shared strings
auth.json # Login, register
orders.json # Order-specific
zh-CN/
common.json
auth.json
orders.json
ar/ # RTL language
common.json
Key naming: namespace.section.action → order.checkout.submit_button
Never format manually. Use Intl APIs:
// Date
new Intl.DateTimeFormat('zh-CN', { dateStyle: 'long' }).format(date)
// → "2026年4月8日"
// Number
new Intl.NumberFormat('de-DE').format(1234567.89)
// → "1.234.567,89"
// Currency
new Intl.NumberFormat('ja-JP', { style: 'currency', currency: 'JPY' }).format(1000)
// → "¥1,000"
// Relative time
new Intl.RelativeTimeFormat('en', { numeric: 'auto' }).format(-1, 'day')
// → "yesterday"
Rules:
/* Use logical properties (not left/right) */
.card {
margin-inline-start: 1rem; /* Good: respects text direction */
padding-inline-end: 0.5rem;
text-align: start;
}
/* Don't use physical properties */
.card {
margin-left: 1rem; /* Bad: breaks in RTL */
text-align: left;
}
Rules:
dir="auto" on user-generated contentstart/end instead of left/right in CSSdir="rtl"import { useTranslation } from 'react-i18next';
function OrderButton({ count }: { count: number }) {
const { t } = useTranslation('orders');
return <button>{t('checkout.submit', { count })}</button>;
}
// Use middleware for locale detection
// app/[locale]/layout.tsx for locale-scoped routes
| Rationalization | Reality |
|---|---|
| "We only need English" | Requirements change. Retrofitting i18n is a full rewrite of every UI string. |
| "We'll translate later" | Extracting hardcoded strings from 500 files is a month-long project. Start with keys. |
| "Date formatting is simple" | MM/DD/YYYY is US-only. The rest of the world uses different formats. Use Intl. |
| "RTL is rare" | Arabic and Hebrew serve 400M+ speakers. If you have users there, you need it. |
"Hello " + name + ", you have " + count + " items")month + "/" + day + "/" + year)margin-left instead of margin-inline-start)Intl APIs (not manual formatting)inline-start/inline-end, not left/right)