Skip to content
cccskills
FreePublished on GitHub

localization-testing

Internationalization (i18n) and localization (l10n) testing for global products including translations, locale formats, RTL languages, and cultural appropriateness. Use when launching in new markets or building multi-language products.

The English summary is being prepared. Showing the original description.

proffesor-for-testing/agentic-qe515 stars(GitHub 515 + cccskills 0)

Run score Not tested

See how to install

Files included (4)

  • SKILL.md6.1 KB
  • evals/localization-testing.yaml14.6 KB
  • schemas/output.json10.6 KB
  • scripts/validate-config.json706 B

SKILL.md (original)

Review the instructions the agent will receive before you install.

Localization & Internationalization Testing

Browser engine

Browser-driven locale checks (RTL layout diffs, language-switching flows, locale-specific screenshots) should go through the qe-browser fleet skill. Example:

vibium go "$BASE_URL?lang=ar"  # Arabic, RTL
vibium wait load
node .claude/skills/qe-browser/scripts/visual-diff.js --name homepage-ar-rtl
vibium go "$BASE_URL?lang=ja"  # Japanese, CJK text expansion
node .claude/skills/qe-browser/scripts/visual-diff.js --name homepage-ja

See .claude/skills/qe-browser/SKILL.md for the full reference.

<default_to_action> When testing multi-language/region support:

  1. VERIFY translation coverage (all strings translated)
  2. TEST locale-specific formats (date, time, currency, numbers)
  3. VALIDATE RTL layout (Arabic, Hebrew)
  4. CHECK character encoding (UTF-8, unicode)
  5. CONFIRM cultural appropriateness (icons, colors, content)

Quick i18n Checklist:

  • All user-facing strings externalized
  • No hardcoded text in code
  • Date/time/currency formatted per locale
  • RTL languages flip layout correctly
  • Unicode characters display properly

Critical Success Factors:

  • Don't hardcode strings - externalize everything
  • Test with real speakers, not just translation files
  • RTL requires mirrored UI layout </default_to_action>

Quick Reference Card

When to Use

  • Launching in new markets
  • Adding language support
  • Before international releases
  • After UI changes

Translation Coverage Testing

test('all strings are translated', () => {
  const enKeys = Object.keys(translations.en);
  const frKeys = Object.keys(translations.fr);
  const esKeys = Object.keys(translations.es);

  // All locales have same keys
  expect(frKeys).toEqual(enKeys);
  expect(esKeys).toEqual(enKeys);
});

test('no missing translation placeholders', async ({ page }) => {
  await page.goto('/?lang=fr');
  const text = await page.textContent('body');

  // Should not see placeholder keys
  expect(text).not.toContain('translation.missing');
  expect(text).not.toMatch(/\{\{.*\}\}/); // {{key}} format
});

Date/Time/Currency Formats

test('date formats by locale', () => {
  const date = new Date('2025-10-24');

  expect(formatDate(date, 'en-US')).toBe('10/24/2025');
  expect(formatDate(date, 'en-GB')).toBe('24/10/2025');
  expect(formatDate(date, 'ja-JP')).toBe('2025/10/24');
});

test('currency formats by locale', () => {
  const amount = 1234.56;

  expect(formatCurrency(amount, 'en-US', 'USD')).toBe('$1,234.56');
  expect(formatCurrency(amount, 'de-DE', 'EUR')).toBe('1.234,56 €');
  expect(formatCurrency(amount, 'ja-JP', 'JPY')).toBe('¥1,235');
});

RTL (Right-to-Left) Testing

test('layout flips for RTL languages', async ({ page }) => {
  await page.goto('/?lang=ar'); // Arabic

  const dir = await page.locator('html').getAttribute('dir');
  expect(dir).toBe('rtl');

  // Navigation should be on right
  const nav = await page.locator('nav');
  const styles = await nav.evaluate(el =>
    window.getComputedStyle(el)
  );
  expect(styles.direction).toBe('rtl');
});

