rtl-right-to-left-i18n-cursorrules — правило Cursor для RTL-вёрстки
Правило Cursor, которое заставляет агента писать CSS и Tailwind по логическим свойствам, а не по left/right. Пригодится, если проект должен работать на арабском, иврите, персидском или урду.
.cursor/rules/rtl-right-to-left-i18n-cursorrules-prompt-file.mdcЧто делает rtl-right-to-left-i18n-cursorrules-prompt-file
Правило описывает восемь блоков требований. Логические CSS-свойства вместо физических: margin-inline-start вместо margin-left, inset-inline-start вместо left. То же для Tailwind — ms-4, me-4, ps-4, pe-4, start-0, end-0. Отдельный пункт про React Native: paddingStart вместо paddingLeft.
Дальше идут двунаправленный текст и иконки. Смешанные скрипты правило советует оборачивать в <bdi>, а направленные иконки — стрелки, шевроны, кнопку «назад» — отражать в RTL. Домашняя иконка, настройки и поиск остаются как есть. Строки не хардкодить, числа и даты гнать через Intl.NumberFormat и Intl.DateTimeFormat, на корне ставить dir="auto" или dir="rtl". Карусели, слайдеры, прогресс-бары и свайпы в RTL должны разворачиваться.
Для проверки правило ссылается на rtlify-ai: npx rtlify-ai init ставит правила, npx rtlify-ai check ищет нарушения, npx rtlify-ai fix правит их. Тестировать советует на живом RTL-контенте, а не на отражённом LTR — иначе баги в двунаправленном тексте просто не всплывут. Файл кладётся в .cursor/rules/ с расширением .mdc, поэтому без Cursor он не заработает.
Какие задачи решает
- перевести физические CSS-свойства в логические без ручного прохода по файлам
- найти места, где Tailwind-классы
ml-иpr-ломают RTL-раскладку - обернуть пользовательские имена в
<bdi>, чтобы текст не разъезжался - развернуть карусели, слайдеры и свайпы при переключении на RTL
- отразить стрелки и шевроны, не тронув иконки поиска и настроек
Примеры запросов агенту
- Проверь вёрстку этого компонента на RTL и замени физические свойства на логические
- Настрой Tailwind-классы в
src/components/Card.tsxпод RTL - Прогони
npx rtlify-ai checkи почини найденные нарушения
Как установить rtl-right-to-left-i18n-cursorrules-prompt-file
Вручную: положить файлы
.cursor/rules/rtl-right-to-left-i18n-cursorrules-prompt-file.mdcВо frontmatter: description, globs, alwaysApply
Вручную: положить файлы
.claude/rules/rtl-right-to-left-i18n-cursorrules-prompt-file.mdПоле paths во frontmatter ограничивает файлы: globs из источника → paths
AGENTS.md
Codex читает AGENTS.md: вставьте текст правила туда
Вручную: положить файлы
.github/instructions/rtl-right-to-left-i18n-cursorrules-prompt-file.instructions.mdПоле applyTo задаёт, к каким файлам применять: globs из источника → applyTo
Вручную: положить файлы
.devin/rules/rtl-right-to-left-i18n-cursorrules-prompt-file.mdВручную: положить файлы
.clinerules/rtl-right-to-left-i18n-cursorrules-prompt-file.mdПо шагам, с командами для каждой платформы: Cursor rules: файлы .mdc, четыре режима и замена .cursorrules
Вопросы о rtl-right-to-left-i18n-cursorrules-prompt-file
Как установить rtl-right-to-left-i18n-cursorrules в Cursor?
Создайте файл .cursor/rules/rtl-right-to-left-i18n-cursorrules-prompt-file.mdc и вставьте в него содержимое правила. Cursor подхватит его из папки .cursor/rules/.
Что делает это правило?
Задаёт агенту набор требований по RTL: логические CSS-свойства, логические Tailwind-утилиты, <bdi> для смешанного текста, разворот направленных иконок и проверку через rtlify-ai.
Обязателен ли rtlify-ai для работы правила?
Нет, это отдельный инструмент для автоматического поиска и правки нарушений. Правило работает и без него, но тогда проверять RTL придётся вручную.
Исходный текст
rtl-right-to-left-i18n-cursorrules-prompt-file.mdc · CC0-1.0
---
description: "Cursor rules for RTL development with logical CSS properties, Tailwind logical classes, bidirectional text, and automated auditing via rtlify-ai."
globs: **/*
alwaysApply: false
---
# RTL (Right-to-Left) Development Rules
You are an expert in building applications that support RTL (Right-to-Left) languages including Hebrew, Arabic, Persian, and Urdu.
## Core Rules
### 1. Logical CSS Properties
Always use CSS logical properties instead of physical ones:
- `margin-inline-start` not `margin-left`
- `padding-inline-end` not `padding-right`
- `inset-inline-start` not `left`
- `border-inline-start` not `border-left`
### 2. Tailwind CSS Logical Classes
Use logical Tailwind utilities:
- `ms-4` not `ml-4` (margin-start)
- `me-4` not `mr-4` (margin-end)
- `ps-4` not `pl-4` (padding-start)
- `pe-4` not `pr-4` (padding-end)
- `start-0` not `left-0`
- `end-0` not `right-0`
### 3. React Native Logical Properties
Use logical properties in React Native styles:
- `paddingStart` not `paddingLeft`
- `paddingEnd` not `paddingRight`
- `marginStart` not `marginLeft`
- `marginEnd` not `marginRight`
### 4. Bidirectional Text Safety
Wrap mixed-script text with `<bdi>` tags:
```html
<p>User <bdi>{userName}</bdi> posted a comment</p>
```
### 5. Directional Icons
Flip directional icons (arrows, chevrons, back buttons) in RTL mode.
Non-directional icons (home, settings, search) should NOT be flipped.
### 6. Internationalization
- Never hardcode strings — use translation functions (`t()`, `intl.formatMessage()`)
- Use `Intl.NumberFormat` for numbers and currency
- Use `Intl.DateTimeFormat` for dates
- Set `dir="auto"` or `dir="rtl"` on root elements
### 7. RTL-Aware Components
- Carousels, sliders, and progress bars must reverse direction in RTL
- Swipe gestures must reverse in RTL
- Charts and graphs with directional axes must flip
### 8. Testing
- Always test with `dir="rtl"` on the root element
- Verify with actual RTL content, not just flipped LTR
## Automated RTL Auditing
For automated RTL violation detection and fixing, use [rtlify-ai](https://github.com/idanlevi1/rtlify):
```bash
npx rtlify-ai init # Install RTL rules
npx rtlify-ai check # Find violations
npx rtlify-ai fix # Auto-fix violations
```
© PatrickJS · CC0-1.0 · PatrickJS/awesome-cursorrules