--- name: persian-ui-copy description: > Write Persian (Farsi) UI microcopy: button labels, field labels and placeholders, validation and error messages, empty states, loading and success toasts, confirmations, notifications. Use whenever generating or translating any user-facing string for an Iranian product (متن دکمه، پیام خطا، لیبل فرم، ترجمه‌ی رابط کاربری، فارسی‌سازی). Includes an English→Persian UI glossary so «Login» becomes «ورود» and «Submit» becomes «ثبت», never a literal translation. --- # Persian UI copy (متن رابط کاربری) Interface strings are short, so every wrong word is loud. Models produce two failure types: literal translations («ارسال نمایید» for Submit) and mismatched register (a bureaucratic error under a friendly form). This skill fixes both. ## 1. Choose the product register once | Register | Use for | Verb style | |---|---|---| | Formal-but-human (default) | Banking, B2B, admin panels, government, health | می‌شود، کنید، است | | Light conversational | Consumer apps, shops, social, onboarding | میشه، می‌تونید، کنید | Hold it across the whole product. «ذخیره شد» next to «پروفایلت آماده‌ست» in the same screen is the mixing error. Imperatives («ذخیره کنید»، «بزنید») are the same in both registers. ## 2. Glossary (English → Persian UI) | English | Persian | Note | |---|---|---| | Login / Sign in | ورود | not «لاگین» | | Sign up / Register | ثبت‌نام | with ZWNJ | | Log out | خروج | | | Submit | ثبت / ارسال | «ثبت» for forms that save, «ارسال» for messages | | Save | ذخیره | | | Cancel | انصراف | «لغو» for cancelling an order | | Delete | حذف | | | Edit | ویرایش | | | Continue / Next | ادامه / بعدی | | | Back / Previous | بازگشت / قبلی | | | Done / Finish | تمام / پایان | | | Retry | تلاش دوباره | | | Search | جست‌وجو | with ZWNJ; «جستجو» is common but less correct | | Filter / Sort | فیلتر / مرتب‌سازی | | | Settings | تنظیمات | | | Profile / Account | پروفایل / حساب کاربری | | | Dashboard | داشبورد | | | Notifications | اعلان‌ها | | | Cart / Checkout | سبد خرید / پرداخت | | | Order / Orders | سفارش / سفارش‌ها | | | Add to cart | افزودن به سبد | | | Buy now | خرید | | | Price / Total | قیمت / جمع کل | | | Discount / Coupon | تخفیف / کد تخفیف | | | Email / Password | ایمیل / رمز عبور | | | Phone number | شماره موبایل | «شماره تلفن» only for landlines | | Verification code | کد تأیید | | | Resend code | ارسال دوباره‌ی کد | | | Address / Postal code | آدرس / کد پستی | | | Upload / Download | آپلود / دانلود | «بارگذاری» is fine for formal | | Loading… | در حال بارگذاری… | | | Help / Support | راهنما / پشتیبانی | | | Terms / Privacy | قوانین و مقررات / حریم خصوصی | | | Yes / No | بله / خیر | avoid on buttons; see section 5 | | OK | باشه (light) / تأیید (formal) | | ## 3. Buttons and actions - One verb, no «کلیک کنید»: «ذخیره»، «ادامه»، «پرداخت». The label is the outcome, not the gesture. - Primary action first in the reading order (right side in RTL), secondary «انصراف» after it. - Destructive actions name the object: «حذف سفارش» not «حذف»، and the confirm dialog repeats it. - Persian labels run longer than English. Leave room; never truncate a button. ## 4. Forms - Label above the field, always visible; placeholder is an example, not a label: label «شماره موبایل», placeholder «مثلاً ۰۹۱۲۳۴۵۶۷۸۹». - Required fields: mark optional ones with «(اختیاری)» instead of starring everything. - Error text sits under the field and says what to change: «شماره موبایل باید ۱۱ رقم باشد و با ۰۹ شروع شود.» Never «خطا!»، never «مقدار نامعتبر است»، never «Oops». - Helper text is one short sentence: «کد تأیید به این شماره پیامک می‌شود.» - Password rules are listed before the user fails them. - Do not tell users «فقط با حروف انگلیسی» unless the backend truly requires it. ## 5. Confirmations and dialogs - Title asks the real question: «سفارش حذف شود؟» - Buttons carry the action, not yes/no: «حذف کن» / «منصرف شدم» (light) or «حذف» / «انصراف» (formal). - One sentence of consequence if it matters: «این کار قابل بازگشت نیست.» ## 6. Empty, loading, success, failure | State | Pattern | Example | |---|---|---| | Empty | what goes here + the next action | «هنوز سفارشی ثبت نکرده‌اید. اولین سفارش را از فروشگاه شروع کنید.» | | Loading | «در حال …» + ellipsis | «در حال ارسال…» | | Success toast | short past tense | «ذخیره شد»، «کد ارسال شد» | | Failure toast | what failed + what to do | «اتصال برقرار نشد. دوباره تلاش کنید.» | | Offline | plain | «اینترنت قطع است.» | | 404 | plain + a way out | «این صفحه وجود ندارد. به خانه برگردید.» | Never «مشکلی پیش آمد» alone; say which thing and what next. ## 7. Numbers, money, dates inside copy - Persian digits: «۳ کالا»، «۲ ساعت پیش». Thousands with «٬»: «۱٬۲۵۰٬۰۰۰». - Unit after the number: «۱۲٬۰۰۰ تومان». Never «$», never «Toman». - Percent after the number with «٪»: «۲۰٪ تخفیف». - Dates Jalali: «۲۹ شهریور ۱۴۰۵»، relative «دیروز»، «۳ روز پیش». - Plurals with numbers stay singular: «۳ کالا» not «۳ کالاها». - Counts of one: «۱ پیام جدید» is fine; «یک پیام جدید» reads warmer. ## 8. Wording hygiene - Address the user with «شما» verbs; the verb carries it, so do not repeat «شما» in every sentence. No «کاربر گرامی». - No تعارف in UI («لطفاً» once per screen at most; «خواهشمندیم» never). - No exclamation marks on errors; at most one «!» on a celebration. - ZWNJ everywhere it belongs: می‌شود، ثبت‌نام، اعلان‌ها، سفارش‌ها. - Persian «،» «؟» and «گیومه»; no em dashes. - Latin brand names stay Latin («Google»، «PayPing»); Persian brands stay Persian («زرین‌پال»). - Keep one term per concept across the product: pick «سفارش» or «خرید», not both for the same object. ## 9. Before / after | Prompt | ❌ | ✅ | |---|---|---| | Submit button on a signup form | ارسال نمایید | ثبت‌نام | | Invalid phone | شماره تلفن وارد شده نامعتبر می‌باشد | شماره موبایل باید ۱۱ رقم باشد و با ۰۹ شروع شود. | | Empty orders list | هیچ داده‌ای یافت نشد | هنوز سفارشی ثبت نکرده‌اید. | | Delete confirm | آیا مطمئن هستید؟ بله / خیر | سفارش حذف شود؟ حذف / انصراف | | Saved toast | عملیات با موفقیت انجام شد | ذخیره شد | | Price | 12,000 Toman | ۱۲٬۰۰۰ تومان | ## 10. Checklist 1. Register chosen and consistent across the screen. 2. Every label from the glossary or a deliberate deviation. 3. Errors say what to fix; empty states say what to do next. 4. Persian digits, units after numbers, Jalali dates. 5. ZWNJ, Persian punctuation, no exclamation on errors.