diff --git a/faIR.ts b/faIR.ts new file mode 100644 index 0000000000..e138f1fc38 --- /dev/null +++ b/faIR.ts @@ -0,0 +1,191 @@ +export default { + translation: { + // General + 'general.general': 'عمومی', + 'general.error': 'خطا', + 'general.cancel': 'لغو', + 'general.attachments': 'پیوست‌ها', + 'general.archive': 'بایگانی', + 'general.allNotes': 'همه یادداشت‌ها', + 'general.signin': 'ورود', + 'general.signOut': 'خروج', + 'general.save': 'ذخیره', + 'general.default': 'پیش‌فرض', + 'general.networkError': 'خطای شبکه', + + // Navigator + 'navigator.noStorage': 'فضایی وجود ندارد', + 'navigator.createStorage': 'برای ایجاد کلیک کنید', + + // Newsletter + 'newsletter.subscribe': 'اشتراک', + 'newsletter.heading': 'عضویت در به‌روزرسانی', + 'newsletter.subscribed': 'با تشکر از اشتراک شما!', + + // Storage + 'storage.storage': 'فضا', + 'storage.name': 'نام فضا', + 'storage.noStorage': 'بدون فضا', + 'storage.create': 'ایجاد فضا', + 'storage.edit': 'ویرایش فضا', + 'storage.rename': 'تغییر نام فضا', + 'storage.renameMessage': 'نام جدید فضا را وارد کنید', + 'storage.remove': 'حذف فضا', + 'storage.removeMessage': + 'هشدار! این عمل همه یادداشت‌های ذخیره شده در این مکان را به صورت دائمی حذف می‌کند.', + 'storage.delete': 'حذف فضای {{storage}}', + 'storage.move': 'انتقال یادداشت', + 'storage.moveTitle': 'انتقال یادداشت به فضای دیگر', + 'storage.moveMessage': 'شما در حال انتقال یادداشت به فضای دیگری هستید.', + 'storage.copy': 'کپی یادداشت', + 'storage.type': 'نوع فضا', + 'storage.typeLocal': 'محلی', + 'storage.typeCloud': 'ابری', + 'storage.needSignIn': 'برای ایجاد فضای ابری باید وارد شوید.', + 'storage.syncDate': 'آخرین همگام‌سازی در', + + // Folder + 'folder.folder': 'پوشه', + 'folder.create': 'پوشه جدید', + 'folder.rename': 'تغییر نام پوشه', + 'folder.renameMessage': + 'نام جدید پوشه را وارد کنید، مسیر هر یادداشت و زیرپوشه نیز به‌روزرسانی خواهد شد.', + 'folder.renameErrorMessage': 'نتوانستید نام پوشه را تغییر دهید', + 'folder.remove': 'حذف پوشه', + 'folder.removeMessage': 'همه یادداشت‌ها و زیرپوشه‌ها حذف خواهند شد.', + 'folder.select': 'انتخاب پوشه', + 'folder.noLocationSelected': 'مکانی انتخاب نشده', + + // Tag + 'tag.tags': 'برچسب‌ها', + 'tag.add': 'افزودن برچسب', + 'tag.remove': 'حذف برچسب', + 'tag.rename': 'تغییر نام برچسب', + 'tag.removeX': 'حذف #{{tag}}', + 'tag.removeMessage': 'برچسب از همه یادداشت‌ها حذف خواهد شد.', + 'tag.renameMessage': + 'نام جدید برچسب را وارد کنید. یادداشت‌های با برچسب «{{tagName}}» برای انعکاس تغییر به‌روزرسانی خواهند شد.', + + // Note + 'note.duplicate': 'تکثیر', + 'note.delete': 'حذف', + 'note.delete2': 'حذف یادداشت', + 'note.deleteMessage': 'یادداشت به صورت دائمی حذف خواهد شد', + 'note.empty': 'یادداشت خالی', + 'note.unselect': 'یادداشتی انتخاب نشده', + 'note.search': 'جستجوی یادداشت‌ها', + 'note.nothing': 'یادداشتی یافت نشد', + 'note.nothingMessage': 'یادداشتی یافت نشد.', + 'note.noTitle': 'بدون عنوان', + 'note.date': 'پیش', + 'note.createKeyOr': 'یا', + 'note.createKey': 'N', + 'note.createKeyMac': 'در Mac', + 'note.createKeyWinLin': 'در Windows/Linux', + 'note.createkeymessage1': 'برای ایجاد سند جدید، فشار دهید', + 'note.createkeymessage2': 'یک فضا انتخاب کنید', + 'note.createkeymessage3': 'برای ایجاد سند جدید', + 'note.restore': 'بازیابی', + 'note.edit': 'ویرایش', + 'note.splitView': 'نمای تقسیم‌شده', + 'note.preview': 'پیش‌نمایش', + 'note.archive': 'بایگانی', + 'note.export': 'صدور', + + // Bookmark + 'bookmark.remove': 'حذف نشان', + 'bookmark.add': 'نشان', + + // About + 'about.about': 'درباره', + 'about.boostnoteDescription': + 'برنامه یادداشت‌برداری ساخته شده برای برنامه‌نویسان دقیقاً مانند شما.', + 'about.website': 'وب‌سایت رسمی', + 'about.boostWiki': 'Boost Note', + 'about.platform': 'چندسکویی', + 'about.community': 'جامعه', + 'about.github': 'مخزن GitHub', + 'about.bounty': 'جایزه در IssueHunt', + 'about.blog': 'وبلاگ', + 'about.slack': 'گروه Slack', + 'about.twitter': 'حساب Twitter', + 'about.facebook': 'گروه Facebook', + 'about.reddit': 'Reddit', + + // Billing + 'billing.billing': 'صورتحساب', + 'billing.message': 'برای ارتقای طرح خود وارد شوید.', + 'billing.basic': 'پایه', + 'billing.current': 'فعلی', + 'billing.premium': 'ویژه', + 'billing.price': '۳ دلار/ماه (USD) *', + 'billing.browser': 'برنامه مرورگر', + 'billing.desktop': 'برنامه دسکتاپ (Mac/Windows/Linux)', + 'billing.mobile': 'برنامه موبایل (iOS/Android)', + 'billing.sync': 'همگام‌سازی چندین دستگاه', + 'billing.local': 'ذخیره‌سازی محلی', + 'billing.cloud': 'ذخیره‌سازی ابری', + 'billing.storageSize': 'اندازه ذخیره‌سازی ابری', + 'billing.addStorageDescription': + '* اگر به فضای ابری بیشتری نیاز دارید، می‌توانید با پرداخت ۵ دلار (USD) به ازای هر ۵ گیگابایت، در هر زمان آن را اضافه کنید. روی دکمه «افزودن فضای اضافی» در زیر کلیک کنید.', + 'billing.addStorage': 'افزودن فضای اضافی', + + 'editor.editor': 'ویرایشگر', + + // Preferences + 'preferences.general': 'تنظیمات', + 'preferences.generalTab': 'عمومی', + + // Preferences GeneralTab + 'preferences.account': 'حساب', + 'preferences.addAccount': 'ورود', + 'preferences.loginWorking': 'در حال ورود...', + 'preferences.interfaceLanguage': 'زبان رابط', + 'preferences.applicationTheme': 'تم برنامه', + 'preferences.auto': 'خودکار', + 'preferences.light': 'روشن', + 'preferences.dark': 'تاریک', + 'preferences.sepia': 'سپیا', + 'preferences.solarizedDark': 'Solarized Dark', + 'preferences.noteSorting': 'مرتب‌سازی یادداشت', + 'preferences.dateUpdated': 'تاریخ به‌روزرسانی', + 'preferences.dateCreated': 'تاریخ ایجاد', + 'preferences.title': 'عنوان', + 'preferences.analytics': 'تحلیل', + 'preferences.analyticsDescription1': + 'Boost Note داده‌های ناشناس را تنها برای بهبود برنامه جمع‌آوری می‌کند و به هیچ وجه اطلاعات شخصی مانند محتوای یادداشت‌های شما را جمع‌آوری نمی‌کند. می‌توانید نحوه کار آن را در GitHub ببینید.', + 'preferences.analyticsDescription2': + 'می‌توانید انتخاب کنید که این گزینه را فعال یا غیرفعال کنید.', + 'preferences.analyticsLabel': 'فعال کردن تحلیل برای کمک به بهبود Boostnote', + 'preferences.displayTutorialsLabel': 'آموزش‌ها و سؤالات متداول', + 'preferences.autoSync': 'فعال کردن همگام‌سازی خودکار', + + // Preferences KeymapTab + 'preferences.keymap': 'نقشه کلید', + + // Preferences EditorTab + 'preferences.editorTheme': 'تم ویرایشگر', + 'preferences.editorFontSize': 'اندازه فونت ویرایشگر', + 'preferences.editorFontFamily': 'خانواده فونت ویرایشگر', + 'preferences.editorIndentType': 'نوع تورفتگی ویرایشگر', + 'preferences.tab': 'Tab', + 'preferences.spaces': 'Spaces', + 'preferences.editorIndentSize': 'اندازه تورفتگی ویرایشگر', + 'preferences.editorKeymap': 'نقشه کلید ویرایشگر', + 'preferences.editorPreview': 'پیش‌نمایش ویرایشگر', + + // Preferences MarkdownTab + 'preferences.markdownTab': 'تنظیمات Markdown', + 'preferences.previewStyle': 'سبک پیش‌نمایش', + 'preferences.markdownCodeBlockTheme': 'تم بلوک کد', + 'preferences.defaultTheme': 'استفاده از سبک پیش‌فرض', + 'preferences.markdownPreview': 'پیش‌نمایش Markdown', + + // Preferences ExportTab + 'preferences.exportTab': 'تنظیمات صدور', + 'preferences.landscape': 'افقی', + 'preferences.marginType': 'حاشیه‌ها', + 'preferences.pageSize': 'اندازه صفحه', + 'preferences.includeFrontMatter': 'شامل Front Matter', + }, +} diff --git a/src/lib/i18n.ts b/src/lib/i18n.ts index 68d9fe6cb7..6c1ee61212 100755 --- a/src/lib/i18n.ts +++ b/src/lib/i18n.ts @@ -1,22 +1,28 @@ import i18n from 'i18next' import { initReactI18next } from 'react-i18next' import enUS from '../locales/enUS' +import faIR from '../locales/faIR' const resources = { 'en-US': enUS, + 'fa-IR': faIR, } i18n - .use(initReactI18next) // passes i18n down to react-i18next + .use(initReactI18next) .init({ resources, fallbackLng: 'en-US', - - keySeparator: false, // we do not use keys in form messages.welcome - + keySeparator: false, interpolation: { - escapeValue: false, // react already safes from xss + escapeValue: false, }, }) +i18n.on('languageChanged', (lng) => { + const isRTL = lng === 'fa-IR' + document.documentElement.setAttribute('dir', isRTL ? 'rtl' : 'ltr') + document.documentElement.setAttribute('lang', lng) +}) + export default i18n diff --git a/src/locales/faIR.ts b/src/locales/faIR.ts new file mode 100644 index 0000000000..e138f1fc38 --- /dev/null +++ b/src/locales/faIR.ts @@ -0,0 +1,191 @@ +export default { + translation: { + // General + 'general.general': 'عمومی', + 'general.error': 'خطا', + 'general.cancel': 'لغو', + 'general.attachments': 'پیوست‌ها', + 'general.archive': 'بایگانی', + 'general.allNotes': 'همه یادداشت‌ها', + 'general.signin': 'ورود', + 'general.signOut': 'خروج', + 'general.save': 'ذخیره', + 'general.default': 'پیش‌فرض', + 'general.networkError': 'خطای شبکه', + + // Navigator + 'navigator.noStorage': 'فضایی وجود ندارد', + 'navigator.createStorage': 'برای ایجاد کلیک کنید', + + // Newsletter + 'newsletter.subscribe': 'اشتراک', + 'newsletter.heading': 'عضویت در به‌روزرسانی', + 'newsletter.subscribed': 'با تشکر از اشتراک شما!', + + // Storage + 'storage.storage': 'فضا', + 'storage.name': 'نام فضا', + 'storage.noStorage': 'بدون فضا', + 'storage.create': 'ایجاد فضا', + 'storage.edit': 'ویرایش فضا', + 'storage.rename': 'تغییر نام فضا', + 'storage.renameMessage': 'نام جدید فضا را وارد کنید', + 'storage.remove': 'حذف فضا', + 'storage.removeMessage': + 'هشدار! این عمل همه یادداشت‌های ذخیره شده در این مکان را به صورت دائمی حذف می‌کند.', + 'storage.delete': 'حذف فضای {{storage}}', + 'storage.move': 'انتقال یادداشت', + 'storage.moveTitle': 'انتقال یادداشت به فضای دیگر', + 'storage.moveMessage': 'شما در حال انتقال یادداشت به فضای دیگری هستید.', + 'storage.copy': 'کپی یادداشت', + 'storage.type': 'نوع فضا', + 'storage.typeLocal': 'محلی', + 'storage.typeCloud': 'ابری', + 'storage.needSignIn': 'برای ایجاد فضای ابری باید وارد شوید.', + 'storage.syncDate': 'آخرین همگام‌سازی در', + + // Folder + 'folder.folder': 'پوشه', + 'folder.create': 'پوشه جدید', + 'folder.rename': 'تغییر نام پوشه', + 'folder.renameMessage': + 'نام جدید پوشه را وارد کنید، مسیر هر یادداشت و زیرپوشه نیز به‌روزرسانی خواهد شد.', + 'folder.renameErrorMessage': 'نتوانستید نام پوشه را تغییر دهید', + 'folder.remove': 'حذف پوشه', + 'folder.removeMessage': 'همه یادداشت‌ها و زیرپوشه‌ها حذف خواهند شد.', + 'folder.select': 'انتخاب پوشه', + 'folder.noLocationSelected': 'مکانی انتخاب نشده', + + // Tag + 'tag.tags': 'برچسب‌ها', + 'tag.add': 'افزودن برچسب', + 'tag.remove': 'حذف برچسب', + 'tag.rename': 'تغییر نام برچسب', + 'tag.removeX': 'حذف #{{tag}}', + 'tag.removeMessage': 'برچسب از همه یادداشت‌ها حذف خواهد شد.', + 'tag.renameMessage': + 'نام جدید برچسب را وارد کنید. یادداشت‌های با برچسب «{{tagName}}» برای انعکاس تغییر به‌روزرسانی خواهند شد.', + + // Note + 'note.duplicate': 'تکثیر', + 'note.delete': 'حذف', + 'note.delete2': 'حذف یادداشت', + 'note.deleteMessage': 'یادداشت به صورت دائمی حذف خواهد شد', + 'note.empty': 'یادداشت خالی', + 'note.unselect': 'یادداشتی انتخاب نشده', + 'note.search': 'جستجوی یادداشت‌ها', + 'note.nothing': 'یادداشتی یافت نشد', + 'note.nothingMessage': 'یادداشتی یافت نشد.', + 'note.noTitle': 'بدون عنوان', + 'note.date': 'پیش', + 'note.createKeyOr': 'یا', + 'note.createKey': 'N', + 'note.createKeyMac': 'در Mac', + 'note.createKeyWinLin': 'در Windows/Linux', + 'note.createkeymessage1': 'برای ایجاد سند جدید، فشار دهید', + 'note.createkeymessage2': 'یک فضا انتخاب کنید', + 'note.createkeymessage3': 'برای ایجاد سند جدید', + 'note.restore': 'بازیابی', + 'note.edit': 'ویرایش', + 'note.splitView': 'نمای تقسیم‌شده', + 'note.preview': 'پیش‌نمایش', + 'note.archive': 'بایگانی', + 'note.export': 'صدور', + + // Bookmark + 'bookmark.remove': 'حذف نشان', + 'bookmark.add': 'نشان', + + // About + 'about.about': 'درباره', + 'about.boostnoteDescription': + 'برنامه یادداشت‌برداری ساخته شده برای برنامه‌نویسان دقیقاً مانند شما.', + 'about.website': 'وب‌سایت رسمی', + 'about.boostWiki': 'Boost Note', + 'about.platform': 'چندسکویی', + 'about.community': 'جامعه', + 'about.github': 'مخزن GitHub', + 'about.bounty': 'جایزه در IssueHunt', + 'about.blog': 'وبلاگ', + 'about.slack': 'گروه Slack', + 'about.twitter': 'حساب Twitter', + 'about.facebook': 'گروه Facebook', + 'about.reddit': 'Reddit', + + // Billing + 'billing.billing': 'صورتحساب', + 'billing.message': 'برای ارتقای طرح خود وارد شوید.', + 'billing.basic': 'پایه', + 'billing.current': 'فعلی', + 'billing.premium': 'ویژه', + 'billing.price': '۳ دلار/ماه (USD) *', + 'billing.browser': 'برنامه مرورگر', + 'billing.desktop': 'برنامه دسکتاپ (Mac/Windows/Linux)', + 'billing.mobile': 'برنامه موبایل (iOS/Android)', + 'billing.sync': 'همگام‌سازی چندین دستگاه', + 'billing.local': 'ذخیره‌سازی محلی', + 'billing.cloud': 'ذخیره‌سازی ابری', + 'billing.storageSize': 'اندازه ذخیره‌سازی ابری', + 'billing.addStorageDescription': + '* اگر به فضای ابری بیشتری نیاز دارید، می‌توانید با پرداخت ۵ دلار (USD) به ازای هر ۵ گیگابایت، در هر زمان آن را اضافه کنید. روی دکمه «افزودن فضای اضافی» در زیر کلیک کنید.', + 'billing.addStorage': 'افزودن فضای اضافی', + + 'editor.editor': 'ویرایشگر', + + // Preferences + 'preferences.general': 'تنظیمات', + 'preferences.generalTab': 'عمومی', + + // Preferences GeneralTab + 'preferences.account': 'حساب', + 'preferences.addAccount': 'ورود', + 'preferences.loginWorking': 'در حال ورود...', + 'preferences.interfaceLanguage': 'زبان رابط', + 'preferences.applicationTheme': 'تم برنامه', + 'preferences.auto': 'خودکار', + 'preferences.light': 'روشن', + 'preferences.dark': 'تاریک', + 'preferences.sepia': 'سپیا', + 'preferences.solarizedDark': 'Solarized Dark', + 'preferences.noteSorting': 'مرتب‌سازی یادداشت', + 'preferences.dateUpdated': 'تاریخ به‌روزرسانی', + 'preferences.dateCreated': 'تاریخ ایجاد', + 'preferences.title': 'عنوان', + 'preferences.analytics': 'تحلیل', + 'preferences.analyticsDescription1': + 'Boost Note داده‌های ناشناس را تنها برای بهبود برنامه جمع‌آوری می‌کند و به هیچ وجه اطلاعات شخصی مانند محتوای یادداشت‌های شما را جمع‌آوری نمی‌کند. می‌توانید نحوه کار آن را در GitHub ببینید.', + 'preferences.analyticsDescription2': + 'می‌توانید انتخاب کنید که این گزینه را فعال یا غیرفعال کنید.', + 'preferences.analyticsLabel': 'فعال کردن تحلیل برای کمک به بهبود Boostnote', + 'preferences.displayTutorialsLabel': 'آموزش‌ها و سؤالات متداول', + 'preferences.autoSync': 'فعال کردن همگام‌سازی خودکار', + + // Preferences KeymapTab + 'preferences.keymap': 'نقشه کلید', + + // Preferences EditorTab + 'preferences.editorTheme': 'تم ویرایشگر', + 'preferences.editorFontSize': 'اندازه فونت ویرایشگر', + 'preferences.editorFontFamily': 'خانواده فونت ویرایشگر', + 'preferences.editorIndentType': 'نوع تورفتگی ویرایشگر', + 'preferences.tab': 'Tab', + 'preferences.spaces': 'Spaces', + 'preferences.editorIndentSize': 'اندازه تورفتگی ویرایشگر', + 'preferences.editorKeymap': 'نقشه کلید ویرایشگر', + 'preferences.editorPreview': 'پیش‌نمایش ویرایشگر', + + // Preferences MarkdownTab + 'preferences.markdownTab': 'تنظیمات Markdown', + 'preferences.previewStyle': 'سبک پیش‌نمایش', + 'preferences.markdownCodeBlockTheme': 'تم بلوک کد', + 'preferences.defaultTheme': 'استفاده از سبک پیش‌فرض', + 'preferences.markdownPreview': 'پیش‌نمایش Markdown', + + // Preferences ExportTab + 'preferences.exportTab': 'تنظیمات صدور', + 'preferences.landscape': 'افقی', + 'preferences.marginType': 'حاشیه‌ها', + 'preferences.pageSize': 'اندازه صفحه', + 'preferences.includeFrontMatter': 'شامل Front Matter', + }, +}