diff --git a/i18n-2.xlsm b/i18n-2.xlsm index df6c2b6..753acfe 100644 Binary files a/i18n-2.xlsm and b/i18n-2.xlsm differ diff --git a/src/App.vue b/src/App.vue index 9d502b5..151711b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -3,10 +3,22 @@ diff --git a/src/components/companyBlock.vue b/src/components/companyBlock.vue index c8e2af8..3c09943 100644 --- a/src/components/companyBlock.vue +++ b/src/components/companyBlock.vue @@ -4,16 +4,14 @@ {{ $t(title) }} @@ -62,7 +60,7 @@ import { computed, reactive } from 'vue' import { useI18n } from 'vue-i18n' import type { CompanyParams } from 'types/Company' - import { removeNullKeys } from 'utils/helpers' + import { removeNullKeys, getFieldValue } from 'utils/helpers' const { t }= useI18n() @@ -122,13 +120,14 @@ }) function onSubmit() { + // companyMod.description! - ! on end for TS, i promise: params !== null | undefined const outData = { name: companyMod.name, - description: companyMod.description ?? (typeof props.company?.description === 'string' ? '' : null), - site: companyMod.site ?? (typeof props.company?.site === 'string' ? '' : null), - address: companyMod.address ?? (typeof props.company?.address === 'string' ? '' : null), - phone: companyMod.phone ?? (typeof props.company?.phone === 'string' ? '' : null), - email: companyMod.email ?? (typeof props.company?.email === 'string' ? '' : null), + description: getFieldValue(companyMod.description!, props.company?.description), + site: getFieldValue(companyMod.site!, props.company?.site), + address: getFieldValue(companyMod.address!, props.company?.address), + phone: getFieldValue(companyMod.phone!, props.company?.phone), + email: getFieldValue(companyMod.email!, props.company?.email), logo: companyMod.logo } emit('update', removeNullKeys(outData)) diff --git a/src/components/pnActionBar.vue b/src/components/pnActionBar.vue new file mode 100644 index 0000000..b308bb4 --- /dev/null +++ b/src/components/pnActionBar.vue @@ -0,0 +1,89 @@ + + + diff --git a/src/components/pnBottomSheetDialog.vue b/src/components/pnBottomSheetDialog.vue new file mode 100644 index 0000000..62775d5 --- /dev/null +++ b/src/components/pnBottomSheetDialog.vue @@ -0,0 +1,97 @@ + + + + + diff --git a/src/components/pnChatTypeItem.vue b/src/components/pnChatTypeItem.vue new file mode 100644 index 0000000..2a4ed93 --- /dev/null +++ b/src/components/pnChatTypeItem.vue @@ -0,0 +1,45 @@ + + + + + \ No newline at end of file diff --git a/src/components/pnPageCard.vue b/src/components/pnPageCard.vue index 57a0abe..65ed61c 100644 --- a/src/components/pnPageCard.vue +++ b/src/components/pnPageCard.vue @@ -6,12 +6,18 @@ -
+
+ diff --git a/src/components/projectBlock.vue b/src/components/projectBlock.vue index 2f9aa5c..a2330e8 100644 --- a/src/components/projectBlock.vue +++ b/src/components/projectBlock.vue @@ -4,16 +4,14 @@ {{ $t(title) }} @@ -59,7 +57,7 @@ import { computed, reactive } from 'vue' import { useI18n } from 'vue-i18n' import type { ProjectParams } from 'types/Project' - import { removeNullKeys } from 'utils/helpers' + import { removeNullKeys, getFieldValue } from 'utils/helpers' const { t } = useI18n() @@ -96,7 +94,7 @@ function onSubmit() { const outData = { name: projectMod.name, - description: projectMod.description ?? (typeof props.project?.description === 'string' ? '' : null), + description: getFieldValue(projectMod.description, props.project?.description), logo: projectMod.logo } emit('update', removeNullKeys(outData)) diff --git a/src/components/userBlock.vue b/src/components/userBlock.vue index f184e76..5385223 100644 --- a/src/components/userBlock.vue +++ b/src/components/userBlock.vue @@ -4,20 +4,17 @@ {{ $t(title) }} - -
-
+
+
- {{ $t(userStatus.text) }} +
@@ -134,7 +136,8 @@ import { computed, reactive } from 'vue' import { useCompaniesStore } from 'stores/companies' import { useI18n } from 'vue-i18n' - import { removeNullKeys } from 'utils/helpers' + import { removeNullKeys, getFieldValue } from 'utils/helpers' + import { getUserStatus } from 'utils/users' import type { User } from 'types/User' const { t } = useI18n() @@ -178,22 +181,17 @@ .filter(Boolean) .join(' ') ) - - const userStatus = computed(() => { - if (props.user?.is_blocked) return { status: 'blocked', text: 'user_block__user_blocked' } - if (props.user?.is_leave) return { status: 'leave', text: 'user_block__user_leave' } - if (!props.user?.is_terms_accepted) return { status: 'pending', text: 'user_block__user_pending' } - return null - }) - - function onSubmit() { + + const userStatus = computed(() => props.user ? getUserStatus(props.user) : null) + + function onSubmit() { const outData = { - fullname: userMod.fullname ?? (typeof props.user?.fullname === 'string' ? '' : null), + fullname: getFieldValue(userMod.fullname, props.user?.fullname), company_id: userMod.company_id, - department: userMod.department ?? (typeof props.user?.department === 'string' ? '' : null), - role: userMod.role ?? (typeof props.user?.role === 'string' ? '' : null), - phone: userMod.phone ?? (typeof props.user?.phone === 'string' ? '' : null), - email: userMod.email ?? (typeof props.user?.email === 'string' ? '' : null), + department: getFieldValue(userMod.department, props.user?.department), + role: getFieldValue(userMod.role, props.user?.role), + phone: getFieldValue(userMod.phone, props.user?.phone), + email: getFieldValue(userMod.email, props.user?.email), photo: userMod.photo } emit('update', removeNullKeys(outData)) @@ -205,19 +203,4 @@ .fix-bottom-padding.q-field--with-bottom { padding-bottom: 0 !important } - - .status-blocked { - border: 2px solid var(--q-negative); - color: var(--q-negative); - } - - .status-leave { - border: 2px solid var(--q-primary); - color: var(--q-primary); - } - - .status-pending{ - border: 2px solid var(--q-secondary); - color: var(--q-secondary); - } diff --git a/src/composables/useUserSection.ts b/src/composables/useUserSection.ts index 077a914..640d6d5 100644 --- a/src/composables/useUserSection.ts +++ b/src/composables/useUserSection.ts @@ -11,9 +11,9 @@ export function useUserSection() { ? user.firstname + ' ' + user.lastname : user.firstname : user.lastname ?? '' - }; + } - const section1 = user.fullname ?? tname() + const section1 = user.fullname && user.fullname !== '' ? user.fullname : tname() const section2_1 = user.fullname ? tname() : '' const section2_2 = user.username ?? '' diff --git a/src/i18n/en-US/index.ts b/src/i18n/en-US/index.ts index 2122e7e..0881188 100644 --- a/src/i18n/en-US/index.ts +++ b/src/i18n/en-US/index.ts @@ -1 +1 @@ -export default { EN: 'EN', RU: 'RU', continue: 'Continue', back: 'Back', close: 'Close', cancel: 'Cancel', code: 'Code', month: 'month', months: 'months', slogan: 'Work together - it\'s magic!', login__email: 'E-mail', login__password: 'Password', login__forgot_password: 'Forgot Password?', login__sign_in: 'Log in', login__or_continue_as: 'or continue as', login__register: 'Create account', login__register_title: 'Register', login__incorrect_email: 'Please enter a valid email address', login__password_require: 'At least 8 characters', projects__title: 'Projects', projects__search: 'Search', projects__show_archive: 'Show archive', projects__hide_archive: 'Hide archive', projects__dialog_archive_title: 'Archive project?', projects__dialog_archive_message: 'Chat tracking will stop.', projects__dialog_archive_message2: 'Chat data during archiving will be lost!', projects__dialog_archive_ok: 'Archive', projects__dialog_restore_title: 'Restore project?', projects__dialog_restore_message: 'Chat tracking will resume.', projects__dialog_restore_message2: 'Archive period data won\'t be recovered!', projects__dialog_restore_ok: 'Restore', projects__lets_start: 'Create a Project', projects__lets_start_description: 'Projects isolate data: contacts, tasks, documents, and chats are visible only to members', header__to_projects: 'Projects', project__chats: 'Chats', project__users: 'Team', project__companies: 'Companies', project_create__title_card: 'New project', project_create__btn: 'Create', project_edit__title_card: 'Edit project', project_edit__btn: 'Apply', project_block__project_name: 'Name', project_block__project_description: 'Description', project_block__error_name: 'Field is required', chats__search: 'Search', chats__send_chat: 'Request for attach chat', chats__send_chat_description: 'Provide instructions to the chat admin', chats__attach_chat: 'Attach chat', chats__attach_chat_description: 'Requires chat administrator privileges', chats_disabled_FAB: 'To add chats, please use the Telegram app', chats__send_chat_title: 'To connect the chat to app tgCrew, add the bot to it using the provided link:', chats__dialog_unlink_title: 'Unlink chat?', chats__dialog_unlink_message: 'Chat tracking will be discontinued.', chats__dialog_unlink_message2: 'If necessary, the chat can be attached again.', chats__dialog_unlink_ok: 'Unlink', chats__onboard_msg1: 'Attach chats to the project', chats__onboard_msg2: 'Chat control is enabled from the moment of attachment', chat_card__title: 'Chat card', chat_card__go_chat: 'Go to chat', chat_card__members: 'Members', chat_page__user_blocked: 'Blocked', users__search: 'Search', users__show_blocked_users: 'Show Blocked', users__hide_blocked_users: 'Hide Blocked', users__show_left_users: 'Show Leavers (inactive)', users__hide_left_users: 'Hide Leavers (inactive)', users__dialog_block_title: 'Block Employee?', users__dialog_block_message: 'System access will be disabled.', users__dialog_block_message2: 'The employee will be removed from all chats (except those where they are the owner).', users__dialog_block_ok: 'Block', users__dialog_restore_title: 'Restore Employee?', users__dialog_restore_message: 'System access will be restored.', users__dialog_restore_message2: 'Add them to chats manually if required.', users__dialog_restore_ok: 'Restore', users__onboard_msg1: 'Project Contact List', users__onboard_msg2: 'After attaching chats, members are imported automatically. You’ll need to define who is who', user_edit__title_card: 'Edit employee', user_edit__btn: 'Apply', user_block__name: 'Name', user_block__company: 'Company', user_block__department: 'Department', user_block__role: 'Role', user_block__no_company: 'Not specified', user_block__user_blocked: 'BLOCKED', user_block__user_leave: 'Inactive', user_block__user_pending: 'Consent pending', companies__dialog_delete_title: 'Delete company?', companies__dialog_delete_message: 'This action cannot be undone!', companies__dialog_delete_message2: 'Company employees will be moved to \'No Company\'', companies__dialog_delete_ok: 'Delete', companies__mask: 'Cloaking', companies__my_company: 'My company', companies__onboard_msg1: 'Add Companies', companies__onboard_msg2: 'Recommended for projects involving 3+ companies', company_add__title_card: 'Add company', company_add__btn: 'Add', company_edit__title_card: 'Edit company', company_edit__btn: 'Apply', company_edit__my_company: 'My company', company_edit__my_company_hint: 'Form pre-filling is configured in Settings:', company_edit__my_company_href: 'Your Company\'s Data', company_block__name: 'Name', company_block__error_name: 'Field is required', company_block__description: 'Description', mask__title: 'Companies cloaking ', mask__help_title: 'Cloaking ', mask__help_message1: 'Cloaking conceals a company by making its personnel appear as if they belong to other companies, except those listed as "Visible"', mask__help_message2: 'Use the Toggle to enable or disable cloaking. Configure exceptions using the "+" button.', mask__info_block: 'Your company\'s employees will see all companies, regardless of the cloaking settings.', mask__table_header_company: 'Company', mask__table_header_visible: 'Visible', mask__table_visible_none: 'None', mask__table_visible_all: 'All', mask__btn_ok: 'Apply', account_helper__enter_email: 'Enter account e-mail', account_helper__email: 'E-mail', account_helper__confirm_email: 'Confirm e-mail', account_helper__confirm_email_message: 'Enter the Code from e-mail to continue. If you haven\'t received an e-mail with the Code, check the Spam folder.', account_helper__code: 'Code', account_helper__code_error: 'Incorrect code. Ensure your e-mail is correct and try again.', account_helper__set_password: 'Set password', account_helper__password: 'Password', account_helper__finish: 'Finish', account_helper__register_message1: 'Welcome!', account_helper__forgot_password_message1: 'Password set!', account_helper__change_password_message1: 'Password changed!', account_helper__change_method_message1: 'Login method changed!', account_helper__go_projects: 'Go to projects…', account_change_email__title: 'Change account e-mail', account_change_email__current_email: 'Current account e-mail', account_change_email__email: 'E-mail', account_change_email__confirm_current_email: 'Confirm current e-mail', account_change_email__confirm_email_message: 'Enter the Code from e-mail to continue. If you haven\'t received an e-mail with the Code, check the Spam folder.', account_change_email__code: 'Code', account_change_email__code_error: 'Incorrect code. Ensure your e-mail is correct and try again.', account_change_email__new_email: 'New account e-mail', account_change_email__confirm_new_email: 'Confirm new e-mail', account_change_email__set_password: 'Set password', account_change_email__password: 'Password', account_change_email__finish: 'Finish', account_change_email__finish_after_message: 'Done!', account_change_email__ok_message1: 'The email address has been successfully updated!', account_change_email__ok_message2: 'Go to Settings…', account__change_auth_message_2: 'After creating a user, all data from the Telegram account will be transferred to the new account.', account__change_auth_btn: 'Create account', account__change_auth_warning: 'WARNING!', account__change_auth_warning_message: 'Reverse data transfer is not possible.', account__chats: 'Chats', account__chats_active: 'Active', account__chats_unbound: 'Detached', account__chats_free: 'Free', account__chats_total: 'Total', account__subscribe: 'Subscription', account__subscribe_description: 'With a subscription, you can attach more active chats.', account__auth_change_method: 'Change authorization method', account__auth_change_method_description: 'In case of corporate use, it is recommended to log in with a username and password.', account__auth_change_password: 'Change account password', account__auth_change_password_description: 'Access to the email address used for system login is required.', account__auth_change_account: 'Change account e-mail', account__auth_change_account_description: 'Access to both the current and new email addresses used for system authentication is required.', account__company_data: 'Your Company\'s Data', account__company_data_description: 'The description will be automatically added to your company list for new projects.', account__manual: 'Guides', account__manual_description: 'Go to our Telegram channel with video tutorials.', account__settings: 'App Parametrs', account__settings_description: 'Text size, language, and more.', account__support: 'Support', account__support_description: 'Need help? Contact us!', account__3rd_party_software_description: 'List of third-party software packages included in the software', account__terms_of_use: 'Terms of use', account__privacy: 'Privacy Policy', account__stop_using: 'Opt-Out from Application Usage', account__stop_using_description: 'Includes Withdrawal of Consent for Personal Data Processing.', account__stop_using_dialog_title: 'Refuse to Use the Application?', account__stop_using_dialog_message1: 'The action is irreversible - your data will become inaccessible!', account__stop_using_dialog_message2: 'This action also entails the withdrawal of Consent for Personal Data Processing.', account__stop_using_dialog_btn_ok: 'Confirm', account__change_password: 'Change password', account__change_auth_method: 'Change authorization method', account_company__title_card: 'My company', account_company__btn: 'Apply', forgot_password__password_recovery: 'Password recovery', settings__title: 'App Parametrs', settings__software_title: 'Application', settings__bot_title: 'Messages in chats (bot)', settings__language: 'Language', settings__font_size: 'Font size', settings__fontsize_small: 'Small', settings__fontsize_medium: 'Medium (default)', settings__fontsize_large: 'Large', settings__timezone: 'Time zone', settings__timezone_search: 'Search', terms_of_use__title: 'Terms of use', privacy__title: 'Privacy Policy', consent__title: 'Consent to Personal Data Processing', subscribe__title: 'Subscription', subscribe__current_plan: 'Current plan', subscribe__plan_date: 'Subscription is active until', subscribe__plan_active_chats: 'Rated (active) chats', subscribe__plans: 'Plans', subscribe__plans_description: 'Unlimited everything: users, projects, tasks.', subscribe__per_month: '/month', subscribe__chats_max: 'max.', subscribe__chats: 'chats', subscribe__free_tax: 'FREE', subscribe__TEST_via_support: 'Available via support', subscribe__plans_interval: 'Subscription period', subscribe__1month: '1 month', subscribe__3months: '3 months', subscribe__1year: '1 year', subscribe__30days: '30 days', subscribe__91days: '91 days', subscribe__365days: '365 days', subscribe__plans_period_notes: 'Switching plans will recalculate your unused billing period. The total subscription term cannot exceed 730 days.', subscribe__plans_period_notes_more_info: 'More…', subscribe__promocode: 'Promo code', subscribe__promocode_success: 'Promo code successfully applied!', subscribe__promocode_fail: 'Promo code is invalid!', subscribe__pay: 'Subscribe for', subscribe__pay_renew: 'Renew for', subscribe__plan_exp: 'exp.', support__title: 'Support', support__ask_question: 'Ask Question', support__work_time_text: 'Support is available on weekdays', support__work_time_time: '10:00 - 19:00 (Moscow, GMT+3)', support__or: 'or contact us via email', error404: 'Oops. Nothing here…', agreements__title: 'Agreements', agreements__description: 'To use the application:', agreements__description_update: 'The documents have been significantly updated.', agreements__checkbox_agreement_terms: 'I accept the', agreements__checkbox_agreement_terms_doc: 'Terms of Use', agreements__checkbox_agreement_consent: 'I', agreements__checkbox_agreement_consent_doc: 'consent to the processing of my personal data', agreements__checkbox_agreement_privacy: 'and accept the', agreements__checkbox_agreement_privacy_doc: 'Privacy Policy', agreements__btn_agree: 'Agree and continue', agreements__btn_decline: 'Decline', agreements__btn_decline_description: '(close app)', only_telegram__continue: 'Continue', subscription_guide__title: 'Subscription Plan Terms' } \ No newline at end of file +export default { EN: 'EN', RU: 'RU', continue: 'Continue', back: 'Back', close: 'Close', cancel: 'Cancel', code: 'Code', month: 'month', months: 'months', slogan: 'Work together - it\'s magic!', login__email: 'E-mail', login__password: 'Password', login__forgot_password: 'Forgot Password?', login__sign_in: 'Log in', login__or_continue_as: 'or continue as', login__register: 'Create account', login__register_title: 'Register', login__incorrect_email: 'Please enter a valid email address', login__password_require: 'At least 8 characters', projects__title: 'Projects', projects__search: 'Search', projects__show_archive: 'Show archive', projects__hide_archive: 'Hide archive', projects__dialog_archive_title: 'Archive project?', projects__dialog_archive_message: 'Chat tracking will stop.', projects__dialog_archive_message2: 'Chat data during archiving will be lost!', projects__dialog_archive_ok: 'Archive', projects__dialog_restore_title: 'Restore project?', projects__dialog_restore_message: 'Chat tracking will resume.', projects__dialog_restore_message2: 'Archive period data won\'t be recovered!', projects__dialog_restore_ok: 'Restore', projects__lets_start: 'Create a Project', projects__lets_start_description: 'Projects isolate data: contacts, tasks, documents, and chats are visible only to members', header__to_projects: 'Projects', project__chats: 'Chats', project__users: 'Team', project__companies: 'Companies', project_create__title_card: 'New project', project_create__btn: 'Create', project_edit__title_card: 'Edit project', project_edit__btn: 'Apply', project_block__project_name: 'Name', project_block__project_description: 'Description', project_block__error_name: 'Field is required', chats__search: 'Search', chats__attach_chat_private_title: 'Private Mode', chats__attach_chat_private_title_description: 'No access to chat messages. Notifications only', chats__attach_private_chat: 'Attach Chat', chats__attach_private_chat_description: 'Requires rights to add participants', chats__send_private_chat: 'Chat Attachment Request', chats__send_private_chat_description: 'Send to participant with rights to add other participants', chats__attach_chat_title: 'Full Functionality', chats__attach_chat_title_description: 'Access to chat messages is provided', chats__attach_chat: 'Attach chat', chats__attach_chat_description: 'Requires chat administrator rights', chats__send_chat: 'Request for attach chat', chats__send_chat_description: 'Send to chat administrator', chats_disabled_FAB: 'To add chats, please use the Telegram app', chats__send_chat_title: 'To connect the chat to app tgCrew, add the bot to it using the provided link:', chats__dialog_unlink_title: 'Unlink chat?', chats__dialog_unlink_message: 'Chat tracking will be discontinued.', chats__dialog_unlink_message2: 'All tasks and meetings will be detached from this chat.', chats__dialog_unlink_ok: 'Unlink', chats__onboard_msg1: 'Attach chats to the project', chats__onboard_msg2: 'Chat control is enabled from the moment of attachment', chats__help_chat_type: 'Chat connection types', chats__filters: 'Filters', chats__filters_reset: 'Reset filters', chats__filters_type: 'Chat connection type', chats__filters_continue: 'Continue', chat_card__title: 'Chat card', chat_card__go_chat: 'Go to chat', chat_card__members: 'Members', chat_card__owner: 'Chat owner', chat_page__user_blocked: 'Blocked', chat__help_title: 'Chat connection types', chat_type__full_label: 'Full functionality', chat_type__full_description: 'Access to chat messages granted', chat_type__notify_label: 'Notifications mode', chat_type__notify_description: 'No access to chat messages', chat_type__detach_label: 'Disabled', chat_type__detach_description: 'App doesn\'t manage the chat', chat_type__delete_label: 'Deleted', chat_type__delete_description: 'Chat deleted or bot removed. App doesn\'t manage the chat', chat_type__reconnect_label: 'Reconnected', chat_type__reconnect_description: 'Chat was reconnected. App doesn\'t manage previous messages', chat_type__dialog_func_title: 'In private mode, the following are not available:', chat_type__dialog_func_point1: 'Tracking and backup of chat files', chat_type__dialog_func_point2: 'Ability to remove user from chat if they left the project.', chat_type__dialog_func_point3: 'Pinning informational messages.', chat_type__dialog_administrator_rights: 'For full functionality, the bot requires administrator rights including \"Ban users\".', users__search: 'Search', users__show_blocked_users: 'Show Blocked', users__hide_blocked_users: 'Hide Blocked', users__show_left_users: 'Show Leavers (inactive)', users__hide_left_users: 'Hide Leavers (inactive)', users__dialog_block_title: 'Block Employee?', users__dialog_block_message: 'System access will be disabled.', users__dialog_block_message2: 'The employee will be removed from all chats (except those where they are the owner).', users__dialog_block_ok: 'Block', users__dialog_restore_title: 'Restore Employee?', users__dialog_restore_message: 'System access will be restored.', users__dialog_restore_message2: 'Add them to chats manually if required.', users__dialog_restore_ok: 'Restore', users__onboard_msg1: 'Project Contact List', users__onboard_msg2: 'After attaching chats, members are imported automatically. You’ll need to define who is who', user_edit__title_card: 'Edit employee', user_edit__btn: 'Apply', user_block__name: 'Name', user_block__company: 'Company', user_block__department: 'Department', user_block__role: 'Role', user_block__no_company: 'Not specified', user_status__user_leave: 'Inactive', user_status__user_pending: 'Consent pending', companies__dialog_delete_title: 'Delete company?', companies__dialog_delete_message: 'This action cannot be undone!', companies__dialog_delete_message2: 'Company employees will be moved to \'No Company\'', companies__dialog_delete_ok: 'Delete', companies__mask: 'Cloaking', companies__my_company: 'My company', companies__onboard_msg1: 'Add Companies', companies__onboard_msg2: 'Recommended for projects involving 3+ companies', company_add__title_card: 'Add company', company_add__btn: 'Add', company_edit__title_card: 'Edit company', company_edit__btn: 'Apply', company_edit__my_company: 'My company', company_edit__my_company_hint: 'Form pre-filling is configured in Settings:', company_edit__my_company_href: 'Your Company\'s Data', company_block__name: 'Name', company_block__error_name: 'Field is required', company_block__description: 'Description', mask__title: 'Companies cloaking ', mask__help_title: 'Cloaking ', mask__help_message1: 'Cloaking conceals a company by making its personnel appear as if they belong to other companies, except those listed as "Visible"', mask__help_message2: 'Use the Toggle to enable or disable cloaking. Configure exceptions using the "+" button.', mask__info_block: 'Your company\'s employees will see all companies, regardless of the cloaking settings.', mask__table_header_company: 'Company', mask__table_header_visible: 'Visible', mask__table_visible_none: 'None', mask__table_visible_all: 'All', mask__btn_ok: 'Apply', account_helper__enter_email: 'Enter account e-mail', account_helper__email: 'E-mail', account_helper__confirm_email: 'Confirm e-mail', account_helper__confirm_email_message: 'Enter the Code from e-mail to continue. If you haven\'t received an e-mail with the Code, check the Spam folder.', account_helper__code: 'Code', account_helper__code_error: 'Incorrect code. Ensure your e-mail is correct and try again.', account_helper__set_password: 'Set password', account_helper__password: 'Password', account_helper__finish: 'Finish', account_helper__register_message1: 'Welcome!', account_helper__forgot_password_message1: 'Password set!', account_helper__change_password_message1: 'Password changed!', account_helper__change_method_message1: 'Login method changed!', account_helper__go_projects: 'Go to projects…', account_change_email__title: 'Change account e-mail', account_change_email__current_email: 'Current account e-mail', account_change_email__email: 'E-mail', account_change_email__confirm_current_email: 'Confirm current e-mail', account_change_email__confirm_email_message: 'Enter the Code from e-mail to continue. If you haven\'t received an e-mail with the Code, check the Spam folder.', account_change_email__code: 'Code', account_change_email__code_error: 'Incorrect code. Ensure your e-mail is correct and try again.', account_change_email__new_email: 'New account e-mail', account_change_email__confirm_new_email: 'Confirm new e-mail', account_change_email__set_password: 'Set password', account_change_email__password: 'Password', account_change_email__finish: 'Finish', account_change_email__finish_after_message: 'Done!', account_change_email__ok_message1: 'The email address has been successfully updated!', account_change_email__ok_message2: 'Go to Settings…', account__change_auth_message_2: 'After creating a user, all data from the Telegram account will be transferred to the new account.', account__change_auth_btn: 'Create account', account__change_auth_warning: 'WARNING!', account__change_auth_warning_message: 'Reverse data transfer is not possible.', account__chats: 'Chats', account__chats_active: 'Active', account__chats_unbound: 'Detached', account__chats_free: 'Free', account__chats_total: 'Total', account__subscribe: 'Subscription', account__subscribe_description: 'With a subscription, you can attach more active chats.', account__auth_change_method: 'Change authorization method', account__auth_change_method_description: 'In case of corporate use, it is recommended to log in with a username and password.', account__auth_change_password: 'Change account password', account__auth_change_password_description: 'Access to the email address used for system login is required.', account__auth_change_account: 'Change account e-mail', account__auth_change_account_description: 'Access to both the current and new email addresses used for system authentication is required.', account__company_data: 'Your Company\'s Data', account__company_data_description: 'The description will be automatically added to your company list for new projects.', account__manual: 'Guides', account__manual_description: 'Go to our Telegram channel with video tutorials.', account__settings: 'App Parametrs', account__settings_description: 'Text size, language, and more.', account__support: 'Support', account__support_description: 'Need help? Contact us!', account__3rd_party_software_description: 'List of third-party software packages included in the software', account__terms_of_use: 'Terms of use', account__privacy: 'Privacy Policy', account__stop_using: 'Opt-Out from Application Usage', account__stop_using_description: 'Includes Withdrawal of Consent for Personal Data Processing.', account__stop_using_dialog_title: 'Refuse to Use the Application?', account__stop_using_dialog_message1: 'The action is irreversible - your data will become inaccessible!', account__stop_using_dialog_message2: 'This action also entails the withdrawal of Consent for Personal Data Processing.', account__stop_using_dialog_btn_ok: 'Confirm', account__change_password: 'Change password', account__change_auth_method: 'Change authorization method', account_company__title_card: 'My company', account_company__btn: 'Apply', forgot_password__password_recovery: 'Password recovery', settings__title: 'App Parametrs', settings__software_title: 'Application', settings__bot_title: 'Messages in chats (bot)', settings__language: 'Language', settings__font_size: 'Font size', settings__fontsize_small: 'Small', settings__fontsize_medium: 'Medium (default)', settings__fontsize_large: 'Large', settings__timezone: 'Time zone', settings__timezone_search: 'Search', terms_of_use__title: 'Terms of use', privacy__title: 'Privacy Policy', consent__title: 'Consent to Personal Data Processing', subscribe__title: 'Subscription', subscribe__current_plan: 'Current plan', subscribe__plan_date: 'Subscription is active until', subscribe__plan_active_chats: 'Rated (active) chats', subscribe__plans: 'Plans', subscribe__plans_description: 'Unlimited everything: users, projects, tasks.', subscribe__per_month: '/month', subscribe__chats_max: 'max.', subscribe__chats: 'chats', subscribe__free_tax: 'FREE', subscribe__TEST_via_support: 'Available via support', subscribe__plans_interval: 'Subscription period', subscribe__1month: '1 month', subscribe__3months: '3 months', subscribe__1year: '1 year', subscribe__30days: '30 days', subscribe__91days: '91 days', subscribe__365days: '365 days', subscribe__plans_period_notes: 'Switching plans will recalculate your unused billing period. The total subscription term cannot exceed 730 days.', subscribe__plans_period_notes_more_info: 'More…', subscribe__promocode: 'Promo code', subscribe__promocode_success: 'Promo code successfully applied!', subscribe__promocode_fail: 'Promo code is invalid!', subscribe__pay: 'Subscribe for', subscribe__pay_renew: 'Renew for', subscribe__plan_exp: 'exp.', support__title: 'Support', support__ask_question: 'Ask Question', support__work_time_text: 'Support is available on weekdays', support__work_time_time: '10:00 - 19:00 (Moscow, GMT+3)', support__or: 'or contact us via email', error404: 'Oops. Nothing here…', agreements__title: 'Agreements', agreements__description: 'To use the application:', agreements__description_update: 'The documents have been significantly updated.', agreements__checkbox_agreement_terms: 'I accept the', agreements__checkbox_agreement_terms_doc: 'Terms of Use', agreements__checkbox_agreement_consent: 'I', agreements__checkbox_agreement_consent_doc: 'consent to the processing of my personal data', agreements__checkbox_agreement_privacy: 'and accept the', agreements__checkbox_agreement_privacy_doc: 'Privacy Policy', agreements__btn_agree: 'Agree and continue', agreements__btn_decline: 'Decline', agreements__btn_decline_description: '(close app)', only_telegram__continue: 'Continue', subscription_guide__title: 'Subscription Plan Terms' } \ No newline at end of file diff --git a/src/i18n/ru-RU/index.ts b/src/i18n/ru-RU/index.ts index d847d91..a67aa9a 100644 --- a/src/i18n/ru-RU/index.ts +++ b/src/i18n/ru-RU/index.ts @@ -1 +1 @@ -export default { EN: 'EN', RU: 'RU', continue: 'Продолжить', back: 'Назад', close: 'Закрыть', cancel: 'Отмена', code: 'Код', month: 'мес.', months: 'мес.', slogan: 'Работайте вместе - это волшебство!', login__email: 'Электронная почта', login__password: 'Пароль', login__forgot_password: 'Забыли пароль?', login__sign_in: 'Войти', login__or_continue_as: 'или продолжить', login__register: 'Зарегистрироваться', login__register_title: 'Регистрация', login__incorrect_email: 'Адрес почты некорректный', login__password_require: 'Мин. 8 символов', projects__title: 'Проекты', projects__search: 'Поиск', projects__show_archive: 'Показать архив', projects__hide_archive: 'Скрыть архив', projects__dialog_archive_title: 'Отправить проект в архив?', projects__dialog_archive_message: 'Отслеживание чатов будет остановлено.', projects__dialog_archive_message2: 'Данные из чатов за период архивации будут утеряны!', projects__dialog_archive_ok: 'В архив', projects__dialog_restore_title: 'Восстановить проект из архива?', projects__dialog_restore_message: 'Отслеживание чатов будет восстановлено.', projects__dialog_restore_message2: 'При восстановлении данные из чатов за период архивации не будут добавлены!', projects__dialog_restore_ok: 'Восстановить', projects__lets_start: 'Создайте проект', projects__lets_start_description: 'Проекты помогают изолировать данные: контакты, задачи, документы и чаты доступны только участникам', header__to_projects: 'Проекты', project__chats: 'Чаты', project__users: 'Команда', project__companies: 'Компании', project_create__title_card: 'Новый проект', project_create__btn: 'Создать', project_edit__title_card: 'Редактировать проект', project_edit__btn: 'Сохранить', project_block__project_name: 'Название', project_block__project_description: 'Описание', project_block__error_name: 'Поле обязательно к заполнению', chats__search: 'Поиск', chats__send_chat: 'Запрос на добавление чата', chats__send_chat_description: 'Отправить инструкцию администратору чата', chats__attach_chat: 'Добавить чат', chats__attach_chat_description: 'Необходимы права администратора чата', chats_disabled_FAB: 'Добавление чатов возможно только в приложении Telegram', chats__send_chat_title: 'Для присоединения чата к приложению tgCrew необходимо добавить в него бота с помощью ссылки:', chats__dialog_unlink_title: 'Открепить чат?', chats__dialog_unlink_message: 'Отслеживание чата будет прекращено.', chats__dialog_unlink_message2: 'При необходимости чат можно будет подключить снова.', chats__dialog_unlink_ok: 'Открепить', chats__onboard_msg1: 'Прикрепите чаты к проекту', chats__onboard_msg2: 'Контроль чатов осуществляется только с момента прикрепления', chat_card__title: 'Карточка чата', chat_card__go_chat: 'Перейти к чату', chat_card__members: 'Участники', chat_page__user_blocked: 'Заблокирован', users__search: 'Поиск', users__show_blocked_users: 'Показать заблокированных', users__hide_blocked_users: 'Скрыть заблокированных', users__show_left_users: 'Показать неактивных', users__hide_left_users: 'Скрыть неактивных', users__dialog_block_title: 'Заблокировать сотрудника?', users__dialog_block_message: 'Доступ к системе будет отключен.', users__dialog_block_message2: 'Сотрудник будет исключен из всех чатов (кроме тех, где он является владельцем).', users__dialog_block_ok: 'Заблокировать', users__dialog_restore_title: 'Восстановить сотрудника?', users__dialog_restore_message: 'Доступ к системе будет восстановлен.', users__dialog_restore_message2: 'При необходимости нужно добавить сотрудника в чаты вручную.', users__dialog_restore_ok: 'Восстановить', users__onboard_msg1: 'Адресная книга проекта', users__onboard_msg2: 'После прикрепления чатов их участники добавляются автоматически. Остается указать — кто есть кто. ', user_edit__title_card: 'Редактирование данных сотрудника', user_edit__btn: 'Сохранить', user_block__name: 'ФИО', user_block__company: 'Компания', user_block__department: 'Подразделение', user_block__role: 'Функционал (должность)', user_block__no_company: 'Не указано', user_block__user_blocked: 'ЗАБЛОКИРОВАН', user_block__user_leave: 'Неактивный', user_block__user_pending: 'Ожидание согласия', companies__dialog_delete_title: 'Удалить компанию?', companies__dialog_delete_message: 'Это действие нельзя отменить!', companies__dialog_delete_message2: 'Сотрудники компании будут помечены "Без компании".', companies__dialog_delete_ok: 'Удалить', companies__mask: 'Маскировка', companies__my_company: 'Моя компания', companies__onboard_msg1: 'Добавьте компании', companies__onboard_msg2: 'Рекомендуется, если в проекте участвует 3 и более компаний.', company_add__title_card: 'Добавить компанию', company_add__btn: 'Создать', company_edit__title_card: 'Редактировать компанию', company_edit__btn: 'Сохранить', company_edit__my_company: 'Моя компания', company_edit__my_company_hint: 'Заполнение формы преднастраивается в Настройках:', company_edit__my_company_href: 'Данные вашей компании', company_block__name: 'Название', company_block__error_name: 'Поле обязательно к заполнению', company_block__description: 'Описание', mask__title: 'Маскировка компаний', mask__help_title: 'Маскировка', mask__help_message1: 'Маскировка позволяет скрывать компанию, представляя ее персонал как собственный для других компаний, кроме тех, кто есть в перечне исключений "Видно". ', mask__help_message2: 'Для включения и отключения маскировки используйте Переключатель. Настройка исключений осуществляется с помощью "+".', mask__info_block: 'Сотрудники вашей компании будут видеть все компании, независимо от настроек маскировки.', mask__table_header_company: 'Компания', mask__table_header_visible: 'Видно', mask__table_visible_none: 'Никому', mask__table_visible_all: 'Всем', mask__btn_ok: 'Сохранить', account_helper__enter_email: 'Введите электронную почту', account_helper__email: 'Электронная почта', account_helper__confirm_email: 'Подтверждение электронной почты', account_helper__confirm_email_message: 'Введите код из письма для продолжения. Если не получили письмо с кодом - проверьте папку Спам', account_helper__code: 'Код', account_helper__code_error: 'Был введен неверный код. Проверьте адрес электронной почты и повторите попытку.', account_helper__set_password: 'Установка пароля', account_helper__password: 'Пароль', account_helper__finish: 'Отправить', account_helper__register_message1: 'Добро пожаловать!', account_helper__forgot_password_message1: 'Пароль установлен!', account_helper__change_password_message1: 'Пароль изменен!', account_helper__change_method_message1: 'Способ входа в систему изменен!', account_helper__go_projects: 'Переходим к проектам…', account_change_email__title: 'Изменение адреса электронной почты учетной записи', account_change_email__current_email: 'Текущий адрес электронной почты ', account_change_email__email: 'Электронная почта', account_change_email__confirm_current_email: 'Подтверждение адреса текущей электронной почты', account_change_email__confirm_email_message: 'Введите код из письма для продолжения. Если не получили письмо с кодом - проверьте папку Спам', account_change_email__code: 'Код', account_change_email__code_error: 'Был введен неверный код. Проверьте адрес электронной почты и повторите попытку.', account_change_email__new_email: 'Новый адрес электронной почты ', account_change_email__confirm_new_email: 'Подтверждение адреса новой электронной почты', account_change_email__set_password: 'Установка пароля', account_change_email__password: 'Пароль', account_change_email__finish: 'Отправить', account_change_email__finish_after_message: 'Готово!', account_change_email__ok_message1: 'Адрес электронной почты успешно изменен!', account_change_email__ok_message2: 'Переходим в Настройки…', account__change_auth_message_2: 'После создания пользователя все данные с учетной записи Telegram будут перенесены на новую учетную запись.', account__change_auth_btn: 'Создать пользователя', account__change_auth_warning: 'ВНИМАНИЕ!', account__change_auth_warning_message: 'Обратный перенос данных не возможен.', account__chats: 'Чаты', account__chats_active: 'Активные', account__chats_unbound: 'Открепленные', account__chats_free: 'Бесплатные', account__chats_total: 'Всего', account__subscribe: 'Подписка', account__subscribe_description: 'С помощью подписки можно подключить дополнительные чаты.', account__auth_change_method: 'Изменить способ авторизации', account__auth_change_method_description: 'В случае корпоративного использования рекомендуется входить в систему, указав логин и пароль.', account__auth_change_password: 'Изменить пароль учетной записи', account__auth_change_password_description: 'Необходим доступ к электронной почте, используемой для входа в систему.', account__auth_change_account: 'Изменить электронную почту учетной записи', account__auth_change_account_description: 'Необходим доступ к текущей и новой электронной почте, используемым для входа в систему.', account__company_data: 'Данные вашей компании', account__company_data_description: 'Описание будет автоматически добавляться в перечень компаний для новых проектов. ', account__manual: 'Инструкции', account__manual_description: 'Перейдите в наш Telegram-канал с обучающими видеороликами.', account__settings: 'Параметры приложения', account__settings_description: 'Размер текста, язык и т.п.', account__support: 'Поддержка', account__support_description: 'Есть вопросы - напишите нам!', account__3rd_party_software_description: 'Список сторонних программных пакетов, включённых в ПО', account__terms_of_use: 'Пользовательское соглашение', account__privacy: 'Политика конфиденциальности', account__stop_using: 'Отказ от использования приложения', account__stop_using_description: 'Включает отзыв Согласия на обработку ПДн.', account__stop_using_dialog_title: 'Отказаться от использования приложения?', account__stop_using_dialog_message1: 'Действие необратимо - ваши данные станут недоступны!', account__stop_using_dialog_message2: 'Это также отзовет ваше Cогласие на обработку данных.', account__stop_using_dialog_btn_ok: 'Подтвердить', account__change_password: 'Изменить пароль', account__change_auth_method: 'Изменить способ авторизации', account_company__title_card: 'Моя компания', account_company__btn: 'Применить', forgot_password__password_recovery: 'Восстановление пароля', settings__title: 'Параметры приложения', settings__software_title: 'Приложение', settings__bot_title: 'Сообщения в чатах (бот)', settings__language: 'Язык', settings__font_size: 'Размер текста', settings__fontsize_small: 'Мелкий', settings__fontsize_medium: 'Средний (по умолчанию)', settings__fontsize_large: 'Большой', settings__timezone: 'Часовой пояс', settings__timezone_search: 'Поиск', terms_of_use__title: 'Пользовательское соглашение', privacy__title: 'Политика конфиденциальности', consent__title: 'Согласие на обработку персональных данных', subscribe__title: 'Подписка', subscribe__current_plan: 'Текущий тариф', subscribe__plan_date: 'Подписка активна', subscribe__plan_active_chats: 'Тарифицируемые (активные) чаты', subscribe__plans: 'Тарифы', subscribe__plans_description: 'Все без ограничений: пользователи, проекты, задачи.', subscribe__per_month: '/мес.', subscribe__chats_max: 'макс.', subscribe__chats: 'чатов', subscribe__free_tax: 'БЕСПЛАТНО', subscribe__TEST_via_support: 'Доступно через поддержку', subscribe__plans_interval: 'Период подписки', subscribe__1month: '1 месяц', subscribe__3months: '3 месяца', subscribe__1year: '1 год', subscribe__30days: '30 дней', subscribe__91days: '91 день', subscribe__365days: '365 дней', subscribe__plans_period_notes: 'При смене тарифа остаток неиспользованного периода пересчитывается. Общий срок действия подписки не может превышать 730 дней.', subscribe__plans_period_notes_more_info: 'Подробнее…', subscribe__promocode: 'Промокод', subscribe__promocode_success: 'Промокод успешно применен!', subscribe__promocode_fail: 'Промокод не действителен!', subscribe__pay: 'Подключить за', subscribe__pay_renew: 'Продлить за', subscribe__plan_exp: 'до', support__title: 'Поддержка', support__ask_question: 'Задайте вопрос', support__work_time_text: 'Поддержка оказывается в рабочие дни', support__work_time_time: '10:00 - 19:00 (Москва, GMT+3)', support__or: 'или напишите нам на электронную почту', error404: 'Тут ничего нет. Как вы сюда попали?', agreements__title: 'Соглашения', agreements__description: 'Для использования приложения:', agreements__description_update: 'Документы существенно обновлены.', agreements__checkbox_agreement_terms: 'Я принимаю', agreements__checkbox_agreement_terms_doc: 'Пользовательское соглашение', agreements__checkbox_agreement_consent: 'Я даю', agreements__checkbox_agreement_consent_doc: 'Согласие на обработку своих персональных данных', agreements__checkbox_agreement_privacy: 'и принимаю условия', agreements__checkbox_agreement_privacy_doc: 'Политики конфиденциальности', agreements__btn_agree: 'Подтвердить и продолжить', agreements__btn_decline: 'Отказаться', agreements__btn_decline_description: '(закрыть приложение)', only_telegram__continue: 'Продолжить', subscription_guide__title: 'Положение о Тарифных планах подписки' } \ No newline at end of file +export default { EN: 'EN', RU: 'RU', continue: 'Продолжить', back: 'Назад', close: 'Закрыть', cancel: 'Отмена', code: 'Код', month: 'мес.', months: 'мес.', slogan: 'Работайте вместе - это волшебство!', login__email: 'Электронная почта', login__password: 'Пароль', login__forgot_password: 'Забыли пароль?', login__sign_in: 'Войти', login__or_continue_as: 'или продолжить', login__register: 'Зарегистрироваться', login__register_title: 'Регистрация', login__incorrect_email: 'Адрес почты некорректный', login__password_require: 'Мин. 8 символов', projects__title: 'Проекты', projects__search: 'Поиск', projects__show_archive: 'Показать архив', projects__hide_archive: 'Скрыть архив', projects__dialog_archive_title: 'Отправить проект в архив?', projects__dialog_archive_message: 'Отслеживание чатов будет остановлено.', projects__dialog_archive_message2: 'Данные из чатов за период архивации будут утеряны!', projects__dialog_archive_ok: 'В архив', projects__dialog_restore_title: 'Восстановить проект из архива?', projects__dialog_restore_message: 'Отслеживание чатов будет восстановлено.', projects__dialog_restore_message2: 'При восстановлении данные из чатов за период архивации не будут добавлены!', projects__dialog_restore_ok: 'Восстановить', projects__lets_start: 'Создайте проект', projects__lets_start_description: 'Проекты помогают изолировать данные: контакты, задачи, документы и чаты доступны только участникам', header__to_projects: 'Проекты', project__chats: 'Чаты', project__users: 'Команда', project__companies: 'Компании', project_create__title_card: 'Новый проект', project_create__btn: 'Создать', project_edit__title_card: 'Редактировать проект', project_edit__btn: 'Сохранить', project_block__project_name: 'Название', project_block__project_description: 'Описание', project_block__error_name: 'Поле обязательно к заполнению', chats__search: 'Поиск', chats__attach_chat_private_title: 'Приватный режим', chats__attach_chat_private_title_description: 'Без доступа к сообщениям в чате. Только уведомления', chats__attach_private_chat: 'Добавить чат', chats__attach_private_chat_description: 'Необходимы права на добавление участников', chats__send_private_chat: 'Запрос на добавление чата', chats__send_private_chat_description: 'Отправить участнику с правом добавлять других участников', chats__attach_chat_title: 'Полный функционал', chats__attach_chat_title_description: 'Предоставлен доступ к сообщениям в чате', chats__attach_chat: 'Добавить чат', chats__attach_chat_description: 'Необходимы права администратора чата', chats__send_chat: 'Запрос на добавление чата', chats__send_chat_description: 'Отправить администратору чата', chats_disabled_FAB: 'Добавление чатов возможно только в приложении Telegram', chats__send_chat_title: 'Для присоединения чата к приложению tgCrew необходимо добавить в него бота с помощью ссылки:', chats__dialog_unlink_title: 'Открепить чат?', chats__dialog_unlink_message: 'Отслеживание чата будет прекращено.', chats__dialog_unlink_message2: 'Все задачи и совещания в чате будут от него откреплены.', chats__dialog_unlink_ok: 'Открепить', chats__onboard_msg1: 'Прикрепите чаты к проекту', chats__onboard_msg2: 'Контроль чатов осуществляется только с момента прикрепления', chats__help_chat_type: 'Типы подключения чатов', chats__filters: 'Фильтры', chats__filters_reset: 'Сбросить фильтры', chats__filters_type: 'Тип подключения чата', chats__filters_continue: 'Продолжить', chat_card__title: 'Карточка чата', chat_card__go_chat: 'Перейти к чату', chat_card__members: 'Участники', chat_card__owner: 'Владелец чата', chat_page__user_blocked: 'Заблокирован', chat__help_title: 'Типы подключения чатов', chat_type__full_label: 'Полный функционал', chat_type__full_description: 'Предоставлен доступ к сообщениям в чате', chat_type__notify_label: 'Приватный режим', chat_type__notify_description: 'Без доступа к сообщениям в чате. Только уведомления', chat_type__detach_label: 'Отключен', chat_type__detach_description: 'Приложение не отслеживает чат', chat_type__delete_label: 'Удален', chat_type__delete_description: 'Чат удален или бот исключен из чата. Приложение не отслеживает чат', chat_type__reconnect_label: 'Переподключен', chat_type__reconnect_description: 'Чат был отлючен и повторно подключен. Приложение не управляет сообщениями до переключения', chat_type__dialog_func_title: 'В приватном режиме не доступно:', chat_type__dialog_func_point1: 'Учет и бекапирование файлов из чата.', chat_type__dialog_func_point2: 'Возможность исключить пользователя из чата, если он покинул проект.', chat_type__dialog_func_point3: 'Закрепление информационных сообщений.', chat_type__dialog_administrator_rights: 'Для обеспечения полного функционала боту необходимы права администратора, вкл. \"Блокировка пользователей\".', users__search: 'Поиск', users__show_blocked_users: 'Показать заблокированных', users__hide_blocked_users: 'Скрыть заблокированных', users__show_left_users: 'Показать неактивных', users__hide_left_users: 'Скрыть неактивных', users__dialog_block_title: 'Заблокировать сотрудника?', users__dialog_block_message: 'Доступ к системе будет отключен.', users__dialog_block_message2: 'Сотрудник будет исключен из всех чатов (кроме тех, где он является владельцем).', users__dialog_block_ok: 'Заблокировать', users__dialog_restore_title: 'Восстановить сотрудника?', users__dialog_restore_message: 'Доступ к системе будет восстановлен.', users__dialog_restore_message2: 'При необходимости нужно добавить сотрудника в чаты вручную.', users__dialog_restore_ok: 'Восстановить', users__onboard_msg1: 'Адресная книга проекта', users__onboard_msg2: 'После прикрепления чатов их участники добавляются автоматически. Остается указать — кто есть кто. ', user_edit__title_card: 'Редактирование данных сотрудника', user_edit__btn: 'Сохранить', user_block__name: 'ФИО', user_block__company: 'Компания', user_block__department: 'Подразделение', user_block__role: 'Функционал (должность)', user_block__no_company: 'Не указано', user_status__user_leave: 'Неактивный', user_status__user_pending: 'Ожидание согласия', companies__dialog_delete_title: 'Удалить компанию?', companies__dialog_delete_message: 'Это действие нельзя отменить!', companies__dialog_delete_message2: 'Сотрудники компании будут помечены "Без компании".', companies__dialog_delete_ok: 'Удалить', companies__mask: 'Маскировка', companies__my_company: 'Моя компания', companies__onboard_msg1: 'Добавьте компании', companies__onboard_msg2: 'Рекомендуется, если в проекте участвует 3 и более компаний.', company_add__title_card: 'Добавить компанию', company_add__btn: 'Создать', company_edit__title_card: 'Редактировать компанию', company_edit__btn: 'Сохранить', company_edit__my_company: 'Моя компания', company_edit__my_company_hint: 'Заполнение формы преднастраивается в Настройках:', company_edit__my_company_href: 'Данные вашей компании', company_block__name: 'Название', company_block__error_name: 'Поле обязательно к заполнению', company_block__description: 'Описание', mask__title: 'Маскировка компаний', mask__help_title: 'Маскировка', mask__help_message1: 'Маскировка позволяет скрывать компанию, представляя ее персонал как собственный для других компаний, кроме тех, кто есть в перечне исключений "Видно". ', mask__help_message2: 'Для включения и отключения маскировки используйте Переключатель. Настройка исключений осуществляется с помощью "+".', mask__info_block: 'Сотрудники вашей компании будут видеть все компании, независимо от настроек маскировки.', mask__table_header_company: 'Компания', mask__table_header_visible: 'Видно', mask__table_visible_none: 'Никому', mask__table_visible_all: 'Всем', mask__btn_ok: 'Сохранить', account_helper__enter_email: 'Введите электронную почту', account_helper__email: 'Электронная почта', account_helper__confirm_email: 'Подтверждение электронной почты', account_helper__confirm_email_message: 'Введите код из письма для продолжения. Если не получили письмо с кодом - проверьте папку Спам', account_helper__code: 'Код', account_helper__code_error: 'Был введен неверный код. Проверьте адрес электронной почты и повторите попытку.', account_helper__set_password: 'Установка пароля', account_helper__password: 'Пароль', account_helper__finish: 'Отправить', account_helper__register_message1: 'Добро пожаловать!', account_helper__forgot_password_message1: 'Пароль установлен!', account_helper__change_password_message1: 'Пароль изменен!', account_helper__change_method_message1: 'Способ входа в систему изменен!', account_helper__go_projects: 'Переходим к проектам…', account_change_email__title: 'Изменение адреса электронной почты учетной записи', account_change_email__current_email: 'Текущий адрес электронной почты ', account_change_email__email: 'Электронная почта', account_change_email__confirm_current_email: 'Подтверждение адреса текущей электронной почты', account_change_email__confirm_email_message: 'Введите код из письма для продолжения. Если не получили письмо с кодом - проверьте папку Спам', account_change_email__code: 'Код', account_change_email__code_error: 'Был введен неверный код. Проверьте адрес электронной почты и повторите попытку.', account_change_email__new_email: 'Новый адрес электронной почты ', account_change_email__confirm_new_email: 'Подтверждение адреса новой электронной почты', account_change_email__set_password: 'Установка пароля', account_change_email__password: 'Пароль', account_change_email__finish: 'Отправить', account_change_email__finish_after_message: 'Готово!', account_change_email__ok_message1: 'Адрес электронной почты успешно изменен!', account_change_email__ok_message2: 'Переходим в Настройки…', account__change_auth_message_2: 'После создания пользователя все данные с учетной записи Telegram будут перенесены на новую учетную запись.', account__change_auth_btn: 'Создать пользователя', account__change_auth_warning: 'ВНИМАНИЕ!', account__change_auth_warning_message: 'Обратный перенос данных не возможен.', account__chats: 'Чаты', account__chats_active: 'Активные', account__chats_unbound: 'Открепленные', account__chats_free: 'Бесплатные', account__chats_total: 'Всего', account__subscribe: 'Подписка', account__subscribe_description: 'С помощью подписки можно подключить дополнительные чаты.', account__auth_change_method: 'Изменить способ авторизации', account__auth_change_method_description: 'В случае корпоративного использования рекомендуется входить в систему, указав логин и пароль.', account__auth_change_password: 'Изменить пароль учетной записи', account__auth_change_password_description: 'Необходим доступ к электронной почте, используемой для входа в систему.', account__auth_change_account: 'Изменить электронную почту учетной записи', account__auth_change_account_description: 'Необходим доступ к текущей и новой электронной почте, используемым для входа в систему.', account__company_data: 'Данные вашей компании', account__company_data_description: 'Описание будет автоматически добавляться в перечень компаний для новых проектов. ', account__manual: 'Инструкции', account__manual_description: 'Перейдите в наш Telegram-канал с обучающими видеороликами.', account__settings: 'Параметры приложения', account__settings_description: 'Размер текста, язык и т.п.', account__support: 'Поддержка', account__support_description: 'Есть вопросы - напишите нам!', account__3rd_party_software_description: 'Список сторонних программных пакетов, включённых в ПО', account__terms_of_use: 'Пользовательское соглашение', account__privacy: 'Политика конфиденциальности', account__stop_using: 'Отказ от использования приложения', account__stop_using_description: 'Включает отзыв Согласия на обработку ПДн.', account__stop_using_dialog_title: 'Отказаться от использования приложения?', account__stop_using_dialog_message1: 'Действие необратимо - ваши данные станут недоступны!', account__stop_using_dialog_message2: 'Это также отзовет ваше Cогласие на обработку данных.', account__stop_using_dialog_btn_ok: 'Подтвердить', account__change_password: 'Изменить пароль', account__change_auth_method: 'Изменить способ авторизации', account_company__title_card: 'Моя компания', account_company__btn: 'Применить', forgot_password__password_recovery: 'Восстановление пароля', settings__title: 'Параметры приложения', settings__software_title: 'Приложение', settings__bot_title: 'Сообщения в чатах (бот)', settings__language: 'Язык', settings__font_size: 'Размер текста', settings__fontsize_small: 'Мелкий', settings__fontsize_medium: 'Средний (по умолчанию)', settings__fontsize_large: 'Большой', settings__timezone: 'Часовой пояс', settings__timezone_search: 'Поиск', terms_of_use__title: 'Пользовательское соглашение', privacy__title: 'Политика конфиденциальности', consent__title: 'Согласие на обработку персональных данных', subscribe__title: 'Подписка', subscribe__current_plan: 'Текущий тариф', subscribe__plan_date: 'Подписка активна', subscribe__plan_active_chats: 'Тарифицируемые (активные) чаты', subscribe__plans: 'Тарифы', subscribe__plans_description: 'Все без ограничений: пользователи, проекты, задачи.', subscribe__per_month: '/мес.', subscribe__chats_max: 'макс.', subscribe__chats: 'чатов', subscribe__free_tax: 'БЕСПЛАТНО', subscribe__TEST_via_support: 'Доступно через поддержку', subscribe__plans_interval: 'Период подписки', subscribe__1month: '1 месяц', subscribe__3months: '3 месяца', subscribe__1year: '1 год', subscribe__30days: '30 дней', subscribe__91days: '91 день', subscribe__365days: '365 дней', subscribe__plans_period_notes: 'При смене тарифа остаток неиспользованного периода пересчитывается. Общий срок действия подписки не может превышать 730 дней.', subscribe__plans_period_notes_more_info: 'Подробнее…', subscribe__promocode: 'Промокод', subscribe__promocode_success: 'Промокод успешно применен!', subscribe__promocode_fail: 'Промокод не действителен!', subscribe__pay: 'Подключить за', subscribe__pay_renew: 'Продлить за', subscribe__plan_exp: 'до', support__title: 'Поддержка', support__ask_question: 'Задайте вопрос', support__work_time_text: 'Поддержка оказывается в рабочие дни', support__work_time_time: '10:00 - 19:00 (Москва, GMT+3)', support__or: 'или напишите нам на электронную почту', error404: 'Тут ничего нет. Как вы сюда попали?', agreements__title: 'Соглашения', agreements__description: 'Для доступа к приложению:', agreements__description_update: 'Документы существенно обновлены.', agreements__checkbox_agreement_terms: 'Я принимаю', agreements__checkbox_agreement_terms_doc: 'Пользовательское соглашение', agreements__checkbox_agreement_consent: 'Я даю', agreements__checkbox_agreement_consent_doc: 'Согласие на обработку своих персональных данных', agreements__checkbox_agreement_privacy: 'и принимаю условия', agreements__checkbox_agreement_privacy_doc: 'Политики конфиденциальности', agreements__btn_agree: 'Подтвердить и продолжить', agreements__btn_decline: 'Отклонить', agreements__btn_decline_description: '(закрыть приложение)', only_telegram__continue: 'Продолжить', subscription_guide__title: 'Положение о Тарифных планах подписки' } \ No newline at end of file diff --git a/src/pages/AgreementsPage.vue b/src/pages/AgreementsPage.vue index d200b45..618df4c 100644 --- a/src/pages/AgreementsPage.vue +++ b/src/pages/AgreementsPage.vue @@ -5,7 +5,7 @@
-
+
{{ $t('agreements__description_update') }}
{{ $t('agreements__description') }}
@@ -43,31 +43,30 @@
diff --git a/src/pages/ChatPage.vue b/src/pages/ChatPage.vue index 0964489..e18fcde 100644 --- a/src/pages/ChatPage.vue +++ b/src/pages/ChatPage.vue @@ -4,22 +4,20 @@ {{ $t('chat_card__title') }}
{{ chat.description }}
- +
+ + +
+ + {{ $t('chat_card__members') + ' (' + chatUsers.length +')' }} @@ -58,22 +61,28 @@ /> - - - {{ $t(getUserStatus(item).text) }} + +
+ + {{ $t('chat_card__owner') }} +
+
+ + + {{ $t(getUserStatus(item)?.text ?? '') }} - {{item.section1}} + {{ item.section1 }} - {{item.section3}} + {{ item.section3 }}
-
{{item.section2_1}}
-
{{'@' + item.section2_2}}
+
{{ item.section2_1 }}
+
{{ '@' + item.section2_2 }}
@@ -91,10 +100,11 @@ import { useUsersStore } from 'stores/users' import { useCompaniesStore } from 'stores/companies' import { parseIntString } from 'src/utils/helpers' - import type { Chat } from 'types/Chat' - import type { User } from 'types/User' - import type { WebApp } from '@twa-dev/types' import { useUserSection } from 'composables/useUserSection' + import pnChatTypeItem from 'components/pnChatTypeItem.vue' + import { getUserStatus } from 'utils/users' + import type { Chat } from 'types/Chat' + import type { WebApp } from '@twa-dev/types' const tg = inject('tg') as WebApp @@ -119,9 +129,8 @@ watch(() => chatsStore.isInit, initChat) - async function onSubmit () { + function onSubmit () { if (chat.value) tg.openTelegramLink('https://t.me/c/' + chat.value.telegram_id + '/' + chat.value.message_id) - if (chat.value) await chatsStore.getChatUsers(chat.value.id) } const users = computed(() => usersStore.users) @@ -146,19 +155,4 @@ await router.push({ name: 'user_info', params: { id: route.params.id, userId: id }}) } - interface chatUser extends User { - section1: string - section2_1: string - section2_2: string - section3: string - companyName: string | null - } - - function getUserStatus (item: chatUser) { - if (item.is_blocked) return { status: 'blocked', text: 'user_block__user_blocked', color: 'negative' } - if (item.is_leave) return { status: 'leave', text: 'user_block__user_leave', color: 'primary' } - if (!item.is_terms_accepted) return { status: 'pending', text: 'user_block__user_pending', color: 'secondary' } - return { status: null, text: '', color: '' } - } - diff --git a/src/pages/CompanyMaskPage.vue b/src/pages/CompanyMaskPage.vue index 40627a0..7ee23cb 100644 --- a/src/pages/CompanyMaskPage.vue +++ b/src/pages/CompanyMaskPage.vue @@ -7,7 +7,7 @@