test('icons/images appropriate for RTL', async ({ page }) => {
  await page.goto('/?lang=he'); // Hebrew

  // Back arrow should point right in RTL
  const backIcon = await page.locator('.back-icon');
  expect(await backIcon.getAttribute('class')).toContain('rtl-flipped');
});

Unicode Character Support

test('supports unicode characters', async ({ page }) => {
  // Japanese
  await page.fill('#name', '山田太郎');
  await page.click('#submit');

  const saved = await db.users.findOne({ /* ... */ });
  expect(saved.name).toBe('山田太郎');

  // Arabic
  await page.fill('#name', 'محمد');
  // Emoji
  await page.fill('#bio', '👋🌍');

  expect(saved.bio).toBe('👋🌍');
});

Agent-Driven Localization Testing

// Comprehensive localization validation
await Task("Localization Testing", {
  url: 'https://example.com',
  locales: ['en-US', 'fr-FR', 'de-DE', 'ja-JP', 'ar-SA'],
  checks: ['translations', 'formats', 'rtl', 'unicode'],
  detectHardcodedStrings: true
}, "qe-test-generator");

// Returns:
// {
//   locales: 5,
//   missingTranslations: 3,
//   formatIssues: 1,
//   rtlIssues: 0,
//   hardcodedStrings: ['button.submit', 'header.title']
// }

Agent Coordination Hints

Memory Namespace

aqe/localization-testing/
├── translations/*       - Translation coverage
├── formats/*            - Locale-specific formats
├── rtl-validation/*     - RTL layout checks
└── unicode/*            - Character encoding tests

Fleet Coordination

const l10nFleet = await FleetManager.coordinate({
  strategy: 'localization-testing',
  agents: [
    'qe-test-generator',   // Generate l10n tests
    'qe-test-executor',    // Execute across locales
    'qe-visual-tester'     // RTL visual validation
  ],
  topology: 'parallel'
});

Related Skills


Remember

With Agents: Agents validate translation coverage, detect hardcoded strings, test locale-specific formatting, and verify RTL layouts automatically across all supported languages.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Use when running comprehensive WCAG accessibility audits with axe-core + pa11y + Lighthouse, generating context-aware remediation, or testing video accessibility. Supports 3-tier browser cascade with graceful degradation.

The English summary is being prepared. Showing the original description.

proffesor-for-testing/agentic-qe515Updated Oct 26, 2026

WCAG 2.2 compliance testing, screen reader validation, and inclusive design verification. Use when ensuring legal compliance (ADA, Section 508), testing for disabilities, or building accessible applications for 1 billion disabled users globally.

The English summary is being prepared. Showing the original description.

proffesor-for-testing/agentic-qe515Updated Oct 26, 2026

Master advanced AgentDB features including QUIC synchronization, multi-database management, custom distance metrics, hybrid search, and distributed systems integration. Use when building distributed AI systems, multi-agent coordination, or advanced vector search applications.

The English summary is being prepared. Showing the original description.

proffesor-for-testing/agentic-qe515Updated Oct 26, 2026

Create and train AI learning plugins with AgentDB's 9 reinforcement learning algorithms. Includes Decision Transformer, Q-Learning, SARSA, Actor-Critic, and more. Use when building self-learning agents, implementing RL, or optimizing agent behavior through experience.

The English summary is being prepared. Showing the original description.

proffesor-for-testing/agentic-qe515Updated Oct 26, 2026

Implement persistent memory patterns for AI agents using AgentDB. Includes session memory, long-term storage, pattern learning, and context management. Use when building stateful agents, chat systems, or intelligent assistants.

The English summary is being prepared. Showing the original description.

proffesor-for-testing/agentic-qe515Updated Oct 26, 2026

Optimize AgentDB performance with quantization (4-32x memory reduction), HNSW indexing (150x faster search), caching, and batch operations. Use when optimizing memory usage, improving search speed, or scaling to millions of vectors.

The English summary is being prepared. Showing the original description.

proffesor-for-testing/agentic-qe515Updated Oct 26, 2026

See all skills by proffesor-for-testing

Report a problem with this skill