Skip to content
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
191 changes: 191 additions & 0 deletions faIR.ts
Original file line number Diff line number Diff line change
@@ -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',
},
}
16 changes: 11 additions & 5 deletions src/lib/i18n.ts
Original file line number Diff line number Diff line change
@@ -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
Loading