From 0a276ca5e01ccf5521ba2005cd648b216fe3526d Mon Sep 17 00:00:00 2001 From: "a.bouhuolia" Date: Mon, 14 Jun 2021 11:22:59 +0200 Subject: [PATCH] WIP: Arabic localization. --- client/src/components/Dashboard/Dashboard.js | 4 +- .../ItemCategoryDialog/ItemCategoryForm.js | 2 +- .../Preferences/Currencies/CurrenciesList.js | 2 - .../Preferences/General/General.schema.js | 20 +++--- .../Preferences/General/GeneralForm.js | 3 +- client/src/lang/ar-ly/index.json | 27 +++++-- client/src/routes/preferences.js | 72 +++++++++---------- 7 files changed, 74 insertions(+), 56 deletions(-) diff --git a/client/src/components/Dashboard/Dashboard.js b/client/src/components/Dashboard/Dashboard.js index 00a6ab561..879fb77e3 100644 --- a/client/src/components/Dashboard/Dashboard.js +++ b/client/src/components/Dashboard/Dashboard.js @@ -30,7 +30,7 @@ export default function Dashboard() { - + @@ -41,4 +41,4 @@ export default function Dashboard() { ); -} \ No newline at end of file +} diff --git a/client/src/containers/Dialogs/ItemCategoryDialog/ItemCategoryForm.js b/client/src/containers/Dialogs/ItemCategoryDialog/ItemCategoryForm.js index 4753ccf2f..7610f67ea 100644 --- a/client/src/containers/Dialogs/ItemCategoryDialog/ItemCategoryForm.js +++ b/client/src/containers/Dialogs/ItemCategoryDialog/ItemCategoryForm.js @@ -9,7 +9,7 @@ import { transformToForm } from 'utils'; import { CreateItemCategoryFormSchema, EditItemCategoryFormSchema, -} from './itemCategoryForm.schema'; +} from './ItemCategoryForm.schema'; import withDialogActions from 'containers/Dialog/withDialogActions'; import ItemCategoryFormContent from './ItemCategoryFormContent' diff --git a/client/src/containers/Preferences/Currencies/CurrenciesList.js b/client/src/containers/Preferences/Currencies/CurrenciesList.js index 795e2df40..d6a9c820a 100644 --- a/client/src/containers/Preferences/Currencies/CurrenciesList.js +++ b/client/src/containers/Preferences/Currencies/CurrenciesList.js @@ -15,8 +15,6 @@ function CurrenciesList({ // #withDashboardActions changePreferencesPageTitle, }) { - - useEffect(() => { changePreferencesPageTitle(intl.get('currencies')); }, [changePreferencesPageTitle]); diff --git a/client/src/containers/Preferences/General/General.schema.js b/client/src/containers/Preferences/General/General.schema.js index 5b8518263..6ac713d1b 100644 --- a/client/src/containers/Preferences/General/General.schema.js +++ b/client/src/containers/Preferences/General/General.schema.js @@ -1,34 +1,34 @@ import * as Yup from 'yup'; -import { get } from 'react-intl-universal'; +import intl from 'react-intl-universal'; const Schema = Yup.object().shape({ name: Yup.string() .required() - .label(get({ id: 'organization_name_' })), + .label(intl.get('organization_name_')), financial_date_start: Yup.date() .required() - .label(get({ id: 'date_start_' })), + .label(intl.get('date_start_')), industry: Yup.string() .nullable() - .label(get({ id: 'organization_industry_' })), + .label(intl.get('organization_industry_')), location: Yup.string() .nullable() - .label(get({ id: 'location' })), + .label(intl.get('location')), base_currency: Yup.string() .required() - .label(get({ id: 'base_currency_' })), + .label(intl.get('base_currency_')), fiscal_year: Yup.string() .required() - .label(get({ id: 'fiscal_year_' })), + .label(intl.get('fiscal_year_')), language: Yup.string() .required() - .label(get({ id: 'language' })), + .label(intl.get('language')), time_zone: Yup.string() .required() - .label(get({ id: 'time_zone_' })), + .label(intl.get('time_zone_')), date_format: Yup.string() .required() - .label(get({ id: 'date_format_' })), + .label(intl.get('date_format_')), }); export const PreferencesGeneralSchema = Schema; diff --git a/client/src/containers/Preferences/General/GeneralForm.js b/client/src/containers/Preferences/General/GeneralForm.js index 60f48b8ee..06c164b2a 100644 --- a/client/src/containers/Preferences/General/GeneralForm.js +++ b/client/src/containers/Preferences/General/GeneralForm.js @@ -10,9 +10,10 @@ import { import classNames from 'classnames'; import { TimezonePicker } from '@blueprintjs/timezone'; import { ErrorMessage, FastField } from 'formik'; -import { FormattedMessage as T } from 'components'; import { DateInput } from '@blueprintjs/datetime'; import { useHistory } from 'react-router-dom'; + +import { FormattedMessage as T } from 'components'; import { ListSelect, FieldRequiredHint } from 'components'; import { inputIntent, diff --git a/client/src/lang/ar-ly/index.json b/client/src/lang/ar-ly/index.json index 4c7776460..12d3a287f 100644 --- a/client/src/lang/ar-ly/index.json +++ b/client/src/lang/ar-ly/index.json @@ -224,7 +224,7 @@ "financial": "الأمور المالية", "accounts_chart": "شجرة الحسابات", "manual_journal": "قيد يدوي", - "make_journal": "قيد يدوي", + "make_journal": "اضافة قيد يدوي", "banking": "الخدمات المصرفية", "sales": "المبيعات", "purchases": "المشتريات", @@ -451,7 +451,7 @@ "journal_type": "نوع القيد", "journal_reference_hint": "مرجع فريد لهذه القيد. وهي محددة بـ 10 أحرف ويمكن أن تتكون من أحرف وأرقام وشرطة سفلية.", "contact_column_hint": "عمود جهة الاتصال لتسجيل المبالغ المستحقة القبض والمستحقة الدفع لزبون او مورد.", - "make_journal_entry": "جعل إدخال دفتر اليومية", + "make_journal_entry": "اضافة قيد يدوي", "journal_number_is_already_used": "رقم القيد مستخدم بالفعل.", "account_code_hint": "رقم فريد للحساب (بحد أقصى 10 أحرف)", "logic_expression": "تعبير منطقي", @@ -1027,7 +1027,6 @@ "create_a_new_customer": "إضافة زبون جديد.", "create_a_new_vendor": "إضافة مورد جديد.", "create_a_new_bill": "إضافة فاتورة شراء جديدة", - "create_a_new_make_journal": "", "create_a_new_item": "إضافة منتج جديد.", "close_and_open_sidebar": "إغلاق وفتح الشريط الجانبي.", "and_over": "وأكثر", @@ -1101,5 +1100,25 @@ "mm_dd_yy_": "", "dd_mm_yy_": "", "yy_mm_dd_": "", - "plan_radio_name": "" + "plan_radio_name": "", + "create_a_new_journal": "اضافة قيد يدوي جديد", + "customers_payments": "مدفوعات الزبائن", + "receiving_customer_payments_is_one_pleasant_accounting_tasks": "استلام المدفوعات أحد مهام المحاسبية الأكثر متعة. ستظهر معاملات المدفوعات بمجرد استلام المدفوعات للفواتير.", + "estimate_is_used_to_create_bid_proposal_or_quote": "تستخدم العروض لإنشاء عطاء أو اقتراح أو عرض أسعار منتجات. يمكن تحويل العرض إلى أمر مبيعات أو فاتورة.", + "payment_made_empty_status_description": "ستظهر معاملات المدفوعات بمجرد سداد فواتير المشتريات.", + "bill_empty_status_description": "", + "invoices_empty_status_description": "فواتير المبيعات للعملاء الذين لا يسددون أي مدفوعات جزئية أو يسددونها ، مع مساعدتك في تتبع الحسابات المستحقة مع الزبائن.", + "receipt_empty_status_description": "إيصالات المبيعات للمبيعات التي يدفع فيها الزبون فورًا مقابل المنتجات أو الخدمات في وقت البيع.", + "there_were_no_purchases_during_the_selected_date_range": "لا توجد مشتريات خلال النطاق الزمني المحدد.", + "there_were_no_sales_during_the_selected_date_range": "لا توجد مبيعات خلال النطاق الزمني المحدد.", + "there_were_no_inventory_transactions_during_the_selected_date_range": "لم تكن هناك حركات مخزون خلال نطاق الزمني المحدد.", + "filter_": "البحث...", + "all_rights_reserved": "© {pre}-{current} كل الحقوق محفوظة.", + "congrats_your_account_has_been_created_and_invited": "مبروك! تم إنشاء حسابك ودعوتك إلى {organization_name} بنجاح.", + "it_s_time_to_make_your_accounting_really_simple": "حان الوقت لجعل عملية المحاسبة الخاصة بك بسيطة واكتر دقة!", + "while_we_set_up_your_account_please_remember_to_verify_your_account": "أثناء قيامنا بإعداد حسابك ، يرجى تذكر التحقق من حسابك بالنقر فوق الارتباط الذي أرسلناه إلى عنوان بريدك الإلكتروني المسجل", + "something_went_wrong": "هناك خطأ ما!", + "please_refresh_the_page": "يرجى تحديث الصفحة", + "waiting_to_redirect": "في انتظار إعادة التوجيه", + "refresh_the_page_if_redirect_not_worked": "قم بتحديث الصفحة إذا لم تنجح إعادة التوجيه." } \ No newline at end of file diff --git a/client/src/routes/preferences.js b/client/src/routes/preferences.js index 85078e6a2..b83aad542 100644 --- a/client/src/routes/preferences.js +++ b/client/src/routes/preferences.js @@ -1,42 +1,42 @@ -// import General from 'containers/Preferences/General/General'; -// import Users from 'containers/Preferences/Users/Users'; -// import Accountant from 'containers/Preferences/Accountant/Accountant'; +import General from 'containers/Preferences/General/General'; +import Users from 'containers/Preferences/Users/Users'; +import Accountant from 'containers/Preferences/Accountant/Accountant'; // import Accounts from 'containers/Preferences/Accounts/Accounts'; -// import Currencies from 'containers/Preferences/Currencies/Currencies'; -// import Item from 'containers/Preferences/Item/Item'; -// import DefaultRoute from '../containers/Preferences/DefaultRoute'; +import Currencies from 'containers/Preferences/Currencies/Currencies'; +import Item from 'containers/Preferences/Item/Item'; +import DefaultRoute from '../containers/Preferences/DefaultRoute'; const BASE_URL = '/preferences'; export default [ - // { - // path: `${BASE_URL}/general`, - // component: General, - // exact: true, - // }, - // { - // path: `${BASE_URL}/users`, - // component: Users, - // exact: true, - // }, - // { - // path: `${BASE_URL}/currencies`, - // component: Currencies, - // exact: true, - // }, - // { - // path: `${BASE_URL}/accountant`, - // component: Accountant, - // exact: true, - // }, - // { - // path: `${BASE_URL}/items`, - // component: Item, - // exact: true, - // }, - // { - // path: `${BASE_URL}/`, - // component: DefaultRoute, - // exact: true, - // }, + { + path: `${BASE_URL}/general`, + component: General, + exact: true, + }, + { + path: `${BASE_URL}/users`, + component: Users, + exact: true, + }, + { + path: `${BASE_URL}/currencies`, + component: Currencies, + exact: true, + }, + { + path: `${BASE_URL}/accountant`, + component: Accountant, + exact: true, + }, + { + path: `${BASE_URL}/items`, + component: Item, + exact: true, + }, + { + path: `${BASE_URL}/`, + component: DefaultRoute, + exact: true, + }, ];