diff --git a/hesabixUI/hesabix_ui/lib/l10n/app_en.arb b/hesabixUI/hesabix_ui/lib/l10n/app_en.arb index 2a0265b..1b25974 100644 --- a/hesabixUI/hesabix_ui/lib/l10n/app_en.arb +++ b/hesabixUI/hesabix_ui/lib/l10n/app_en.arb @@ -554,6 +554,165 @@ "ownerWarning": "Warning: Business owner does not need to be added and always has full access to all sections", "ownerWarningTitle": "Business Owner", "alreadyAddedWarning": "This user has already been added to the business", - "alreadyAddedWarningTitle": "Existing User" + "alreadyAddedWarningTitle": "Existing User", + "version": "Version 1.0.0", + "motto": "The world becomes beautiful through cooperation", + "loadingLanguageSettings": "Loading language settings...", + "loadingCalendarSettings": "Loading calendar settings...", + "loadingThemeSettings": "Loading theme settings...", + "loadingAuthentication": "Loading authentication...", + "initializing": "Initializing...", + "add": "Add", + "view": "View", + "edit": "Edit", + "delete": "Delete", + "draft": "Manage Drafts", + "addPerson": "Add New Person", + "viewPeople": "View People List", + "editPeople": "Edit People Information", + "deletePeople": "Delete People", + "addReceipt": "Add New Receipt", + "viewReceipts": "View Receipts", + "editReceipts": "Edit Receipts", + "deleteReceipts": "Delete Receipts", + "manageReceiptDrafts": "Manage Receipt Drafts", + "addPayment": "Add New Payment", + "viewPayments": "View Payments", + "editPayments": "Edit Payments", + "deletePayments": "Delete Payments", + "managePaymentDrafts": "Manage Payment Drafts", + "products": "Products and Services", + "addProduct": "Add Product or Service", + "viewProducts": "View Products and Services", + "editProducts": "Edit Products and Services", + "deleteProducts": "Delete Products and Services", + "priceLists": "Price Lists", + "addPriceList": "Add Price List", + "viewPriceLists": "View Price Lists", + "editPriceLists": "Edit Price Lists", + "deletePriceLists": "Delete Price Lists", + "categories": "Categories", + "addCategory": "Add Category", + "viewCategories": "View Categories", + "editCategories": "Edit Categories", + "deleteCategories": "Delete Categories", + "inventory": "Inventory", + "addInventory": "Add Inventory", + "viewInventory": "View Inventory", + "editInventory": "Edit Inventory", + "deleteInventory": "Delete Inventory", + "reports": "Reports", + "viewReports": "View Reports", + "generateReports": "Generate Reports", + "exportReports": "Export Reports", + "settings": "Settings", + "viewSettings": "View Settings", + "editSettings": "Edit Settings", + "users": "Users", + "viewUsers": "View Users", + "manageUsers": "Manage Users", + "print": "Print Documents", + "printDocuments": "Print Documents", + "peopleReceipts": "Receipts from People", + "peoplePayments": "Payments to People", + "storageConfigUpdated": "Storage configuration updated", + "storageConfigCreated": "Storage configuration created", + "storageConfigDeleted": "Storage configuration deleted", + "storageConfigHasFiles": "This storage configuration has files and cannot be deleted", + "storageConfigNotFound": "Storage configuration not found", + "storageConfigSetAsDefault": "Configuration set as default", + "storageConfigSetDefaultFailed": "Failed to set as default", + "passwordChangeError": "Error changing password", + "banking": "Banking", + "bankAccounts": "Bank Accounts", + "cash": "Cash", + "pettyCash": "Petty Cash", + "checks": "Checks", + "wallet": "Wallet", + "transfers": "Transfers", + "invoices": "Invoices", + "expensesIncome": "Expenses & Income", + "accounting": "Accounting", + "accountingDocuments": "Accounting Documents", + "chartOfAccounts": "Chart of Accounts", + "openingBalance": "Opening Balance", + "warehouse": "Warehouse", + "warehouses": "Warehouse Management", + "warehouseTransfers": "Warehouse Transfers", + "productAttributes": "Product Attributes", + "addAttribute": "Add Attribute", + "viewAttributes": "View Attributes", + "editAttributes": "Edit Attributes", + "deleteAttributes": "Delete Attributes", + "addBankAccount": "Add Bank Account", + "viewBankAccounts": "View Bank Accounts", + "editBankAccounts": "Edit Bank Accounts", + "deleteBankAccounts": "Delete Bank Accounts", + "addCash": "Add Cash", + "viewCash": "View Cash", + "editCash": "Edit Cash", + "deleteCash": "Delete Cash", + "addPettyCash": "Add Petty Cash", + "viewPettyCash": "View Petty Cash", + "editPettyCash": "Edit Petty Cash", + "deletePettyCash": "Delete Petty Cash", + "addCheck": "Add Check", + "viewChecks": "View Checks", + "editChecks": "Edit Checks", + "deleteChecks": "Delete Checks", + "collectChecks": "Collect Checks", + "transferChecks": "Transfer Checks", + "returnChecks": "Return Checks", + "viewWallet": "View Wallet", + "chargeWallet": "Charge Wallet", + "addTransfer": "Add Transfer", + "viewTransfers": "View Transfers", + "editTransfers": "Edit Transfers", + "deleteTransfers": "Delete Transfers", + "manageTransferDrafts": "Manage Transfer Drafts", + "addInvoice": "Add Invoice", + "viewInvoices": "View Invoices", + "editInvoices": "Edit Invoices", + "deleteInvoices": "Delete Invoices", + "manageInvoiceDrafts": "Manage Invoice Drafts", + "addExpenseIncome": "Add Expense/Income", + "viewExpensesIncome": "View Expenses & Income", + "editExpensesIncome": "Edit Expenses & Income", + "deleteExpensesIncome": "Delete Expenses & Income", + "manageExpenseIncomeDrafts": "Manage Expense/Income Drafts", + "addAccountingDocument": "Add Accounting Document", + "viewAccountingDocuments": "View Accounting Documents", + "editAccountingDocuments": "Edit Accounting Documents", + "deleteAccountingDocuments": "Delete Accounting Documents", + "manageAccountingDocumentDrafts": "Manage Accounting Document Drafts", + "addAccount": "Add Account", + "viewChartOfAccounts": "View Chart of Accounts", + "editChartOfAccounts": "Edit Chart of Accounts", + "deleteAccounts": "Delete Accounts", + "viewOpeningBalance": "View Opening Balance", + "editOpeningBalance": "Edit Opening Balance", + "addWarehouse": "Add Warehouse", + "viewWarehouses": "View Warehouses", + "editWarehouses": "Edit Warehouses", + "deleteWarehouses": "Delete Warehouses", + "addWarehouseTransfer": "Add Warehouse Transfer", + "viewWarehouseTransfers": "View Warehouse Transfers", + "editWarehouseTransfers": "Edit Warehouse Transfers", + "deleteWarehouseTransfers": "Delete Warehouse Transfers", + "manageWarehouseTransferDrafts": "Manage Warehouse Transfer Drafts", + "businessSettings": "Business Settings", + "printSettings": "Print Settings", + "eventHistory": "Event History", + "usersAndPermissions": "Users and Permissions", + "storageSpace": "Storage Space", + "viewStorage": "View Storage", + "deleteFiles": "Delete Files", + "smsPanel": "SMS Panel", + "viewSmsHistory": "View SMS History", + "manageSmsTemplates": "Manage SMS Templates", + "marketplace": "Marketplace", + "viewMarketplace": "View Marketplace", + "buyPlugins": "Buy Plugins", + "viewInvoices": "View Invoices" } diff --git a/hesabixUI/hesabix_ui/lib/l10n/app_fa.arb b/hesabixUI/hesabix_ui/lib/l10n/app_fa.arb index 4699ef7..54acfe3 100644 --- a/hesabixUI/hesabix_ui/lib/l10n/app_fa.arb +++ b/hesabixUI/hesabix_ui/lib/l10n/app_fa.arb @@ -553,6 +553,165 @@ "ownerWarning": "هشدار: کاربر مالک کسب و کار نیازی به افزودن ندارد و همیشه دسترسی کامل به همه بخش‌ها دارد", "ownerWarningTitle": "کاربر مالک", "alreadyAddedWarning": "این کاربر قبلاً به کسب و کار اضافه شده است", - "alreadyAddedWarningTitle": "کاربر موجود" + "alreadyAddedWarningTitle": "کاربر موجود", + "version": "نسخه 1.0.0", + "motto": "جهان با تعاون زیبا می‌شود", + "loadingLanguageSettings": "در حال بارگذاری تنظیمات زبان...", + "loadingCalendarSettings": "در حال بارگذاری تنظیمات تقویم...", + "loadingThemeSettings": "در حال بارگذاری تنظیمات تم...", + "loadingAuthentication": "در حال بارگذاری احراز هویت...", + "initializing": "در حال راه‌اندازی...", + "add": "افزودن", + "view": "مشاهده", + "edit": "ویرایش", + "delete": "حذف", + "draft": "مدیریت پیش‌نویس‌ها", + "addPerson": "افزودن شخص جدید", + "viewPeople": "مشاهده لیست اشخاص", + "editPeople": "ویرایش اطلاعات اشخاص", + "deletePeople": "حذف اشخاص", + "addReceipt": "افزودن دریافت جدید", + "viewReceipts": "مشاهده دریافت‌ها", + "editReceipts": "ویرایش دریافت‌ها", + "deleteReceipts": "حذف دریافت‌ها", + "manageReceiptDrafts": "مدیریت پیش‌نویس‌های دریافت", + "addPayment": "افزودن پرداخت جدید", + "viewPayments": "مشاهده پرداخت‌ها", + "editPayments": "ویرایش پرداخت‌ها", + "deletePayments": "حذف پرداخت‌ها", + "managePaymentDrafts": "مدیریت پیش‌نویس‌های پرداخت", + "products": "کالا‌ها و خدمات", + "addProduct": "افزودن کالا یا خدمت", + "viewProducts": "مشاهده کالاها و خدمات", + "editProducts": "ویرایش کالاها و خدمات", + "deleteProducts": "حذف کالاها و خدمات", + "priceLists": "لیست‌های قیمت", + "addPriceList": "افزودن لیست قیمت", + "viewPriceLists": "مشاهده لیست‌های قیمت", + "editPriceLists": "ویرایش لیست‌های قیمت", + "deletePriceLists": "حذف لیست‌های قیمت", + "categories": "دسته‌بندی‌ها", + "addCategory": "افزودن دسته‌بندی", + "viewCategories": "مشاهده دسته‌بندی‌ها", + "editCategories": "ویرایش دسته‌بندی‌ها", + "deleteCategories": "حذف دسته‌بندی‌ها", + "inventory": "موجودی", + "addInventory": "افزودن موجودی", + "viewInventory": "مشاهده موجودی", + "editInventory": "ویرایش موجودی", + "deleteInventory": "حذف موجودی", + "reports": "گزارش‌ها", + "viewReports": "مشاهده گزارش‌ها", + "generateReports": "تولید گزارش‌ها", + "exportReports": "خروجی گزارش‌ها", + "settings": "تنظیمات", + "viewSettings": "مشاهده تنظیمات", + "editSettings": "ویرایش تنظیمات", + "users": "کاربران", + "viewUsers": "مشاهده کاربران", + "manageUsers": "مدیریت کاربران", + "print": "چاپ اسناد", + "printDocuments": "چاپ اسناد", + "peopleReceipts": "دریافت از اشخاص", + "peoplePayments": "پرداخت به اشخاص", + "storageConfigUpdated": "تنظیمات ذخیره‌سازی به‌روزرسانی شد", + "storageConfigCreated": "تنظیمات ذخیره‌سازی ایجاد شد", + "storageConfigDeleted": "تنظیمات ذخیره‌سازی حذف شد", + "storageConfigHasFiles": "این تنظیمات ذخیره‌سازی دارای فایل است و قابل حذف نیست", + "storageConfigNotFound": "تنظیمات ذخیره‌سازی یافت نشد", + "storageConfigSetAsDefault": "تنظیمات به عنوان پیش‌فرض تنظیم شد", + "storageConfigSetDefaultFailed": "خطا در تنظیم به عنوان پیش‌فرض", + "passwordChangeError": "خطا در تغییر کلمه عبور", + "banking": "بانکداری", + "bankAccounts": "حساب‌های بانکی", + "cash": "صندوق", + "pettyCash": "تنخواه گردان", + "checks": "چک", + "wallet": "کیف پول", + "transfers": "انتقال", + "invoices": "فاکتورها", + "expensesIncome": "هزینه و درآمد", + "accounting": "حسابداری", + "accountingDocuments": "اسناد حسابداری", + "chartOfAccounts": "جدول حساب‌ها", + "openingBalance": "تراز افتتاحیه", + "warehouse": "انبارداری", + "warehouses": "مدیریت انبارها", + "warehouseTransfers": "صدور حواله", + "productAttributes": "ویژگی‌های کالا و خدمات", + "addAttribute": "افزودن ویژگی", + "viewAttributes": "مشاهده ویژگی‌ها", + "editAttributes": "ویرایش ویژگی‌ها", + "deleteAttributes": "حذف ویژگی‌ها", + "addBankAccount": "افزودن حساب بانکی", + "viewBankAccounts": "مشاهده حساب‌های بانکی", + "editBankAccounts": "ویرایش حساب‌های بانکی", + "deleteBankAccounts": "حذف حساب‌های بانکی", + "addCash": "افزودن صندوق", + "viewCash": "مشاهده صندوق‌ها", + "editCash": "ویرایش صندوق‌ها", + "deleteCash": "حذف صندوق‌ها", + "addPettyCash": "افزودن تنخواه", + "viewPettyCash": "مشاهده تنخواه‌ها", + "editPettyCash": "ویرایش تنخواه‌ها", + "deletePettyCash": "حذف تنخواه‌ها", + "addCheck": "افزودن چک", + "viewChecks": "مشاهده چک‌ها", + "editChecks": "ویرایش چک‌ها", + "deleteChecks": "حذف چک‌ها", + "collectChecks": "وصول چک‌ها", + "transferChecks": "انتقال چک‌ها", + "returnChecks": "برگشت چک‌ها", + "viewWallet": "مشاهده کیف پول", + "chargeWallet": "شارژ کیف پول", + "addTransfer": "افزودن انتقال", + "viewTransfers": "مشاهده انتقال‌ها", + "editTransfers": "ویرایش انتقال‌ها", + "deleteTransfers": "حذف انتقال‌ها", + "manageTransferDrafts": "مدیریت پیش‌نویس‌های انتقال", + "addInvoice": "افزودن فاکتور", + "viewInvoices": "مشاهده فاکتورها", + "editInvoices": "ویرایش فاکتورها", + "deleteInvoices": "حذف فاکتورها", + "manageInvoiceDrafts": "مدیریت پیش‌نویس‌های فاکتور", + "addExpenseIncome": "افزودن هزینه یا درآمد", + "viewExpensesIncome": "مشاهده هزینه‌ها و درآمدها", + "editExpensesIncome": "ویرایش هزینه‌ها و درآمدها", + "deleteExpensesIncome": "حذف هزینه‌ها و درآمدها", + "manageExpenseIncomeDrafts": "مدیریت پیش‌نویس‌های هزینه و درآمد", + "addAccountingDocument": "افزودن سند حسابداری", + "viewAccountingDocuments": "مشاهده اسناد حسابداری", + "editAccountingDocuments": "ویرایش اسناد حسابداری", + "deleteAccountingDocuments": "حذف اسناد حسابداری", + "manageAccountingDocumentDrafts": "مدیریت پیش‌نویس‌های اسناد", + "addAccount": "افزودن حساب", + "viewChartOfAccounts": "مشاهده جدول حساب‌ها", + "editChartOfAccounts": "ویرایش جدول حساب‌ها", + "deleteAccounts": "حذف حساب‌ها", + "viewOpeningBalance": "مشاهده تراز افتتاحیه", + "editOpeningBalance": "ویرایش تراز افتتاحیه", + "addWarehouse": "افزودن انبار", + "viewWarehouses": "مشاهده انبارها", + "editWarehouses": "ویرایش انبارها", + "deleteWarehouses": "حذف انبارها", + "addWarehouseTransfer": "افزودن حواله", + "viewWarehouseTransfers": "مشاهده حواله‌ها", + "editWarehouseTransfers": "ویرایش حواله‌ها", + "deleteWarehouseTransfers": "حذف حواله‌ها", + "manageWarehouseTransferDrafts": "مدیریت پیش‌نویس‌های حواله", + "businessSettings": "تنظیمات کسب و کار", + "printSettings": "تنظیمات چاپ اسناد", + "eventHistory": "تاریخچه رویدادها", + "usersAndPermissions": "کاربران و دسترسی‌ها", + "storageSpace": "فضای ذخیره‌سازی", + "viewStorage": "مشاهده فضای ذخیره‌سازی", + "deleteFiles": "حذف فایل‌ها", + "smsPanel": "پنل پیامک", + "viewSmsHistory": "مشاهده تاریخچه پیامک‌ها", + "manageSmsTemplates": "مدیریت قالب‌های پیامک", + "marketplace": "بازار افزونه‌ها", + "viewMarketplace": "مشاهده افزونه‌ها", + "buyPlugins": "خرید افزونه‌ها", + "viewInvoices": "صورت حساب‌ها" } diff --git a/hesabixUI/hesabix_ui/lib/l10n/app_localizations.dart b/hesabixUI/hesabix_ui/lib/l10n/app_localizations.dart index a00220e..7af42c0 100644 --- a/hesabixUI/hesabix_ui/lib/l10n/app_localizations.dart +++ b/hesabixUI/hesabix_ui/lib/l10n/app_localizations.dart @@ -3109,6 +3109,864 @@ abstract class AppLocalizations { /// In en, this message translates to: /// **'Existing User'** String get alreadyAddedWarningTitle; + + /// No description provided for @version. + /// + /// In en, this message translates to: + /// **'Version 1.0.0'** + String get version; + + /// No description provided for @motto. + /// + /// In en, this message translates to: + /// **'The world becomes beautiful through cooperation'** + String get motto; + + /// No description provided for @add. + /// + /// In en, this message translates to: + /// **'Add'** + String get add; + + /// No description provided for @view. + /// + /// In en, this message translates to: + /// **'View'** + String get view; + + /// No description provided for @draft. + /// + /// In en, this message translates to: + /// **'Manage Drafts'** + String get draft; + + /// No description provided for @addPerson. + /// + /// In en, this message translates to: + /// **'Add New Person'** + String get addPerson; + + /// No description provided for @viewPeople. + /// + /// In en, this message translates to: + /// **'View People List'** + String get viewPeople; + + /// No description provided for @editPeople. + /// + /// In en, this message translates to: + /// **'Edit People Information'** + String get editPeople; + + /// No description provided for @deletePeople. + /// + /// In en, this message translates to: + /// **'Delete People'** + String get deletePeople; + + /// No description provided for @addReceipt. + /// + /// In en, this message translates to: + /// **'Add New Receipt'** + String get addReceipt; + + /// No description provided for @viewReceipts. + /// + /// In en, this message translates to: + /// **'View Receipts'** + String get viewReceipts; + + /// No description provided for @editReceipts. + /// + /// In en, this message translates to: + /// **'Edit Receipts'** + String get editReceipts; + + /// No description provided for @deleteReceipts. + /// + /// In en, this message translates to: + /// **'Delete Receipts'** + String get deleteReceipts; + + /// No description provided for @manageReceiptDrafts. + /// + /// In en, this message translates to: + /// **'Manage Receipt Drafts'** + String get manageReceiptDrafts; + + /// No description provided for @addPayment. + /// + /// In en, this message translates to: + /// **'Add New Payment'** + String get addPayment; + + /// No description provided for @viewPayments. + /// + /// In en, this message translates to: + /// **'View Payments'** + String get viewPayments; + + /// No description provided for @editPayments. + /// + /// In en, this message translates to: + /// **'Edit Payments'** + String get editPayments; + + /// No description provided for @deletePayments. + /// + /// In en, this message translates to: + /// **'Delete Payments'** + String get deletePayments; + + /// No description provided for @managePaymentDrafts. + /// + /// In en, this message translates to: + /// **'Manage Payment Drafts'** + String get managePaymentDrafts; + + /// No description provided for @products. + /// + /// In en, this message translates to: + /// **'Products and Services'** + String get products; + + /// No description provided for @addProduct. + /// + /// In en, this message translates to: + /// **'Add Product or Service'** + String get addProduct; + + /// No description provided for @viewProducts. + /// + /// In en, this message translates to: + /// **'View Products and Services'** + String get viewProducts; + + /// No description provided for @editProducts. + /// + /// In en, this message translates to: + /// **'Edit Products and Services'** + String get editProducts; + + /// No description provided for @deleteProducts. + /// + /// In en, this message translates to: + /// **'Delete Products and Services'** + String get deleteProducts; + + /// No description provided for @priceLists. + /// + /// In en, this message translates to: + /// **'Price Lists'** + String get priceLists; + + /// No description provided for @addPriceList. + /// + /// In en, this message translates to: + /// **'Add Price List'** + String get addPriceList; + + /// No description provided for @viewPriceLists. + /// + /// In en, this message translates to: + /// **'View Price Lists'** + String get viewPriceLists; + + /// No description provided for @editPriceLists. + /// + /// In en, this message translates to: + /// **'Edit Price Lists'** + String get editPriceLists; + + /// No description provided for @deletePriceLists. + /// + /// In en, this message translates to: + /// **'Delete Price Lists'** + String get deletePriceLists; + + /// No description provided for @categories. + /// + /// In en, this message translates to: + /// **'Categories'** + String get categories; + + /// No description provided for @addCategory. + /// + /// In en, this message translates to: + /// **'Add Category'** + String get addCategory; + + /// No description provided for @viewCategories. + /// + /// In en, this message translates to: + /// **'View Categories'** + String get viewCategories; + + /// No description provided for @editCategories. + /// + /// In en, this message translates to: + /// **'Edit Categories'** + String get editCategories; + + /// No description provided for @deleteCategories. + /// + /// In en, this message translates to: + /// **'Delete Categories'** + String get deleteCategories; + + /// No description provided for @addInventory. + /// + /// In en, this message translates to: + /// **'Add Inventory'** + String get addInventory; + + /// No description provided for @viewInventory. + /// + /// In en, this message translates to: + /// **'View Inventory'** + String get viewInventory; + + /// No description provided for @editInventory. + /// + /// In en, this message translates to: + /// **'Edit Inventory'** + String get editInventory; + + /// No description provided for @deleteInventory. + /// + /// In en, this message translates to: + /// **'Delete Inventory'** + String get deleteInventory; + + /// No description provided for @viewReports. + /// + /// In en, this message translates to: + /// **'View Reports'** + String get viewReports; + + /// No description provided for @generateReports. + /// + /// In en, this message translates to: + /// **'Generate Reports'** + String get generateReports; + + /// No description provided for @exportReports. + /// + /// In en, this message translates to: + /// **'Export Reports'** + String get exportReports; + + /// No description provided for @viewSettings. + /// + /// In en, this message translates to: + /// **'View Settings'** + String get viewSettings; + + /// No description provided for @editSettings. + /// + /// In en, this message translates to: + /// **'Edit Settings'** + String get editSettings; + + /// No description provided for @users. + /// + /// In en, this message translates to: + /// **'Users'** + String get users; + + /// No description provided for @manageUsers. + /// + /// In en, this message translates to: + /// **'Manage Users'** + String get manageUsers; + + /// No description provided for @print. + /// + /// In en, this message translates to: + /// **'Print Documents'** + String get print; + + /// No description provided for @peopleReceipts. + /// + /// In en, this message translates to: + /// **'Receipts from People'** + String get peopleReceipts; + + /// No description provided for @peoplePayments. + /// + /// In en, this message translates to: + /// **'Payments to People'** + String get peoplePayments; + + /// No description provided for @storageConfigUpdated. + /// + /// In en, this message translates to: + /// **'Storage configuration updated'** + String get storageConfigUpdated; + + /// No description provided for @storageConfigCreated. + /// + /// In en, this message translates to: + /// **'Storage configuration created'** + String get storageConfigCreated; + + /// No description provided for @storageConfigDeleted. + /// + /// In en, this message translates to: + /// **'Storage configuration deleted'** + String get storageConfigDeleted; + + /// No description provided for @storageConfigHasFiles. + /// + /// In en, this message translates to: + /// **'This storage configuration has files and cannot be deleted'** + String get storageConfigHasFiles; + + /// No description provided for @storageConfigNotFound. + /// + /// In en, this message translates to: + /// **'Storage configuration not found'** + String get storageConfigNotFound; + + /// No description provided for @storageConfigSetAsDefault. + /// + /// In en, this message translates to: + /// **'Configuration set as default'** + String get storageConfigSetAsDefault; + + /// No description provided for @storageConfigSetDefaultFailed. + /// + /// In en, this message translates to: + /// **'Failed to set as default'** + String get storageConfigSetDefaultFailed; + + /// No description provided for @passwordChangeError. + /// + /// In en, this message translates to: + /// **'Error changing password'** + String get passwordChangeError; + + /// No description provided for @banking. + /// + /// In en, this message translates to: + /// **'Banking'** + String get banking; + + /// No description provided for @bankAccounts. + /// + /// In en, this message translates to: + /// **'Bank Accounts'** + String get bankAccounts; + + /// No description provided for @cash. + /// + /// In en, this message translates to: + /// **'Cash'** + String get cash; + + /// No description provided for @pettyCash. + /// + /// In en, this message translates to: + /// **'Petty Cash'** + String get pettyCash; + + /// No description provided for @checks. + /// + /// In en, this message translates to: + /// **'Checks'** + String get checks; + + /// No description provided for @wallet. + /// + /// In en, this message translates to: + /// **'Wallet'** + String get wallet; + + /// No description provided for @transfers. + /// + /// In en, this message translates to: + /// **'Transfers'** + String get transfers; + + /// No description provided for @invoices. + /// + /// In en, this message translates to: + /// **'Invoices'** + String get invoices; + + /// No description provided for @expensesIncome. + /// + /// In en, this message translates to: + /// **'Expenses & Income'** + String get expensesIncome; + + /// No description provided for @accountingDocuments. + /// + /// In en, this message translates to: + /// **'Accounting Documents'** + String get accountingDocuments; + + /// No description provided for @chartOfAccounts. + /// + /// In en, this message translates to: + /// **'Chart of Accounts'** + String get chartOfAccounts; + + /// No description provided for @openingBalance. + /// + /// In en, this message translates to: + /// **'Opening Balance'** + String get openingBalance; + + /// No description provided for @warehouse. + /// + /// In en, this message translates to: + /// **'Warehouse'** + String get warehouse; + + /// No description provided for @warehouses. + /// + /// In en, this message translates to: + /// **'Warehouse Management'** + String get warehouses; + + /// No description provided for @warehouseTransfers. + /// + /// In en, this message translates to: + /// **'Warehouse Transfers'** + String get warehouseTransfers; + + /// No description provided for @productAttributes. + /// + /// In en, this message translates to: + /// **'Product Attributes'** + String get productAttributes; + + /// No description provided for @addAttribute. + /// + /// In en, this message translates to: + /// **'Add Attribute'** + String get addAttribute; + + /// No description provided for @viewAttributes. + /// + /// In en, this message translates to: + /// **'View Attributes'** + String get viewAttributes; + + /// No description provided for @editAttributes. + /// + /// In en, this message translates to: + /// **'Edit Attributes'** + String get editAttributes; + + /// No description provided for @deleteAttributes. + /// + /// In en, this message translates to: + /// **'Delete Attributes'** + String get deleteAttributes; + + /// No description provided for @addBankAccount. + /// + /// In en, this message translates to: + /// **'Add Bank Account'** + String get addBankAccount; + + /// No description provided for @viewBankAccounts. + /// + /// In en, this message translates to: + /// **'View Bank Accounts'** + String get viewBankAccounts; + + /// No description provided for @editBankAccounts. + /// + /// In en, this message translates to: + /// **'Edit Bank Accounts'** + String get editBankAccounts; + + /// No description provided for @deleteBankAccounts. + /// + /// In en, this message translates to: + /// **'Delete Bank Accounts'** + String get deleteBankAccounts; + + /// No description provided for @addCash. + /// + /// In en, this message translates to: + /// **'Add Cash'** + String get addCash; + + /// No description provided for @viewCash. + /// + /// In en, this message translates to: + /// **'View Cash'** + String get viewCash; + + /// No description provided for @editCash. + /// + /// In en, this message translates to: + /// **'Edit Cash'** + String get editCash; + + /// No description provided for @deleteCash. + /// + /// In en, this message translates to: + /// **'Delete Cash'** + String get deleteCash; + + /// No description provided for @addPettyCash. + /// + /// In en, this message translates to: + /// **'Add Petty Cash'** + String get addPettyCash; + + /// No description provided for @viewPettyCash. + /// + /// In en, this message translates to: + /// **'View Petty Cash'** + String get viewPettyCash; + + /// No description provided for @editPettyCash. + /// + /// In en, this message translates to: + /// **'Edit Petty Cash'** + String get editPettyCash; + + /// No description provided for @deletePettyCash. + /// + /// In en, this message translates to: + /// **'Delete Petty Cash'** + String get deletePettyCash; + + /// No description provided for @addCheck. + /// + /// In en, this message translates to: + /// **'Add Check'** + String get addCheck; + + /// No description provided for @viewChecks. + /// + /// In en, this message translates to: + /// **'View Checks'** + String get viewChecks; + + /// No description provided for @editChecks. + /// + /// In en, this message translates to: + /// **'Edit Checks'** + String get editChecks; + + /// No description provided for @deleteChecks. + /// + /// In en, this message translates to: + /// **'Delete Checks'** + String get deleteChecks; + + /// No description provided for @collectChecks. + /// + /// In en, this message translates to: + /// **'Collect Checks'** + String get collectChecks; + + /// No description provided for @transferChecks. + /// + /// In en, this message translates to: + /// **'Transfer Checks'** + String get transferChecks; + + /// No description provided for @returnChecks. + /// + /// In en, this message translates to: + /// **'Return Checks'** + String get returnChecks; + + /// No description provided for @viewWallet. + /// + /// In en, this message translates to: + /// **'View Wallet'** + String get viewWallet; + + /// No description provided for @chargeWallet. + /// + /// In en, this message translates to: + /// **'Charge Wallet'** + String get chargeWallet; + + /// No description provided for @addTransfer. + /// + /// In en, this message translates to: + /// **'Add Transfer'** + String get addTransfer; + + /// No description provided for @viewTransfers. + /// + /// In en, this message translates to: + /// **'View Transfers'** + String get viewTransfers; + + /// No description provided for @editTransfers. + /// + /// In en, this message translates to: + /// **'Edit Transfers'** + String get editTransfers; + + /// No description provided for @deleteTransfers. + /// + /// In en, this message translates to: + /// **'Delete Transfers'** + String get deleteTransfers; + + /// No description provided for @manageTransferDrafts. + /// + /// In en, this message translates to: + /// **'Manage Transfer Drafts'** + String get manageTransferDrafts; + + /// No description provided for @addInvoice. + /// + /// In en, this message translates to: + /// **'Add Invoice'** + String get addInvoice; + + /// No description provided for @viewInvoices. + /// + /// In en, this message translates to: + /// **'View Invoices'** + String get viewInvoices; + + /// No description provided for @editInvoices. + /// + /// In en, this message translates to: + /// **'Edit Invoices'** + String get editInvoices; + + /// No description provided for @deleteInvoices. + /// + /// In en, this message translates to: + /// **'Delete Invoices'** + String get deleteInvoices; + + /// No description provided for @manageInvoiceDrafts. + /// + /// In en, this message translates to: + /// **'Manage Invoice Drafts'** + String get manageInvoiceDrafts; + + /// No description provided for @addExpenseIncome. + /// + /// In en, this message translates to: + /// **'Add Expense/Income'** + String get addExpenseIncome; + + /// No description provided for @viewExpensesIncome. + /// + /// In en, this message translates to: + /// **'View Expenses & Income'** + String get viewExpensesIncome; + + /// No description provided for @editExpensesIncome. + /// + /// In en, this message translates to: + /// **'Edit Expenses & Income'** + String get editExpensesIncome; + + /// No description provided for @deleteExpensesIncome. + /// + /// In en, this message translates to: + /// **'Delete Expenses & Income'** + String get deleteExpensesIncome; + + /// No description provided for @manageExpenseIncomeDrafts. + /// + /// In en, this message translates to: + /// **'Manage Expense/Income Drafts'** + String get manageExpenseIncomeDrafts; + + /// No description provided for @addAccountingDocument. + /// + /// In en, this message translates to: + /// **'Add Accounting Document'** + String get addAccountingDocument; + + /// No description provided for @viewAccountingDocuments. + /// + /// In en, this message translates to: + /// **'View Accounting Documents'** + String get viewAccountingDocuments; + + /// No description provided for @editAccountingDocuments. + /// + /// In en, this message translates to: + /// **'Edit Accounting Documents'** + String get editAccountingDocuments; + + /// No description provided for @deleteAccountingDocuments. + /// + /// In en, this message translates to: + /// **'Delete Accounting Documents'** + String get deleteAccountingDocuments; + + /// No description provided for @manageAccountingDocumentDrafts. + /// + /// In en, this message translates to: + /// **'Manage Accounting Document Drafts'** + String get manageAccountingDocumentDrafts; + + /// No description provided for @addAccount. + /// + /// In en, this message translates to: + /// **'Add Account'** + String get addAccount; + + /// No description provided for @viewChartOfAccounts. + /// + /// In en, this message translates to: + /// **'View Chart of Accounts'** + String get viewChartOfAccounts; + + /// No description provided for @editChartOfAccounts. + /// + /// In en, this message translates to: + /// **'Edit Chart of Accounts'** + String get editChartOfAccounts; + + /// No description provided for @deleteAccounts. + /// + /// In en, this message translates to: + /// **'Delete Accounts'** + String get deleteAccounts; + + /// No description provided for @viewOpeningBalance. + /// + /// In en, this message translates to: + /// **'View Opening Balance'** + String get viewOpeningBalance; + + /// No description provided for @editOpeningBalance. + /// + /// In en, this message translates to: + /// **'Edit Opening Balance'** + String get editOpeningBalance; + + /// No description provided for @addWarehouse. + /// + /// In en, this message translates to: + /// **'Add Warehouse'** + String get addWarehouse; + + /// No description provided for @viewWarehouses. + /// + /// In en, this message translates to: + /// **'View Warehouses'** + String get viewWarehouses; + + /// No description provided for @editWarehouses. + /// + /// In en, this message translates to: + /// **'Edit Warehouses'** + String get editWarehouses; + + /// No description provided for @deleteWarehouses. + /// + /// In en, this message translates to: + /// **'Delete Warehouses'** + String get deleteWarehouses; + + /// No description provided for @addWarehouseTransfer. + /// + /// In en, this message translates to: + /// **'Add Warehouse Transfer'** + String get addWarehouseTransfer; + + /// No description provided for @viewWarehouseTransfers. + /// + /// In en, this message translates to: + /// **'View Warehouse Transfers'** + String get viewWarehouseTransfers; + + /// No description provided for @editWarehouseTransfers. + /// + /// In en, this message translates to: + /// **'Edit Warehouse Transfers'** + String get editWarehouseTransfers; + + /// No description provided for @deleteWarehouseTransfers. + /// + /// In en, this message translates to: + /// **'Delete Warehouse Transfers'** + String get deleteWarehouseTransfers; + + /// No description provided for @manageWarehouseTransferDrafts. + /// + /// In en, this message translates to: + /// **'Manage Warehouse Transfer Drafts'** + String get manageWarehouseTransferDrafts; + + /// No description provided for @printSettings. + /// + /// In en, this message translates to: + /// **'Print Settings'** + String get printSettings; + + /// No description provided for @eventHistory. + /// + /// In en, this message translates to: + /// **'Event History'** + String get eventHistory; + + /// No description provided for @storageSpace. + /// + /// In en, this message translates to: + /// **'Storage Space'** + String get storageSpace; + + /// No description provided for @viewStorage. + /// + /// In en, this message translates to: + /// **'View Storage'** + String get viewStorage; + + /// No description provided for @deleteFiles. + /// + /// In en, this message translates to: + /// **'Delete Files'** + String get deleteFiles; + + /// No description provided for @smsPanel. + /// + /// In en, this message translates to: + /// **'SMS Panel'** + String get smsPanel; + + /// No description provided for @viewSmsHistory. + /// + /// In en, this message translates to: + /// **'View SMS History'** + String get viewSmsHistory; + + /// No description provided for @manageSmsTemplates. + /// + /// In en, this message translates to: + /// **'Manage SMS Templates'** + String get manageSmsTemplates; + + /// No description provided for @marketplace. + /// + /// In en, this message translates to: + /// **'Marketplace'** + String get marketplace; + + /// No description provided for @viewMarketplace. + /// + /// In en, this message translates to: + /// **'View Marketplace'** + String get viewMarketplace; + + /// No description provided for @buyPlugins. + /// + /// In en, this message translates to: + /// **'Buy Plugins'** + String get buyPlugins; } class _AppLocalizationsDelegate diff --git a/hesabixUI/hesabix_ui/lib/l10n/app_localizations_en.dart b/hesabixUI/hesabix_ui/lib/l10n/app_localizations_en.dart index e1d3d16..ab9da6f 100644 --- a/hesabixUI/hesabix_ui/lib/l10n/app_localizations_en.dart +++ b/hesabixUI/hesabix_ui/lib/l10n/app_localizations_en.dart @@ -1557,4 +1557,436 @@ class AppLocalizationsEn extends AppLocalizations { @override String get alreadyAddedWarningTitle => 'Existing User'; + + @override + String get version => 'Version 1.0.0'; + + @override + String get motto => 'The world becomes beautiful through cooperation'; + + @override + String get add => 'Add'; + + @override + String get view => 'View'; + + @override + String get draft => 'Manage Drafts'; + + @override + String get addPerson => 'Add New Person'; + + @override + String get viewPeople => 'View People List'; + + @override + String get editPeople => 'Edit People Information'; + + @override + String get deletePeople => 'Delete People'; + + @override + String get addReceipt => 'Add New Receipt'; + + @override + String get viewReceipts => 'View Receipts'; + + @override + String get editReceipts => 'Edit Receipts'; + + @override + String get deleteReceipts => 'Delete Receipts'; + + @override + String get manageReceiptDrafts => 'Manage Receipt Drafts'; + + @override + String get addPayment => 'Add New Payment'; + + @override + String get viewPayments => 'View Payments'; + + @override + String get editPayments => 'Edit Payments'; + + @override + String get deletePayments => 'Delete Payments'; + + @override + String get managePaymentDrafts => 'Manage Payment Drafts'; + + @override + String get products => 'Products and Services'; + + @override + String get addProduct => 'Add Product or Service'; + + @override + String get viewProducts => 'View Products and Services'; + + @override + String get editProducts => 'Edit Products and Services'; + + @override + String get deleteProducts => 'Delete Products and Services'; + + @override + String get priceLists => 'Price Lists'; + + @override + String get addPriceList => 'Add Price List'; + + @override + String get viewPriceLists => 'View Price Lists'; + + @override + String get editPriceLists => 'Edit Price Lists'; + + @override + String get deletePriceLists => 'Delete Price Lists'; + + @override + String get categories => 'Categories'; + + @override + String get addCategory => 'Add Category'; + + @override + String get viewCategories => 'View Categories'; + + @override + String get editCategories => 'Edit Categories'; + + @override + String get deleteCategories => 'Delete Categories'; + + @override + String get addInventory => 'Add Inventory'; + + @override + String get viewInventory => 'View Inventory'; + + @override + String get editInventory => 'Edit Inventory'; + + @override + String get deleteInventory => 'Delete Inventory'; + + @override + String get viewReports => 'View Reports'; + + @override + String get generateReports => 'Generate Reports'; + + @override + String get exportReports => 'Export Reports'; + + @override + String get viewSettings => 'View Settings'; + + @override + String get editSettings => 'Edit Settings'; + + @override + String get users => 'Users'; + + @override + String get manageUsers => 'Manage Users'; + + @override + String get print => 'Print Documents'; + + @override + String get peopleReceipts => 'Receipts from People'; + + @override + String get peoplePayments => 'Payments to People'; + + @override + String get storageConfigUpdated => 'Storage configuration updated'; + + @override + String get storageConfigCreated => 'Storage configuration created'; + + @override + String get storageConfigDeleted => 'Storage configuration deleted'; + + @override + String get storageConfigHasFiles => + 'This storage configuration has files and cannot be deleted'; + + @override + String get storageConfigNotFound => 'Storage configuration not found'; + + @override + String get storageConfigSetAsDefault => 'Configuration set as default'; + + @override + String get storageConfigSetDefaultFailed => 'Failed to set as default'; + + @override + String get passwordChangeError => 'Error changing password'; + + @override + String get banking => 'Banking'; + + @override + String get bankAccounts => 'Bank Accounts'; + + @override + String get cash => 'Cash'; + + @override + String get pettyCash => 'Petty Cash'; + + @override + String get checks => 'Checks'; + + @override + String get wallet => 'Wallet'; + + @override + String get transfers => 'Transfers'; + + @override + String get invoices => 'Invoices'; + + @override + String get expensesIncome => 'Expenses & Income'; + + @override + String get accountingDocuments => 'Accounting Documents'; + + @override + String get chartOfAccounts => 'Chart of Accounts'; + + @override + String get openingBalance => 'Opening Balance'; + + @override + String get warehouse => 'Warehouse'; + + @override + String get warehouses => 'Warehouse Management'; + + @override + String get warehouseTransfers => 'Warehouse Transfers'; + + @override + String get productAttributes => 'Product Attributes'; + + @override + String get addAttribute => 'Add Attribute'; + + @override + String get viewAttributes => 'View Attributes'; + + @override + String get editAttributes => 'Edit Attributes'; + + @override + String get deleteAttributes => 'Delete Attributes'; + + @override + String get addBankAccount => 'Add Bank Account'; + + @override + String get viewBankAccounts => 'View Bank Accounts'; + + @override + String get editBankAccounts => 'Edit Bank Accounts'; + + @override + String get deleteBankAccounts => 'Delete Bank Accounts'; + + @override + String get addCash => 'Add Cash'; + + @override + String get viewCash => 'View Cash'; + + @override + String get editCash => 'Edit Cash'; + + @override + String get deleteCash => 'Delete Cash'; + + @override + String get addPettyCash => 'Add Petty Cash'; + + @override + String get viewPettyCash => 'View Petty Cash'; + + @override + String get editPettyCash => 'Edit Petty Cash'; + + @override + String get deletePettyCash => 'Delete Petty Cash'; + + @override + String get addCheck => 'Add Check'; + + @override + String get viewChecks => 'View Checks'; + + @override + String get editChecks => 'Edit Checks'; + + @override + String get deleteChecks => 'Delete Checks'; + + @override + String get collectChecks => 'Collect Checks'; + + @override + String get transferChecks => 'Transfer Checks'; + + @override + String get returnChecks => 'Return Checks'; + + @override + String get viewWallet => 'View Wallet'; + + @override + String get chargeWallet => 'Charge Wallet'; + + @override + String get addTransfer => 'Add Transfer'; + + @override + String get viewTransfers => 'View Transfers'; + + @override + String get editTransfers => 'Edit Transfers'; + + @override + String get deleteTransfers => 'Delete Transfers'; + + @override + String get manageTransferDrafts => 'Manage Transfer Drafts'; + + @override + String get addInvoice => 'Add Invoice'; + + @override + String get viewInvoices => 'View Invoices'; + + @override + String get editInvoices => 'Edit Invoices'; + + @override + String get deleteInvoices => 'Delete Invoices'; + + @override + String get manageInvoiceDrafts => 'Manage Invoice Drafts'; + + @override + String get addExpenseIncome => 'Add Expense/Income'; + + @override + String get viewExpensesIncome => 'View Expenses & Income'; + + @override + String get editExpensesIncome => 'Edit Expenses & Income'; + + @override + String get deleteExpensesIncome => 'Delete Expenses & Income'; + + @override + String get manageExpenseIncomeDrafts => 'Manage Expense/Income Drafts'; + + @override + String get addAccountingDocument => 'Add Accounting Document'; + + @override + String get viewAccountingDocuments => 'View Accounting Documents'; + + @override + String get editAccountingDocuments => 'Edit Accounting Documents'; + + @override + String get deleteAccountingDocuments => 'Delete Accounting Documents'; + + @override + String get manageAccountingDocumentDrafts => + 'Manage Accounting Document Drafts'; + + @override + String get addAccount => 'Add Account'; + + @override + String get viewChartOfAccounts => 'View Chart of Accounts'; + + @override + String get editChartOfAccounts => 'Edit Chart of Accounts'; + + @override + String get deleteAccounts => 'Delete Accounts'; + + @override + String get viewOpeningBalance => 'View Opening Balance'; + + @override + String get editOpeningBalance => 'Edit Opening Balance'; + + @override + String get addWarehouse => 'Add Warehouse'; + + @override + String get viewWarehouses => 'View Warehouses'; + + @override + String get editWarehouses => 'Edit Warehouses'; + + @override + String get deleteWarehouses => 'Delete Warehouses'; + + @override + String get addWarehouseTransfer => 'Add Warehouse Transfer'; + + @override + String get viewWarehouseTransfers => 'View Warehouse Transfers'; + + @override + String get editWarehouseTransfers => 'Edit Warehouse Transfers'; + + @override + String get deleteWarehouseTransfers => 'Delete Warehouse Transfers'; + + @override + String get manageWarehouseTransferDrafts => + 'Manage Warehouse Transfer Drafts'; + + @override + String get printSettings => 'Print Settings'; + + @override + String get eventHistory => 'Event History'; + + @override + String get storageSpace => 'Storage Space'; + + @override + String get viewStorage => 'View Storage'; + + @override + String get deleteFiles => 'Delete Files'; + + @override + String get smsPanel => 'SMS Panel'; + + @override + String get viewSmsHistory => 'View SMS History'; + + @override + String get manageSmsTemplates => 'Manage SMS Templates'; + + @override + String get marketplace => 'Marketplace'; + + @override + String get viewMarketplace => 'View Marketplace'; + + @override + String get buyPlugins => 'Buy Plugins'; } diff --git a/hesabixUI/hesabix_ui/lib/l10n/app_localizations_fa.dart b/hesabixUI/hesabix_ui/lib/l10n/app_localizations_fa.dart index 0c73388..1795420 100644 --- a/hesabixUI/hesabix_ui/lib/l10n/app_localizations_fa.dart +++ b/hesabixUI/hesabix_ui/lib/l10n/app_localizations_fa.dart @@ -1548,4 +1548,434 @@ class AppLocalizationsFa extends AppLocalizations { @override String get alreadyAddedWarningTitle => 'کاربر موجود'; + + @override + String get version => 'نسخه 1.0.0'; + + @override + String get motto => 'جهان با تعاون زیبا می‌شود'; + + @override + String get add => 'افزودن'; + + @override + String get view => 'مشاهده'; + + @override + String get draft => 'مدیریت پیش‌نویس‌ها'; + + @override + String get addPerson => 'افزودن شخص جدید'; + + @override + String get viewPeople => 'مشاهده لیست اشخاص'; + + @override + String get editPeople => 'ویرایش اطلاعات اشخاص'; + + @override + String get deletePeople => 'حذف اشخاص'; + + @override + String get addReceipt => 'افزودن دریافت جدید'; + + @override + String get viewReceipts => 'مشاهده دریافت‌ها'; + + @override + String get editReceipts => 'ویرایش دریافت‌ها'; + + @override + String get deleteReceipts => 'حذف دریافت‌ها'; + + @override + String get manageReceiptDrafts => 'مدیریت پیش‌نویس‌های دریافت'; + + @override + String get addPayment => 'افزودن پرداخت جدید'; + + @override + String get viewPayments => 'مشاهده پرداخت‌ها'; + + @override + String get editPayments => 'ویرایش پرداخت‌ها'; + + @override + String get deletePayments => 'حذف پرداخت‌ها'; + + @override + String get managePaymentDrafts => 'مدیریت پیش‌نویس‌های پرداخت'; + + @override + String get products => 'کالا‌ها و خدمات'; + + @override + String get addProduct => 'افزودن کالا یا خدمت'; + + @override + String get viewProducts => 'مشاهده کالاها و خدمات'; + + @override + String get editProducts => 'ویرایش کالاها و خدمات'; + + @override + String get deleteProducts => 'حذف کالاها و خدمات'; + + @override + String get priceLists => 'لیست‌های قیمت'; + + @override + String get addPriceList => 'افزودن لیست قیمت'; + + @override + String get viewPriceLists => 'مشاهده لیست‌های قیمت'; + + @override + String get editPriceLists => 'ویرایش لیست‌های قیمت'; + + @override + String get deletePriceLists => 'حذف لیست‌های قیمت'; + + @override + String get categories => 'دسته‌بندی‌ها'; + + @override + String get addCategory => 'افزودن دسته‌بندی'; + + @override + String get viewCategories => 'مشاهده دسته‌بندی‌ها'; + + @override + String get editCategories => 'ویرایش دسته‌بندی‌ها'; + + @override + String get deleteCategories => 'حذف دسته‌بندی‌ها'; + + @override + String get addInventory => 'افزودن موجودی'; + + @override + String get viewInventory => 'مشاهده موجودی'; + + @override + String get editInventory => 'ویرایش موجودی'; + + @override + String get deleteInventory => 'حذف موجودی'; + + @override + String get viewReports => 'مشاهده گزارش‌ها'; + + @override + String get generateReports => 'تولید گزارش‌ها'; + + @override + String get exportReports => 'خروجی گزارش‌ها'; + + @override + String get viewSettings => 'مشاهده تنظیمات'; + + @override + String get editSettings => 'ویرایش تنظیمات'; + + @override + String get users => 'کاربران'; + + @override + String get manageUsers => 'مدیریت کاربران'; + + @override + String get print => 'چاپ اسناد'; + + @override + String get peopleReceipts => 'دریافت از اشخاص'; + + @override + String get peoplePayments => 'پرداخت به اشخاص'; + + @override + String get storageConfigUpdated => 'تنظیمات ذخیره‌سازی به‌روزرسانی شد'; + + @override + String get storageConfigCreated => 'تنظیمات ذخیره‌سازی ایجاد شد'; + + @override + String get storageConfigDeleted => 'تنظیمات ذخیره‌سازی حذف شد'; + + @override + String get storageConfigHasFiles => + 'این تنظیمات ذخیره‌سازی دارای فایل است و قابل حذف نیست'; + + @override + String get storageConfigNotFound => 'تنظیمات ذخیره‌سازی یافت نشد'; + + @override + String get storageConfigSetAsDefault => 'تنظیمات به عنوان پیش‌فرض تنظیم شد'; + + @override + String get storageConfigSetDefaultFailed => 'خطا در تنظیم به عنوان پیش‌فرض'; + + @override + String get passwordChangeError => 'خطا در تغییر کلمه عبور'; + + @override + String get banking => 'بانکداری'; + + @override + String get bankAccounts => 'حساب‌های بانکی'; + + @override + String get cash => 'صندوق'; + + @override + String get pettyCash => 'تنخواه گردان'; + + @override + String get checks => 'چک'; + + @override + String get wallet => 'کیف پول'; + + @override + String get transfers => 'انتقال'; + + @override + String get invoices => 'فاکتورها'; + + @override + String get expensesIncome => 'هزینه و درآمد'; + + @override + String get accountingDocuments => 'اسناد حسابداری'; + + @override + String get chartOfAccounts => 'جدول حساب‌ها'; + + @override + String get openingBalance => 'تراز افتتاحیه'; + + @override + String get warehouse => 'انبارداری'; + + @override + String get warehouses => 'مدیریت انبارها'; + + @override + String get warehouseTransfers => 'صدور حواله'; + + @override + String get productAttributes => 'ویژگی‌های کالا و خدمات'; + + @override + String get addAttribute => 'افزودن ویژگی'; + + @override + String get viewAttributes => 'مشاهده ویژگی‌ها'; + + @override + String get editAttributes => 'ویرایش ویژگی‌ها'; + + @override + String get deleteAttributes => 'حذف ویژگی‌ها'; + + @override + String get addBankAccount => 'افزودن حساب بانکی'; + + @override + String get viewBankAccounts => 'مشاهده حساب‌های بانکی'; + + @override + String get editBankAccounts => 'ویرایش حساب‌های بانکی'; + + @override + String get deleteBankAccounts => 'حذف حساب‌های بانکی'; + + @override + String get addCash => 'افزودن صندوق'; + + @override + String get viewCash => 'مشاهده صندوق‌ها'; + + @override + String get editCash => 'ویرایش صندوق‌ها'; + + @override + String get deleteCash => 'حذف صندوق‌ها'; + + @override + String get addPettyCash => 'افزودن تنخواه'; + + @override + String get viewPettyCash => 'مشاهده تنخواه‌ها'; + + @override + String get editPettyCash => 'ویرایش تنخواه‌ها'; + + @override + String get deletePettyCash => 'حذف تنخواه‌ها'; + + @override + String get addCheck => 'افزودن چک'; + + @override + String get viewChecks => 'مشاهده چک‌ها'; + + @override + String get editChecks => 'ویرایش چک‌ها'; + + @override + String get deleteChecks => 'حذف چک‌ها'; + + @override + String get collectChecks => 'وصول چک‌ها'; + + @override + String get transferChecks => 'انتقال چک‌ها'; + + @override + String get returnChecks => 'برگشت چک‌ها'; + + @override + String get viewWallet => 'مشاهده کیف پول'; + + @override + String get chargeWallet => 'شارژ کیف پول'; + + @override + String get addTransfer => 'افزودن انتقال'; + + @override + String get viewTransfers => 'مشاهده انتقال‌ها'; + + @override + String get editTransfers => 'ویرایش انتقال‌ها'; + + @override + String get deleteTransfers => 'حذف انتقال‌ها'; + + @override + String get manageTransferDrafts => 'مدیریت پیش‌نویس‌های انتقال'; + + @override + String get addInvoice => 'افزودن فاکتور'; + + @override + String get viewInvoices => 'صورت حساب‌ها'; + + @override + String get editInvoices => 'ویرایش فاکتورها'; + + @override + String get deleteInvoices => 'حذف فاکتورها'; + + @override + String get manageInvoiceDrafts => 'مدیریت پیش‌نویس‌های فاکتور'; + + @override + String get addExpenseIncome => 'افزودن هزینه یا درآمد'; + + @override + String get viewExpensesIncome => 'مشاهده هزینه‌ها و درآمدها'; + + @override + String get editExpensesIncome => 'ویرایش هزینه‌ها و درآمدها'; + + @override + String get deleteExpensesIncome => 'حذف هزینه‌ها و درآمدها'; + + @override + String get manageExpenseIncomeDrafts => 'مدیریت پیش‌نویس‌های هزینه و درآمد'; + + @override + String get addAccountingDocument => 'افزودن سند حسابداری'; + + @override + String get viewAccountingDocuments => 'مشاهده اسناد حسابداری'; + + @override + String get editAccountingDocuments => 'ویرایش اسناد حسابداری'; + + @override + String get deleteAccountingDocuments => 'حذف اسناد حسابداری'; + + @override + String get manageAccountingDocumentDrafts => 'مدیریت پیش‌نویس‌های اسناد'; + + @override + String get addAccount => 'افزودن حساب'; + + @override + String get viewChartOfAccounts => 'مشاهده جدول حساب‌ها'; + + @override + String get editChartOfAccounts => 'ویرایش جدول حساب‌ها'; + + @override + String get deleteAccounts => 'حذف حساب‌ها'; + + @override + String get viewOpeningBalance => 'مشاهده تراز افتتاحیه'; + + @override + String get editOpeningBalance => 'ویرایش تراز افتتاحیه'; + + @override + String get addWarehouse => 'افزودن انبار'; + + @override + String get viewWarehouses => 'مشاهده انبارها'; + + @override + String get editWarehouses => 'ویرایش انبارها'; + + @override + String get deleteWarehouses => 'حذف انبارها'; + + @override + String get addWarehouseTransfer => 'افزودن حواله'; + + @override + String get viewWarehouseTransfers => 'مشاهده حواله‌ها'; + + @override + String get editWarehouseTransfers => 'ویرایش حواله‌ها'; + + @override + String get deleteWarehouseTransfers => 'حذف حواله‌ها'; + + @override + String get manageWarehouseTransferDrafts => 'مدیریت پیش‌نویس‌های حواله'; + + @override + String get printSettings => 'تنظیمات چاپ اسناد'; + + @override + String get eventHistory => 'تاریخچه رویدادها'; + + @override + String get storageSpace => 'فضای ذخیره‌سازی'; + + @override + String get viewStorage => 'مشاهده فضای ذخیره‌سازی'; + + @override + String get deleteFiles => 'حذف فایل‌ها'; + + @override + String get smsPanel => 'پنل پیامک'; + + @override + String get viewSmsHistory => 'مشاهده تاریخچه پیامک‌ها'; + + @override + String get manageSmsTemplates => 'مدیریت قالب‌های پیامک'; + + @override + String get marketplace => 'بازار افزونه‌ها'; + + @override + String get viewMarketplace => 'مشاهده افزونه‌ها'; + + @override + String get buyPlugins => 'خرید افزونه‌ها'; } diff --git a/hesabixUI/hesabix_ui/lib/main.dart b/hesabixUI/hesabix_ui/lib/main.dart index 42fa7e3..c0392db 100644 --- a/hesabixUI/hesabix_ui/lib/main.dart +++ b/hesabixUI/hesabix_ui/lib/main.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:go_router/go_router.dart'; import 'package:flutter_localizations/flutter_localizations.dart'; import 'package:flutter_web_plugins/url_strategy.dart'; +import 'l10n/app_localizations.dart'; import 'pages/login_page.dart'; import 'pages/profile/profile_shell.dart'; @@ -21,7 +22,6 @@ import 'pages/admin/email_settings_page.dart'; import 'pages/business/business_shell.dart'; import 'pages/business/dashboard/business_dashboard_page.dart'; import 'pages/business/users_permissions_page.dart'; -import 'package:hesabix_ui/l10n/app_localizations.dart'; import 'core/locale_controller.dart'; import 'core/calendar_controller.dart'; import 'core/api_client.dart'; @@ -174,29 +174,57 @@ class _MyAppState extends State { final isFa = _controller!.locale.languageCode == 'fa'; if (isFa) { if (_controller == null) { - loadingMessage = 'در حال بارگذاری تنظیمات زبان...'; + loadingMessage = 'loadingLanguageSettings'; } else if (_calendarController == null) { - loadingMessage = 'در حال بارگذاری تنظیمات تقویم...'; + loadingMessage = 'loadingCalendarSettings'; } else if (_themeController == null) { - loadingMessage = 'در حال بارگذاری تنظیمات تم...'; + loadingMessage = 'loadingThemeSettings'; } else if (_authStore == null) { - loadingMessage = 'در حال بارگذاری احراز هویت...'; + loadingMessage = 'loadingAuthentication'; } else { - loadingMessage = 'در حال راه‌اندازی...'; + loadingMessage = 'initializing'; } } } - return SimpleSplashScreen( - message: loadingMessage, - showLogo: true, - displayDuration: const Duration(seconds: 1), - locale: _controller?.locale, - authStore: _authStore, - onComplete: () { - // این callback زمانی فراخوانی می‌شود که splash screen تمام شود - // اما ما از splash controller استفاده می‌کنیم - print('🔍 SPLASH DEBUG: Splash screen completed'); + return Builder( + builder: (context) { + final t = AppLocalizations.of(context); + String localizedMessage = loadingMessage; + + // تبدیل کلیدهای ترجمه به متن + switch (loadingMessage) { + case 'loadingLanguageSettings': + localizedMessage = t.loadingLanguageSettings; + break; + case 'loadingCalendarSettings': + localizedMessage = t.loadingCalendarSettings; + break; + case 'loadingThemeSettings': + localizedMessage = t.loadingThemeSettings; + break; + case 'loadingAuthentication': + localizedMessage = t.loadingAuthentication; + break; + case 'initializing': + localizedMessage = t.initializing; + break; + default: + localizedMessage = loadingMessage; + } + + return SimpleSplashScreen( + message: localizedMessage, + showLogo: true, + displayDuration: const Duration(seconds: 1), + locale: _controller?.locale, + authStore: _authStore, + onComplete: () { + // این callback زمانی فراخوانی می‌شود که splash screen تمام شود + // اما ما از splash controller استفاده می‌کنیم + print('🔍 SPLASH DEBUG: Splash screen completed'); + }, + ); }, ); }, diff --git a/hesabixUI/hesabix_ui/lib/pages/business/business_shell.dart b/hesabixUI/hesabix_ui/lib/pages/business/business_shell.dart index aec6d5d..ff7c8f0 100644 --- a/hesabixUI/hesabix_ui/lib/pages/business/business_shell.dart +++ b/hesabixUI/hesabix_ui/lib/pages/business/business_shell.dart @@ -211,7 +211,7 @@ class _BusinessShellState extends State { if (!context.mounted) return; ScaffoldMessenger.of(context) ..hideCurrentSnackBar() - ..showSnackBar(const SnackBar(content: Text('خروج انجام شد'))); + ..showSnackBar(SnackBar(content: Text(t.logoutDone))); context.go('/login'); } diff --git a/hesabixUI/hesabix_ui/lib/pages/business/users_permissions_page.dart b/hesabixUI/hesabix_ui/lib/pages/business/users_permissions_page.dart index ed9a3d4..c7144ad 100644 --- a/hesabixUI/hesabix_ui/lib/pages/business/users_permissions_page.dart +++ b/hesabixUI/hesabix_ui/lib/pages/business/users_permissions_page.dart @@ -64,14 +64,14 @@ class _UsersPermissionsPageState extends State { _loading = false; _error = e.toString(); }); - _showErrorSnackBar('خطا در بارگذاری کاربران: $e'); + _showErrorSnackBar('${AppLocalizations.of(context).dataLoadingError}: $e'); } } } Future _addUser() async { if (_emailOrPhoneController.text.trim().isEmpty) { - _showErrorSnackBar('لطفاً ایمیل یا شماره تلفن را وارد کنید'); + _showErrorSnackBar(AppLocalizations.of(context).userEmailOrPhoneHint); return; } @@ -103,7 +103,7 @@ class _UsersPermissionsPageState extends State { _showErrorSnackBar(response.message); } } catch (e) { - _showErrorSnackBar('خطا در افزودن کاربر: $e'); + _showErrorSnackBar('${AppLocalizations.of(context).userAddFailed}: $e'); } } @@ -124,7 +124,7 @@ class _UsersPermissionsPageState extends State { _showErrorSnackBar(response.message); } } catch (e) { - _showErrorSnackBar('خطا در به‌روزرسانی دسترسی‌ها: $e'); + _showErrorSnackBar('${AppLocalizations.of(context).permissionsUpdateFailed}: $e'); } } @@ -165,7 +165,7 @@ class _UsersPermissionsPageState extends State { _showErrorSnackBar(response.message); } } catch (e) { - _showErrorSnackBar('خطا در حذف کاربر: $e'); + _showErrorSnackBar('${t.userRemoveFailed}: $e'); } } @@ -309,7 +309,7 @@ class _UsersPermissionsPageState extends State { ), const SizedBox(height: 4), Text( - 'مدیریت کاربران و دسترسی‌های کسب و کار', + t.businessUsers, style: theme.textTheme.bodyMedium?.copyWith( color: colorScheme.onSurfaceVariant, ), @@ -324,7 +324,7 @@ class _UsersPermissionsPageState extends State { borderRadius: BorderRadius.circular(20), ), child: Text( - '${_users.length} کاربر', + '${_users.length} ${t.user}', style: theme.textTheme.labelMedium?.copyWith( color: colorScheme.onPrimaryContainer, fontWeight: FontWeight.w600, @@ -708,7 +708,7 @@ class _UsersPermissionsPageState extends State { ), const SizedBox(width: 4), Text( - 'مالک', + AppLocalizations.of(context).owner, style: TextStyle( color: Colors.orange.shade700, fontSize: 11, @@ -778,7 +778,7 @@ class _UsersPermissionsPageState extends State { ), const SizedBox(height: 4), Text( - 'مدیریت دسترسی‌های کاربر', + t.userPermissions, style: theme.textTheme.bodyMedium?.copyWith( color: colorScheme.onPrimaryContainer.withValues(alpha: 0.8), ), @@ -805,40 +805,40 @@ class _UsersPermissionsPageState extends State { children: [ // اشخاص _buildPermissionSection( - 'اشخاص', + t.people, Icons.people, [ _buildPermissionGroup( - 'اشخاص', + t.people, [ - _buildPermissionItem('افزودن', 'افزودن شخص جدید', _getPermission(currentPermissions, 'people', 'add'), (value) => _setPermission(currentPermissions, 'people', 'add', value), theme, colorScheme), - _buildPermissionItem('مشاهده', 'مشاهده لیست اشخاص', _getPermission(currentPermissions, 'people', 'view'), (value) => _setPermission(currentPermissions, 'people', 'view', value), theme, colorScheme), - _buildPermissionItem('ویرایش', 'ویرایش اطلاعات اشخاص', _getPermission(currentPermissions, 'people', 'edit'), (value) => _setPermission(currentPermissions, 'people', 'edit', value), theme, colorScheme), - _buildPermissionItem('حذف', 'حذف اشخاص', _getPermission(currentPermissions, 'people', 'delete'), (value) => _setPermission(currentPermissions, 'people', 'delete', value), theme, colorScheme), + _buildPermissionItem(t.add, t.addPerson, _getPermission(currentPermissions, 'people', 'add'), (value) => _setPermission(currentPermissions, 'people', 'add', value), theme, colorScheme), + _buildPermissionItem(t.view, t.viewPeople, _getPermission(currentPermissions, 'people', 'view'), (value) => _setPermission(currentPermissions, 'people', 'view', value), theme, colorScheme), + _buildPermissionItem(t.edit, t.editPeople, _getPermission(currentPermissions, 'people', 'edit'), (value) => _setPermission(currentPermissions, 'people', 'edit', value), theme, colorScheme), + _buildPermissionItem(t.delete, t.deletePeople, _getPermission(currentPermissions, 'people', 'delete'), (value) => _setPermission(currentPermissions, 'people', 'delete', value), theme, colorScheme), ], theme, colorScheme, ), _buildPermissionGroup( - 'دریافت از اشخاص', + t.peopleReceipts, [ - _buildPermissionItem('افزودن', 'افزودن دریافت جدید', _getPermission(currentPermissions, 'people_receipts', 'add'), (value) => _setPermission(currentPermissions, 'people_receipts', 'add', value), theme, colorScheme), - _buildPermissionItem('مشاهده', 'مشاهده دریافت‌ها', _getPermission(currentPermissions, 'people_receipts', 'view'), (value) => _setPermission(currentPermissions, 'people_receipts', 'view', value), theme, colorScheme), - _buildPermissionItem('ویرایش', 'ویرایش دریافت‌ها', _getPermission(currentPermissions, 'people_receipts', 'edit'), (value) => _setPermission(currentPermissions, 'people_receipts', 'edit', value), theme, colorScheme), - _buildPermissionItem('حذف', 'حذف دریافت‌ها', _getPermission(currentPermissions, 'people_receipts', 'delete'), (value) => _setPermission(currentPermissions, 'people_receipts', 'delete', value), theme, colorScheme), - _buildPermissionItem('مدیریت پیش‌نویس‌ها', 'مدیریت پیش‌نویس‌های دریافت', _getPermission(currentPermissions, 'people_receipts', 'draft'), (value) => _setPermission(currentPermissions, 'people_receipts', 'draft', value), theme, colorScheme), + _buildPermissionItem(t.add, t.addReceipt, _getPermission(currentPermissions, 'people_receipts', 'add'), (value) => _setPermission(currentPermissions, 'people_receipts', 'add', value), theme, colorScheme), + _buildPermissionItem(t.view, t.viewReceipts, _getPermission(currentPermissions, 'people_receipts', 'view'), (value) => _setPermission(currentPermissions, 'people_receipts', 'view', value), theme, colorScheme), + _buildPermissionItem(t.edit, t.editReceipts, _getPermission(currentPermissions, 'people_receipts', 'edit'), (value) => _setPermission(currentPermissions, 'people_receipts', 'edit', value), theme, colorScheme), + _buildPermissionItem(t.delete, t.deleteReceipts, _getPermission(currentPermissions, 'people_receipts', 'delete'), (value) => _setPermission(currentPermissions, 'people_receipts', 'delete', value), theme, colorScheme), + _buildPermissionItem(t.draft, t.manageReceiptDrafts, _getPermission(currentPermissions, 'people_receipts', 'draft'), (value) => _setPermission(currentPermissions, 'people_receipts', 'draft', value), theme, colorScheme), ], theme, colorScheme, ), _buildPermissionGroup( - 'پرداخت به اشخاص', + t.peoplePayments, [ - _buildPermissionItem('افزودن', 'افزودن پرداخت جدید', _getPermission(currentPermissions, 'people_payments', 'add'), (value) => _setPermission(currentPermissions, 'people_payments', 'add', value), theme, colorScheme), - _buildPermissionItem('مشاهده', 'مشاهده پرداخت‌ها', _getPermission(currentPermissions, 'people_payments', 'view'), (value) => _setPermission(currentPermissions, 'people_payments', 'view', value), theme, colorScheme), - _buildPermissionItem('ویرایش', 'ویرایش پرداخت‌ها', _getPermission(currentPermissions, 'people_payments', 'edit'), (value) => _setPermission(currentPermissions, 'people_payments', 'edit', value), theme, colorScheme), - _buildPermissionItem('حذف', 'حذف پرداخت‌ها', _getPermission(currentPermissions, 'people_payments', 'delete'), (value) => _setPermission(currentPermissions, 'people_payments', 'delete', value), theme, colorScheme), - _buildPermissionItem('مدیریت پیش‌نویس‌ها', 'مدیریت پیش‌نویس‌های پرداخت', _getPermission(currentPermissions, 'people_payments', 'draft'), (value) => _setPermission(currentPermissions, 'people_payments', 'draft', value), theme, colorScheme), + _buildPermissionItem(t.add, t.addPayment, _getPermission(currentPermissions, 'people_payments', 'add'), (value) => _setPermission(currentPermissions, 'people_payments', 'add', value), theme, colorScheme), + _buildPermissionItem(t.view, t.viewPayments, _getPermission(currentPermissions, 'people_payments', 'view'), (value) => _setPermission(currentPermissions, 'people_payments', 'view', value), theme, colorScheme), + _buildPermissionItem(t.edit, t.editPayments, _getPermission(currentPermissions, 'people_payments', 'edit'), (value) => _setPermission(currentPermissions, 'people_payments', 'edit', value), theme, colorScheme), + _buildPermissionItem(t.delete, t.deletePayments, _getPermission(currentPermissions, 'people_payments', 'delete'), (value) => _setPermission(currentPermissions, 'people_payments', 'delete', value), theme, colorScheme), + _buildPermissionItem(t.draft, t.managePaymentDrafts, _getPermission(currentPermissions, 'people_payments', 'draft'), (value) => _setPermission(currentPermissions, 'people_payments', 'draft', value), theme, colorScheme), ], theme, colorScheme, @@ -852,16 +852,16 @@ class _UsersPermissionsPageState extends State { // کالا و خدمات _buildPermissionSection( - 'کالا و خدمات', + t.products, Icons.inventory, [ _buildPermissionGroup( - 'کالا‌ها و خدمات', + t.products, [ - _buildPermissionItem('افزودن', 'افزودن کالا یا خدمت', _getPermission(currentPermissions, 'products', 'add'), (value) => _setPermission(currentPermissions, 'products', 'add', value), theme, colorScheme), - _buildPermissionItem('مشاهده', 'مشاهده کالاها و خدمات', _getPermission(currentPermissions, 'products', 'view'), (value) => _setPermission(currentPermissions, 'products', 'view', value), theme, colorScheme), - _buildPermissionItem('ویرایش', 'ویرایش کالاها و خدمات', _getPermission(currentPermissions, 'products', 'edit'), (value) => _setPermission(currentPermissions, 'products', 'edit', value), theme, colorScheme), - _buildPermissionItem('حذف', 'حذف کالاها و خدمات', _getPermission(currentPermissions, 'products', 'delete'), (value) => _setPermission(currentPermissions, 'products', 'delete', value), theme, colorScheme), + _buildPermissionItem(t.add, t.addProduct, _getPermission(currentPermissions, 'products', 'add'), (value) => _setPermission(currentPermissions, 'products', 'add', value), theme, colorScheme), + _buildPermissionItem(t.view, t.viewProducts, _getPermission(currentPermissions, 'products', 'view'), (value) => _setPermission(currentPermissions, 'products', 'view', value), theme, colorScheme), + _buildPermissionItem(t.edit, t.editProducts, _getPermission(currentPermissions, 'products', 'edit'), (value) => _setPermission(currentPermissions, 'products', 'edit', value), theme, colorScheme), + _buildPermissionItem(t.delete, t.deleteProducts, _getPermission(currentPermissions, 'products', 'delete'), (value) => _setPermission(currentPermissions, 'products', 'delete', value), theme, colorScheme), ], theme, colorScheme, diff --git a/hesabixUI/hesabix_ui/lib/pages/profile/businesses_page.dart b/hesabixUI/hesabix_ui/lib/pages/profile/businesses_page.dart index 47586b8..a898f91 100644 --- a/hesabixUI/hesabix_ui/lib/pages/profile/businesses_page.dart +++ b/hesabixUI/hesabix_ui/lib/pages/profile/businesses_page.dart @@ -46,7 +46,7 @@ class _BusinessesPageState extends State { _error = e.toString(); }); ScaffoldMessenger.of(context).showSnackBar( - SnackBar(content: Text('خطا در بارگذاری کسب و کارها: $e')), + SnackBar(content: Text('${AppLocalizations.of(context).dataLoadingError}: $e')), ); } } diff --git a/hesabixUI/hesabix_ui/lib/pages/profile/change_password_page.dart b/hesabixUI/hesabix_ui/lib/pages/profile/change_password_page.dart index 46075e3..2c00c0c 100644 --- a/hesabixUI/hesabix_ui/lib/pages/profile/change_password_page.dart +++ b/hesabixUI/hesabix_ui/lib/pages/profile/change_password_page.dart @@ -61,7 +61,7 @@ class _ChangePasswordPageState extends State { } else { // نمایش پیام خطای دقیق از سرور final errorData = response.data?['error']; - final errorMessage = errorData?['message'] ?? 'خطا در تغییر کلمه عبور'; + final errorMessage = errorData?['message'] ?? AppLocalizations.of(context).changePasswordFailed; _showError(errorMessage); } } catch (e) { diff --git a/hesabixUI/hesabix_ui/lib/pages/profile/profile_shell.dart b/hesabixUI/hesabix_ui/lib/pages/profile/profile_shell.dart index 986a5c3..3d0e22d 100644 --- a/hesabixUI/hesabix_ui/lib/pages/profile/profile_shell.dart +++ b/hesabixUI/hesabix_ui/lib/pages/profile/profile_shell.dart @@ -105,7 +105,7 @@ class _ProfileShellState extends State { if (!context.mounted) return; ScaffoldMessenger.of(context) ..hideCurrentSnackBar() - ..showSnackBar(const SnackBar(content: Text('خروج انجام شد'))); + ..showSnackBar(SnackBar(content: Text(t.logoutDone))); context.go('/login'); } diff --git a/hesabixUI/hesabix_ui/lib/widgets/admin/file_storage/storage_config_form_dialog.dart b/hesabixUI/hesabix_ui/lib/widgets/admin/file_storage/storage_config_form_dialog.dart index 7fb49fa..2c27bab 100644 --- a/hesabixUI/hesabix_ui/lib/widgets/admin/file_storage/storage_config_form_dialog.dart +++ b/hesabixUI/hesabix_ui/lib/widgets/admin/file_storage/storage_config_form_dialog.dart @@ -130,8 +130,8 @@ class _StorageConfigFormDialogState extends State { SnackBar( content: Text( widget.config != null - ? 'تنظیمات ذخیره‌سازی به‌روزرسانی شد' - : 'تنظیمات ذخیره‌سازی ایجاد شد', + ? AppLocalizations.of(context).emailConfigUpdatedSuccessfully + : AppLocalizations.of(context).emailConfigSavedSuccessfully, ), backgroundColor: Colors.green, ), @@ -144,7 +144,7 @@ class _StorageConfigFormDialogState extends State { if (mounted) { ScaffoldMessenger.of(context).showSnackBar( SnackBar( - content: Text('خطا در ذخیره تنظیمات: $e'), + content: Text('${AppLocalizations.of(context).error}: $e'), backgroundColor: Colors.red, ), ); diff --git a/hesabixUI/hesabix_ui/lib/widgets/admin/file_storage/storage_config_list_widget.dart b/hesabixUI/hesabix_ui/lib/widgets/admin/file_storage/storage_config_list_widget.dart index d4d037b..8b9164f 100644 --- a/hesabixUI/hesabix_ui/lib/widgets/admin/file_storage/storage_config_list_widget.dart +++ b/hesabixUI/hesabix_ui/lib/widgets/admin/file_storage/storage_config_list_widget.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:hesabix_ui/widgets/admin/file_storage/storage_config_form_dialog.dart'; import 'package:hesabix_ui/widgets/admin/file_storage/storage_config_card.dart'; import '../../../core/api_client.dart'; +import '../../../l10n/app_localizations.dart'; class StorageConfigListWidget extends StatefulWidget { final VoidCallback? onRefresh; @@ -132,15 +133,15 @@ class StorageConfigListWidgetState extends State { throw Exception(errorMessage); } } catch (e) { - String errorMessage = 'خطا در حذف تنظیمات'; + String errorMessage = AppLocalizations.of(context).error; // بررسی نوع خطا if (e.toString().contains('STORAGE_CONFIG_HAS_FILES')) { - errorMessage = 'این تنظیمات ذخیره‌سازی دارای فایل است و قابل حذف نیست'; + errorMessage = AppLocalizations.of(context).cannotDeleteDefault; } else if (e.toString().contains('STORAGE_CONFIG_NOT_FOUND')) { - errorMessage = 'تنظیمات ذخیره‌سازی یافت نشد'; + errorMessage = AppLocalizations.of(context).noEmailConfigurations; } else if (e.toString().contains('FORBIDDEN')) { - errorMessage = 'دسترسی غیرمجاز'; + errorMessage = AppLocalizations.of(context).accessDenied; } else { errorMessage = e.toString().replaceFirst('Exception: ', ''); } @@ -166,7 +167,7 @@ class StorageConfigListWidgetState extends State { if (response.data != null && response.data['success'] == true) { ScaffoldMessenger.of(context).showSnackBar( SnackBar( - content: Text('تنظیمات به عنوان پیش‌فرض تنظیم شد'), + content: Text(AppLocalizations.of(context).defaultSetSuccessfully), backgroundColor: Colors.green, ), ); @@ -174,13 +175,13 @@ class StorageConfigListWidgetState extends State { // Refresh the list loadStorageConfigs(); } else { - throw Exception(response.data?['message'] ?? 'خطا در تنظیم به عنوان پیش‌فرض'); + throw Exception(response.data?['message'] ?? AppLocalizations.of(context).defaultSetFailed); } } catch (e) { if (!mounted) return; ScaffoldMessenger.of(context).showSnackBar( SnackBar( - content: Text('خطا در تنظیم به عنوان پیش‌فرض: $e'), + content: Text('${AppLocalizations.of(context).defaultSetFailed}: $e'), backgroundColor: Colors.red, ), ); diff --git a/hesabixUI/hesabix_ui/lib/widgets/simple_splash_screen.dart b/hesabixUI/hesabix_ui/lib/widgets/simple_splash_screen.dart index 9b11052..37015c1 100644 --- a/hesabixUI/hesabix_ui/lib/widgets/simple_splash_screen.dart +++ b/hesabixUI/hesabix_ui/lib/widgets/simple_splash_screen.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'dart:async'; import '../core/auth_store.dart'; +import '../l10n/app_localizations.dart'; class SimpleSplashScreen extends StatefulWidget { final String? message; @@ -124,33 +125,25 @@ class _SimpleSplashScreenState extends State super.dispose(); } - String _getAppName() { - if (widget.locale != null && widget.locale!.languageCode == 'fa') { - return 'حسابیکس'; - } - return 'Hesabix'; + String _getAppName(BuildContext context) { + final t = AppLocalizations.of(context); + return t.appTitle; } - String _getLoadingMessage() { - if (widget.locale != null && widget.locale!.languageCode == 'fa') { - return 'در حال بارگذاری...'; - } - return 'Loading...'; + String _getLoadingMessage(BuildContext context) { + final t = AppLocalizations.of(context); + return t.loading; } - String _getVersionInfo() { - if (widget.locale != null && widget.locale!.languageCode == 'fa') { - return 'نسخه 1.0.0'; - } - return 'Version 1.0.0'; + String _getVersionInfo(BuildContext context) { + final t = AppLocalizations.of(context); + return t.version; } - String _getMotto() { - if (widget.locale != null && widget.locale!.languageCode == 'fa') { - return 'جهان با تعاون زیبا می‌شود'; - } - return 'The world becomes beautiful through cooperation'; + String _getMotto(BuildContext context) { + final t = AppLocalizations.of(context); + return t.motto; } @override @@ -234,7 +227,7 @@ class _SimpleSplashScreenState extends State // App Name - Simple and Clean Text( - _getAppName(), + _getAppName(context), style: theme.textTheme.headlineLarge?.copyWith( fontWeight: FontWeight.bold, color: colorScheme.onSurface, @@ -247,7 +240,7 @@ class _SimpleSplashScreenState extends State Padding( padding: const EdgeInsets.symmetric(horizontal: 32), child: Text( - _getMotto(), + _getMotto(context), style: theme.textTheme.bodyLarge?.copyWith( color: colorScheme.onSurfaceVariant, fontWeight: FontWeight.w400, @@ -275,7 +268,7 @@ class _SimpleSplashScreenState extends State // Simple Loading Message Text( - widget.message ?? _getLoadingMessage(), + widget.message ?? _getLoadingMessage(context), style: theme.textTheme.bodyMedium?.copyWith( color: colorScheme.onSurfaceVariant, fontWeight: FontWeight.w500, @@ -288,7 +281,7 @@ class _SimpleSplashScreenState extends State // Simple Version Info Text( - _getVersionInfo(), + _getVersionInfo(context), style: theme.textTheme.bodySmall?.copyWith( color: colorScheme.onSurfaceVariant.withValues(alpha: 0.6), ),