Agent skill

internationalization-i18n

Implement internationalization (i18n) and localization including message extraction, translation catalogs, pluralization rules, date/time/number formatting, RTL language support, and i18n libraries like i18next and gettext. Use for multi-language, translation, or localization needs.

Stars 151
Forks 20

Install this agent skill to your Project

npx add-skill https://github.com/aj-geddes/useful-ai-prompts/tree/main/skills/internationalization-i18n

SKILL.md

Internationalization (i18n) & Localization

Table of Contents

  • Overview
  • When to Use
  • Quick Start
  • Reference Guides
  • Best Practices

Overview

Comprehensive guide to implementing internationalization and localization in applications. Covers message translation, pluralization, date/time/number formatting, RTL languages, and integration with popular i18n libraries.

When to Use

  • Building multi-language applications
  • Supporting international users
  • Implementing language switching
  • Formatting dates, times, and numbers for different locales
  • Supporting RTL (right-to-left) languages
  • Extracting and managing translation strings
  • Implementing pluralization rules
  • Setting up translation workflows

Quick Start

Minimal working example:

typescript
// i18n.ts
import i18next from "i18next";
import Backend from "i18next-http-backend";
import LanguageDetector from "i18next-browser-languagedetector";

await i18next
  .use(Backend)
  .use(LanguageDetector)
  .init({
    fallbackLng: "en",
    debug: process.env.NODE_ENV === "development",

    interpolation: {
      escapeValue: false, // React already escapes
    },

    backend: {
      loadPath: "/locales/{{lng}}/{{ns}}.json",
    },

    detection: {
      order: ["querystring", "cookie", "localStorage", "navigator"],
      caches: ["localStorage", "cookie"],
    },
  });
// ... (see reference guides for full implementation)

Reference Guides

Detailed implementations in the references/ directory:

Guide Contents
i18next (JavaScript/TypeScript) i18next (JavaScript/TypeScript)
React-Intl (Format.js) React-Intl (Format.js)
Python i18n (gettext) Python i18n (gettext)
Date and Time Formatting Date and Time Formatting
Number and Currency Formatting Number and Currency Formatting
Pluralization Rules Pluralization Rules
RTL (Right-to-Left) Language Support RTL (Right-to-Left) Language Support
Translation Management Translation Management
Locale Detection Locale Detection
Server-Side i18n Server-Side i18n

Best Practices

✅ DO

  • Extract all user-facing strings to translation files
  • Use ICU message format for complex messages
  • Support pluralization correctly for each language
  • Use locale-aware date/time/number formatting
  • Implement RTL support for Arabic, Hebrew, etc.
  • Provide fallback language (usually English)
  • Use namespaces to organize translations
  • Test with pseudo-localization (ääçćëńţś)
  • Store locale preference (cookie, localStorage)
  • Use professional translators for production
  • Implement translation management workflow
  • Support dynamic locale switching
  • Use translation memory tools

❌ DON'T

  • Hardcode user-facing strings in code
  • Concatenate translated strings
  • Assume English grammar rules apply to all languages
  • Use generic plural forms (one/many) for all languages
  • Forget about text expansion (German is ~30% longer)
  • Store dates/times in locale-specific formats
  • Use flags to represent languages (flag ≠ language)
  • Translate technical terms without context
  • Mix translation keys with UI strings
  • Forget to translate alt text, titles, placeholders
  • Assume left-to-right layout

Expand your agent's capabilities with these related and highly-rated skills.

aj-geddes/useful-ai-prompts

websocket-implementation

Implement real-time bidirectional communication with WebSockets including connection management, message routing, and scaling. Use when building real-time features, chat systems, live notifications, or collaborative applications.

151 20
Explore
aj-geddes/useful-ai-prompts

refactor-legacy-code

Modernize and improve legacy codebases while maintaining functionality. Use when you need to refactor old code, reduce technical debt, modernize deprecated patterns, or improve code maintainability without breaking existing behavior.

151 20
Explore
aj-geddes/useful-ai-prompts

Sentiment Analysis

Classify text sentiment using NLP techniques, lexicon-based analysis, and machine learning for opinion mining, brand monitoring, and customer feedback analysis

151 20
Explore
aj-geddes/useful-ai-prompts

flask-api-development

Develop lightweight Flask APIs with routing, blueprints, database integration, authentication, and request/response handling. Use when building RESTful APIs, microservices, or lightweight web services with Flask.

151 20
Explore
aj-geddes/useful-ai-prompts

ML Model Explanation

Interpret machine learning models using SHAP, LIME, feature importance, partial dependence, and attention visualization for explainability

151 20
Explore
aj-geddes/useful-ai-prompts

Statistical Hypothesis Testing

Conduct statistical tests including t-tests, chi-square, ANOVA, and p-value analysis for statistical significance, hypothesis validation, and A/B testing

151 20
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results