본문으로 건너뛰기
cccskills
무료GitHub에 공개

i18n-setup

i18n decision guide: library choice, namespaces, key conventions, LatAm locales, lazy loading, anti-patterns.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SebastianLuser/claude-code-arcane스타 3(GitHub 3 + cccskills 0)

실행 점수 미검증

설치 방법 보기

포함된 파일(1)

  • SKILL.md3.4 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

i18n-setup — Internationalization Decision Guide

Markets: ES (AR/MX/CO/CL), PT (BR), EN. ES is source-of-truth locale. Use when: >1 country/language, backend content needs translation, local formats required. Skip when: monolingual MVP without multi-country roadmap, or user-generated content.

Library Choice

LayerLibrary
Web (React+Vite)i18next + react-i18next
Mobile (RN/Expo)i18next + react-i18next + expo-localization
Backend Gogo-i18n/v2 (nicksnyder)
Backend TSi18next server-side or intl-messageformat
FormattingNative Intl.* (DateTimeFormat, NumberFormat) — no external deps

Rejected: react-intl (verbose), lingui (large teams only), next-intl (Next.js only).

Namespace Strategy

Split by feature: common, auth, courses, notifications. One JSON per namespace per locale. Split when: 50+ keys, route-specific loading, separate team ownership. Keep shared UI (buttons, labels) in common.

Key Naming

Pattern: feature.component.element or feature.action.state Good: courses.list.empty, courses.create.error.duplicate | Bad: button1, text_here

Pluralization, Interpolation, and Formatting

  • CLDR plural suffixes: _zero, _one, _other (auto-handles all CLDR rules)
  • Interpolation ({{name}}) — never concatenate translated strings
  • HTML in translations: <Trans> with component mappings, never raw HTML in t()
  • Use native Intl.* exclusively for dates/numbers/currency
  • Currency: AR→ARS, BR→BRL, MX→MXN, Intl→USD
  • DB: store amount (integer minor units) + currency (ISO 4217)
  • RN: enable Hermes intl (jsEngine: "hermes" + intl: true)

LatAm Considerations

  • es-AR ≠ es-MX for currency/dates — always full BCP47 (pt-BR, not pt_br)
  • Voseo/tuteo differs by country — locale-specific strings
  • Portuguese tends longer — test for UI overflow

Detection, Lazy Loading, and Workflow

Detection order: 1. Query param 2. User pref (DB) 3. Cookie/localStorage 4. Browser locale 5. Fallback es. Persist on change, sync to backend on login. Lazy loading: web — always per route (i18next-http-backend); mobile — bundle if <50KB, dynamic otherwise; CDN with versioned cache. Workflow: dev adds ES key → i18next-parser in CI → Crowdin/Lokalise → auto-PR. CI fails on missing keys. Security: never interpolate user HTML in t(), validate locale against allowlist, log key+locale not rendered text.

Anti-patterns

  • Hardcoded strings mixed with t() — breaks extraction
  • Concatenating translations — use interpolation
  • Skipping pluralization — "1 cursos"
  • Manual date/currency formatting instead of Intl
  • No fallback language — missing key = broken UI
  • Language change not persisted — lost on reload
  • Assuming 1 language = 1 locale (es-AR ≠ es-MX)

Checklist

  • Library chosen per layer
  • Namespaces by feature, lazy-loaded by route
  • Plural keys use _one/_other/_zero
  • Formatting via native Intl APIs
  • Detection + persistence configured
  • CI extraction, missing keys fail build
  • ES as source-of-truth, translation platform integrated

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Plan, design, and implement A/B tests and experiments with statistical rigor. Covers hypothesis frameworks, sample sizing, metrics, and result analysis.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SebastianLuser/claude-code-arcane32026년 10월 27일 업데이트

Web/mobile accessibility decision guide: WCAG 2.2 AA, ARIA, keyboard nav, focus management, contrast, testing. Use for: a11y, accessibility, wcag, aria, screen reader, keyboard, contrast.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SebastianLuser/claude-code-arcane32026년 10월 27일 업데이트

Generate, iterate, and scale ad creative for paid advertising across Google, Meta, LinkedIn, and X. Covers platform specs, creative frameworks, and quality validation.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SebastianLuser/claude-code-arcane32026년 10월 27일 업데이트

Musica interactiva para juegos: layering vertical, re-secuenciacion horizontal, stingers, reglas de transicion con sync points, y mapeo de estados de gameplay a musica. Usar para: musica adaptativa, sistema de musica dinamica, transiciones musicales, combat music.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SebastianLuser/claude-code-arcane32026년 10월 27일 업데이트

Design multi-agent systems, create agent architectures, define communication patterns, and build autonomous agent workflows with structured evaluation frameworks.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SebastianLuser/claude-code-arcane32026년 10월 27일 업데이트

Inter-agent communication protocol for C-suite agent teams. Defines invocation syntax, loop prevention, isolation rules, response formats, and quality loops.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

SebastianLuser/claude-code-arcane32026년 10월 27일 업데이트

SebastianLuser의 스킬 모두 보기

이 스킬의 문제 신고