From e347f767a77e693bdbfe319391c54c2e54dea096 Mon Sep 17 00:00:00 2001 From: Mohamad Jahani Date: Tue, 2 Jun 2026 04:05:04 +0330 Subject: [PATCH 1/2] Add IRR (Iranian Rial) to supported currencies --- src/lib/constants.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/constants.ts b/src/lib/constants.ts index f7c182b152..bb7c2a617d 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -693,6 +693,7 @@ export const CURRENCIES = [ { id: 'TND', name: 'Tunisian Dinar' }, { id: 'OMR', name: 'Omani Rial' }, { id: 'GHS', name: 'Ghanaian Cedi' }, + { id: 'IRR', name: 'Iranian Rial' }, ]; export const TIMEZONE_LEGACY: Record = { From b077714f7c85e6e1e6db0a49e689330d42ac3424 Mon Sep 17 00:00:00 2001 From: Mohamad Jahani Date: Tue, 2 Jun 2026 04:34:03 +0330 Subject: [PATCH 2/2] Improve Persian (fa-IR) support - Add 12 missing translation keys to fa-IR.json - Set lang and dir on document.documentElement via useEffect on locale change, fixing the hardcoded lang="en" and ensuring both attributes are on the same element and applied on initial load --- public/intl/messages/fa-IR.json | 12 ++++++++++++ src/components/hooks/useLocale.ts | 7 +++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/public/intl/messages/fa-IR.json b/public/intl/messages/fa-IR.json index cd7352ac02..9de83a41a4 100644 --- a/public/intl/messages/fa-IR.json +++ b/public/intl/messages/fa-IR.json @@ -33,6 +33,7 @@ "behavior": "رفتار", "block-selector": "انتخابگر بلوک", "boards": "بردها", + "board-type": "نوع برد", "bounce-rate": "نرخ ریزش", "breakdown": "تفکیک", "browser": "مرورگر", @@ -201,6 +202,7 @@ "number-of-records": "{x} {x, plural, one {رکورد} other {رکورد}}", "ok": "تایید", "online": "آنلاین", + "open": "ترکیبی", "organic-search": "جستجوی ارگانیک", "organic-shopping": "خرید ارگانیک", "organic-social": "شبکه اجتماعی ارگانیک", @@ -256,6 +258,7 @@ "replay": "پخش مجدد", "replay-enabled": "پخش مجدد فعال", "replay-id": "Replay ID", + "replay-code": "کد پخش مجدد نشست", "replays": "پخش‌های مجدد", "reports": "گزارش‌ها", "required": "ضروری", @@ -272,6 +275,7 @@ "sample-size": "اندازه نمونه", "save": "ذخیره", "save-cohort": "ذخیره گروه", + "save-replay": "ذخیره پخش مجدد", "save-segment": "ذخیره بخش", "screen": "صفحه نمایش", "screens": "صفحه", @@ -282,6 +286,8 @@ "select-component": "یک کامپوننت انتخاب کنید", "select-date": "انتخاب تاریخ", "select-filter": "انتخاب فیلتر", + "select-link": "انتخاب لینک", + "select-pixel": "انتخاب پیکسل", "select-role": "انتخاب نقش", "select-website": "انتخاب وب‌سایت", "session": "نشست", @@ -338,8 +344,12 @@ "unique-events": "رویدادهای یکتا", "unique-visitors": "بازدیدکننده‌های یکتا", "uniqueCustomers": "مشتریان یکتا", + "customers": "مشتریان", + "orders": "سفارش‌ها", + "saved": "ذخیره شد", "unknown": "ناشناخته", "untitled": "بدون عنوان", + "upgrade": "ارتقاء", "update": "به‌روزرسانی", "url": "URL", "user": "کاربر", @@ -402,6 +412,7 @@ "reset-website": "برای بازنشانی وب‌سایت، لطفاً {confirmation} را تایپ کنید.", "reset-website-warning": "تمامی آمارهای این وب‌سایت حذف خواهد شد اما کدهای رهگیری بدون تغییر باقی می‌ماند.", "saved": "ذخیره شد.", + "select-board-entity-first": "ابتدا یک وب‌سایت، پیکسل یا لینک انتخاب کنید.", "select-component-preview": "یک کامپوننت برای پیش‌نمایش انتخاب کنید", "select-website-first": "ابتدا یک وب‌سایت انتخاب کنید", "sever-error": "خطای سرور", @@ -415,6 +426,7 @@ "transfer-website": "مالکیت وب‌سایت را به حساب خودت یا یک تیم دیگر منتقل کنید.", "triggered-event": "رویداد فعال شده", "unauthorized": "غیرمجاز", + "upgrade-required": "این قابلیت نیاز به اشتراک پلن {plan} دارد.", "user-deleted": "کاربر حذف شد.", "viewed-page": "صفحه مشاهده شد", "visitor-log": "بازدیدکننده از کشور {country} با مروگر {browser} در {os} {device}" diff --git a/src/components/hooks/useLocale.ts b/src/components/hooks/useLocale.ts index dc8d5d1801..bbad4ee098 100644 --- a/src/components/hooks/useLocale.ts +++ b/src/components/hooks/useLocale.ts @@ -32,8 +32,6 @@ export function useLocale() { setItem(LOCALE_CONFIG, value); - document.getElementById('__next')?.setAttribute('dir', getTextDirection(value)); - if (locale !== value) { setLocale(value); } else { @@ -47,6 +45,11 @@ export function useLocale() { } }, [locale]); + useEffect(() => { + document.documentElement.lang = locale.split('-')[0]; + document.documentElement.setAttribute('dir', getTextDirection(locale)); + }, [locale]); + useEffect(() => { const url = new URL(window?.location?.href); const locale = url.searchParams.get('locale');