From 56a832b96bb76d5d55cb123c3db794573df962c0 Mon Sep 17 00:00:00 2001 From: Helena <37183360+helenarebane@users.noreply.github.com> Date: Tue, 2 Sep 2025 11:53:30 +0300 Subject: [PATCH] MED-75: add russian translations (#70) --- .../src/locales/en/company-offer-email.json | 8 + .../src/locales/ru/common.json | 4 +- .../src/locales/ru/company-offer-email.json | 14 +- .../ru/doctor-summary-received-email.json | 12 +- .../src/locales/ru/synlab-email.json | 20 +- public/locales/ru/account.json | 277 +++++++------- public/locales/ru/analysis-results.json | 16 + public/locales/ru/auth.json | 172 ++++----- public/locales/ru/billing.json | 200 +++++----- public/locales/ru/booking.json | 15 +- public/locales/ru/cart.json | 75 ++++ public/locales/ru/common.json | 226 ++++++------ public/locales/ru/dashboard.json | 34 +- public/locales/ru/doctor.json | 80 ++-- public/locales/ru/marketing.json | 76 ++-- public/locales/ru/order-analysis-package.json | 14 +- public/locales/ru/order-analysis.json | 7 + public/locales/ru/orders.json | 19 + public/locales/ru/product.json | 30 +- public/locales/ru/teams.json | 341 ++++++++++-------- 20 files changed, 936 insertions(+), 704 deletions(-) create mode 100644 packages/email-templates/src/locales/en/company-offer-email.json create mode 100644 public/locales/ru/analysis-results.json create mode 100644 public/locales/ru/cart.json create mode 100644 public/locales/ru/order-analysis.json create mode 100644 public/locales/ru/orders.json diff --git a/packages/email-templates/src/locales/en/company-offer-email.json b/packages/email-templates/src/locales/en/company-offer-email.json new file mode 100644 index 0000000..b0cd165 --- /dev/null +++ b/packages/email-templates/src/locales/en/company-offer-email.json @@ -0,0 +1,8 @@ +{ + "subject": "New Company Join Request", + "previewText": "The company {{companyName}} is requesting a quote", + "companyName": "Company Name:", + "contactPerson": "Contact Person:", + "email": "Email:", + "phone": "Phone:" +} \ No newline at end of file diff --git a/packages/email-templates/src/locales/ru/common.json b/packages/email-templates/src/locales/ru/common.json index fc58e08..5e1ae9a 100644 --- a/packages/email-templates/src/locales/ru/common.json +++ b/packages/email-templates/src/locales/ru/common.json @@ -1,8 +1,8 @@ { "footer": { "lines1": "MedReport", - "lines2": "E-mail: info@medreport.ee", - "lines3": "Klienditugi: +372 5887 1517", + "lines2": "Электронная почта: info@medreport.ee", + "lines3": "Служба поддержки: +372 5887 1517", "lines4": "www.medreport.ee" } } \ No newline at end of file diff --git a/packages/email-templates/src/locales/ru/company-offer-email.json b/packages/email-templates/src/locales/ru/company-offer-email.json index 3a39792..2678bdb 100644 --- a/packages/email-templates/src/locales/ru/company-offer-email.json +++ b/packages/email-templates/src/locales/ru/company-offer-email.json @@ -1,8 +1,8 @@ { - "subject": "Uus ettevõtte liitumispäring", - "previewText": "Ettevõte {{companyName}} soovib pakkumist", - "companyName": "Ettevõtte nimi:", - "contactPerson": "Kontaktisik:", - "email": "E-mail:", - "phone": "Telefon:" -} + "subject": "Новый запрос на присоединение компании", + "previewText": "Компания {{companyName}} запрашивает предложение", + "companyName": "Название компании:", + "contactPerson": "Контактное лицо:", + "email": "Электронная почта:", + "phone": "Телефон:" +} \ No newline at end of file diff --git a/packages/email-templates/src/locales/ru/doctor-summary-received-email.json b/packages/email-templates/src/locales/ru/doctor-summary-received-email.json index e7efdc3..09beb43 100644 --- a/packages/email-templates/src/locales/ru/doctor-summary-received-email.json +++ b/packages/email-templates/src/locales/ru/doctor-summary-received-email.json @@ -1,8 +1,8 @@ { - "subject": "Saabus arsti kokkuvõtte tellimusele {{orderNr}}", - "previewText": "Arst on saatnud kokkuvõtte sinu analüüsitulemustele.", - "hello": "Tere, {{displayName}}", - "summaryReceivedForOrder": "Arst on koostanud selgitava kokkuvõtte sinu tellitud analüüsidele.", - "linkText": "Vaata kokkuvõtet", - "ifButtonDisabled": "Kui nupule vajutamine ei toimi, kopeeri see link oma brauserisse:" + "subject": "Получено заключение врача по заказу {{orderNr}}", + "previewText": "Врач отправил заключение по вашим результатам анализа.", + "hello": "Здравствуйте, {{displayName}}", + "summaryReceivedForOrder": "Врач подготовил пояснительное заключение по заказанным вами анализам.", + "linkText": "Посмотреть заключение", + "ifButtonDisabled": "Если кнопка не работает, скопируйте эту ссылку в ваш браузер:" } \ No newline at end of file diff --git a/packages/email-templates/src/locales/ru/synlab-email.json b/packages/email-templates/src/locales/ru/synlab-email.json index fa16c20..6373b90 100644 --- a/packages/email-templates/src/locales/ru/synlab-email.json +++ b/packages/email-templates/src/locales/ru/synlab-email.json @@ -1,12 +1,12 @@ { - "subject": "Teie Medreport tellimus on kinnitatud - {{analysisPackageName}}", - "previewText": "Teie Medreport tellimus on kinnitatud - {{analysisPackageName}}", - "heading": "Teie Medreport tellimus on kinnitatud - {{analysisPackageName}}", - "hello": "Tere {{personName}},", - "lines1": "Saatekiri {{analysisPackageName}} analüüsi uuringuteks on saadetud laborisse digitaalselt. Palun mine proove andma: Synlab - {{partnerLocationName}}", - "lines2": "Kui Teil ei ole võimalik valitud asukohta minna proove andma, siis võite minna endale sobivasse proovivõtupunkti - vaata asukohti ja lahtiolekuaegasid.", - "lines3": "Soovituslik on proove anda pigem hommikul (enne 12:00) ning söömata ja joomata (vett võib juua).", - "lines4": "Proovivõtupunktis valige järjekorrasüsteemis: saatekirjad alt eriarsti saatekiri.", - "lines5": "Juhul kui tekkis lisaküsimusi, siis võtke julgelt ühendust.", - "lines6": "SYNLAB klienditoe telefon: 17123" + "subject": "Ваш заказ Medreport подтвержден - {{analysisPackageName}}", + "previewText": "Ваш заказ Medreport подтвержден - {{analysisPackageName}}", + "heading": "Ваш заказ Medreport подтвержден - {{analysisPackageName}}", + "hello": "Здравствуйте, {{personName}},", + "lines1": "Направление на исследование {{analysisPackageName}} было отправлено в лабораторию в цифровом виде. Пожалуйста, сдайте анализы: Synlab - {{partnerLocationName}}", + "lines2": "Если вы не можете посетить выбранный пункт сдачи анализов, вы можете обратиться в удобный для вас пункт - посмотреть адреса и часы работы.", + "lines3": "Рекомендуется сдавать анализы утром (до 12:00) натощак (можно пить воду).", + "lines4": "В пункте сдачи анализов выберите в системе очереди: направления -> направление от специалиста.", + "lines5": "Если у вас возникнут дополнительные вопросы, смело свяжитесь с нами.", + "lines6": "Телефон службы поддержки SYNLAB: 17123" } \ No newline at end of file diff --git a/public/locales/ru/account.json b/public/locales/ru/account.json index 11125e1..c26b6f9 100644 --- a/public/locales/ru/account.json +++ b/public/locales/ru/account.json @@ -1,132 +1,155 @@ { - "accountTabLabel": "Account Settings", - "accountTabDescription": "Manage your account settings", - "homePage": "Home", - "billingTab": "Billing", - "settingsTab": "Settings", - "multiFactorAuth": "Multi-Factor Authentication", - "multiFactorAuthDescription": "Set up Multi-Factor Authentication method to further secure your account", - "updateProfileSuccess": "Profile successfully updated", - "updateProfileError": "Encountered an error. Please try again", - "updatePasswordSuccess": "Password update request successful", - "updatePasswordSuccessMessage": "Your password has been successfully updated!", - "updatePasswordError": "Encountered an error. Please try again", - "updatePasswordLoading": "Updating password...", - "updateProfileLoading": "Updating profile...", - "name": "Your Name", - "nameDescription": "Update your name to be displayed on your profile", - "emailLabel": "Email Address", - "accountImage": "Your Profile Picture", - "accountImageDescription": "Please choose a photo to upload as your profile picture.", - "profilePictureHeading": "Upload a Profile Picture", - "profilePictureSubheading": "Choose a photo to upload as your profile picture.", - "updateProfileSubmitLabel": "Update Profile", - "updatePasswordCardTitle": "Update your Password", - "updatePasswordCardDescription": "Update your password to keep your account secure.", - "currentPassword": "Current Password", - "newPassword": "New Password", - "repeatPassword": "Repeat New Password", - "repeatPasswordDescription": "Please repeat your new password to confirm it", - "yourPassword": "Your Password", - "updatePasswordSubmitLabel": "Update Password", - "updateEmailCardTitle": "Update your Email", - "updateEmailCardDescription": "Update your email address you use to login to your account", - "newEmail": "Your New Email", - "repeatEmail": "Repeat Email", - "updateEmailSubmitLabel": "Update Email Address", - "updateEmailSuccess": "Email update request successful", - "updateEmailSuccessMessage": "We sent you an email to confirm your new email address. Please check your inbox and click on the link to confirm your new email address.", - "updateEmailLoading": "Updating your email...", - "updateEmailError": "Email not updated. Please try again", - "passwordNotMatching": "Passwords do not match. Make sure you're using the correct password", - "emailNotMatching": "Emails do not match. Make sure you're using the correct email", - "passwordNotChanged": "Your password has not changed", - "emailsNotMatching": "Emails do not match. Make sure you're using the correct email", - "cannotUpdatePassword": "You cannot update your password because your account is not linked to any.", - "setupMfaButtonLabel": "Setup a new Factor", - "multiFactorSetupErrorHeading": "Setup Failed", - "multiFactorSetupErrorDescription": "Sorry, there was an error while setting up your factor. Please try again.", - "multiFactorAuthHeading": "Secure your account with Multi-Factor Authentication", - "multiFactorModalHeading": "Use your authenticator app to scan the QR code below. Then enter the code generated.", - "factorNameLabel": "A memorable name to identify this factor", - "factorNameHint": "Use an easy-to-remember name to easily identify this factor in the future. Ex. iPhone 14", - "factorNameSubmitLabel": "Set factor name", - "unenrollTooltip": "Unenroll this factor", - "unenrollingFactor": "Unenrolling factor...", - "unenrollFactorSuccess": "Factor successfully unenrolled", - "unenrollFactorError": "Unenrolling factor failed", - "factorsListError": "Error loading factors list", - "factorsListErrorDescription": "Sorry, we couldn't load the factors list. Please try again.", - "factorName": "Factor Name", - "factorType": "Type", - "factorStatus": "Status", - "mfaEnabledSuccessTitle": "Multi-Factor authentication is enabled", - "mfaEnabledSuccessDescription": "Congratulations! You have successfully enrolled in the multi factor authentication process. You will now be able to access your account with a combination of your password and an authentication code sent to your phone number.", - "verificationCode": "Verification Code", - "addEmailAddress": "Add Email address", - "verifyActivationCodeDescription": "Enter the 6-digit code generated by your authenticator app in the field above", - "loadingFactors": "Loading factors...", - "enableMfaFactor": "Enable Factor", - "disableMfaFactor": "Disable Factor", - "qrCodeErrorHeading": "QR Code Error", - "qrCodeErrorDescription": "Sorry, we weren't able to generate the QR code", - "multiFactorSetupSuccess": "Factor successfully enrolled", - "submitVerificationCode": "Submit Verification Code", - "mfaEnabledSuccessAlert": "Multi-Factor authentication is enabled", - "verifyingCode": "Verifying code...", - "invalidVerificationCodeHeading": "Invalid Verification Code", - "invalidVerificationCodeDescription": "The verification code you entered is invalid. Please try again.", - "unenrollFactorModalHeading": "Unenroll Factor", - "unenrollFactorModalDescription": "You're about to unenroll this factor. You will not be able to use it to login to your account.", - "unenrollFactorModalBody": "You're about to unenroll this factor. You will not be able to use it to login to your account.", - "unenrollFactorModalButtonLabel": "Yes, unenroll factor", - "selectFactor": "Choose a factor to verify your identity", - "disableMfa": "Disable Multi-Factor Authentication", - "disableMfaButtonLabel": "Disable MFA", - "confirmDisableMfaButtonLabel": "Yes, disable MFA", - "disablingMfa": "Disabling Multi-Factor Authentication. Please wait...", - "disableMfaSuccess": "Multi-Factor Authentication successfully disabled", - "disableMfaError": "Sorry, we encountered an error. MFA has not been disabled.", - "sendingEmailVerificationLink": "Sending Email...", - "sendEmailVerificationLinkSuccess": "Verification link successfully sent", - "sendEmailVerificationLinkError": "Sorry, we weren't able to send you the email", - "sendVerificationLinkSubmitLabel": "Send Verification Link", - "sendVerificationLinkSuccessLabel": "Email sent! Check your Inbox", - "verifyEmailAlertHeading": "Please verify your email to enable MFA", - "verificationLinkAlertDescription": "Your email is not yet verified. Please verify your email to be able to set up Multi-Factor Authentication.", - "authFactorName": "Factor Name (optional)", - "authFactorNameHint": "Assign a name that helps you remember the phone number used", - "loadingUser": "Loading user details. Please wait...", - "linkPhoneNumber": "Link Phone Number", - "dangerZone": "Danger Zone", - "dangerZoneDescription": "Some actions cannot be undone. Please be careful.", - "deleteAccount": "Delete your Account", - "deletingAccount": "Deleting account. Please wait...", - "deleteAccountDescription": "This will delete your account and the accounts you own. Furthermore, we will immediately cancel any active subscriptions. This action cannot be undone.", - "deleteProfileConfirmationInputLabel": "Type DELETE to confirm", - "deleteAccountErrorHeading": "Sorry, we couldn't delete your account", - "needsReauthentication": "Reauthentication Required", - "needsReauthenticationDescription": "You need to reauthenticate to change your password. Please sign out and sign in again to change your password.", - "language": "Language", - "languageDescription": "Choose your preferred language", - "noTeamsYet": "You don't have any teams yet.", - "createTeam": "Create a team to get started.", - "createTeamButtonLabel": "Create a Team", - "createCompanyAccount": "Create Company Account", - "updateConsentSuccess": "Consent successfully updated", - "updateConsentError": "Encountered an error. Please try again", - "updateConsentLoading": "Updating consent...", + "accountTabLabel": "Настройки аккаунта", + "accountTabDescription": "Управляйте настройками вашего аккаунта", + "homePage": "Главная", + "billingTab": "Оплата", + "settingsTab": "Настройки", + "multiFactorAuth": "Многофакторная аутентификация", + "multiFactorAuthDescription": "Настройте метод многофакторной аутентификации для дополнительной защиты вашего аккаунта", + "updateProfileSuccess": "Профиль успешно обновлен", + "updateProfileError": "Произошла ошибка. Пожалуйста, попробуйте снова", + "updatePasswordSuccess": "Запрос на обновление пароля выполнен успешно", + "updatePasswordSuccessMessage": "Ваш пароль был успешно обновлен!", + "updatePasswordError": "Произошла ошибка. Пожалуйста, попробуйте снова", + "updatePasswordLoading": "Обновление пароля...", + "updateProfileLoading": "Обновление профиля...", + "name": "Ваше имя", + "nameDescription": "Обновите ваше имя, которое будет отображаться в профиле", + "emailLabel": "Адрес электронной почты", + "accountImage": "Ваша фотография профиля", + "accountImageDescription": "Выберите фото для загрузки в качестве изображения профиля.", + "profilePictureHeading": "Загрузить фотографию профиля", + "profilePictureSubheading": "Выберите фото для загрузки в качестве изображения профиля.", + "updateProfileSubmitLabel": "Обновить профиль", + "updatePasswordCardTitle": "Обновите ваш пароль", + "updatePasswordCardDescription": "Обновите пароль, чтобы сохранить ваш аккаунт в безопасности.", + "currentPassword": "Текущий пароль", + "newPassword": "Новый пароль", + "repeatPassword": "Повторите новый пароль", + "repeatPasswordDescription": "Пожалуйста, повторите новый пароль для подтверждения", + "yourPassword": "Ваш пароль", + "updatePasswordSubmitLabel": "Обновить пароль", + "updateEmailCardTitle": "Обновите вашу почту", + "updateEmailCardDescription": "Обновите адрес электронной почты, который вы используете для входа в аккаунт", + "newEmail": "Новый адрес электронной почты", + "repeatEmail": "Повторите адрес электронной почты", + "updateEmailSubmitLabel": "Обновить адрес электронной почты", + "updateEmailSuccess": "Запрос на обновление почты выполнен успешно", + "updateEmailSuccessMessage": "Мы отправили вам письмо для подтверждения нового адреса. Пожалуйста, проверьте почту и перейдите по ссылке для подтверждения.", + "updateEmailLoading": "Обновление почты...", + "updateEmailError": "Почта не обновлена. Пожалуйста, попробуйте снова", + "passwordNotMatching": "Пароли не совпадают. Убедитесь, что вы используете правильный пароль", + "emailNotMatching": "Адреса электронной почты не совпадают. Убедитесь, что вы используете правильный адрес", + "passwordNotChanged": "Ваш пароль не был изменен", + "emailsNotMatching": "Адреса электронной почты не совпадают. Убедитесь, что вы используете правильный адрес", + "cannotUpdatePassword": "Вы не можете обновить пароль, так как ваш аккаунт не связан ни с одним.", + "setupMfaButtonLabel": "Настроить новый фактор", + "multiFactorSetupErrorHeading": "Сбой настройки", + "multiFactorSetupErrorDescription": "Извините, произошла ошибка при настройке фактора. Пожалуйста, попробуйте снова.", + "multiFactorAuthHeading": "Защитите ваш аккаунт с помощью многофакторной аутентификации", + "multiFactorModalHeading": "Используйте приложение-аутентификатор для сканирования QR-кода ниже, затем введите сгенерированный код.", + "factorNameLabel": "Запоминающееся имя для идентификации этого фактора", + "factorNameHint": "Используйте простое для запоминания имя, чтобы легко идентифицировать этот фактор в будущем. Пример: iPhone 14", + "factorNameSubmitLabel": "Задать имя фактора", + "unenrollTooltip": "Удалить фактор", + "unenrollingFactor": "Удаление фактора...", + "unenrollFactorSuccess": "Фактор успешно удален", + "unenrollFactorError": "Не удалось удалить фактор", + "factorsListError": "Ошибка загрузки списка факторов", + "factorsListErrorDescription": "Извините, не удалось загрузить список факторов. Пожалуйста, попробуйте снова.", + "factorName": "Имя фактора", + "factorType": "Тип", + "factorStatus": "Статус", + "mfaEnabledSuccessTitle": "Многофакторная аутентификация включена", + "mfaEnabledSuccessDescription": "Поздравляем! Вы успешно подключили многофакторную аутентификацию. Теперь вы сможете входить в аккаунт с помощью комбинации пароля и кода подтверждения, отправленного на ваш номер телефона.", + "verificationCode": "Код подтверждения", + "addEmailAddress": "Добавить адрес электронной почты", + "verifyActivationCodeDescription": "Введите 6-значный код, сгенерированный вашим приложением-аутентификатором, в поле выше", + "loadingFactors": "Загрузка факторов...", + "enableMfaFactor": "Включить фактор", + "disableMfaFactor": "Отключить фактор", + "qrCodeErrorHeading": "Ошибка QR-кода", + "qrCodeErrorDescription": "Извините, не удалось сгенерировать QR-код", + "multiFactorSetupSuccess": "Фактор успешно подключен", + "submitVerificationCode": "Отправить код подтверждения", + "mfaEnabledSuccessAlert": "Многофакторная аутентификация включена", + "verifyingCode": "Проверка кода...", + "invalidVerificationCodeHeading": "Неверный код подтверждения", + "invalidVerificationCodeDescription": "Введенный вами код неверен. Пожалуйста, попробуйте снова.", + "unenrollFactorModalHeading": "Удаление фактора", + "unenrollFactorModalDescription": "Вы собираетесь удалить этот фактор. Вы больше не сможете использовать его для входа в аккаунт.", + "unenrollFactorModalBody": "Вы собираетесь удалить этот фактор. Вы больше не сможете использовать его для входа в аккаунт.", + "unenrollFactorModalButtonLabel": "Да, удалить фактор", + "selectFactor": "Выберите фактор для подтверждения личности", + "disableMfa": "Отключить многофакторную аутентификацию", + "disableMfaButtonLabel": "Отключить MFA", + "confirmDisableMfaButtonLabel": "Да, отключить MFA", + "disablingMfa": "Отключение многофакторной аутентификации. Пожалуйста, подождите...", + "disableMfaSuccess": "Многофакторная аутентификация успешно отключена", + "disableMfaError": "Извините, произошла ошибка. MFA не была отключена.", + "sendingEmailVerificationLink": "Отправка письма...", + "sendEmailVerificationLinkSuccess": "Ссылка для подтверждения успешно отправлена", + "sendEmailVerificationLinkError": "Извините, не удалось отправить письмо", + "sendVerificationLinkSubmitLabel": "Отправить ссылку для подтверждения", + "sendVerificationLinkSuccessLabel": "Письмо отправлено! Проверьте почту", + "verifyEmailAlertHeading": "Пожалуйста, подтвердите вашу почту, чтобы включить MFA", + "verificationLinkAlertDescription": "Ваша почта еще не подтверждена. Пожалуйста, подтвердите ее, чтобы настроить многофакторную аутентификацию.", + "authFactorName": "Имя фактора (необязательно)", + "authFactorNameHint": "Присвойте имя, которое поможет вам запомнить номер телефона, используемый для входа", + "loadingUser": "Загрузка данных пользователя. Пожалуйста, подождите...", + "linkPhoneNumber": "Привязать номер телефона", + "dangerZone": "Опасная зона", + "dangerZoneDescription": "Некоторые действия нельзя отменить. Будьте осторожны.", + "deleteAccount": "Удалить аккаунт", + "deletingAccount": "Удаление аккаунта. Пожалуйста, подождите...", + "deleteAccountDescription": "Это удалит ваш аккаунт и связанные с ним учетные записи. Также мы немедленно отменим все активные подписки. Это действие нельзя отменить.", + "deleteProfileConfirmationInputLabel": "Введите DELETE для подтверждения", + "deleteAccountErrorHeading": "Извините, не удалось удалить аккаунт", + "needsReauthentication": "Требуется повторная аутентификация", + "needsReauthenticationDescription": "Необходимо повторно войти в систему, чтобы изменить пароль. Пожалуйста, выйдите и войдите снова.", + "language": "Язык", + "languageDescription": "Выберите предпочитаемый язык", + "noTeamsYet": "У вас пока нет команд.", + "createTeam": "Создайте команду, чтобы начать.", + "createTeamButtonLabel": "Создать команду", + "createCompanyAccount": "Создать аккаунт компании", + "requestCompanyAccount": { + "title": "Данные компании", + "description": "Чтобы получить предложение, пожалуйста, введите данные компании, с которой вы планируете использовать MedReport.", + "button": "Запросить предложение", + "successTitle": "Запрос успешно отправлен!", + "successDescription": "Мы ответим вам при первой возможности", + "successButton": "Вернуться на главную" + }, + "updateAccount": { + "title": "Личные данные", + "description": "Пожалуйста, введите свои личные данные для продолжения", + "button": "Продолжить", + "userConsentLabel": "Я согласен на использование моих персональных данных на платформе", + "userConsentUrlTitle": "Посмотреть политику обработки персональных данных" + }, + "consentModal": { + "title": "Прежде чем начать", + "description": "Вы даете согласие на использование ваших медицинских данных в анонимной форме для статистики работодателя? Данные будут обезличены и помогут компании лучше поддерживать здоровье сотрудников.", + "reject": "Не даю согласие", + "accept": "Да, даю согласие" + }, + "updateConsentSuccess": "Согласия обновлены", + "updateConsentError": "Что-то пошло не так. Пожалуйста, попробуйте снова", + "updateConsentLoading": "Обновление согласий...", "consentToAnonymizedCompanyData": { - "label": "Consent to be included in employer statistics", - "description": "Consent to be included in anonymized company statistics" + "label": "Согласен участвовать в статистике работодателя", + "description": "Я согласен на использование моих медицинских данных в анонимной форме для статистики работодателя" }, - "analysisResults": { - "pageTitle": "My analysis results" + "membershipConfirmation": { + "successTitle": "Здравствуйте, {{firstName}} {{lastName}}", + "successDescription": "Ваш медицинский аккаунт активирован и готов к использованию!", + "successButton": "Продолжить" }, - "updateRoleSuccess": "Role updated", - "updateRoleError": "Something went wrong, please try again", - "updateRoleLoading": "Updating role...", - "updatePreferredLocaleSuccess": "Language preference updated", - "updatePreferredLocaleError": "Language preference update failed", - "updatePreferredLocaleLoading": "Updating language preference..." + "updateRoleSuccess": "Роль обновлена", + "updateRoleError": "Что-то пошло не так. Пожалуйста, попробуйте снова", + "updateRoleLoading": "Обновление роли...", + "updatePreferredLocaleSuccess": "Предпочитаемый язык обновлен", + "updatePreferredLocaleError": "Не удалось обновить предпочитаемый язык", + "updatePreferredLocaleLoading": "Обновление предпочитаемого языка..." } \ No newline at end of file diff --git a/public/locales/ru/analysis-results.json b/public/locales/ru/analysis-results.json new file mode 100644 index 0000000..8a032b3 --- /dev/null +++ b/public/locales/ru/analysis-results.json @@ -0,0 +1,16 @@ +{ + "pageTitle": "Мои результаты анализов", + "description": "Все результаты анализов появляются в течение 1-3 рабочих дней после их сдачи.", + "descriptionEmpty": "Если вы уже сдали анализы, то вскоре здесь появятся ваши результаты.", + "orderNewAnalysis": "Заказать новые анализы", + "waitingForResults": "Ожидание результатов", + "noAnalysisElements": "Анализы еще не заказаны", + "noAnalysisOrders": "Пока нет заказов на анализы", + "analysisDate": "Дата результата анализа", + "results": { + "range": { + "normal": "Нормальный диапазон" + } + }, + "orderTitle": "Заказ {{orderNumber}}" +} diff --git a/public/locales/ru/auth.json b/public/locales/ru/auth.json index 7db0925..8634403 100644 --- a/public/locales/ru/auth.json +++ b/public/locales/ru/auth.json @@ -1,90 +1,90 @@ { - "signUpHeading": "Create an account", - "signUp": "Sign Up", - "signUpSubheading": "Fill the form below to create an account.", - "signInHeading": "Sign in to your account", - "signInSubheading": "Welcome back! Please enter your details", - "signIn": "Sign In", - "getStarted": "Get started", - "updatePassword": "Update Password", - "signOut": "Sign out", - "signingIn": "Signing in...", - "signingUp": "Signing up...", - "doNotHaveAccountYet": "Do not have an account yet?", - "alreadyHaveAnAccount": "Already have an account?", - "signUpToAcceptInvite": "Please sign in/up to accept the invite", - "clickToAcceptAs": "Click the button below to accept the invite with as {{email}}", - "acceptInvite": "Accept invite", - "acceptingInvite": "Accepting Invite...", - "acceptInviteSuccess": "Invite successfully accepted", - "acceptInviteError": "Error encountered while accepting invite", - "acceptInviteWithDifferentAccount": "Want to accept the invite with a different account?", - "alreadyHaveAccountStatement": "I already have an account, I want to sign in instead", - "doNotHaveAccountStatement": "I do not have an account, I want to sign up instead", - "signInWithProvider": "Sign in with {{provider}}", - "signInWithPhoneNumber": "Sign in with Phone Number", - "signInWithEmail": "Sign in with Email", - "signUpWithEmail": "Sign up with Email", - "passwordHint": "Ensure it's at least 8 characters", - "repeatPasswordHint": "Type your password again", - "repeatPassword": "Repeat password", - "passwordForgottenQuestion": "Password forgotten?", - "passwordResetLabel": "Reset Password", - "passwordResetSubheading": "Enter your email address below. You will receive a link to reset your password.", - "passwordResetSuccessMessage": "Check your Inbox! We emailed you a link for resetting your Password.", - "passwordRecoveredQuestion": "Password recovered?", - "passwordLengthError": "Please provide a password with at least 6 characters", - "sendEmailLink": "Send Email Link", - "sendingEmailLink": "Sending Email Link...", - "sendLinkSuccessDescription": "Check your email, we just sent you a link. Follow the link to sign in.", - "sendLinkSuccess": "We sent you a link by email", - "sendLinkSuccessToast": "Link successfully sent", - "getNewLink": "Get a new link", - "verifyCodeHeading": "Verify your account", - "verificationCode": "Verification Code", - "verificationCodeHint": "Enter the code we sent you by SMS", - "verificationCodeSubmitButtonLabel": "Submit Verification Code", - "sendingMfaCode": "Sending Verification Code...", - "verifyingMfaCode": "Verifying code...", - "sendMfaCodeError": "Sorry, we couldn't send you a verification code", - "verifyMfaCodeSuccess": "Code verified! Signing you in...", - "verifyMfaCodeError": "Ops! It looks like the code is not correct", - "reauthenticate": "Reauthenticate", - "reauthenticateDescription": "For security reasons, we need you to re-authenticate", - "errorAlertHeading": "Sorry, we could not authenticate you", - "emailConfirmationAlertHeading": "We sent you a confirmation email.", - "emailConfirmationAlertBody": "Welcome! Please check your email and click the link to verify your account.", - "resendLink": "Resend link", - "resendLinkSuccessDescription": "We sent you a new link to your email! Follow the link to sign in.", - "resendLinkSuccess": "Check your email!", - "authenticationErrorAlertHeading": "Authentication Error", - "authenticationErrorAlertBody": "Sorry, we could not authenticate you. Please try again.", - "sendEmailCode": "Get code to your Email", - "sendingEmailCode": "Sending code...", - "resetPasswordError": "Sorry, we could not reset your password. Please try again.", + "signUpHeading": "Создать аккаунт", + "signUp": "Зарегистрироваться", + "signUpSubheading": "Заполните форму ниже, чтобы создать аккаунт.", + "signInHeading": "Войдите в свой аккаунт", + "signInSubheading": "С возвращением! Пожалуйста, введите свои данные", + "signIn": "Войти", + "getStarted": "Начать", + "updatePassword": "Обновить пароль", + "signOut": "Выйти", + "signingIn": "Вход...", + "signingUp": "Регистрация...", + "doNotHaveAccountYet": "Еще нет аккаунта?", + "alreadyHaveAnAccount": "Уже есть аккаунт?", + "signUpToAcceptInvite": "Пожалуйста, войдите или зарегистрируйтесь, чтобы принять приглашение", + "clickToAcceptAs": "Нажмите кнопку ниже, чтобы принять приглашение как {{email}}", + "acceptInvite": "Принять приглашение", + "acceptingInvite": "Принятие приглашения...", + "acceptInviteSuccess": "Приглашение успешно принято", + "acceptInviteError": "Произошла ошибка при принятии приглашения", + "acceptInviteWithDifferentAccount": "Хотите принять приглашение с другим аккаунтом?", + "alreadyHaveAccountStatement": "У меня уже есть аккаунт, я хочу войти", + "doNotHaveAccountStatement": "У меня нет аккаунта, я хочу зарегистрироваться", + "signInWithProvider": "Войти через {{provider}}", + "signInWithPhoneNumber": "Войти по номеру телефона", + "signInWithEmail": "Войти по Email", + "signUpWithEmail": "Зарегистрироваться по Email", + "passwordHint": "Убедитесь, что пароль содержит не менее 8 символов", + "repeatPasswordHint": "Введите пароль еще раз", + "repeatPassword": "Повторите пароль", + "passwordForgottenQuestion": "Забыли пароль?", + "passwordResetLabel": "Сбросить пароль", + "passwordResetSubheading": "Введите ваш email ниже. Вы получите ссылку для сброса пароля.", + "passwordResetSuccessMessage": "Проверьте почту! Мы отправили вам ссылку для сброса пароля.", + "passwordRecoveredQuestion": "Восстановили пароль?", + "passwordLengthError": "Пожалуйста, введите пароль длиной не менее 6 символов", + "sendEmailLink": "Отправить ссылку на почту", + "sendingEmailLink": "Отправка ссылки...", + "sendLinkSuccessDescription": "Проверьте вашу почту, мы только что отправили вам ссылку. Перейдите по ней, чтобы войти.", + "sendLinkSuccess": "Мы отправили вам ссылку по электронной почте", + "sendLinkSuccessToast": "Ссылка успешно отправлена", + "getNewLink": "Получить новую ссылку", + "verifyCodeHeading": "Подтвердите ваш аккаунт", + "verificationCode": "Код подтверждения", + "verificationCodeHint": "Введите код, который мы отправили вам по SMS", + "verificationCodeSubmitButtonLabel": "Отправить код", + "sendingMfaCode": "Отправка кода подтверждения...", + "verifyingMfaCode": "Проверка кода...", + "sendMfaCodeError": "Извините, не удалось отправить код подтверждения", + "verifyMfaCodeSuccess": "Код подтвержден! Входим в систему...", + "verifyMfaCodeError": "Упс! Похоже, код неверный", + "reauthenticate": "Повторная аутентификация", + "reauthenticateDescription": "В целях безопасности вам нужно пройти повторную аутентификацию", + "errorAlertHeading": "Извините, не удалось вас аутентифицировать", + "emailConfirmationAlertHeading": "Мы отправили вам письмо для подтверждения.", + "emailConfirmationAlertBody": "Добро пожаловать! Пожалуйста, проверьте вашу почту и перейдите по ссылке, чтобы подтвердить аккаунт.", + "resendLink": "Отправить ссылку снова", + "resendLinkSuccessDescription": "Мы отправили новую ссылку на вашу почту! Перейдите по ней, чтобы войти.", + "resendLinkSuccess": "Проверьте вашу почту!", + "authenticationErrorAlertHeading": "Ошибка аутентификации", + "authenticationErrorAlertBody": "Извините, не удалось вас аутентифицировать. Пожалуйста, попробуйте снова.", + "sendEmailCode": "Получить код на Email", + "sendingEmailCode": "Отправка кода...", + "resetPasswordError": "Извините, не удалось сбросить пароль. Пожалуйста, попробуйте снова.", "emailPlaceholder": "your@email.com", - "inviteAlertHeading": "You have been invited to join a company", - "inviteAlertBody": "Please sign in or sign up to accept the invite and join the company.", - "acceptTermsAndConditions": "I accept the and ", - "termsOfService": "Terms of Service", - "privacyPolicy": "Privacy Policy", - "orContinueWith": "Or continue with", - "redirecting": "You're in! Please wait...", + "inviteAlertHeading": "Вас пригласили присоединиться к компании", + "inviteAlertBody": "Пожалуйста, войдите или зарегистрируйтесь, чтобы принять приглашение и присоединиться к компании.", + "acceptTermsAndConditions": "Я принимаю и ", + "termsOfService": "Условия использования", + "privacyPolicy": "Политика конфиденциальности", + "orContinueWith": "Или продолжить через", + "redirecting": "Вы вошли! Пожалуйста, подождите...", "errors": { - "Invalid login credentials": "The credentials entered are invalid", - "User already registered": "This credential is already in use. Please try with another one.", - "Email not confirmed": "Please confirm your email address before signing in", - "default": "We have encountered an error. Please ensure you have a working internet connection and try again", - "generic": "Sorry, we weren't able to authenticate you. Please try again.", - "link": "Sorry, we encountered an error while sending your link. Please try again.", - "codeVerifierMismatch": "It looks like you're trying to sign in using a different browser than the one you used to request the sign in link. Please try again using the same browser.", - "minPasswordLength": "Password must be at least 8 characters long", - "passwordsDoNotMatch": "The passwords do not match", - "minPasswordNumbers": "Password must contain at least one number", - "minPasswordSpecialChars": "Password must contain at least one special character", - "uppercasePassword": "Password must contain at least one uppercase letter", - "insufficient_aal": "Please sign-in with your current multi-factor authentication to perform this action", - "otp_expired": "The email link has expired. Please try again.", - "same_password": "The password cannot be the same as the current password" + "Invalid login credentials": "Введенные данные недействительны", + "User already registered": "Эти данные уже используются. Пожалуйста, попробуйте другие.", + "Email not confirmed": "Пожалуйста, подтвердите ваш email перед входом", + "default": "Произошла ошибка. Убедитесь, что у вас есть подключение к интернету, и попробуйте снова", + "generic": "Извините, не удалось вас аутентифицировать. Пожалуйста, попробуйте снова.", + "link": "Извините, произошла ошибка при отправке ссылки. Пожалуйста, попробуйте снова.", + "codeVerifierMismatch": "Похоже, вы пытаетесь войти через другой браузер, чем тот, в котором запрашивали ссылку для входа. Пожалуйста, используйте тот же браузер.", + "minPasswordLength": "Пароль должен содержать не менее 8 символов", + "passwordsDoNotMatch": "Пароли не совпадают", + "minPasswordNumbers": "Пароль должен содержать хотя бы одну цифру", + "minPasswordSpecialChars": "Пароль должен содержать хотя бы один специальный символ", + "uppercasePassword": "Пароль должен содержать хотя бы одну заглавную букву", + "insufficient_aal": "Пожалуйста, войдите с текущей многофакторной аутентификацией, чтобы выполнить это действие", + "otp_expired": "Срок действия ссылки на email истек. Пожалуйста, попробуйте снова.", + "same_password": "Пароль не может совпадать с текущим паролем" } -} +} \ No newline at end of file diff --git a/public/locales/ru/billing.json b/public/locales/ru/billing.json index 0f7b472..c40a1cd 100644 --- a/public/locales/ru/billing.json +++ b/public/locales/ru/billing.json @@ -1,123 +1,143 @@ { - "subscriptionTabSubheading": "Manage your Subscription and Billing", - "planCardTitle": "Your Plan", - "planCardDescription": "Below are the details of your current plan. You can change your plan or cancel your subscription at any time.", - "planRenewal": "Renews every {{interval}} at {{price}}", - "planDetails": "Plan Details", - "checkout": "Proceed to Checkout", - "trialEndsOn": "Your trial ends on", - "billingPortalCardButton": "Visit Billing Portal", - "billingPortalCardTitle": "Manage your Billing Details", - "billingPortalCardDescription": "Visit your Billing Portal to manage your subscription and billing. You can update or cancel your plan, or download your invoices.", - "cancelAtPeriodEndDescription": "Your subscription is scheduled to be canceled on {{- endDate }}.", - "renewAtPeriodEndDescription": "Your subscription is scheduled to be renewed on {{- endDate }}", - "noPermissionsAlertHeading": "You don't have permissions to change the billing settings", - "noPermissionsAlertBody": "Please contact your account admin to change the billing settings for your account.", - "checkoutSuccessTitle": "Done! You're all set.", - "checkoutSuccessDescription": "Thank you for subscribing, we have successfully processed your subscription! A confirmation email will be sent to {{ customerEmail }}.", - "checkoutSuccessBackButton": "Proceed to App", - "cannotManageBillingAlertTitle": "You cannot manage billing", - "cannotManageBillingAlertDescription": "You do not have permissions to manage billing. Please contact your account admin.", - "manageTeamPlan": "Manage your Company Plan", - "manageTeamPlanDescription": "Choose a plan that fits your company's needs. You can upgrade or downgrade your plan at any time.", - "basePlan": "Base Plan", + "subscriptionTabSubheading": "Управление подпиской и оплатой", + "planCardTitle": "Ваш тариф", + "planCardDescription": "Ниже приведены детали вашего текущего тарифа. Вы можете изменить тариф или отменить подписку в любое время.", + "planRenewal": "Продлевается каждые {{interval}} за {{price}}", + "planDetails": "Детали тарифа", + "checkout": "Перейти к оплате", + "trialEndsOn": "Пробный период заканчивается", + "billingPortalCardButton": "Перейти в биллинг-портал", + "billingPortalCardTitle": "Управление платежными данными", + "billingPortalCardDescription": "Перейдите в биллинг-портал, чтобы управлять подпиской и платежами. Вы можете изменить или отменить тариф, а также скачать счета.", + "cancelAtPeriodEndDescription": "Ваша подписка будет отменена {{- endDate }}.", + "renewAtPeriodEndDescription": "Ваша подписка будет продлена {{- endDate }}", + "noPermissionsAlertHeading": "У вас нет прав для изменения настроек оплаты", + "noPermissionsAlertBody": "Пожалуйста, свяжитесь с администратором аккаунта, чтобы изменить настройки оплаты.", + "checkoutSuccessTitle": "Готово! Всё настроено.", + "checkoutSuccessDescription": "Спасибо за подписку! Мы успешно оформили вашу подписку. Подтверждение отправлено на {{ customerEmail }}.", + "checkoutSuccessBackButton": "Перейти в приложение", + "cannotManageBillingAlertTitle": "Вы не можете управлять оплатой", + "cannotManageBillingAlertDescription": "У вас нет прав для управления оплатой. Пожалуйста, свяжитесь с администратором аккаунта.", + "manageTeamPlan": "Управление корпоративным тарифом", + "manageTeamPlanDescription": "Выберите тариф, который соответствует потребностям вашей компании. Вы можете изменить его в любое время.", + "basePlan": "Базовый тариф", "billingInterval": { - "label": "Choose your billing interval", - "month": "Billed monthly", - "year": "Billed yearly" + "label": "Выберите интервал оплаты", + "month": "Оплата ежемесячно", + "year": "Оплата ежегодно" }, - "perMonth": "month", - "custom": "Custom Plan", - "lifetime": "Lifetime", - "trialPeriod": "{{period}} day trial", - "perPeriod": "per {{period}}", - "redirectingToPayment": "Redirecting to checkout. Please wait...", - "proceedToPayment": "Proceed to Payment", - "startTrial": "Start Trial", - "perTeamMember": "Per company member", - "perUnit": "Per {{unit}} usage", - "teamMembers": "Company Members", - "includedUpTo": "Up to {{upTo}} {{unit}} included in the plan", - "fromPreviousTierUpTo": "for each {{unit}} for the next {{ upTo }} {{ unit }}", - "andAbove": "above {{ previousTier }} {{ unit }}", - "startingAtPriceUnit": "Starting at {{price}}/{{unit}}", + "perMonth": "месяц", + "custom": "Индивидуальный тариф", + "lifetime": "Пожизненный", + "trialPeriod": "Пробный период {{period}} дней", + "perPeriod": "за {{period}}", + "redirectingToPayment": "Перенаправление на оплату. Пожалуйста, подождите...", + "proceedToPayment": "Перейти к оплате", + "startTrial": "Начать пробный период", + "perTeamMember": "На одного сотрудника", + "perUnit": "За использование {{unit}}", + "teamMembers": "Сотрудники компании", + "includedUpTo": "До {{upTo}} {{unit}} включено в тариф", + "fromPreviousTierUpTo": "за каждый {{unit}} для следующих {{ upTo }} {{ unit }}", + "andAbove": "свыше {{ previousTier }} {{ unit }}", + "startingAtPriceUnit": "Начиная с {{price}}/{{unit}}", "priceUnit": "{{price}}/{{unit}}", - "forEveryUnit": "for every {{ unit }}", - "setupFee": "plus a {{ setupFee }} setup fee", - "perUnitIncluded": "({{included}} included)", - "featuresLabel": "Features", - "detailsLabel": "Details", - "planPickerLabel": "Pick your preferred plan", - "planCardLabel": "Manage your Plan", - "planPickerAlertErrorTitle": "Error requesting checkout", - "planPickerAlertErrorDescription": "There was an error requesting checkout. Please try again later.", - "subscriptionCancelled": "Subscription Cancelled", - "cancelSubscriptionDate": "Your subscription will be cancelled at the end of the period", - "noPlanChosen": "Please choose a plan", - "noIntervalPlanChosen": "Please choose a billing interval", + "forEveryUnit": "за каждый {{ unit }}", + "setupFee": "плюс плата за установку {{ setupFee }}", + "perUnitIncluded": "({{included}} включено)", + "featuresLabel": "Функции", + "detailsLabel": "Подробности", + "planPickerLabel": "Выберите тариф", + "planCardLabel": "Управление тарифом", + "planPickerAlertErrorTitle": "Ошибка при запросе оплаты", + "planPickerAlertErrorDescription": "Произошла ошибка при запросе оплаты. Пожалуйста, попробуйте позже.", + "subscriptionCancelled": "Подписка отменена", + "cancelSubscriptionDate": "Ваша подписка будет отменена в конце расчетного периода", + "noPlanChosen": "Пожалуйста, выберите тариф", + "noIntervalPlanChosen": "Пожалуйста, выберите интервал оплаты", "status": { "free": { - "badge": "Free Plan", - "heading": "You are currently on the Free Plan", - "description": "You're on a free plan. You can upgrade to a paid plan at any time." + "badge": "Бесплатный тариф", + "heading": "Вы используете бесплатный тариф", + "description": "Вы на бесплатном тарифе. Вы можете перейти на платный тариф в любое время." }, "active": { - "badge": "Active", - "heading": "Your subscription is active", - "description": "Your subscription is active. You can manage your subscription and billing in the Customer Portal." + "badge": "Активен", + "heading": "Ваша подписка активна", + "description": "Ваша подписка активна. Вы можете управлять подпиской и оплатой в клиентском портале." }, "trialing": { - "badge": "Trial", - "heading": "You're on a trial", - "description": "You can enjoy the benefits of plan until the trial ends" + "badge": "Пробный период", + "heading": "Вы используете пробный период", + "description": "Вы можете пользоваться тарифом до окончания пробного периода" }, "past_due": { - "badge": "Past Due", - "heading": "Your invoice is past due", - "description": "Your invoice is past due. Please update your payment method." + "badge": "Просрочено", + "heading": "Ваш счет просрочен", + "description": "Ваш счет просрочен. Пожалуйста, обновите способ оплаты." }, "canceled": { - "badge": "Canceled", - "heading": "Your subscription is canceled", - "description": "Your subscription is canceled. It is scheduled to end at end of the billing period." + "badge": "Отменено", + "heading": "Ваша подписка отменена", + "description": "Ваша подписка отменена и завершится в конце расчетного периода." }, "unpaid": { - "badge": "Unpaid", - "heading": "Your invoice is unpaid", - "description": "Your invoice is unpaid. Please update your payment method." + "badge": "Неоплачено", + "heading": "Ваш счет не оплачен", + "description": "Ваш счет не оплачен. Пожалуйста, обновите способ оплаты." }, "incomplete": { - "badge": "Incomplete", - "heading": "We're waiting for your payment", - "description": "We're waiting for your payment to go through. Please bear with us." + "badge": "Не завершено", + "heading": "Мы ждем вашу оплату", + "description": "Мы ждем завершения вашей оплаты. Пожалуйста, подождите." }, "incomplete_expired": { - "badge": "Expired", - "heading": "Your payment has expired", - "description": "Your payment has expired. Please update your payment method." + "badge": "Истек", + "heading": "Срок оплаты истек", + "description": "Срок оплаты истек. Пожалуйста, обновите способ оплаты." }, "paused": { - "badge": "Paused", - "heading": "Your subscription is paused", - "description": "Your subscription is paused. You can resume it at any time." + "badge": "Приостановлено", + "heading": "Ваша подписка приостановлена", + "description": "Ваша подписка приостановлена. Вы можете возобновить ее в любое время." }, "succeeded": { - "badge": "Succeeded", - "heading": "Your payment was successful", - "description": "Your payment was successful. Thank you for subscribing!" + "badge": "Успешно", + "heading": "Оплата прошла успешно", + "description": "Оплата прошла успешно. Спасибо за подписку!" }, "pending": { - "badge": "Pending", - "heading": "Your payment is pending", - "description": "Your payment is pending. Please bear with us." + "badge": "В ожидании", + "heading": "Оплата в ожидании", + "description": "Оплата находится в ожидании. Пожалуйста, подождите." }, "failed": { - "badge": "Failed", - "heading": "Your payment failed", - "description": "Your payment failed. Please update your payment method." + "badge": "Неудачно", + "heading": "Оплата не прошла", + "description": "Оплата не прошла. Пожалуйста, обновите способ оплаты." } }, "cart": { - "label": "Cart ({{ items }})" + "label": "Корзина ({{ items }})" + }, + "pageTitle": "Бюджет {{companyName}}", + "description": "Выберите подходящую дату в календаре и запишитесь на прием.", + "saveChanges": "Сохранить изменения", + "healthBenefitForm": { + "title": "Форма здоровья", + "description": "Поддержка сотрудника из корпоративного фонда здоровья", + "info": "* К ценам добавляются государственные налоги" + }, + "occurance": { + "yearly": "Раз в год", + "quarterly": "Раз в квартал", + "monthly": "Раз в месяц" + }, + "expensesOverview": { + "title": "Обзор расходов за 2025 год", + "monthly": "Расход на одного сотрудника в месяц *", + "yearly": "Максимальный расход на одного человека в год *", + "total": "Максимальный расход на {{employeeCount}} сотрудников в год *", + "sum": "Итого" } } \ No newline at end of file diff --git a/public/locales/ru/booking.json b/public/locales/ru/booking.json index f4ef7c2..042a4b6 100644 --- a/public/locales/ru/booking.json +++ b/public/locales/ru/booking.json @@ -1,8 +1,9 @@ { - "title": "Select service", - "description": "Select the appropriate service or package according to your health needs or goals.", - "analysisPackages": { - "title": "Analysis packages", - "description": "Get to know the personal analysis packages and order" - } -} \ No newline at end of file + "title": "Выберите услугу", + "description": "Выберите подходящую услугу или пакет в зависимости от вашей проблемы со здоровьем или цели.", + "analysisPackages": { + "title": "Пакеты анализов", + "description": "Ознакомьтесь с персональными пакетами анализов и закажите" + }, + "noCategories": "Список услуг не найден, попробуйте позже" +} diff --git a/public/locales/ru/cart.json b/public/locales/ru/cart.json new file mode 100644 index 0000000..9aaeb3f --- /dev/null +++ b/public/locales/ru/cart.json @@ -0,0 +1,75 @@ +{ + "title": "Корзина", + "description": "Просмотрите свою корзину", + "emptyCartMessage": "Ваша корзина пуста", + "emptyCartMessageDescription": "Добавьте товары в корзину, чтобы продолжить.", + "subtotal": "Промежуточный итог", + "total": "Сумма", + "table": { + "item": "Товар", + "quantity": "Количество", + "price": "Цена", + "total": "Сумма" + }, + "checkout": { + "goToCheckout": "Оформить заказ", + "goToDashboard": "Продолжить", + "error": { + "title": "Что-то пошло не так", + "description": "Пожалуйста, попробуйте позже." + }, + "timeLeft": "Осталось времени {{timeLeft}}", + "timeoutTitle": "Бронирование истекло", + "timeoutDescription": "Бронирование товара {{productTitle}} в корзине истекло.", + "timeoutAction": "Продолжить" + }, + "discountCode": { + "title": "Подарочная карта или промокод", + "label": "Добавить промокод", + "apply": "Применить", + "subtitle": "Если хотите, можете добавить промокод", + "placeholder": "Введите промокод" + }, + "items": { + "synlabAnalyses": { + "productColumnLabel": "Название анализа" + }, + "ttoServices": { + "productColumnLabel": "Название услуги" + }, + "delete": { + "success": "Товар удален из корзины", + "loading": "Удаление товара из корзины", + "error": "Не удалось удалить товар из корзины" + }, + "analysisLocation": { + "success": "Местоположение обновлено", + "loading": "Обновление местоположения", + "error": "Не удалось обновить местоположение" + } + }, + "order": { + "title": "Заказ" + }, + "orderConfirmed": { + "title": "Заказ успешно оформлен", + "summary": "Услуги", + "subtotal": "Промежуточный итог", + "taxes": "Налоги", + "giftCard": "Подарочная карта", + "total": "Сумма", + "orderDate": "Дата заказа", + "orderNumber": "Номер заказа", + "orderStatus": "Статус заказа", + "paymentStatus": "Статус оплаты" + }, + "montonioCallback": { + "title": "Процесс оплаты Montonio", + "description": "Пожалуйста, подождите, пока мы завершим обработку вашего платежа." + }, + "locations": { + "title": "Местоположение для сдачи анализов", + "description": "Если у вас нет возможности прийти в выбранное место для сдачи анализов, вы можете посетить любой удобный для вас пункт забора крови.", + "locationSelect": "Выберите местоположение" + } +} \ No newline at end of file diff --git a/public/locales/ru/common.json b/public/locales/ru/common.json index f27aea6..ebf250c 100644 --- a/public/locales/ru/common.json +++ b/public/locales/ru/common.json @@ -1,118 +1,140 @@ { - "homeTabLabel": "Home", - "homeTabDescription": "Welcome to your home page", - "accountMembers": "Company Members", - "membersTabDescription": "Here you can manage the members of your company.", - "billingTabLabel": "Billing", - "billingTabDescription": "Manage your billing and subscription", - "dashboardTabLabel": "Dashboard", - "settingsTabLabel": "Settings", - "profileSettingsTabLabel": "Profile", - "subscriptionSettingsTabLabel": "Subscription", - "dashboardTabDescription": "An overview of your account's activity and performance across all your projects.", - "settingsTabDescription": "Manage your settings and preferences.", - "emailAddress": "Email Address", - "password": "Password", - "modalConfirmationQuestion": "Are you sure you want to continue?", - "imageInputLabel": "Click here to upload an image", - "cancel": "Cancel", - "clear": "Clear", - "close": "Close", - "notFound": "Not Found", - "backToHomePage": "Back to Home Page", - "goBack": "Go Back", - "genericServerError": "Sorry, something went wrong.", - "genericServerErrorHeading": "Sorry, something went wrong while processing your request. Please contact us if the issue persists.", - "pageNotFound": "Sorry, this page does not exist.", - "pageNotFoundSubHeading": "Apologies, the page you were looking for was not found", - "genericError": "Sorry, something went wrong.", - "genericErrorSubHeading": "Apologies, an error occurred while processing your request. Please contact us if the issue persists.", - "anonymousUser": "Anonymous", - "tryAgain": "Try Again", - "theme": "Theme", - "lightTheme": "Light", - "darkTheme": "Dark", - "systemTheme": "System", - "expandSidebar": "Expand Sidebar", - "collapseSidebar": "Collapse Sidebar", - "documentation": "Documentation", - "getStarted": "Get Started", - "getStartedWithPlan": "Get Started with {{plan}}", - "retry": "Retry", - "contactUs": "Contact Us", - "loading": "Loading. Please wait...", - "yourAccounts": "Your Accounts", - "continue": "Continue", - "skip": "Skip", - "signedInAs": "Signed in as", - "pageOfPages": "Page {{page}} of {{total}}", - "noData": "No data available", - "pageNotFoundHeading": "Ouch! :|", - "errorPageHeading": "Ouch! :|", - "notifications": "Notifications", - "noNotifications": "No notifications", - "justNow": "Just now", - "newVersionAvailable": "New version available", - "newVersionAvailableDescription": "A new version of the app is available. It is recommended to refresh the page to get the latest updates and avoid any issues.", - "newVersionSubmitButton": "Reload and Update", - "back": "Back", - "welcome": "Welcome", - "shoppingCart": "Shopping cart", - "search": "Search{{end}}", - "myActions": "My actions", + "homeTabLabel": "Главная", + "homeTabDescription": "Добро пожаловать на вашу домашнюю страницу", + "accountMembers": "Члены компании", + "membersTabDescription": "Здесь вы можете управлять членами вашей компании.", + "billingTabLabel": "Оплата", + "billingTabDescription": "Управление оплатой и подпиской", + "dashboardTabLabel": "Панель", + "settingsTabLabel": "Настройки", + "profileSettingsTabLabel": "Профиль", + "subscriptionSettingsTabLabel": "Подписка", + "dashboardTabDescription": "Обзор активности и эффективности вашей учетной записи по всем проектам.", + "settingsTabDescription": "Управляйте своими настройками и предпочтениями.", + "emailAddress": "Электронная почта", + "password": "Пароль", + "modalConfirmationQuestion": "Вы уверены, что хотите продолжить?", + "imageInputLabel": "Нажмите здесь, чтобы загрузить изображение", + "cancel": "Отмена", + "clear": "Очистить", + "close": "Закрыть", + "notFound": "Не найдено", + "backToHomePage": "Вернуться на главную", + "goBack": "Назад", + "genericServerError": "Извините, что-то пошло не так.", + "genericServerErrorHeading": "Извините, произошла ошибка при обработке вашего запроса. Пожалуйста, свяжитесь с нами, если проблема не исчезнет.", + "pageNotFound": "Извините, эта страница не существует.", + "pageNotFoundSubHeading": "К сожалению, запрашиваемая страница не найдена", + "genericError": "Извините, что-то пошло не так.", + "genericErrorSubHeading": "К сожалению, произошла ошибка при обработке вашего запроса. Пожалуйста, свяжитесь с нами, если проблема не исчезнет.", + "anonymousUser": "Анонимный пользователь", + "tryAgain": "Попробовать снова", + "theme": "Тема", + "lightTheme": "Светлая", + "darkTheme": "Тёмная", + "systemTheme": "Системная", + "expandSidebar": "Развернуть боковое меню", + "collapseSidebar": "Свернуть боковое меню", + "documentation": "Документация", + "getStarted": "Начать!", + "getStartedWithPlan": "Начать с {{plan}}", + "retry": "Повторить", + "contactUs": "Свяжитесь с нами", + "loading": "Загрузка. Пожалуйста, подождите...", + "yourAccounts": "Ваши аккаунты", + "continue": "Продолжить", + "skip": "Пропустить", + "signedInAs": "Вы вошли как", + "pageOfPages": "Страница {{page}} / {{total}}", + "noData": "Нет данных", + "pageNotFoundHeading": "Упс! :|", + "errorPageHeading": "Упс! :|", + "notifications": "Уведомления", + "noNotifications": "Нет уведомлений", + "justNow": "Прямо сейчас", + "newVersionAvailable": "Доступна новая версия", + "newVersionAvailableDescription": "Доступна новая версия приложения. Рекомендуется обновить страницу, чтобы получить последние обновления и избежать возможных проблем.", + "newVersionSubmitButton": "Перезагрузить и обновить", + "back": "Назад", + "welcome": "Добро пожаловать", + "shoppingCart": "Корзина", + "shoppingCartCount": "Корзина ({{count}})", + "search": "Поиск{{end}}", + "myActions": "Мои действия", "healthPackageComparison": { - "label": "Health package comparison", - "description": "Alljärgnevalt on antud eelinfo (sugu, vanus ja kehamassiindeksi) põhjal tehtud personalne terviseauditi valik. Tabelis on võimalik soovitatud terviseuuringute paketile lisada üksikuid uuringuid juurde." + "label": "Сравнение пакетов здоровья", + "description": "Ниже приведен персональный выбор пакета медицинского обследования на основе предварительной информации (пол, возраст и индекс массы тела). В таблице можно добавить к рекомендуемому пакету отдельные исследования." }, "routes": { - "home": "Home", - "overview": "Overview", - "booking": "Booking", - "myOrders": "My orders", - "orderAnalysis": "Order analysis", - "orderAnalysisPackage": "Order analysis package", - "orderHealthAnalysis": "Order health analysis", - "account": "Account", - "members": "Members", - "billing": "Billing", - "dashboard": "Dashboard", - "settings": "Settings", - "profile": "Profile", - "application": "Application" + "home": "Главная", + "overview": "Обзор", + "booking": "Забронировать время", + "myOrders": "Мои заказы", + "analysisResults": "Результаты анализов", + "orderAnalysisPackage": "Заказать пакет анализов", + "orderAnalysis": "Заказать анализ", + "orderHealthAnalysis": "Заказать обследование", + "account": "Аккаунт", + "members": "Участники", + "billing": "Оплата", + "dashboard": "Обзор", + "settings": "Настройки", + "profile": "Профиль", + "application": "Приложение", + "pickTime": "Выберите время" }, "roles": { "owner": { - "label": "Admin" + "label": "Администратор" }, "member": { - "label": "Member" + "label": "Участник" } }, "otp": { - "requestVerificationCode": "Request Verification Code", - "requestVerificationCodeDescription": "We must verify your identity to continue with this action. We'll send a verification code to the email address {{email}}.", - "sendingCode": "Sending Code...", - "sendVerificationCode": "Send Verification Code", - "enterVerificationCode": "Enter Verification Code", - "codeSentToEmail": "We've sent a verification code to the email address {{email}}.", - "verificationCode": "Verification Code", - "enterCodeFromEmail": "Enter the 6-digit code we sent to your email.", - "verifying": "Verifying...", - "verifyCode": "Verify Code", - "requestNewCode": "Request New Code", - "errorSendingCode": "Error sending code. Please try again." + "requestVerificationCode": "Запросить код подтверждения", + "requestVerificationCodeDescription": "Мы должны подтвердить вашу личность для продолжения. Мы отправим код подтверждения на электронный адрес {{email}}.", + "sendingCode": "Отправка кода...", + "sendVerificationCode": "Отправить код подтверждения", + "enterVerificationCode": "Введите код подтверждения", + "codeSentToEmail": "Мы отправили код подтверждения на электронный адрес {{email}}.", + "verificationCode": "Код подтверждения", + "enterCodeFromEmail": "Введите 6-значный код, который мы отправили на вашу почту.", + "verifying": "Проверка...", + "verifyCode": "Подтвердить код", + "requestNewCode": "Запросить новый код", + "errorSendingCode": "Ошибка при отправке кода. Пожалуйста, попробуйте снова." }, "cookieBanner": { - "title": "Hey, we use cookies 🍪", - "description": "This website uses cookies to ensure you get the best experience on our website.", - "reject": "Reject", - "accept": "Accept" + "title": "Привет, мы используем куки 🍪", + "description": "Этот сайт использует файлы cookie, чтобы обеспечить вам наилучший опыт.", + "reject": "Отклонить", + "accept": "Принять" }, - "doctor": "Doctor", - "save": "Save", - "saveAsDraft": "Save as draft", - "confirm": "Confirm", - "previous": "Previous", - "next": "Next", - "invalidDataError": "Invalid data submitted" + "formField": { + "companyName": "Название компании", + "contactPerson": "Контактное лицо", + "email": "Электронная почта", + "phone": "Телефон", + "firstName": "Имя", + "lastName": "Фамилия", + "personalCode": "Личный код", + "city": "Город", + "weight": "Вес", + "height": "Рост", + "occurance": "Частота поддержки", + "amount": "Сумма", + "selectDate": "Выберите дату" + }, + "wallet": { + "balance": "Баланс вашего MedReport аккаунта", + "expiredAt": "Действительно до {{expiredAt}}" + }, + "doctor": "Врач", + "save": "Сохранить", + "saveAsDraft": "Сохранить как черновик", + "confirm": "Подтвердить", + "previous": "Предыдущий", + "next": "Следующий", + "invalidDataError": "Некорректные данные" } \ No newline at end of file diff --git a/public/locales/ru/dashboard.json b/public/locales/ru/dashboard.json index 3893ce4..f7505ae 100644 --- a/public/locales/ru/dashboard.json +++ b/public/locales/ru/dashboard.json @@ -1,16 +1,22 @@ { - "recentlyCheckedDescription": "Super, oled käinud tervist kontrollimas. Siin on sinule olulised näitajad", - "respondToQuestion": "Respond", - "gender": "Gender", - "male": "Male", - "female": "Female", - "age": "Age", - "height": "Height", - "weight": "Weight", - "bmi": "BMI", - "bloodPressure": "Blood pressure", - "cholesterol": "Cholesterol", - "ldlCholesterol": "LDL Cholesterol", - "smoking": "Smoking", - "recommendedForYou": "Recommended for you" + "recentlyCheckedDescription": "Отлично, вы проверили своё здоровье. Вот важные показатели для вас", + "respondToQuestion": "Ответить на вопрос", + "gender": "Пол", + "male": "Мужчина", + "female": "Женщина", + "age": "Возраст", + "height": "Рост", + "weight": "Вес", + "bmi": "ИМТ", + "bloodPressure": "Давление", + "cholesterol": "Холестерин", + "ldlCholesterol": "ЛПНП холестерин", + "smoking": "Курение", + "recommendedForYou": "Рекомендации для вас", + "heroCard": { + "orderAnalysis": { + "title": "Заказать анализ", + "description": "Закажите подходящий для вас анализ" + } + } } \ No newline at end of file diff --git a/public/locales/ru/doctor.json b/public/locales/ru/doctor.json index 4f6b339..1d4693b 100644 --- a/public/locales/ru/doctor.json +++ b/public/locales/ru/doctor.json @@ -1,50 +1,50 @@ { "sidebar": { - "dashboard": "Overview", - "openReviews": "Open jobs", - "myReviews": "My jobs", - "completedReviews": "Completed jobs" + "dashboard": "Обзор", + "openReviews": "Свободные задания", + "myReviews": "Мои задания", + "completedReviews": "Выполненные задания" }, - "openReviews": "Open jobs", - "myReviews": "My jobs", - "completedReviews": "Completed jobs", - "otherReviews": "Other jobs", + "openReviews": "Свободные задания", + "myReviews": "Мои задания", + "completedReviews": "Выполненные задания", + "otherReviews": "Другие задания", "resultsTable": { - "patientName": "Patient name", - "serviceName": "Service", - "orderNr": "Order number", - "time": "Time", - "assignedTo": "Doctor", - "resultsStatus": "Analysis results", - "waitingForNr": "Waiting for {{nr}}", - "responsesReceived": "Results complete" + "patientName": "Имя пациента", + "serviceName": "Услуга", + "orderNr": "Номер заказа", + "time": "Сдача пробы", + "assignedTo": "Врач", + "resultsStatus": "Результаты анализов", + "waitingForNr": "В ожидании {{nr}}", + "responsesReceived": "Результаты получены" }, - "otherPatients": "Other patients", - "analyses": "Analyses", - "open": "Open", - "name": "Name", - "personalCode": "Personal code", - "dobAndAge": "Date of birth and age", - "bmi": "Body mass index", - "smoking": "Smoking", - "phone": "Phone", - "email": "Email", - "results": "Analysis results", - "feedback": "Summary", - "selectJob": "Select", - "unselectJob": "Unselect", - "previousResults": "Previous results ({{date}})", - "labComment": "Lab comment", + "otherPatients": "Другие пациенты", + "analyses": "Анализы", + "open": "Открыть", + "name": "Имя", + "personalCode": "Личный код", + "dobAndAge": "Дата рождения и возраст", + "bmi": "Индекс массы тела", + "smoking": "Курение", + "phone": "Телефон", + "email": "Эл. почта", + "results": "Результаты анализов", + "feedback": "Заключение", + "selectJob": "Выбрать", + "unselectJob": "Отказаться", + "previousResults": "Предыдущие результаты ({{date}})", + "labComment": "Комментарии лаборатории", "confirmFeedbackModal": { - "title": "Confirm publishing summary", - "description": "When confirmed, the summary will be published to the patient." + "title": "Подтвердите публикацию заключения", + "description": "После подтверждения заключение будет опубликовано для пациента." }, "error": { - "UNKNOWN": "Something went wrong", - "JOB_ASSIGNED": "Job already selected" + "UNKNOWN": "Что-то пошло не так", + "JOB_ASSIGNED": "Задание уже занято" }, - "updateFeedbackSuccess": "Summary updated", - "updateFeedbackLoading": "Updating summary...", - "updateFeedbackError": "Failed to update summary", - "feedbackLengthError": "Summary must be at least 10 characters" + "updateFeedbackSuccess": "Заключение обновлено", + "updateFeedbackLoading": "Обновление заключения...", + "updateFeedbackError": "Не удалось обновить заключение", + "feedbackLengthError": "Заключение должно содержать не менее 10 символов" } \ No newline at end of file diff --git a/public/locales/ru/marketing.json b/public/locales/ru/marketing.json index aeeb1b4..8fcbcf8 100644 --- a/public/locales/ru/marketing.json +++ b/public/locales/ru/marketing.json @@ -1,41 +1,41 @@ { - "blog": "Blog", - "blogSubtitle": "News and updates about the platform", - "documentation": "Documentation", - "documentationSubtitle": "Tutorials and guide to get started with the platform", + "blog": "Блог", + "blogSubtitle": "Новости и обновления о платформе", + "documentation": "Документация", + "documentationSubtitle": "Учебники и руководство по началу работы с платформой", "faq": "FAQ", - "faqSubtitle": "Frequently asked questions about the platform", - "pricing": "Pricing", - "pricingSubtitle": "Pricing plans and payment options", - "backToBlog": "Back to blog", - "noPosts": "No posts found", - "blogPaginationNext": "Next Page", - "blogPaginationPrevious": "Previous Page", - "readMore": "Read more", - "contactFaq": "If you have any questions, please contact us", - "contact": "Contact", - "about": "About", - "product": "Product", - "legal": "Legal", - "termsOfService": "Terms of Service", - "termsOfServiceDescription": "Our terms and conditions", - "cookiePolicy": "Cookie Policy", - "cookiePolicyDescription": "Our cookie policy and how we use them", - "privacyPolicy": "Privacy Policy", - "privacyPolicyDescription": "Our privacy policy and how we use your data", - "contactDescription": "Contact us for any questions or feedback", - "contactHeading": "Send us a message", - "contactSubheading": "We will get back to you as soon as possible", - "contactName": "Your Name", - "contactEmail": "Your Email", - "contactMessage": "Your Message", - "sendMessage": "Send Message", - "contactSuccess": "Your message has been sent successfully", - "contactError": "An error occurred while sending your message", - "contactSuccessDescription": "We have received your message and will get back to you as soon as possible", - "contactErrorDescription": "An error occurred while sending your message. Please try again later", - "footerDescription": "Here you can add a description about your company or product", - "copyright": "© Copyright {{year}} {{product}}. All Rights Reserved.", - "heroSubtitle": "A simple, convenient, and quick overview of your health condition", - "notInterestedInAudit": "Currently not interested in a health audit" + "faqSubtitle": "Часто задаваемые вопросы о платформе", + "pricing": "Цены", + "pricingSubtitle": "Тарифные планы и варианты оплаты", + "backToBlog": "Назад к блогу", + "noPosts": "Посты не найдены", + "blogPaginationNext": "Следующая страница", + "blogPaginationPrevious": "Предыдущая страница", + "readMore": "Читать далее", + "contactFaq": "Если у вас есть вопросы, пожалуйста, свяжитесь с нами", + "contact": "Контакты", + "about": "О нас", + "product": "Продукт", + "legal": "Правовая информация", + "termsOfService": "Условия обслуживания", + "termsOfServiceDescription": "Наши правила и условия", + "cookiePolicy": "Политика использования файлов cookie", + "cookiePolicyDescription": "Наша политика использования cookie и как мы их применяем", + "privacyPolicy": "Политика конфиденциальности", + "privacyPolicyDescription": "Наша политика конфиденциальности и как мы используем ваши данные", + "contactDescription": "Свяжитесь с нами по любым вопросам или отзывам", + "contactHeading": "Отправьте нам сообщение", + "contactSubheading": "Мы свяжемся с вами как можно скорее", + "contactName": "Ваше имя", + "contactEmail": "Ваш email", + "contactMessage": "Ваше сообщение", + "sendMessage": "Отправить сообщение", + "contactSuccess": "Ваше сообщение успешно отправлено", + "contactError": "Произошла ошибка при отправке сообщения", + "contactSuccessDescription": "Мы получили ваше сообщение и свяжемся с вами в ближайшее время", + "contactErrorDescription": "Произошла ошибка при отправке сообщения. Пожалуйста, попробуйте позже", + "footerDescription": "Здесь вы можете добавить описание вашей компании или продукта", + "copyright": "© Copyright {{year}} {{product}}. Все права защищены.", + "heroSubtitle": "Простой, удобный и быстрый обзор вашего здоровья", + "notInterestedInAudit": "Не хочу проходить аудит здоровья в данный момент" } \ No newline at end of file diff --git a/public/locales/ru/order-analysis-package.json b/public/locales/ru/order-analysis-package.json index 9502bf1..e14d502 100644 --- a/public/locales/ru/order-analysis-package.json +++ b/public/locales/ru/order-analysis-package.json @@ -1,7 +1,9 @@ { - "title": "Select analysis package", - "noPackagesAvailable": "No packages available", - "selectThisPackage": "Select this package", - "selectPackage": "Select package", - "comparePackages": "Compare packages" -} \ No newline at end of file + "title": "Выберите пакет анализов", + "noPackagesAvailable": "Список услуг не найден, попробуйте позже", + "selectThisPackage": "Выбрать этот пакет", + "selectPackage": "Выберите пакет", + "comparePackages": "Сравнить пакеты", + "analysisPackageAddedToCart": "Пакет анализов добавлен в корзину", + "analysisPackageAddToCartError": "Не удалось добавить пакет анализов в корзину" +} diff --git a/public/locales/ru/order-analysis.json b/public/locales/ru/order-analysis.json new file mode 100644 index 0000000..ea36b5c --- /dev/null +++ b/public/locales/ru/order-analysis.json @@ -0,0 +1,7 @@ +{ + "title": "Выберите анализ", + "description": "Результаты всех анализов будут доступны в течение 1–3 рабочих дней после сдачи крови.", + "analysisNotAvailable": "Заказ анализа в данный момент недоступен", + "analysisAddedToCart": "Анализ добавлен в корзину", + "analysisAddToCartError": "Не удалось добавить анализ в корзину" +} \ No newline at end of file diff --git a/public/locales/ru/orders.json b/public/locales/ru/orders.json new file mode 100644 index 0000000..c42a230 --- /dev/null +++ b/public/locales/ru/orders.json @@ -0,0 +1,19 @@ +{ + "title": "Заказы", + "description": "Просмотрите ваши заказы", + "table": { + "analysisPackage": "Пакет анализов", + "otherOrders": "Заказ", + "createdAt": "Дата заказа", + "status": "Статус" + }, + "status": { + "QUEUED": "Отправлено", + "PROCESSING": "Передано в Synlab", + "PARTIAL_ANALYSIS_RESPONSE": "Частичные результаты", + "FULL_ANALYSIS_RESPONSE": "Все результаты получены, ожидается заключение врача", + "COMPLETED": "Подтверждено", + "REJECTED": "Возвращено", + "CANCELLED": "Отменено" + } +} \ No newline at end of file diff --git a/public/locales/ru/product.json b/public/locales/ru/product.json index 3a5c425..b8df373 100644 --- a/public/locales/ru/product.json +++ b/public/locales/ru/product.json @@ -1,31 +1,31 @@ { - "nrOfAnalyses": "{{nr}} analyses", + "nrOfAnalyses": "{{nr}} анализов", "clinicalBloodDraw": { - "label": "Kliiniline vereanalüüs", - "description": "Pending" + "label": "Клинический анализ крови", + "description": "Ожидается" }, "crp": { - "label": "C-reaktiivne valk (CRP)", - "description": "Pending" + "label": "С-реактивный белок (CRP)", + "description": "Ожидается" }, "ferritin": { - "label": "Ferritiin", - "description": "Pending" + "label": "Ферритин", + "description": "Ожидается" }, "vitaminD": { - "label": "D-vitamiin", - "description": "Pending" + "label": "Витамин D", + "description": "Ожидается" }, "glucose": { - "label": "Glükoos", - "description": "Pending" + "label": "Глюкоза", + "description": "Ожидается" }, "alat": { - "label": "Alaniini aminotransferaas", - "description": "Pending" + "label": "Аланинаминотрансфераза", + "description": "Ожидается" }, "ast": { - "label": "Aspartaadi aminotransferaas", - "description": "Pending" + "label": "Аспартатаминотрансфераза", + "description": "Ожидается" } } \ No newline at end of file diff --git a/public/locales/ru/teams.json b/public/locales/ru/teams.json index 5a63f7e..0b67de1 100644 --- a/public/locales/ru/teams.json +++ b/public/locales/ru/teams.json @@ -1,164 +1,197 @@ { "home": { - "pageTitle": "Home" + "pageTitle": "Обзор", + "headerTitle": "Обзор Tervisekassa {{companyName}}", + "healthDetails": "Данные о здоровье компании", + "membersSettingsButtonTitle": "Управление сотрудниками", + "membersSettingsButtonDescription": "Добавляйте, редактируйте или удаляйте сотрудников.", + "membersBillingButtonTitle": "Управление бюджетом", + "membersBillingButtonDescription": "Выберите, как распределять бюджет между сотрудниками." }, "settings": { - "pageTitle": "Settings", - "pageDescription": "Manage your Company details", - "teamLogo": "Company Logo", - "teamLogoDescription": "Update your company's logo to make it easier to identify", - "teamName": "Company Name", - "teamNameDescription": "Update your company's name", - "dangerZone": "Danger Zone", - "dangerZoneDescription": "This section contains actions that are irreversible" + "pageTitle": "Настройки", + "pageDescription": "Управление данными вашей компании", + "teamLogo": "Логотип компании", + "teamLogoDescription": "Обновите логотип вашей компании для упрощения идентификации", + "teamName": "Название компании", + "teamNameDescription": "Обновите название вашей компании", + "dangerZone": "Опасная зона", + "dangerZoneDescription": "Этот раздел содержит действия, которые невозможно отменить" }, "members": { - "pageTitle": "Members" + "pageTitle": "Сотрудники" }, "billing": { - "pageTitle": "Billing" + "pageTitle": "Биллинг" }, - "yourTeams": "Your Companies ({{teamsCount}})", - "createTeam": "Create a Company", - "creatingTeam": "Creating Company...", - "personalAccount": "Personal Account", - "searchAccount": "Search Account...", - "membersTabLabel": "Members", - "memberName": "Name", - "youLabel": "You", - "emailLabel": "Email", - "roleLabel": "Role", - "primaryOwnerLabel": "Primary Admin", - "joinedAtLabel": "Joined at", - "invitedAtLabel": "Invited at", - "inviteMembersPageSubheading": "Invite members to your Company", - "createTeamModalHeading": "Create Company", - "createTeamModalDescription": "Create a new Company to manage your projects and members.", - "teamNameLabel": "Company Name", - "teamNameDescription": "Your company name should be unique and descriptive", - "createTeamSubmitLabel": "Create Company", - "createTeamSuccess": "Company created successfully", - "createTeamError": "Company not created. Please try again.", - "createTeamLoading": "Creating company...", - "settingsPageLabel": "General", - "createTeamDropdownLabel": "New company", - "changeRole": "Change Role", - "removeMember": "Remove from Account", - "inviteMembersSuccess": "Members invited successfully!", - "inviteMembersError": "Sorry, we encountered an error! Please try again", - "inviteMembersLoading": "Inviting members...", - "removeInviteButtonLabel": "Remove invite", - "addAnotherMemberButtonLabel": "Add another one", - "inviteMembersButtonLabel": "Send Invites", - "removeMemberModalHeading": "You are removing this user", - "removeMemberModalDescription": "Remove this member from the company. They will no longer have access to the company.", - "removeMemberSuccessMessage": "Member removed successfully", - "removeMemberErrorMessage": "Sorry, we encountered an error. Please try again", - "removeMemberErrorHeading": "Sorry, we couldn't remove the selected member.", - "removeMemberLoadingMessage": "Removing member...", - "removeMemberSubmitLabel": "Remove User from Company", - "chooseDifferentRoleError": "Role is the same as the current one", - "updateRole": "Update Role", - "updateRoleLoadingMessage": "Updating role...", - "updateRoleSuccessMessage": "Role updated successfully", - "updatingRoleErrorMessage": "Sorry, we encountered an error. Please try again.", - "updateMemberRoleModalHeading": "Update Member's Role", - "updateMemberRoleModalDescription": "Change the role of the selected member. The role determines the permissions of the member.", - "roleMustBeDifferent": "Role must be different from the current one", - "memberRoleInputLabel": "Member role", - "updateRoleDescription": "Pick a role for this member.", - "updateRoleSubmitLabel": "Update Role", - "transferOwnership": "Transfer Ownership", - "transferOwnershipDescription": "Transfer ownership of the company account to another member.", - "transferOwnershipInputLabel": "Please type TRANSFER to confirm the transfer of ownership.", - "transferOwnershipInputDescription": "By transferring ownership, you will no longer be the primary admin of the company account.", - "deleteInvitation": "Delete Invitation", - "deleteInvitationDialogDescription": "You are about to delete the invitation. The user will no longer be able to join the company account.", - "deleteInviteSuccessMessage": "Invite deleted successfully", - "deleteInviteErrorMessage": "Invite not deleted. Please try again.", - "deleteInviteLoadingMessage": "Deleting invite. Please wait...", - "confirmDeletingMemberInvite": "You are deleting the invite to {{ email }}", - "transferOwnershipDisclaimer": "You are transferring ownership of the selected company account to {{ member }}.", - "transferringOwnership": "Transferring ownership...", - "transferOwnershipSuccess": "Ownership successfully transferred", - "transferOwnershipError": "Sorry, we could not transfer ownership to the selected member. Please try again.", - "deleteInviteSubmitLabel": "Delete Invite", - "youBadgeLabel": "You", - "updateTeamLoadingMessage": "Updating Company...", - "updateTeamSuccessMessage": "Company successfully updated", - "updateTeamErrorMessage": "Could not update Company. Please try again.", - "updateLogoErrorMessage": "Could not update Logo. Please try again.", - "teamNameInputLabel": "Company Name", - "teamLogoInputHeading": "Upload your company's Logo", - "teamLogoInputSubheading": "Please choose a photo to upload as your company logo.", - "updateTeamSubmitLabel": "Update Company", - "inviteMembersHeading": "Invite Members to your Company", - "inviteMembersDescription": "Invite member to your company by entering their email and role.", + "benefitStatistics": { + "budget": { + "title": "Баланс Tervisekassa компании", + "balance": "Остаток бюджета {{balance}}", + "volume": "Объем бюджета {{volume}}" + }, + "data": { + "reservations": "{{value}} услуги", + "analysis": "Анализы", + "doctorsAndSpecialists": "Врачи и специалисты", + "researches": "Исследования", + "healthResearchPlans": "Пакеты медицинских исследований", + "serviceUsage": "{{value}} использование услуг", + "serviceSum": "Сумма услуг", + "eclinic": "Дигиклиника" + } + }, + "healthDetails": { + "women": "Женщины", + "men": "Мужчины", + "avgAge": "Средний возраст", + "bmi": "ИМТ", + "cholesterol": "Общий холестерин", + "vitaminD": "Витамин D", + "smokers": "Курящие" + }, + "yourTeams": "Ваши компании ({{teamsCount}})", + "createTeam": "Создать компанию", + "creatingTeam": "Создание компании...", + "personalAccount": "Личный аккаунт", + "searchAccount": "Поиск аккаунта...", + "membersTabLabel": "Сотрудники", + "memberName": "Имя", + "youLabel": "Вы", + "emailLabel": "E-mail", + "roleLabel": "Роль", + "primaryOwnerLabel": "Главный админ", + "joinedAtLabel": "Присоединился", + "invitedAtLabel": "Приглашен", + "inviteMembersPageSubheading": "Пригласите сотрудников в компанию", + "createTeamModalHeading": "Создать компанию", + "createTeamModalDescription": "Создайте новую компанию для управления проектами и сотрудниками.", + "teamNameLabel": "Название компании", + "teamNameDescription": "Название вашей компании должно быть уникальным и описательным", + "createTeamSubmitLabel": "Создать компанию", + "createTeamSuccess": "Компания успешно создана", + "createTeamError": "Компания не создана. Пожалуйста, попробуйте снова.", + "createTeamLoading": "Создание компании...", + "settingsPageLabel": "Основное", + "createTeamDropdownLabel": "Новая компания", + "changeRole": "Изменить роль", + "removeMember": "Удалить из аккаунта", + "inviteMembersSuccess": "Сотрудники успешно приглашены!", + "inviteMembersError": "Произошла ошибка! Пожалуйста, попробуйте снова", + "inviteMembersLoading": "Приглашение сотрудников...", + "removeInviteButtonLabel": "Удалить приглашение", + "addAnotherMemberButtonLabel": "Добавить ещё одного", + "inviteMembersButtonLabel": "Отправить приглашения", + "removeMemberModalHeading": "Вы удаляете этого пользователя", + "removeMemberModalDescription": "Удалите этого сотрудника из компании. Он больше не будет иметь доступ к компании.", + "removeMemberSuccessMessage": "Сотрудник успешно удален", + "removeMemberErrorMessage": "Произошла ошибка. Пожалуйста, попробуйте снова", + "removeMemberErrorHeading": "Не удалось удалить выбранного сотрудника.", + "removeMemberLoadingMessage": "Удаление сотрудника...", + "removeMemberSubmitLabel": "Удалить пользователя из компании", + "chooseDifferentRoleError": "Роль совпадает с текущей", + "updateRole": "Обновить роль", + "updateRoleLoadingMessage": "Обновление роли...", + "updateRoleSuccessMessage": "Роль успешно обновлена", + "updatingRoleErrorMessage": "Произошла ошибка. Пожалуйста, попробуйте снова.", + "updateMemberRoleModalHeading": "Обновить роль сотрудника", + "updateMemberRoleModalDescription": "Измените роль выбранного сотрудника. Роль определяет его права.", + "roleMustBeDifferent": "Роль должна отличаться от текущей", + "memberRoleInputLabel": "Роль сотрудника", + "updateRoleDescription": "Выберите роль для этого сотрудника.", + "updateRoleSubmitLabel": "Обновить роль", + "transferOwnership": "Передача собственности", + "transferOwnershipDescription": "Передайте права владельца аккаунта компании другому сотруднику.", + "transferOwnershipInputLabel": "Пожалуйста, введите TRANSFER для подтверждения передачи собственности.", + "transferOwnershipInputDescription": "Передав права собственности, вы больше не будете главным администратором компании.", + "deleteInvitation": "Удалить приглашение", + "deleteInvitationDialogDescription": "Вы собираетесь удалить приглашение. Пользователь больше не сможет присоединиться к аккаунту компании.", + "deleteInviteSuccessMessage": "Приглашение успешно удалено", + "deleteInviteErrorMessage": "Приглашение не удалено. Пожалуйста, попробуйте снова.", + "deleteInviteLoadingMessage": "Удаление приглашения...", + "confirmDeletingMemberInvite": "Вы удаляете приглашение для {{ email }}", + "transferOwnershipDisclaimer": "Вы передаете права собственности выбранного аккаунта компании {{ member }}.", + "transferringOwnership": "Передача собственности...", + "transferOwnershipSuccess": "Права собственности успешно переданы", + "transferOwnershipError": "Не удалось передать права собственности выбранному сотруднику. Пожалуйста, попробуйте снова.", + "deleteInviteSubmitLabel": "Удалить приглашение", + "youBadgeLabel": "Вы", + "updateTeamLoadingMessage": "Обновление компании...", + "updateTeamSuccessMessage": "Компания успешно обновлена", + "updateTeamErrorMessage": "Не удалось обновить компанию. Пожалуйста, попробуйте снова.", + "updateLogoErrorMessage": "Не удалось обновить логотип. Пожалуйста, попробуйте снова.", + "teamNameInputLabel": "Название компании", + "teamLogoInputHeading": "Загрузите логотип вашей компании", + "teamLogoInputSubheading": "Выберите фото для загрузки в качестве логотипа компании.", + "updateTeamSubmitLabel": "Обновить компанию", + "inviteMembersHeading": "Пригласить сотрудников в компанию", + "inviteMembersDescription": "Пригласите сотрудника в компанию, указав его email и роль.", "emailPlaceholder": "member@email.com", - "membersPageHeading": "Members", - "inviteMembersButton": "Invite Members", - "invitingMembers": "Inviting members...", - "inviteMembersSuccessMessage": "Members invited successfully", - "inviteMembersErrorMessage": "Sorry, members could not be invited. Please try again.", - "pendingInvitesHeading": "Pending Invites", - "pendingInvitesDescription": " Here you can manage the pending invitations to your company.", - "noPendingInvites": "No pending invites found", - "loadingMembers": "Loading members...", - "loadMembersError": "Sorry, we couldn't fetch your company's members.", - "loadInvitedMembersError": "Sorry, we couldn't fetch your company's invited members.", - "loadingInvitedMembers": "Loading invited members...", - "invitedBadge": "Invited", - "duplicateInviteEmailError": "You have already entered this email address", - "invitingOwnAccountError": "Hey, that's your email!", - "dangerZone": "Danger Zone", - "dangerZoneSubheading": "Delete or leave your company", - "deleteTeam": "Delete Company", - "deleteTeamDescription": "This action cannot be undone. All data associated with this company will be deleted.", - "deletingTeam": "Deleting company", - "deleteTeamModalHeading": "Deleting Company", - "deletingTeamDescription": "You are about to delete the company {{ teamName }}. This action cannot be undone.", - "deleteTeamInputField": "Type the name of the company to confirm", - "leaveTeam": "Leave Company", - "leavingTeamModalHeading": "Leaving Company", - "leavingTeamModalDescription": "You are about to leave this company. You will no longer have access to it.", - "leaveTeamDescription": "Click the button below to leave the company. Remember, you will no longer have access to it and will need to be re-invited to join.", - "deleteTeamDisclaimer": "You are deleting the company {{ teamName }}. This action cannot be undone.", - "leaveTeamDisclaimer": "You are leaving the company {{ teamName }}. You will no longer have access to it.", - "deleteTeamErrorHeading": "Sorry, we couldn't delete your company.", - "leaveTeamErrorHeading": "Sorry, we couldn't leave your company.", - "searchMembersPlaceholder": "Search members", - "createTeamErrorHeading": "Sorry, we couldn't create your company.", - "createTeamErrorMessage": "We encountered an error creating your company. Please try again.", - "transferTeamErrorHeading": "Sorry, we couldn't transfer ownership of your company account.", - "transferTeamErrorMessage": "We encountered an error transferring ownership of your company account. Please try again.", - "updateRoleErrorHeading": "Sorry, we couldn't update the role of the selected member.", - "updateRoleErrorMessage": "We encountered an error updating the role of the selected member. Please try again.", - "searchInvitations": "Search Invitations", - "updateInvitation": "Update Invitation", - "removeInvitation": "Remove Invitation", - "acceptInvitation": "Accept Invitation", - "renewInvitation": "Renew Invitation", - "resendInvitation": "Resend Invitation", - "expiresAtLabel": "Expires at", - "expired": "Expired", - "active": "Active", - "inviteStatus": "Status", - "inviteNotFoundOrExpired": "Invite not found or expired", - "inviteNotFoundOrExpiredDescription": "The invite you are looking for is either expired or does not exist. Please contact the company admin to renew the invite.", - "backToHome": "Back to Home", - "renewInvitationDialogDescription": "You are about to renew the invitation to {{ email }}. The user will be able to join the company.", - "renewInvitationErrorTitle": "Sorry, we couldn't renew the invitation.", - "renewInvitationErrorDescription": "We encountered an error renewing the invitation. Please try again.", - "signInWithDifferentAccount": "Sign in with a different account", - "signInWithDifferentAccountDescription": "If you wish to accept the invitation with a different account, please sign out and back in with the account you wish to use.", - "acceptInvitationHeading": "Accept Invitation to join {{accountName}}", - "acceptInvitationDescription": "You have been invited to join the company {{accountName}}. If you wish to accept the invitation, please click the button below.", - "continueAs": "Continue as {{email}}", - "joinTeamAccount": "Join Company", - "joiningTeam": "Joining company...", - "leaveTeamInputLabel": "Please type LEAVE to confirm leaving the company.", - "leaveTeamInputDescription": "By leaving the company, you will no longer have access to it.", - "reservedNameError": "This name is reserved. Please choose a different one.", - "specialCharactersError": "This name cannot contain special characters. Please choose a different one.", - "personalCode": "Личный код" -} + "membersPageHeading": "Сотрудники", + "inviteMembersButton": "Пригласить сотрудников", + "invitingMembers": "Приглашение сотрудников...", + "inviteMembersSuccessMessage": "Сотрудники успешно приглашены", + "inviteMembersErrorMessage": "Не удалось пригласить сотрудников. Пожалуйста, попробуйте снова.", + "pendingInvitesHeading": "Ожидающие приглашения", + "pendingInvitesDescription": "Здесь можно управлять ожидающими приглашениями в вашу компанию.", + "noPendingInvites": "Нет ожидающих приглашений", + "loadingMembers": "Загрузка сотрудников...", + "loadMembersError": "Не удалось получить список сотрудников компании.", + "loadInvitedMembersError": "Не удалось получить список приглашённых сотрудников компании.", + "loadingInvitedMembers": "Загрузка приглашённых сотрудников...", + "invitedBadge": "Приглашён", + "duplicateInviteEmailError": "Вы уже добавили этот адрес электронной почты", + "invitingOwnAccountError": "Эй, это ваш email!", + "dangerZone": "Опасная зона", + "dangerZoneSubheading": "Удалить или покинуть компанию", + "deleteTeam": "Удалить компанию", + "deleteTeamDescription": "Это действие невозможно отменить. Все данные, связанные с этой компанией, будут удалены.", + "deletingTeam": "Удаление компании...", + "deleteTeamModalHeading": "Удаление компании", + "deletingTeamDescription": "Вы собираетесь удалить компанию {{ teamName }}. Это действие невозможно отменить.", + "deleteTeamInputField": "Введите название компании для подтверждения", + "leaveTeam": "Покинуть компанию", + "leavingTeamModalHeading": "Покидание компании", + "leavingTeamModalDescription": "Вы собираетесь покинуть эту компанию. У вас больше не будет к ней доступа.", + "leaveTeamDescription": "Нажмите кнопку ниже, чтобы покинуть компанию. Помните, что вы больше не будете иметь к ней доступа и вам потребуется повторное приглашение для присоединения.", + "deleteTeamDisclaimer": "Вы удаляете компанию {{ teamName }}. Это действие невозможно отменить.", + "leaveTeamDisclaimer": "Вы покидаете компанию {{ teamName }}. У вас больше не будет к ней доступа.", + "deleteTeamErrorHeading": "Не удалось удалить вашу компанию.", + "leaveTeamErrorHeading": "Не удалось покинуть вашу компанию.", + "searchMembersPlaceholder": "Поиск сотрудников", + "createTeamErrorHeading": "Не удалось создать вашу компанию.", + "createTeamErrorMessage": "Произошла ошибка при создании компании. Пожалуйста, попробуйте снова.", + "transferTeamErrorHeading": "Не удалось передать права собственности аккаунта компании.", + "transferTeamErrorMessage": "Произошла ошибка при передаче прав собственности аккаунта компании. Пожалуйста, попробуйте снова.", + "updateRoleErrorHeading": "Не удалось обновить роль выбранного сотрудника.", + "updateRoleErrorMessage": "Произошла ошибка при обновлении роли выбранного сотрудника. Пожалуйста, попробуйте снова.", + "searchInvitations": "Поиск приглашений", + "updateInvitation": "Обновить приглашение", + "removeInvitation": "Удалить приглашение", + "acceptInvitation": "Принять приглашение", + "renewInvitation": "Продлить приглашение", + "resendInvitation": "Отправить приглашение повторно", + "expiresAtLabel": "Истекает", + "expired": "Истекло", + "active": "Активно", + "inviteStatus": "Статус", + "inviteNotFoundOrExpired": "Приглашение не найдено или истекло", + "inviteNotFoundOrExpiredDescription": "Приглашение, которое вы ищете, либо истекло, либо не существует. Пожалуйста, свяжитесь с администратором компании для продления приглашения.", + "backToHome": "Назад на главную", + "renewInvitationDialogDescription": "Вы собираетесь продлить приглашение для {{ email }}. Пользователь сможет присоединиться к компании.", + "renewInvitationErrorTitle": "Не удалось продлить приглашение.", + "renewInvitationErrorDescription": "Произошла ошибка при продлении приглашения. Пожалуйста, попробуйте снова.", + "signInWithDifferentAccount": "Войти с другим аккаунтом", + "signInWithDifferentAccountDescription": "Если вы хотите принять приглашение с другим аккаунтом, выйдите из системы и войдите с нужным аккаунтом.", + "acceptInvitationHeading": "Принять приглашение для присоединения к {{accountName}}", + "acceptInvitationDescription": "Вас пригласили присоединиться к компании {{accountName}}. Чтобы принять приглашение, нажмите кнопку ниже.", + "continueAs": "Продолжить как {{email}}", + "joinTeamAccount": "Присоединиться к компании", + "joiningTeam": "Присоединение к компании...", + "leaveTeamInputLabel": "Пожалуйста, введите LEAVE для подтверждения выхода из компании.", + "leaveTeamInputDescription": "При выходе из компании у вас больше не будет к ней доступа.", + "reservedNameError": "Это имя зарезервировано. Пожалуйста, выберите другое.", + "specialCharactersError": "Это имя не может содержать специальные символы. Пожалуйста, выберите другое.", + "personalCode": "Идентификационный код", + "teamOwnerPersonalCodeLabel": "Идентификационный код владельца" +} \ No newline at end of file