hebrew-i18n

Implement Hebrew internationalization with plural rules, RTL CSS, and bidirectional text handling.

Updated Sep 15, 2026
One-click install
npx skills add https://github.com/Nadav011/nadavai-claude --skill hebrew-i18n-nadav011
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: hebrew-i18n
Source: https://github.com/Nadav011/nadavai-claude/tree/main/plugins/nadavai/skills/hebrew-i18n
Command: npx skills add https://github.com/Nadav011/nadavai-claude --skill hebrew-i18n-nadav011

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes scripts (resource) and references (resource) components.

What problem does it solve? Adding Hebrew to a web or mobile app breaks in predictable ways: plural forms ignore the Hebrew dual category, dates render in American MM/DD/YYYY order, currency strings contain invisible direction marks that fail tests, and RTL layouts break when direction is set on the wrong element. This Skill provides verified, framework-specific patterns for each of these problems. ## Core Features & Use Cases - Framework setup guides: Step-by-step i18n configuration for react-intl, react-i18next, vue-i18n, next-intl (Next.js App Router), Angular, and React Native, including the exact plural syntax each library expects. - Hebrew pluralization: CLDR one/two/other rules with dual forms (יומיים, שעתיים), ICU MessageFormat patterns, and edge cases for decimals and zero. - Locale formatting: Intl.DateTimeFormat and Intl.NumberFormat patterns for he-IL dates, Hebrew calendar dates, and ILS currency, including the hidden U+200F marks that break string comparisons. - RTL and bidi handling: CSS logical properties, Tailwind RTL utilities, dir attribute strategies, and fixes for phone numbers, URLs, and mixed Hebrew/English content. - Use Case: A developer adding Hebrew to a Next.js app uses the Skill to wire up next-intl with a [locale] segment, set dir="rtl" on the html element, write ICU plural messages, and scaffold the he.json file with the bundled generator script. ## Quick Start Ask the AI to add Hebrew language support with RTL layout and correct plural forms to your React, Vue, or Next.js application.

Frequently Asked Questions about hebrew-i18n

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add Hebrew language support to a React app?

Set up react-intl with ICU plural messages or react-i18next with _one/_two/_other key suffixes, create a he.json message file, and set lang and dir="rtl" on document.documentElement when the locale changes. Replace hardcoded strings with semantic translation keys like t('form.submit').

How do Hebrew plural forms work in i18n frameworks?

Hebrew uses three CLDR categories: one (1 and decimals below 1), two (exactly 2, with dual forms like יומיים), and other (0, 3+, and decimals of 1.0+). Use ICU MessageFormat for react-intl and next-intl, pipe-separated cases with a custom plural rule for vue-i18n, and _one/_two/_other key suffixes for i18next.

Does vue-i18n support Hebrew pluralization automatically?

No. vue-i18n 11.x selects plural cases by position, not by Intl.PluralRules, so three cases are read as zero | one | other. Register a Hebrew rule mapping 1, 2, and other counts to the three cases via pluralRules with legacy: false, or pluralizationRules in legacy mode.

Why does my formatted Israeli currency string fail equality tests?

Intl.NumberFormat with he-IL and ILS inserts invisible U+200F direction marks and a U+00A0 no-break space into the output. Strip the marks with /[\u200E\u200F]/g for text comparisons, and never parseFloat the formatted string since it stops at the grouping comma.

How do I fix phone numbers displaying wrong in Hebrew RTL text?

Wrap phone numbers, URLs, and emails in spans with dir="ltr" so the bidi algorithm keeps digits in order. Use the bdi element for user-generated content of unknown direction, and dir="auto" on free-text inputs so the browser picks direction from the first strong character.

Should I set dir="rtl" on the body or a wrapper div?

Neither. RTL direction must be set on the root html element to properly affect scrollbars, default text alignment, and CSS logical properties. In single-page apps that switch language at runtime, update document.documentElement.dir whenever the locale changes.