Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add "fa" locale #1831

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
182 changes: 182 additions & 0 deletions frontend/apps/remark42/app/locales/fa.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,182 @@
{
"auth.back": "بازگشت",
"auth.email-address": "آدرس ایمیل",
"auth.loading": "در حال بارگذاری...",
"auth.oauth-button": "ورود با {provider}",
"auth.oauth-source": "استفاده از شبکه اجتماعی",
"auth.open-profile": "نمایش پروفایل من",
"auth.or": "یا",
"auth.signin": "ورود",
"auth.signout": "خروج",
"auth.submit": "ارسال",
"auth.symbols-restriction": "نام کاربری باید فقط شامل حروف، اعداد، زیرخط یا فضا باشد",
"auth.telegram-check": "بررسی",
"auth.telegram-link": "از طریق لینک",
"auth.telegram-message-1": "تلگرام را باز کنید",
"auth.telegram-message-2": "و در آنجا روی “شروع” کلیک کنید.",
"auth.telegram-message-3": "سپس، روی “بررسی” زیر کلیک کنید.",
"auth.telegram-optional-qr": "یا با اسکن کد QR",
"auth.telegram-qr": "کد QR تلگرام",
"auth.user-not-found": "هیچ کاربری پیدا نشد",
"auth.username": "نام کاربری",
"authPanel.disable-comments": "غیرفعال کردن نظرات",
"authPanel.disabled-cookies": "غیرفعال کردن مسدودسازی کوکی‌های شخص ثالث برای ورود یا باز کردن نظرات",
"authPanel.enable-comments": "فعال کردن نظرات",
"authPanel.enable-cookies": "اجازه دادن به کوکی‌ها برای ورود و نظر دادن",
"authPanel.hide-settings": "پنهان کردن تنظیمات",
"authPanel.new-page": "صفحه جدید",
"authPanel.read-only": "فقط خواندنی",
"authPanel.show-settings": "نمایش تنظیمات",
"blockingDuration.day": "برای یک روز",
"blockingDuration.month": "برای یک ماه",
"blockingDuration.permanently": "به طور دائمی",
"blockingDuration.week": "برای یک هفته",
"comment.block": "مسدود کردن",
"comment.block-user": "آیا می‌خواهید {userName} را {duration} مسدود کنید؟",
"comment.blocked-user": "مسدود شده",
"comment.blocking-period": "دوره مسدودسازی",
"comment.cancel": "لغو",
"comment.copied": "کپی شد!",
"comment.copy": "کپی",
"comment.delete": "حذف",
"comment.delete-message": "آیا می‌خواهید این نظر را حذف کنید؟",
"comment.deleted-comment": "این نظر حذف شد",
"comment.deleted-user": "حذف شده",
"comment.edit": "ویرایش",
"comment.edit-countdown": "ویرایش غیرفعال خواهد شد",
"comment.expired-time": "زمان ویرایش منقضی شده است.",
"comment.go-to-parent": "رفتن به نظر والد",
"comment.hide": "پنهان کردن",
"comment.hide-user-comment": "آیا می‌خواهید نظرات {userName} را پنهان کنید؟",
"comment.paid-patreon": "مشترک پرداختی پاترئون",
"comment.pin": "سنجاق کردن",
"comment.pin-comment": "آیا می‌خواهید این نظر را سنجاق کنید؟",
"comment.reply": "پاسخ",
"comment.time": "{day} در {time}",
"comment.toggle-verification": "تغییر وضعیت تأیید",
"comment.unblock": "رفع مسدودیت",
"comment.unblock-user": "آیا می‌خواهید این کاربر را رفع مسدود کنید؟",
"comment.unpin": "برداشتن سنجاق",
"comment.unpin-comment": "آیا می‌خواهید این نظر را از سنجاق بردارید؟",
"comment.unverified-user": "کاربر تأیید نشده",
"comment.unverify-user": "آیا می‌خواهید {userName} را تأیید نکنید؟",
"comment.verified-user": "کاربر تأیید شده",
"comment.verify-user": "آیا می‌خواهید {userName} را تأیید کنید؟",
"commentForm.anonymous-uploading-disabled": "بارگذاری تصویر برای کاربران ناشناس غیرفعال است. لطفاً به عنوان کاربر ناشناس وارد نشوید تا بتوانید تصاویر را پیوست کنید.",
"commentForm.exceeded-size": "{fileName} از حد مجاز اندازه {maxImageSize} فراتر رفته است",
"commentForm.input-placeholder": "نظر خود را وارد نمایید",
"commentForm.new-comment": "نظر جدید",
"commentForm.notice-about-styling": "استفاده از <a>Markdown</a> پشتیبانی می‌شود",
"commentForm.preview": "پیش‌نمایش",
"commentForm.reply": "پاسخ",
"commentForm.save": "ذخیره",
"commentForm.send": "ارسال",
"commentForm.subscribe-by": "مشترک شدن توسط",
"commentForm.subscribe-or": "یا",
"commentForm.unauthorized-uploading-disabled": "بارگذاری تصویر برای کاربران غیرمجاز غیرفعال است. شما باید قبل از بارگذاری وارد شوید.",
"commentForm.unexpected-error": "مشکلی پیش آمده است. لطفاً کمی بعد دوباره تلاش کنید.",
"commentForm.upload-file-fail": "{fileName} بارگذاری با خطای \"{errorMessage}\" ناموفق بود",
"commentForm.uploading": "در حال بارگذاری...",
"commentForm.uploading-file": "در حال بارگذاری {fileName}...",
"commentsSort.best": "بهترین",
"commentsSort.least-controversial": "کمترین جنجالی",
"commentsSort.least-recently-updated": "کمترین به‌روز شده",
"commentsSort.most-controversial": "بیشترین جنجالی",
"commentsSort.newest": "جدیدترین",
"commentsSort.oldest": "قدیمی‌ترین",
"commentsSort.recently-updated": "به تازگی به‌روز شده",
"commentsSort.worst": "بدترین",
"empty-state": "هنوز نظری وجود ندارد",
"errors.0": "مشکلی پیش آمده است. لطفاً کمی بعد دوباره تلاش کنید.",
"errors.1": "نظر پیدا نشد. لطفاً صفحه را تازه‌سازی کنید و دوباره تلاش کنید.",
"errors.10": "برای ویرایش نظر خیلی دیر شده است.",
"errors.11": "نظر قبلاً پاسخی دارد، ویرایش ممکن نیست.",
"errors.12": "نتیجه رأی‌گیری را نمی‌توان ذخیره کرد. لطفاً کمی بعد دوباره تلاش کنید.",
"errors.13": "شما نمی‌توانید برای نظر خود رأی دهید.",
"errors.14": "شما قبلاً برای این نظر رأی داده‌اید.",
"errors.15": "رأی‌های زیادی برای این نظر وجود دارد.",
"errors.16": "حداقل امتیاز برای نظر رسیده است.",
"errors.17": "عملیات رد شد. لطفاً کمی بعد دوباره تلاش کنید.",
"errors.18": "فایل درخواستی پیدا نشد.",
"errors.19": "نظر شامل کلمات ممنوعه است.",
"errors.2": "عدم موفقیت در تجزیه درخواست ورودی.",
"errors.20": "تصویر ارسال شده پیدا نشد. لطفاً دوباره آن را بارگذاری کنید.",
"errors.3": "شما اجازه انجام این عملیات را ندارید.",
"errors.4": "داده‌های نظر نامعتبر است.",
"errors.5": "نظر پیدا نشد. لطفاً صفحه را تازه‌سازی کنید و دوباره تلاش کنید.",
"errors.6": "سایت پیدا نشد. لطفاً صفحه را تازه‌سازی کنید و دوباره تلاش کنید.",
"errors.7": "کاربر مسدود شده است.",
"errors.8": "نمی‌توان نظرات را در این صفحه ارسال کرد. نظرات فقط خواندنی هستند.",
"errors.9": "تغییر نظر ناموفق بود. لطفاً کمی بعد دوباره تلاش کنید.",
"errors.conflict": "تعارض.",
"errors.failed-fetch": "عدم موفقیت در دریافت. لطفاً اتصال اینترنت خود را بررسی کنید یا کمی بعد دوباره تلاش کنید.",
"errors.forbidden": "ممنوع.",
"errors.not-authorized": "مجوز ندارید.",
"errors.to-many-request": "شما به حداکثر حد درخواست رسیده‌اید.",
"errors.unexpected-error": "مشکلی پیش آمده است.",
"profile.close": "بستن پروفایل",
"profile.request-to-delete-data": "درخواست حذف داده‌های من",
"retry": "دوباره تلاش کنید",
"root.pinned-comments": "نظرات سنجاق شده",
"root.powered-by": "توسعه داده شده توسط <a>Remark42</a>",
"root.show-more": "نمایش بیشتر",
"settings.block": "مسدود کردن",
"settings.block-time": "تا {day} در {time}",
"settings.block-user": "آیا می‌خواهید {userName} را مسدود کنید؟",
"settings.blocked-users-header": "کاربران مسدود شده:",
"settings.blocked-users-title": "کاربران مسدود شده",
"settings.hidden-user-header": "کاربران پنهان شده:",
"settings.hidden-users-title": "کاربران پنهان شده",
"settings.hide": "پنهان کردن",
"settings.no-blocked-users": "هیچ کاربر مسدود شده‌ای وجود ندارد.",
"settings.no-hidden-users": "هیچ کاربر پنهان شده‌ای وجود ندارد.",
"settings.permanently": "به طور دائمی",
"settings.show": "نمایش",
"settings.unblock": "رفع مسدودیت",
"settings.unblock-user": "آیا می‌خواهید {userName} را رفع مسدود کنید؟",
"settings.unknown": "ناشناس",
"sort-by": "مرتب‌سازی بر اساس",
"subscribeByEmail.back": "بازگشت",
"subscribeByEmail.close": "بستن",
"subscribeByEmail.email": "ایمیل",
"subscribeByEmail.have-been-subscribed": "شما به‌روزرسانی‌ها را از طریق ایمیل دریافت کرده‌اید",
"subscribeByEmail.have-been-unsubscribed": "شما از به‌روزرسانی‌های ایمیل حذف شده‌اید",
"subscribeByEmail.only-registered-users": "فقط برای کاربران ثبت‌نام شده در دسترس است",
"subscribeByEmail.submit": "ارسال",
"subscribeByEmail.subscribe": "مشترک شدن",
"subscribeByEmail.subscribe-by-email": "مشترک شدن از طریق ایمیل",
"subscribeByEmail.subscribe-to-replies": "مشترک شدن به پاسخ‌ها",
"subscribeByEmail.subscribed": "شما به‌روزرسانی‌ها را از طریق ایمیل دریافت کرده‌اید",
"subscribeByEmail.unsubscribe": "حذف اشتراک",
"subscribeByRSS.button-title": "مشترک شدن از طریق RSS",
"subscribeByRSS.replies": "پاسخ‌ها",
"subscribeByRSS.site": "سایت",
"subscribeByRSS.thread": "موضوع",
"subscribeByRSS.title": "RSS",
"subscribeByTelegram.have-been-subscribed": "شما به‌روزرسانی‌ها را از طریق تلگرام دریافت کرده‌اید",
"subscribeByTelegram.have-been-unsubscribed": "شما از به‌روزرسانی‌های تلگرام حذف شده‌اید",
"subscribeByTelegram.only-registered-users": "فقط برای کاربران ثبت‌نام شده در دسترس است",
"subscribeByTelegram.resubscribe": "دوباره مشترک شوید",
"subscribeByTelegram.subscribe-by-telegram": "مشترک شدن از طریق تلگرام",
"subscribeByTelegram.telegram": "تلگرام",
"subscribeByTelegram.unsubscribe": "حذف اشتراک",
"token": "توکن را از ایمیل کپی و پیست کنید",
"token.expired": "توکن منقضی شده است",
"token.invalid": "توکن نامعتبر است",
"toolbar.attach-image": "تصویر را پیوست کنید، بکشید و رها کنید یا از کلیپ بورد پیست کنید",
"toolbar.bold": "متن پررنگ را اضافه کنید {shortcut}",
"toolbar.code": "کد را وارد کنید",
"toolbar.header": "متن عنوان را اضافه کنید",
"toolbar.italic": "متن کج را اضافه کنید {shortcut}",
"toolbar.link": "لینک را اضافه کنید {shortcut}",
"toolbar.ordered-list": "لیست شماره‌دار را اضافه کنید",
"toolbar.quote": "نقل قول را وارد کنید",
"toolbar.unordered-list": "لیست گلوله‌دار را اضافه کنید",
"user.comments": "نظرات",
"user.load-more": "بیشتر بارگذاری کنید",
"user.my-comments": "نظرات من",
"vote.controversy": "جنجال: {value}",
"vote.downvote": "رأی منفی",
"vote.score": "امتیاز رأی‌ها",
"vote.upvote": "رأی مثبت"
}
7 changes: 4 additions & 3 deletions frontend/apps/remark42/app/utils/loadLocale.ts
Original file line number Diff line number Diff line change
Expand Up @@ -55,16 +55,17 @@ export async function loadLocale(locale: string): Promise<Record<string, string>
return import(/* webpackChunkName: "ar" */ '../locales/ar.json').then((res) => res.default).catch(() => enMessages);
}
if (locale === 'zh-tw') {
return import(/* webpackChunkName: "zh-tw" */ '../locales/zh-tw.json')
.then((res) => res.default)
.catch(() => enMessages);
return import(/* webpackChunkName: "zh-tw" */ '../locales/zh-tw.json').then((res) => res.default).catch(() => enMessages);
}
if (locale === 'th') {
return import(/* webpackChunkName: "th" */ '../locales/th.json').then((res) => res.default).catch(() => enMessages);
}
if (locale === 'cs') {
return import(/* webpackChunkName: "cs" */ '../locales/cs.json').then((res) => res.default).catch(() => enMessages);
}
if (locale === 'fa') {
return import(/* webpackChunkName: "fa" */ '../locales/fa.json').then((res) => res.default).catch(() => enMessages);
}

return enMessages;
}
2 changes: 1 addition & 1 deletion frontend/apps/remark42/tasks/supportedLocales.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
["en", "ru", "de", "fi", "es", "zh", "tr", "bg", "ua", "pl", "vi", "be", "fr", "ja", "ko", "bp", "it", "ar", "zh-tw", "th", "cs"]
["en", "ru", "de", "fi", "es", "zh", "tr", "bg", "ua", "pl", "vi", "be", "fr", "ja", "ko", "bp", "it", "ar", "zh-tw", "th", "cs", "fa"]