From 399fb732236e01a9e56788349109023c7a5ce5c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrique=20Guimar=C3=A3es=20Ribeiro?= <43561537+rique223@users.noreply.github.com> Date: Fri, 13 Sep 2024 14:33:15 -0300 Subject: [PATCH] i18n: Required fields text to "{Field} required" format (#33077) --- .../CreateDiscussion/CreateDiscussion.tsx | 4 +- .../Omnichannel/modals/CloseChatModal.tsx | 18 +---- .../Omnichannel/modals/TranscriptModal.tsx | 4 +- .../additionalForms/BusinessHoursMultiple.tsx | 2 +- .../components/cannedResponseForm.tsx | 6 +- .../priorities/PriorityEditForm.tsx | 4 +- .../omnichannel/slaPolicies/SlaEdit.tsx | 6 +- .../client/omnichannel/tags/TagEdit.tsx | 2 +- .../client/omnichannel/units/UnitEdit.tsx | 8 +- .../CreateChannel/CreateChannelModal.tsx | 2 +- .../header/CreateTeam/CreateTeamModal.tsx | 2 +- .../sidebarv2/header/CreateChannelModal.tsx | 2 +- .../sidebarv2/header/CreateTeamModal.tsx | 2 +- .../integrations/AccountIntegrationsPage.tsx | 30 +++---- .../account/profile/AccountProfileForm.tsx | 11 ++- .../account/security/AccountSecurityPage.tsx | 2 +- .../views/account/security/ChangePassword.tsx | 16 ++-- .../views/account/security/EndToEnd.tsx | 79 +++++++++++++------ .../admin/customEmoji/AddCustomEmoji.tsx | 11 +-- .../admin/customEmoji/EditCustomEmoji.tsx | 2 +- .../admin/customSounds/AddCustomSound.tsx | 15 ++-- .../views/admin/customSounds/EditSound.tsx | 8 +- .../customUserStatus/CustomUserStatusForm.tsx | 13 +-- .../views/admin/emailInbox/EmailInboxForm.tsx | 25 +++--- .../incoming/IncomingWebhookForm.tsx | 4 +- .../outgoing/OutgoingWebhookForm.tsx | 6 +- .../client/views/admin/mailer/MailerPage.tsx | 7 +- .../views/admin/oauthApps/EditOauthApp.tsx | 5 +- .../views/admin/oauthApps/OAuthAddApp.tsx | 6 +- .../views/admin/permissions/RoleForm.tsx | 8 +- .../UsersInRole/UsersInRolePage.tsx | 4 +- .../client/views/admin/rooms/EditRoom.tsx | 2 +- .../OAuthGroupPage/CreateOAuthModal.tsx | 2 +- .../views/admin/users/AdminUserForm.tsx | 10 +-- .../AdminUserSetRandomPasswordContent.tsx | 4 +- .../views/audit/components/AuditForm.tsx | 2 +- .../views/audit/components/tabs/DirectTab.tsx | 2 +- .../audit/components/tabs/OmnichannelTab.tsx | 6 +- .../views/audit/components/tabs/RoomsTab.tsx | 2 +- .../views/audit/components/tabs/UsersTab.tsx | 4 +- .../customFields/EditCustomFields.tsx | 4 +- .../departments/EditDepartment.tsx | 6 +- .../contacts/contextualBar/ContactNewEdit.tsx | 2 +- .../omnichannel/triggers/EditTrigger.tsx | 2 +- .../actions/ActionExternalServiceUrl.tsx | 2 +- .../actions/ExternalServiceActionForm.tsx | 2 +- .../actions/SendMessageActionForm.tsx | 2 +- .../Info/EditRoomInfo/EditRoomInfo.tsx | 2 +- .../UserInfo/ReportUserModal.tsx | 18 +++-- .../FileUploadModal/FileUploadModal.tsx | 6 +- .../room/webdav/AddWebdavAccountModal.tsx | 21 +++-- .../views/room/webdav/SaveToWebdavModal.tsx | 6 +- .../root/MainLayout/RegisterUsername.tsx | 5 +- .../omnichannel-contact-center.spec.ts | 2 +- .../omnichannel-departaments.spec.ts | 4 +- .../omnichannel-priorities.spec.ts | 2 +- .../omnichannel-sla-policies.spec.ts | 4 +- packages/i18n/src/locales/af.i18n.json | 1 - packages/i18n/src/locales/ar.i18n.json | 3 +- packages/i18n/src/locales/az.i18n.json | 3 +- packages/i18n/src/locales/be-BY.i18n.json | 3 +- packages/i18n/src/locales/bg.i18n.json | 3 +- packages/i18n/src/locales/bs.i18n.json | 3 +- packages/i18n/src/locales/ca.i18n.json | 3 +- packages/i18n/src/locales/cs.i18n.json | 3 +- packages/i18n/src/locales/cy.i18n.json | 3 +- packages/i18n/src/locales/da.i18n.json | 3 +- packages/i18n/src/locales/de-AT.i18n.json | 3 +- packages/i18n/src/locales/de-IN.i18n.json | 3 +- packages/i18n/src/locales/de.i18n.json | 3 +- packages/i18n/src/locales/el.i18n.json | 3 +- packages/i18n/src/locales/en.i18n.json | 6 +- packages/i18n/src/locales/eo.i18n.json | 3 +- packages/i18n/src/locales/es.i18n.json | 3 +- packages/i18n/src/locales/fa.i18n.json | 1 - packages/i18n/src/locales/fi.i18n.json | 3 +- packages/i18n/src/locales/fr.i18n.json | 3 +- packages/i18n/src/locales/he.i18n.json | 3 +- packages/i18n/src/locales/hi-IN.i18n.json | 4 +- packages/i18n/src/locales/hr.i18n.json | 1 - packages/i18n/src/locales/hu.i18n.json | 3 +- packages/i18n/src/locales/id.i18n.json | 1 - packages/i18n/src/locales/it.i18n.json | 3 +- packages/i18n/src/locales/ja.i18n.json | 3 +- packages/i18n/src/locales/ka-GE.i18n.json | 1 - packages/i18n/src/locales/km.i18n.json | 3 +- packages/i18n/src/locales/ko.i18n.json | 3 +- packages/i18n/src/locales/ku.i18n.json | 3 +- packages/i18n/src/locales/lo.i18n.json | 3 +- packages/i18n/src/locales/lt.i18n.json | 3 +- packages/i18n/src/locales/lv.i18n.json | 3 +- packages/i18n/src/locales/mn.i18n.json | 3 +- packages/i18n/src/locales/ms-MY.i18n.json | 3 +- packages/i18n/src/locales/nl.i18n.json | 3 +- packages/i18n/src/locales/no.i18n.json | 3 +- packages/i18n/src/locales/pl.i18n.json | 3 +- packages/i18n/src/locales/pt-BR.i18n.json | 3 +- packages/i18n/src/locales/pt.i18n.json | 3 +- packages/i18n/src/locales/ro.i18n.json | 3 +- packages/i18n/src/locales/ru.i18n.json | 3 +- packages/i18n/src/locales/sk-SK.i18n.json | 3 +- packages/i18n/src/locales/sl-SI.i18n.json | 3 +- packages/i18n/src/locales/sq.i18n.json | 3 +- packages/i18n/src/locales/sr.i18n.json | 3 +- packages/i18n/src/locales/sv.i18n.json | 3 +- packages/i18n/src/locales/ta-IN.i18n.json | 1 - packages/i18n/src/locales/th-TH.i18n.json | 3 +- packages/i18n/src/locales/tr.i18n.json | 3 +- packages/i18n/src/locales/ug.i18n.json | 3 +- packages/i18n/src/locales/uk.i18n.json | 3 +- packages/i18n/src/locales/vi-VN.i18n.json | 3 +- packages/i18n/src/locales/zh-HK.i18n.json | 3 +- packages/i18n/src/locales/zh-TW.i18n.json | 3 +- packages/i18n/src/locales/zh.i18n.json | 3 +- .../src/components/CustomFieldsForm.tsx | 2 +- .../web-ui-registration/src/LoginForm.tsx | 4 +- .../web-ui-registration/src/RegisterForm.tsx | 12 +-- .../src/ResetPasswordForm.tsx | 2 +- 118 files changed, 308 insertions(+), 313 deletions(-) diff --git a/apps/meteor/client/components/CreateDiscussion/CreateDiscussion.tsx b/apps/meteor/client/components/CreateDiscussion/CreateDiscussion.tsx index cd39a187cd8..b1dcb9d8dfb 100644 --- a/apps/meteor/client/components/CreateDiscussion/CreateDiscussion.tsx +++ b/apps/meteor/client/components/CreateDiscussion/CreateDiscussion.tsx @@ -120,7 +120,7 @@ const CreateDiscussion = ({ onClose, defaultParentRoom, parentMessageId, nameSug <Controller control={control} name='parentRoom' - rules={{ required: t('error-the-field-is-required', { field: t('Discussion_target_channel') }) }} + rules={{ required: t('Required_field', { field: t('Discussion_target_channel') }) }} render={({ field: { name, onBlur, onChange, value } }) => ( <RoomAutoComplete name={name} @@ -152,7 +152,7 @@ const CreateDiscussion = ({ onClose, defaultParentRoom, parentMessageId, nameSug <Controller name='name' control={control} - rules={{ required: t('Field_required') }} + rules={{ required: t('Required_field', { field: t('Name') }) }} render={({ field }) => ( <TextInput id={discussionNameId} diff --git a/apps/meteor/client/components/Omnichannel/modals/CloseChatModal.tsx b/apps/meteor/client/components/Omnichannel/modals/CloseChatModal.tsx index 7c028fb5c87..489eb4a0460 100644 --- a/apps/meteor/client/components/Omnichannel/modals/CloseChatModal.tsx +++ b/apps/meteor/client/components/Omnichannel/modals/CloseChatModal.tsx @@ -84,11 +84,11 @@ const CloseChatModal = ({ const requestData = transcriptEmail && visitorEmail ? { email: visitorEmail, subject } : undefined; if (!comment?.trim() && commentRequired) { - setError('comment', { type: 'custom', message: t('The_field_is_required', t('Comment')) }); + setError('comment', { type: 'custom', message: t('Required_field', { field: t('Comment') }) }); } if (transcriptEmail && !subject) { - setError('subject', { type: 'custom', message: t('The_field_is_required', t('Subject')) }); + setError('subject', { type: 'custom', message: t('Required_field', { field: t('Subject') }) }); } if (!tags?.length && tagRequired) { @@ -154,12 +154,7 @@ const CloseChatModal = ({ <FieldRow> <TextInput {...register('comment')} - error={ - errors.comment && - t('error-the-field-is-required', { - field: t('Comment'), - }) - } + error={errors.comment && t('Required_field', { field: t('Comment') })} flexGrow={1} placeholder={t('Please_add_a_comment')} /> @@ -206,12 +201,7 @@ const CloseChatModal = ({ <TextInput {...register('subject', { required: true })} className='active' - error={ - errors.subject && - t('error-the-field-is-required', { - field: t('Subject'), - }) - } + error={errors.subject && t('Required_field', { field: t('Subject') })} flexGrow={1} /> </FieldRow> diff --git a/apps/meteor/client/components/Omnichannel/modals/TranscriptModal.tsx b/apps/meteor/client/components/Omnichannel/modals/TranscriptModal.tsx index 502d0f9d1af..de13ee3aa9a 100644 --- a/apps/meteor/client/components/Omnichannel/modals/TranscriptModal.tsx +++ b/apps/meteor/client/components/Omnichannel/modals/TranscriptModal.tsx @@ -74,7 +74,7 @@ const TranscriptModal = ({ email: emailDefault = '', room, onRequest, onSend, on disabled={!!emailDefault || !!transcriptRequest} error={errors.email?.message} flexGrow={1} - {...register('email', { required: t('The_field_is_required', t('Email')) })} + {...register('email', { required: t('Required_field', { field: t('Email') }) })} /> </FieldRow> <FieldError>{errors.email?.message}</FieldError> @@ -86,7 +86,7 @@ const TranscriptModal = ({ email: emailDefault = '', room, onRequest, onSend, on disabled={!!transcriptRequest} error={errors.subject?.message} flexGrow={1} - {...register('subject', { required: t('The_field_is_required', t('Subject')) })} + {...register('subject', { required: t('Required_field', { field: t('Subject') }) })} /> </FieldRow> <FieldError>{errors.subject?.message}</FieldError> diff --git a/apps/meteor/client/omnichannel/additionalForms/BusinessHoursMultiple.tsx b/apps/meteor/client/omnichannel/additionalForms/BusinessHoursMultiple.tsx index 35af90a912d..640dbd37528 100644 --- a/apps/meteor/client/omnichannel/additionalForms/BusinessHoursMultiple.tsx +++ b/apps/meteor/client/omnichannel/additionalForms/BusinessHoursMultiple.tsx @@ -44,7 +44,7 @@ const BusinessHoursMultiple = ({ className }: { className?: ComponentProps<typeo <Controller name='name' control={control} - rules={{ required: t('error-the-field-is-required', { field: t('Name') }) }} + rules={{ required: t('Required_field', { field: t('Name') }) }} render={({ field }) => <TextInput id={nameField} {...field} aria-describedby={`${departmentsField}-error`} />} /> </FieldRow> diff --git a/apps/meteor/client/omnichannel/cannedResponses/components/cannedResponseForm.tsx b/apps/meteor/client/omnichannel/cannedResponses/components/cannedResponseForm.tsx index 51c993d2542..e2bc979f3f4 100644 --- a/apps/meteor/client/omnichannel/cannedResponses/components/cannedResponseForm.tsx +++ b/apps/meteor/client/omnichannel/cannedResponses/components/cannedResponseForm.tsx @@ -43,7 +43,7 @@ const CannedResponseForm = () => { <Controller name='shortcut' control={control} - rules={{ required: t('The_field_is_required', t('Shortcut')) }} + rules={{ required: t('Required_field', { field: t('Shortcut') }) }} render={({ field }) => ( <TextInput {...field} @@ -76,7 +76,7 @@ const CannedResponseForm = () => { <Controller name='text' control={control} - rules={{ required: t('The_field_is_required', t('Message')) }} + rules={{ required: t('Required_field', { field: t('Message') }) }} render={({ field: { value, onChange, name, onBlur } }) => ( <CannedResponsesComposer id={messageField} @@ -168,7 +168,7 @@ const CannedResponseForm = () => { <Controller name='departmentId' control={control} - rules={{ required: t('The_field_is_required', t('Department')) }} + rules={{ required: t('Required_field', { field: t('Department') }) }} render={({ field: { value, onChange } }) => ( <AutoCompleteDepartment {...(hasMonitorPermission && { onlyMyDepartments: hasMonitorPermission })} diff --git a/apps/meteor/client/omnichannel/priorities/PriorityEditForm.tsx b/apps/meteor/client/omnichannel/priorities/PriorityEditForm.tsx index 592cd6b0f93..09bfda04fe2 100644 --- a/apps/meteor/client/omnichannel/priorities/PriorityEditForm.tsx +++ b/apps/meteor/client/omnichannel/priorities/PriorityEditForm.tsx @@ -47,7 +47,7 @@ const PriorityEditForm = ({ data, onSave, onCancel }: PriorityEditFormProps): Re const { name } = getValues(); if (!isValid) { - return dispatchToastMessage({ type: 'error', message: t('The_field_is_required') }); + return dispatchToastMessage({ type: 'error', message: t('Required_field', { field: t('Name') }) }); } try { @@ -77,7 +77,7 @@ const PriorityEditForm = ({ data, onSave, onCancel }: PriorityEditFormProps): Re <Controller name='name' control={control} - rules={{ required: t('The_field_is_required', t('Name')), validate: (v) => v?.trim() !== '' }} + rules={{ required: t('Required_field', { field: t('Name') }), validate: (v) => v?.trim() !== '' }} render={({ field: { value, onChange } }): ReactElement => ( <StringSettingInput _id='' diff --git a/apps/meteor/client/omnichannel/slaPolicies/SlaEdit.tsx b/apps/meteor/client/omnichannel/slaPolicies/SlaEdit.tsx index 0b4ab02791d..0585cbcf495 100644 --- a/apps/meteor/client/omnichannel/slaPolicies/SlaEdit.tsx +++ b/apps/meteor/client/omnichannel/slaPolicies/SlaEdit.tsx @@ -37,7 +37,7 @@ function SlaEdit({ data, isNew, slaId, reload, ...props }: SlaEditProps): ReactE const { field: nameField } = useController({ control, name: 'name', - rules: { required: t('The_field_is_required', t('Name')) }, + rules: { required: t('Required_field', { field: t('Name') }) }, }); const { field: dueTimeField } = useController({ @@ -45,7 +45,7 @@ function SlaEdit({ data, isNew, slaId, reload, ...props }: SlaEditProps): ReactE name: 'dueTimeInMinutes', rules: { validate(value) { - return Number(value || 0) <= 0 ? t('The_field_is_required', t('Estimated_wait_time_in_minutes')) : true; + return Number(value || 0) <= 0 ? t('Required_field', { field: t('Estimated_wait_time_in_minutes') }) : true; }, }, }); @@ -56,7 +56,7 @@ function SlaEdit({ data, isNew, slaId, reload, ...props }: SlaEditProps): ReactE const { name, description, dueTimeInMinutes } = getValues(); if (!isValid || !name || dueTimeInMinutes === undefined) { - return dispatchToastMessage({ type: 'error', message: t('The_field_is_required') }); + return dispatchToastMessage({ type: 'error', message: t('Required_field') }); } try { diff --git a/apps/meteor/client/omnichannel/tags/TagEdit.tsx b/apps/meteor/client/omnichannel/tags/TagEdit.tsx index 767b56e9167..215fe33cdbd 100644 --- a/apps/meteor/client/omnichannel/tags/TagEdit.tsx +++ b/apps/meteor/client/omnichannel/tags/TagEdit.tsx @@ -88,7 +88,7 @@ const TagEdit = ({ tagData, currentDepartments }: TagEditProps) => { <Controller name='name' control={control} - rules={{ required: t('The_field_is_required', 'name') }} + rules={{ required: t('Required_field', { field: t('Name') }) }} render={({ field }) => <TextInput {...field} error={errors?.name?.message} aria-describedby={`${nameField}-error`} />} /> </FieldRow> diff --git a/apps/meteor/client/omnichannel/units/UnitEdit.tsx b/apps/meteor/client/omnichannel/units/UnitEdit.tsx index e71e8e2a94d..b2feb1db8a8 100644 --- a/apps/meteor/client/omnichannel/units/UnitEdit.tsx +++ b/apps/meteor/client/omnichannel/units/UnitEdit.tsx @@ -168,7 +168,7 @@ const UnitEdit = ({ unitData, unitMonitors, unitDepartments }: UnitEditProps) => <Controller name='name' control={control} - rules={{ required: t('The_field_is_required', t('Name')) }} + rules={{ required: t('Required_field', { field: t('Name') }) }} render={({ field }) => ( <TextInput id={nameField} @@ -195,7 +195,7 @@ const UnitEdit = ({ unitData, unitMonitors, unitDepartments }: UnitEditProps) => <Controller name='visibility' control={control} - rules={{ required: t('The_field_is_required', t('Visibility')) }} + rules={{ required: t('Required_field', { field: t('Visibility') }) }} render={({ field }) => ( <Select id={visibilityField} @@ -220,7 +220,7 @@ const UnitEdit = ({ unitData, unitMonitors, unitDepartments }: UnitEditProps) => <Controller name='departments' control={control} - rules={{ required: t('The_field_is_required', t('Departments')) }} + rules={{ required: t('Required_field', { field: t('Departments') }) }} render={({ field: { name, value, onChange, onBlur } }) => ( <PaginatedMultiSelectFiltered id={departmentsField} @@ -267,7 +267,7 @@ const UnitEdit = ({ unitData, unitMonitors, unitDepartments }: UnitEditProps) => <Controller name='monitors' control={control} - rules={{ required: t('The_field_is_required', t('Monitors')) }} + rules={{ required: t('Required_field', { field: t('Monitors') }) }} render={({ field: { name, value, onChange, onBlur } }) => ( <PaginatedMultiSelectFiltered id={monitorsField} diff --git a/apps/meteor/client/sidebar/header/CreateChannel/CreateChannelModal.tsx b/apps/meteor/client/sidebar/header/CreateChannel/CreateChannelModal.tsx index 27ad314b2ab..03e1122da77 100644 --- a/apps/meteor/client/sidebar/header/CreateChannel/CreateChannelModal.tsx +++ b/apps/meteor/client/sidebar/header/CreateChannel/CreateChannelModal.tsx @@ -222,7 +222,7 @@ const CreateChannelModal = ({ teamId = '', onClose, reload }: CreateChannelModal id={nameId} data-qa-type='channel-name-input' {...register('name', { - required: t('error-the-field-is-required', { field: t('Name') }), + required: t('Required_field', { field: t('Name') }), validate: (value) => validateChannelName(value), })} error={errors.name?.message} diff --git a/apps/meteor/client/sidebar/header/CreateTeam/CreateTeamModal.tsx b/apps/meteor/client/sidebar/header/CreateTeam/CreateTeamModal.tsx index ad1abdcbf39..3543234bca9 100644 --- a/apps/meteor/client/sidebar/header/CreateTeam/CreateTeamModal.tsx +++ b/apps/meteor/client/sidebar/header/CreateTeam/CreateTeamModal.tsx @@ -181,7 +181,7 @@ const CreateTeamModal = ({ onClose }: { onClose: () => void }): ReactElement => id={nameId} aria-invalid={errors.name ? 'true' : 'false'} {...register('name', { - required: t('error-the-field-is-required', { field: t('Name') }), + required: t('Required_field', { field: t('Name') }), validate: (value) => validateTeamName(value), })} addon={<Icon size='x20' name={isPrivate ? 'team-lock' : 'team'} />} diff --git a/apps/meteor/client/sidebarv2/header/CreateChannelModal.tsx b/apps/meteor/client/sidebarv2/header/CreateChannelModal.tsx index 38a1df5a5ec..2ff468f4f72 100644 --- a/apps/meteor/client/sidebarv2/header/CreateChannelModal.tsx +++ b/apps/meteor/client/sidebarv2/header/CreateChannelModal.tsx @@ -222,7 +222,7 @@ const CreateChannelModal = ({ teamId = '', onClose, reload }: CreateChannelModal id={nameId} data-qa-type='channel-name-input' {...register('name', { - required: t('error-the-field-is-required', { field: t('Name') }), + required: t('Required_field', { field: t('Name') }), validate: (value) => validateChannelName(value), })} error={errors.name?.message} diff --git a/apps/meteor/client/sidebarv2/header/CreateTeamModal.tsx b/apps/meteor/client/sidebarv2/header/CreateTeamModal.tsx index e907558ce27..a7e7b506de0 100644 --- a/apps/meteor/client/sidebarv2/header/CreateTeamModal.tsx +++ b/apps/meteor/client/sidebarv2/header/CreateTeamModal.tsx @@ -183,7 +183,7 @@ const CreateTeamModal = ({ onClose }: CreateTeamModalProps) => { id={nameId} aria-invalid={errors.name ? 'true' : 'false'} {...register('name', { - required: t('error-the-field-is-required', { field: t('Name') }), + required: t('Required_field', { field: t('Name') }), validate: (value) => validateTeamName(value), })} addon={<Icon size='x20' name={isPrivate ? 'team-lock' : 'team'} />} diff --git a/apps/meteor/client/views/account/integrations/AccountIntegrationsPage.tsx b/apps/meteor/client/views/account/integrations/AccountIntegrationsPage.tsx index 2c11b7a384c..ce9fad8591f 100644 --- a/apps/meteor/client/views/account/integrations/AccountIntegrationsPage.tsx +++ b/apps/meteor/client/views/account/integrations/AccountIntegrationsPage.tsx @@ -1,6 +1,6 @@ import type { SelectOption } from '@rocket.chat/fuselage'; -import { SelectLegacy, Box, Button, Field, FieldLabel, FieldRow } from '@rocket.chat/fuselage'; -import { useEffectEvent } from '@rocket.chat/fuselage-hooks'; +import { SelectLegacy, Box, Button, Field, FieldLabel, FieldRow, FieldError } from '@rocket.chat/fuselage'; +import { useEffectEvent, useUniqueId } from '@rocket.chat/fuselage-hooks'; import { useToastMessageDispatch, useTranslation } from '@rocket.chat/ui-contexts'; import React, { useMemo } from 'react'; import { useForm, Controller } from 'react-hook-form'; @@ -13,7 +13,11 @@ import { useRemoveWebDAVAccountIntegrationMutation } from './hooks/useRemoveWebD const AccountIntegrationsPage = () => { const { data: webdavAccountIntegrations } = useWebDAVAccountIntegrationsQuery(); - const { handleSubmit, control } = useForm<{ accountSelected: string }>(); + const { + handleSubmit, + control, + formState: { errors }, + } = useForm<{ accountSelected: string }>(); const options: SelectOption[] = useMemo( () => webdavAccountIntegrations?.map(({ _id, ...current }) => [_id, getWebdavServerName(current)]) ?? [], @@ -36,6 +40,8 @@ const AccountIntegrationsPage = () => { removeMutation.mutate({ accountSelected }); }); + const accountSelectedId = useUniqueId(); + return ( <Page> <PageHeader title={t('Integrations')} /> @@ -47,22 +53,18 @@ const AccountIntegrationsPage = () => { <Controller control={control} name='accountSelected' - rules={{ required: true }} - render={({ field: { onChange, value, name, ref } }) => ( - <SelectLegacy - ref={ref} - name={name} - options={options} - onChange={onChange} - value={value} - placeholder={t('Select_an_option')} - /> - )} + rules={{ required: t('Required_field', { field: t('WebDAV_Accounts') }) }} + render={({ field }) => <SelectLegacy {...field} options={options} placeholder={t('Select_an_option')} />} /> <Button type='submit' danger> {t('Remove')} </Button> </FieldRow> + {errors?.accountSelected && ( + <FieldError aria-live='assertive' id={`${accountSelectedId}-error`}> + {errors.accountSelected.message} + </FieldError> + )} </Field> </Box> </PageScrollableContentWithShadow> diff --git a/apps/meteor/client/views/account/profile/AccountProfileForm.tsx b/apps/meteor/client/views/account/profile/AccountProfileForm.tsx index 0de462cd5bd..95398b35204 100644 --- a/apps/meteor/client/views/account/profile/AccountProfileForm.tsx +++ b/apps/meteor/client/views/account/profile/AccountProfileForm.tsx @@ -166,7 +166,9 @@ const AccountProfileForm = (props: AllHTMLAttributes<HTMLFormElement>): ReactEle <Controller control={control} name='name' - rules={{ validate: (name) => (requireName && name === '' ? t('error-the-field-is-required', { field: t('Name') }) : true) }} + rules={{ + required: requireName && t('Required_field', { field: t('Name') }), + }} render={({ field }) => ( <TextInput {...field} @@ -196,7 +198,7 @@ const AccountProfileForm = (props: AllHTMLAttributes<HTMLFormElement>): ReactEle control={control} name='username' rules={{ - required: t('error-the-field-is-required', { field: t('Username') }), + required: t('Required_field', { field: t('Username') }), validate: (username) => validateUsername(username), }} render={({ field }) => ( @@ -305,7 +307,10 @@ const AccountProfileForm = (props: AllHTMLAttributes<HTMLFormElement>): ReactEle <Controller control={control} name='email' - rules={{ validate: { validateEmail: (email) => (validateEmail(email) ? undefined : t('error-invalid-email-address')) } }} + rules={{ + required: t('Required_field', { field: t('Email') }), + validate: { validateEmail: (email) => (validateEmail(email) ? undefined : t('error-invalid-email-address')) }, + }} render={({ field }) => ( <TextInput {...field} diff --git a/apps/meteor/client/views/account/security/AccountSecurityPage.tsx b/apps/meteor/client/views/account/security/AccountSecurityPage.tsx index 06619f0618f..81435536e98 100644 --- a/apps/meteor/client/views/account/security/AccountSecurityPage.tsx +++ b/apps/meteor/client/views/account/security/AccountSecurityPage.tsx @@ -23,7 +23,7 @@ const AccountSecurityPage = (): ReactElement => { const methods = useForm({ defaultValues: passwordDefaultValues, - mode: 'onBlur', + mode: 'all', }); const { reset, diff --git a/apps/meteor/client/views/account/security/ChangePassword.tsx b/apps/meteor/client/views/account/security/ChangePassword.tsx index c70d9e16617..e5cb61e3454 100644 --- a/apps/meteor/client/views/account/security/ChangePassword.tsx +++ b/apps/meteor/client/views/account/security/ChangePassword.tsx @@ -53,13 +53,13 @@ const ChangePassword = (props: AllHTMLAttributes<HTMLFormElement>) => { control={control} name='password' rules={{ + required: t('Required_field', { field: t('New_password') }), validate: () => (password?.length && !passwordIsValid ? t('Password_must_meet_the_complexity_requirements') : true), }} - render={({ field: { onChange, value } }) => ( + render={({ field }) => ( <PasswordInput + {...field} id={passwordId} - onChange={onChange} - value={value} error={errors.password?.message} flexGrow={1} addon={<Icon name='key' size='x20' />} @@ -84,12 +84,14 @@ const ChangePassword = (props: AllHTMLAttributes<HTMLFormElement>) => { <Controller control={control} name='confirmationPassword' - rules={{ validate: (confirmationPassword) => (password !== confirmationPassword ? t('Passwords_do_not_match') : true) }} - render={({ field: { onChange, value } }) => ( + rules={{ + required: t('Required_field', { field: t('Confirm_password') }), + validate: (confirmationPassword) => (password !== confirmationPassword ? t('Passwords_do_not_match') : true), + }} + render={({ field }) => ( <PasswordInput + {...field} id={confirmPasswordId} - onChange={onChange} - value={value} error={errors.confirmationPassword?.message} flexGrow={1} addon={<Icon name='key' size='x20' />} diff --git a/apps/meteor/client/views/account/security/EndToEnd.tsx b/apps/meteor/client/views/account/security/EndToEnd.tsx index 72213f3202b..b2fb982ebb9 100644 --- a/apps/meteor/client/views/account/security/EndToEnd.tsx +++ b/apps/meteor/client/views/account/security/EndToEnd.tsx @@ -1,8 +1,9 @@ import { Box, Margins, PasswordInput, Field, FieldGroup, FieldLabel, FieldRow, FieldError, FieldHint, Button } from '@rocket.chat/fuselage'; +import { useUniqueId } from '@rocket.chat/fuselage-hooks'; import { useToastMessageDispatch, useMethod, useTranslation, useLogout } from '@rocket.chat/ui-contexts'; import type { ComponentProps, ReactElement } from 'react'; import React, { useCallback, useEffect } from 'react'; -import { useForm } from 'react-hook-form'; +import { Controller, useForm } from 'react-hook-form'; import { e2e } from '../../../../app/e2e/client/rocketchat.e2e'; @@ -17,17 +18,17 @@ const EndToEnd = (props: ComponentProps<typeof Box>): ReactElement => { const resetE2eKey = useMethod('e2e.resetOwnE2EKey'); const { - register, handleSubmit, watch, resetField, formState: { errors, isValid }, + control, } = useForm({ defaultValues: { password: '', passwordConfirm: '', }, - mode: 'onChange', + mode: 'all', }); const { password } = watch(); @@ -64,37 +65,71 @@ const EndToEnd = (props: ComponentProps<typeof Box>): ReactElement => { } }, [password, resetField]); + const passwordId = useUniqueId(); + const e2ePasswordExplanationId = useUniqueId(); + const passwordConfirmId = useUniqueId(); + return ( <Box display='flex' flexDirection='column' alignItems='flex-start' mbs={16} {...props}> <Margins blockEnd={8}> <Box fontScale='h4'>{t('E2E_Encryption_Password_Change')}</Box> - <Box dangerouslySetInnerHTML={{ __html: t('E2E_Encryption_Password_Explanation') }} /> + <Box id={e2ePasswordExplanationId} dangerouslySetInnerHTML={{ __html: t('E2E_Encryption_Password_Explanation') }} /> <FieldGroup w='full'> <Field> - <FieldLabel id='New_encryption_password'>{t('New_encryption_password')}</FieldLabel> + <FieldLabel htmlFor={passwordId}>{t('New_encryption_password')}</FieldLabel> <FieldRow> - <PasswordInput - {...register('password', { required: true })} - placeholder={t('New_Password_Placeholder')} - disabled={!keysExist} - aria-labelledby='New_encryption_password' + <Controller + control={control} + name='password' + rules={{ required: t('Required_field', { field: t('New_encryption_password') }) }} + render={({ field }) => ( + <PasswordInput + {...field} + id={passwordId} + error={errors.password?.message} + placeholder={t('New_Password_Placeholder')} + disabled={!keysExist} + aria-describedby={`${e2ePasswordExplanationId} ${passwordId}-hint ${passwordId}-error`} + aria-invalid={errors.password ? 'true' : 'false'} + /> + )} /> </FieldRow> - {!keysExist && <FieldHint>{t('EncryptionKey_Change_Disabled')}</FieldHint>} + {!keysExist && <FieldHint id={`${passwordId}-hint`}>{t('EncryptionKey_Change_Disabled')}</FieldHint>} + {errors?.password && ( + <FieldError aria-live='assertive' id={`${passwordId}-error`}> + {errors.password.message} + </FieldError> + )} </Field> {hasTypedPassword && ( <Field> - <FieldLabel id='Confirm_new_encryption_password'>{t('Confirm_new_encryption_password')}</FieldLabel> - <PasswordInput - error={errors.passwordConfirm?.message} - {...register('passwordConfirm', { - required: true, - validate: (value: string) => (password !== value ? 'Your passwords do no match' : true), - })} - placeholder={t('Confirm_New_Password_Placeholder')} - aria-labelledby='Confirm_new_encryption_password' - /> - {errors.passwordConfirm && <FieldError>{errors.passwordConfirm.message}</FieldError>} + <FieldLabel htmlFor={passwordConfirmId}>{t('Confirm_new_encryption_password')}</FieldLabel> + <FieldRow> + <Controller + control={control} + name='passwordConfirm' + rules={{ + required: t('Required_field', { field: t('Confirm_new_encryption_password') }), + validate: (value: string) => (password !== value ? 'Your passwords do no match' : true), + }} + render={({ field }) => ( + <PasswordInput + {...field} + id={passwordConfirmId} + error={errors.passwordConfirm?.message} + placeholder={t('Confirm_New_Password_Placeholder')} + aria-describedby={`${passwordConfirmId}-error`} + aria-invalid={errors.password ? 'true' : 'false'} + /> + )} + /> + </FieldRow> + {errors.passwordConfirm && ( + <FieldError aria-live='assertive' id={`${passwordConfirmId}-error`}> + {errors.passwordConfirm.message} + </FieldError> + )} </Field> )} </FieldGroup> diff --git a/apps/meteor/client/views/admin/customEmoji/AddCustomEmoji.tsx b/apps/meteor/client/views/admin/customEmoji/AddCustomEmoji.tsx index 59da7950819..f6f52507d33 100644 --- a/apps/meteor/client/views/admin/customEmoji/AddCustomEmoji.tsx +++ b/apps/meteor/client/views/admin/customEmoji/AddCustomEmoji.tsx @@ -1,4 +1,4 @@ -import { Box, Button, ButtonGroup, Margins, TextInput, Field, FieldLabel, FieldRow, FieldError, Icon } from '@rocket.chat/fuselage'; +import { Box, Button, ButtonGroup, Margins, TextInput, Field, FieldLabel, FieldRow, FieldError, IconButton } from '@rocket.chat/fuselage'; import type { ReactElement, ChangeEvent } from 'react'; import React, { useCallback, useState } from 'react'; import { useTranslation } from 'react-i18next'; @@ -82,7 +82,7 @@ const AddCustomEmoji = ({ close, onChange, ...props }: AddCustomEmojiProps): Rea <FieldRow> <TextInput value={name} onChange={handleChangeName} placeholder={t('Name')} /> </FieldRow> - {errors.name && <FieldError>{t('error-the-field-is-required', { field: t('Name') })}</FieldError>} + {errors.name && <FieldError>{t('Required_field', { field: t('Name') })}</FieldError>} </Field> <Field> <FieldLabel>{t('Aliases')}</FieldLabel> @@ -94,12 +94,9 @@ const AddCustomEmoji = ({ close, onChange, ...props }: AddCustomEmojiProps): Rea <Field> <FieldLabel alignSelf='stretch' display='flex' justifyContent='space-between' alignItems='center'> {t('Custom_Emoji')} - {/* FIXME: replace to IconButton */} - <Button square onClick={clickUpload}> - <Icon name='upload' size='x20' /> - </Button> + <IconButton secondary small icon='upload' onClick={clickUpload} /> </FieldLabel> - {errors.emoji && <FieldError>{t('error-the-field-is-required', { field: t('Custom_Emoji') })}</FieldError>} + {errors.emoji && <FieldError>{t('Required_field', { field: t('Custom_Emoji') })}</FieldError>} {newEmojiPreview && ( <Box display='flex' flexDirection='row' mi='neg-x4' justifyContent='center'> <Margins inline={4}> diff --git a/apps/meteor/client/views/admin/customEmoji/EditCustomEmoji.tsx b/apps/meteor/client/views/admin/customEmoji/EditCustomEmoji.tsx index 8f63b2ac7b4..49ee12b69dd 100644 --- a/apps/meteor/client/views/admin/customEmoji/EditCustomEmoji.tsx +++ b/apps/meteor/client/views/admin/customEmoji/EditCustomEmoji.tsx @@ -150,7 +150,7 @@ const EditCustomEmoji = ({ close, onChange, data, ...props }: EditCustomEmojiPro <FieldRow> <TextInput value={name} onChange={handleChangeName} placeholder={t('Name')} /> </FieldRow> - {errors.name && <FieldError>{t('error-the-field-is-required', { field: t('Name') })}</FieldError>} + {errors.name && <FieldError>{t('Required_field', { field: t('Name') })}</FieldError>} </Field> <Field> <FieldLabel>{t('Aliases')}</FieldLabel> diff --git a/apps/meteor/client/views/admin/customSounds/AddCustomSound.tsx b/apps/meteor/client/views/admin/customSounds/AddCustomSound.tsx index 82f668a2d7d..430d05ceaa5 100644 --- a/apps/meteor/client/views/admin/customSounds/AddCustomSound.tsx +++ b/apps/meteor/client/views/admin/customSounds/AddCustomSound.tsx @@ -1,4 +1,4 @@ -import { Field, FieldLabel, FieldRow, TextInput, Box, Icon, Margins, Button, ButtonGroup } from '@rocket.chat/fuselage'; +import { Field, FieldLabel, FieldRow, TextInput, Box, Margins, Button, ButtonGroup, IconButton } from '@rocket.chat/fuselage'; import { useToastMessageDispatch, useMethod, useTranslation } from '@rocket.chat/ui-contexts'; import type { ReactElement, FormEvent } from 'react'; import React, { useState, useCallback } from 'react'; @@ -34,8 +34,8 @@ const AddCustomSound = ({ goToNew, close, onChange, ...props }: AddCustomSoundPr const soundData = createSoundData(soundFile, name); const validation = validate(soundData, soundFile) as Array<Parameters<typeof t>[0]>; - validation.forEach((error) => { - throw new Error(t('error-the-field-is-required', { field: t(error) })); + validation.forEach((invalidFieldName) => { + throw new Error(t('Required_field', { field: t(invalidFieldName) })); }); try { @@ -97,12 +97,9 @@ const AddCustomSound = ({ goToNew, close, onChange, ...props }: AddCustomSoundPr </Field> <Field> <FieldLabel alignSelf='stretch'>{t('Sound_File_mp3')}</FieldLabel> - <Box display='flex' flexDirection='row' mbs='none'> + <Box display='flex' flexDirection='row' mbs='none' alignItems='center'> <Margins inline={4}> - {/* FIXME: replace to IconButton */} - <Button square onClick={clickUpload}> - <Icon name='upload' size='x20' /> - </Button> + <IconButton secondary small icon='upload' onClick={clickUpload} /> {sound?.name || t('None')} </Margins> </Box> @@ -111,7 +108,7 @@ const AddCustomSound = ({ goToNew, close, onChange, ...props }: AddCustomSoundPr <ContextualbarFooter> <ButtonGroup stretch> <Button onClick={close}>{t('Cancel')}</Button> - <Button primary onClick={handleSave} disabled={name === ''}> + <Button primary onClick={handleSave}> {t('Save')} </Button> </ButtonGroup> diff --git a/apps/meteor/client/views/admin/customSounds/EditSound.tsx b/apps/meteor/client/views/admin/customSounds/EditSound.tsx index b358d0bb7c8..1274e9deda3 100644 --- a/apps/meteor/client/views/admin/customSounds/EditSound.tsx +++ b/apps/meteor/client/views/admin/customSounds/EditSound.tsx @@ -76,10 +76,10 @@ function EditSound({ close, onChange, data, ...props }: EditSoundProps): ReactEl } } - validation.forEach((error) => + validation.forEach((invalidFieldName) => dispatchToastMessage({ type: 'error', - message: t('error-the-field-is-required', { field: t(error) }), + message: t('Required_field', { field: t(invalidFieldName) }), }), ); }, @@ -131,9 +131,9 @@ function EditSound({ close, onChange, data, ...props }: EditSoundProps): ReactEl </Field> <Field> <FieldLabel alignSelf='stretch'>{t('Sound_File_mp3')}</FieldLabel> - <Box display='flex' flexDirection='row' mbs='none'> + <Box display='flex' flexDirection='row' mbs='none' alignItems='center'> <Margins inline={4}> - <IconButton icon='upload' secondary onClick={clickUpload} /> + <IconButton secondary small icon='upload' onClick={clickUpload} /> {sound?.name || 'none'} </Margins> </Box> diff --git a/apps/meteor/client/views/admin/customUserStatus/CustomUserStatusForm.tsx b/apps/meteor/client/views/admin/customUserStatus/CustomUserStatusForm.tsx index 78c2618b4c5..07376208aae 100644 --- a/apps/meteor/client/views/admin/customUserStatus/CustomUserStatusForm.tsx +++ b/apps/meteor/client/views/admin/customUserStatus/CustomUserStatusForm.tsx @@ -28,9 +28,10 @@ const CustomUserStatusForm = ({ onClose, onReload, status }: CustomUserStatusFor register, control, handleSubmit, - formState: { isDirty, errors }, + formState: { errors }, } = useForm({ defaultValues: { name: status?.name ?? '', statusType: status?.statusType ?? '' }, + mode: 'all', }); const saveStatus = useEndpoint('POST', _id ? '/v1/custom-user-status.update' : '/v1/custom-user-status.create'); @@ -94,9 +95,9 @@ const CustomUserStatusForm = ({ onClose, onReload, status }: CustomUserStatusFor <Field> <FieldLabel>{t('Name')}</FieldLabel> <FieldRow> - <TextInput {...register('name', { required: true })} placeholder={t('Name')} /> + <TextInput {...register('name', { required: t('Required_field', { field: t('Name') }) })} placeholder={t('Name')} /> </FieldRow> - {errors?.name && <FieldError>{t('error-the-field-is-required', { field: t('Name') })}</FieldError>} + {errors.name && <FieldError>{errors.name.message}</FieldError>} </Field> <Field> <FieldLabel>{t('Presence')}</FieldLabel> @@ -104,18 +105,18 @@ const CustomUserStatusForm = ({ onClose, onReload, status }: CustomUserStatusFor <Controller name='statusType' control={control} - rules={{ required: true }} + rules={{ required: t('Required_field', { field: t('Presence') }) }} render={({ field }): ReactElement => <Select {...field} placeholder={t('Presence')} options={presenceOptions} />} /> </FieldRow> - {errors?.statusType && <FieldError>{t('error-the-field-is-required', { field: t('Presence') })}</FieldError>} + {errors.statusType && <FieldError>{errors.statusType.message}</FieldError>} </Field> </FieldGroup> </ContextualbarScrollableContent> <ContextualbarFooter> <ButtonGroup stretch> <Button onClick={onClose}>{t('Cancel')}</Button> - <Button form={formId} primary type='submit' disabled={!isDirty}> + <Button form={formId} primary type='submit'> {t('Save')} </Button> </ButtonGroup> diff --git a/apps/meteor/client/views/admin/emailInbox/EmailInboxForm.tsx b/apps/meteor/client/views/admin/emailInbox/EmailInboxForm.tsx index c5cbd6f6aa1..3537eddf9cc 100644 --- a/apps/meteor/client/views/admin/emailInbox/EmailInboxForm.tsx +++ b/apps/meteor/client/views/admin/emailInbox/EmailInboxForm.tsx @@ -66,6 +66,7 @@ const EmailInboxForm = ({ inboxData }: { inboxData?: IEmailInboxPayload }): Reac imapSecure: inboxData?.imap.secure ?? false, imapRetries: inboxData?.imap.maxRetries ?? 10, }, + mode: 'all', }); const handleDelete = useMutableCallback(() => { @@ -153,7 +154,7 @@ const EmailInboxForm = ({ inboxData }: { inboxData?: IEmailInboxPayload }): Reac } if (!validateEmail(email)) { - return t('Validate_email_address'); + return t('error-invalid-email-address'); } const { emailInbox } = await emailAlreadyExistsAction({ email }); @@ -211,7 +212,7 @@ const EmailInboxForm = ({ inboxData }: { inboxData?: IEmailInboxPayload }): Reac <Controller name='name' control={control} - rules={{ required: t('error-the-field-is-required', { field: t('Name') }) }} + rules={{ required: t('Required_field', { field: t('Name') }) }} render={({ field }) => ( <TextInput id={nameField} @@ -239,7 +240,7 @@ const EmailInboxForm = ({ inboxData }: { inboxData?: IEmailInboxPayload }): Reac name='email' control={control} rules={{ - required: t('error-the-field-is-required', { field: t('Email') }), + required: t('Required_field', { field: t('Email') }), validate: (value) => checkEmailExists(value), }} render={({ field }) => ( @@ -313,7 +314,7 @@ const EmailInboxForm = ({ inboxData }: { inboxData?: IEmailInboxPayload }): Reac <Controller name='smtpServer' control={control} - rules={{ required: t('error-the-field-is-required', { field: t('Server') }) }} + rules={{ required: t('Required_field', { field: t('Server') }) }} render={({ field }) => ( <TextInput id={smtpServerField} @@ -340,7 +341,7 @@ const EmailInboxForm = ({ inboxData }: { inboxData?: IEmailInboxPayload }): Reac <Controller name='smtpPort' control={control} - rules={{ required: t('error-the-field-is-required', { field: t('Port') }) }} + rules={{ required: t('Required_field', { field: t('Port') }) }} render={({ field }) => ( <NumberInput id={smtpPortField} @@ -367,7 +368,7 @@ const EmailInboxForm = ({ inboxData }: { inboxData?: IEmailInboxPayload }): Reac <Controller name='smtpUsername' control={control} - rules={{ required: t('error-the-field-is-required', { field: t('Username') }) }} + rules={{ required: t('Required_field', { field: t('Username') }) }} render={({ field }) => ( <TextInput id={smtpUsernameField} @@ -394,7 +395,7 @@ const EmailInboxForm = ({ inboxData }: { inboxData?: IEmailInboxPayload }): Reac <Controller name='smtpPassword' control={control} - rules={{ required: t('error-the-field-is-required', { field: t('Password') }) }} + rules={{ required: t('Required_field', { field: t('Password') }) }} render={({ field }) => ( <PasswordInput id={smtpPasswordField} @@ -435,7 +436,7 @@ const EmailInboxForm = ({ inboxData }: { inboxData?: IEmailInboxPayload }): Reac <Controller name='imapServer' control={control} - rules={{ required: t('error-the-field-is-required', { field: t('Server') }) }} + rules={{ required: t('Required_field', { field: t('Server') }) }} render={({ field }) => ( <TextInput id={imapServerField} @@ -462,7 +463,7 @@ const EmailInboxForm = ({ inboxData }: { inboxData?: IEmailInboxPayload }): Reac <Controller name='imapPort' control={control} - rules={{ required: t('error-the-field-is-required', { field: t('Port') }) }} + rules={{ required: t('Required_field', { field: t('Port') }) }} render={({ field }) => ( <NumberInput id={imapPortField} @@ -489,7 +490,7 @@ const EmailInboxForm = ({ inboxData }: { inboxData?: IEmailInboxPayload }): Reac <Controller name='imapUsername' control={control} - rules={{ required: t('error-the-field-is-required', { field: t('Username') }) }} + rules={{ required: t('Required_field', { field: t('Username') }) }} render={({ field }) => ( <TextInput id={imapUsernameField} @@ -516,7 +517,7 @@ const EmailInboxForm = ({ inboxData }: { inboxData?: IEmailInboxPayload }): Reac <Controller name='imapPassword' control={control} - rules={{ required: t('error-the-field-is-required', { field: t('Password') }) }} + rules={{ required: t('Required_field', { field: t('Password') }) }} render={({ field }) => ( <PasswordInput id={imapPasswordField} @@ -543,7 +544,7 @@ const EmailInboxForm = ({ inboxData }: { inboxData?: IEmailInboxPayload }): Reac <Controller name='imapRetries' control={control} - rules={{ required: t('error-the-field-is-required', { field: t('Max_Retry') }) }} + rules={{ required: t('Required_field', { field: t('Max_Retry') }) }} render={({ field }) => ( <NumberInput id={imapRetriesField} diff --git a/apps/meteor/client/views/admin/integrations/incoming/IncomingWebhookForm.tsx b/apps/meteor/client/views/admin/integrations/incoming/IncomingWebhookForm.tsx index bd43c76b213..c463324b42c 100644 --- a/apps/meteor/client/views/admin/integrations/incoming/IncomingWebhookForm.tsx +++ b/apps/meteor/client/views/admin/integrations/incoming/IncomingWebhookForm.tsx @@ -167,7 +167,7 @@ const IncomingWebhookForm = ({ webhookData }: { webhookData?: Serialized<IIncomi <Controller name='channel' control={control} - rules={{ required: t('The_field_is_required', t('Post_to_Channel')) }} + rules={{ required: t('Required_field', { field: t('Post_to_Channel') }) }} render={({ field }) => ( <TextInput id={channelField} @@ -201,7 +201,7 @@ const IncomingWebhookForm = ({ webhookData }: { webhookData?: Serialized<IIncomi <Controller name='username' control={control} - rules={{ required: t('The_field_is_required', t('Post_to_Channel')) }} + rules={{ required: t('Required_field', { field: t('Post_to_Channel') }) }} render={({ field }) => ( <TextInput id={usernameField} diff --git a/apps/meteor/client/views/admin/integrations/outgoing/OutgoingWebhookForm.tsx b/apps/meteor/client/views/admin/integrations/outgoing/OutgoingWebhookForm.tsx index 65c53386e6a..d6cebbc0c65 100644 --- a/apps/meteor/client/views/admin/integrations/outgoing/OutgoingWebhookForm.tsx +++ b/apps/meteor/client/views/admin/integrations/outgoing/OutgoingWebhookForm.tsx @@ -248,7 +248,7 @@ const OutgoingWebhookForm = () => { <Controller name='urls' control={control} - rules={{ required: t('The_field_is_required', t('URLs')) }} + rules={{ required: t('Required_field', { field: t('URLs') }) }} render={({ field }) => ( <TextAreaInput id={urlsField} @@ -286,7 +286,7 @@ const OutgoingWebhookForm = () => { <Controller name='username' control={control} - rules={{ required: t('The_field_is_required', t('Post_as')) }} + rules={{ required: t('Required_field', { field: t('Post_as') }) }} render={({ field }) => ( <TextInput id={usernameField} @@ -373,7 +373,7 @@ const OutgoingWebhookForm = () => { <Controller name='token' control={control} - rules={{ required: t('The_field_is_required', t('Token')) }} + rules={{ required: t('Required_field', { field: t('Token') }) }} render={({ field }) => ( <TextInput id={tokenField} diff --git a/apps/meteor/client/views/admin/mailer/MailerPage.tsx b/apps/meteor/client/views/admin/mailer/MailerPage.tsx index 9f0c8e7627a..19e6424ea9e 100644 --- a/apps/meteor/client/views/admin/mailer/MailerPage.tsx +++ b/apps/meteor/client/views/admin/mailer/MailerPage.tsx @@ -84,7 +84,8 @@ const MailerPage = () => { id={fromEmailId} placeholder={t('Type_your_email')} {...register('fromEmail', { - validate: (fromEmail) => (!validateEmail(fromEmail) ? t('Invalid_email') : true), + required: t('Required_field', { field: t('From') }), + validate: (fromEmail) => (validateEmail(fromEmail) ? undefined : t('error-invalid-email-address')), })} error={errors.fromEmail?.message} aria-required='true' @@ -138,7 +139,7 @@ const MailerPage = () => { <FieldRow> <TextInput id={subjectId} - {...register('subject', { required: t('error-the-field-is-required', { field: t('Subject') }) })} + {...register('subject', { required: t('Required_field', { field: t('Subject') }) })} aria-describedby={`${subjectId}-error`} error={errors.subject?.message} aria-required='true' @@ -159,7 +160,7 @@ const MailerPage = () => { <TextAreaInput id={emailBodyId} {...register('emailBody', { - required: t('error-the-field-is-required', { field: t('Email_body') }), + required: t('Required_field', { field: t('Email_body') }), validate: (emailBody) => (emailBody?.indexOf('[unsubscribe]') === -1 ? t('error-missing-unsubscribe-link') : true), })} rows={10} diff --git a/apps/meteor/client/views/admin/oauthApps/EditOauthApp.tsx b/apps/meteor/client/views/admin/oauthApps/EditOauthApp.tsx index 79d2fbe1114..2d9cb51e848 100644 --- a/apps/meteor/client/views/admin/oauthApps/EditOauthApp.tsx +++ b/apps/meteor/client/views/admin/oauthApps/EditOauthApp.tsx @@ -48,6 +48,7 @@ const EditOauthApp = ({ onChange, data, ...props }: EditOauthAppProps): ReactEle active: data.active, redirectUri: Array.isArray(data.redirectUri) ? data.redirectUri.join('\n') : data.redirectUri, }, + mode: 'all', }); const setModal = useSetModal(); @@ -118,7 +119,7 @@ const EditOauthApp = ({ onChange, data, ...props }: EditOauthAppProps): ReactEle <TextInput {...register('name', { required: true })} /> </FieldRow> <FieldHint>{t('Give_the_application_a_name_This_will_be_seen_by_your_users')}</FieldHint> - {errors?.name && <FieldError>{t('error-the-field-is-required', { field: t('Name') })}</FieldError>} + {errors?.name && <FieldError>{t('Required_field', { field: t('Name') })}</FieldError>} </Field> <Field> <FieldLabel>{t('Redirect_URI')}</FieldLabel> @@ -126,7 +127,7 @@ const EditOauthApp = ({ onChange, data, ...props }: EditOauthAppProps): ReactEle <TextAreaInput rows={5} {...register('redirectUri', { required: true })} /> </FieldRow> <FieldHint>{t('After_OAuth2_authentication_users_will_be_redirected_to_this_URL')}</FieldHint> - {errors?.redirectUri && <FieldError>{t('error-the-field-is-required', { field: t('Redirect_URI') })}</FieldError>} + {errors?.redirectUri && <FieldError>{t('Required_field', { field: t('Redirect_URI') })}</FieldError>} </Field> <Field> <FieldLabel>{t('Client_ID')}</FieldLabel> diff --git a/apps/meteor/client/views/admin/oauthApps/OAuthAddApp.tsx b/apps/meteor/client/views/admin/oauthApps/OAuthAddApp.tsx index 9a66e46e6b3..0982a99ccd9 100644 --- a/apps/meteor/client/views/admin/oauthApps/OAuthAddApp.tsx +++ b/apps/meteor/client/views/admin/oauthApps/OAuthAddApp.tsx @@ -69,10 +69,10 @@ const OAuthAddApp = (): ReactElement => { <Field> <FieldLabel>{t('Application_Name')}</FieldLabel> <FieldRow> - <TextInput {...register('name', { required: true })} /> + <TextInput {...register('name', { required: t('Required_field', { field: t('Name') }) })} /> </FieldRow> <FieldHint>{t('Give_the_application_a_name_This_will_be_seen_by_your_users')}</FieldHint> - {errors?.name && <FieldError>{t('error-the-field-is-required', { field: t('Name') })}</FieldError>} + {errors?.name && <FieldError>{errors.name.message}</FieldError>} </Field> <Field> <FieldLabel>{t('Redirect_URI')}</FieldLabel> @@ -80,7 +80,7 @@ const OAuthAddApp = (): ReactElement => { <TextAreaInput rows={5} {...register('redirectUri', { required: true })} /> </FieldRow> <FieldHint>{t('After_OAuth2_authentication_users_will_be_redirected_to_this_URL')}</FieldHint> - {errors?.redirectUri && <FieldError>{t('error-the-field-is-required', { field: t('Redirect_URI') })}</FieldError>} + {errors?.redirectUri && <FieldError>{t('Required_field', { field: t('Redirect_URI') })}</FieldError>} </Field> <Field> <FieldRow> diff --git a/apps/meteor/client/views/admin/permissions/RoleForm.tsx b/apps/meteor/client/views/admin/permissions/RoleForm.tsx index 59ef726dcb2..bba5dfe95e3 100644 --- a/apps/meteor/client/views/admin/permissions/RoleForm.tsx +++ b/apps/meteor/client/views/admin/permissions/RoleForm.tsx @@ -33,9 +33,13 @@ const RoleForm = ({ className, editing = false, isProtected = false, isDisabled <Field className={className}> <FieldLabel>{t('Role')}</FieldLabel> <FieldRow> - <TextInput disabled={editing || isDisabled} placeholder={t('Role')} {...register('name', { required: true })} /> + <TextInput + disabled={editing || isDisabled} + placeholder={t('Role')} + {...register('name', { required: t('Required_field', { field: t('Role') }) })} + /> </FieldRow> - {errors?.name && <FieldError>{t('error-the-field-is-required', { field: t('Role') })}</FieldError>} + {errors?.name && <FieldError>{errors.name.message}</FieldError>} </Field> <Field className={className}> <FieldLabel>{t('Description')}</FieldLabel> diff --git a/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRolePage.tsx b/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRolePage.tsx index 4bfb2afc81d..3e3c6988e6c 100644 --- a/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRolePage.tsx +++ b/apps/meteor/client/views/admin/permissions/UsersInRole/UsersInRolePage.tsx @@ -70,7 +70,7 @@ const UsersInRolePage = ({ role }: { role: IRole }): ReactElement => { <Controller control={control} name='rid' - rules={{ required: t('error-the-field-is-required', { field: t('Room') }) }} + rules={{ required: t('Required_field', { field: t('Room') }) }} render={({ field: { onChange, value } }) => ( <RoomAutoComplete id={roomFieldId} @@ -98,7 +98,7 @@ const UsersInRolePage = ({ role }: { role: IRole }): ReactElement => { <Controller control={control} name='users' - rules={{ required: t('error-the-field-is-required', { field: t('Users') }) }} + rules={{ required: t('Required_field', { field: t('Users') }) }} render={({ field: { onChange, value } }) => ( <UserAutoCompleteMultiple id={usersFieldId} diff --git a/apps/meteor/client/views/admin/rooms/EditRoom.tsx b/apps/meteor/client/views/admin/rooms/EditRoom.tsx index 1a993979eec..fa40f74cfad 100644 --- a/apps/meteor/client/views/admin/rooms/EditRoom.tsx +++ b/apps/meteor/client/views/admin/rooms/EditRoom.tsx @@ -156,7 +156,7 @@ const EditRoom = ({ room, onChange, onDelete }: EditRoomProps) => { <FieldRow> <Controller name='roomName' - rules={{ required: t('The_field_is_required', t('Name')) }} + rules={{ required: t('Required_field', { field: t('Name') }) }} control={control} render={({ field }) => ( <TextInput diff --git a/apps/meteor/client/views/admin/settings/groups/OAuthGroupPage/CreateOAuthModal.tsx b/apps/meteor/client/views/admin/settings/groups/OAuthGroupPage/CreateOAuthModal.tsx index 146ace1aac8..98357b14938 100644 --- a/apps/meteor/client/views/admin/settings/groups/OAuthGroupPage/CreateOAuthModal.tsx +++ b/apps/meteor/client/views/admin/settings/groups/OAuthGroupPage/CreateOAuthModal.tsx @@ -18,7 +18,7 @@ const CreateOAuthModal = ({ onConfirm, onClose }: CreateOAuthModalProps): ReactE const handleConfirm = (e: SyntheticEvent): void => { e.preventDefault(); if (!text.length) { - setError(t('Name_cant_be_empty')); + setError(t('Required_field', { field: t('Name') })); return; } onConfirm(text); diff --git a/apps/meteor/client/views/admin/users/AdminUserForm.tsx b/apps/meteor/client/views/admin/users/AdminUserForm.tsx index a55cc29eb64..a0ee877af55 100644 --- a/apps/meteor/client/views/admin/users/AdminUserForm.tsx +++ b/apps/meteor/client/views/admin/users/AdminUserForm.tsx @@ -221,8 +221,8 @@ const AdminUserForm = ({ userData, onReload, context, refetchUserFormData, roleD control={control} name='email' rules={{ - required: t('Email_is_required'), - validate: (email) => (validateEmail(email) ? undefined : t('ensure_email_address_valid')), + required: t('Required_field', { field: t('Email') }), + validate: (email) => (validateEmail(email) ? undefined : t('error-invalid-email-address')), }} render={({ field }) => ( <TextInput @@ -286,7 +286,7 @@ const AdminUserForm = ({ userData, onReload, context, refetchUserFormData, roleD <Controller control={control} name='name' - rules={{ required: t('The_field_is_required', t('Name')) }} + rules={{ required: t('Required_field', { field: t('Name') }) }} render={({ field }) => ( <TextInput {...field} @@ -311,7 +311,7 @@ const AdminUserForm = ({ userData, onReload, context, refetchUserFormData, roleD <Controller control={control} name='username' - rules={{ required: t('The_field_is_required', t('Username')) }} + rules={{ required: t('Required_field', { field: t('Username') }) }} render={({ field }) => ( <TextInput {...field} @@ -366,7 +366,7 @@ const AdminUserForm = ({ userData, onReload, context, refetchUserFormData, roleD <Controller control={control} name='roles' - rules={{ required: t('The_field_is_required', t('Roles')) }} + rules={{ required: t('Required_field', { field: t('Roles') }) }} render={({ field: { onChange, value } }) => ( <MultiSelectFiltered id={rolesId} diff --git a/apps/meteor/client/views/admin/users/AdminUserSetRandomPasswordContent.tsx b/apps/meteor/client/views/admin/users/AdminUserSetRandomPasswordContent.tsx index 25d7a52a6ad..034d7d2efb0 100644 --- a/apps/meteor/client/views/admin/users/AdminUserSetRandomPasswordContent.tsx +++ b/apps/meteor/client/views/admin/users/AdminUserSetRandomPasswordContent.tsx @@ -57,7 +57,7 @@ const AdminUserSetRandomPasswordContent = ({ name='password' rules={{ validate: () => (password?.length && !passwordIsValid ? t('Password_must_meet_the_complexity_requirements') : true), - required: isNewUserPage && t('The_field_is_required', t('Password')), + required: isNewUserPage && t('Required_field', { field: t('Password') }), }} render={({ field }) => ( <PasswordInput @@ -83,7 +83,7 @@ const AdminUserSetRandomPasswordContent = ({ control={control} name='passwordConfirmation' rules={{ - required: isNewUserPage && t('The_field_is_required', t('Confirm_password')), + required: isNewUserPage && t('Required_field', { field: t('Confirm_password') }), deps: ['password'], validate: (confirmationPassword) => (password !== confirmationPassword ? t('Invalid_confirm_pass') : true), }} diff --git a/apps/meteor/client/views/audit/components/AuditForm.tsx b/apps/meteor/client/views/audit/components/AuditForm.tsx index f616ebed517..dffaf959f3c 100644 --- a/apps/meteor/client/views/audit/components/AuditForm.tsx +++ b/apps/meteor/client/views/audit/components/AuditForm.tsx @@ -50,7 +50,7 @@ const AuditForm = ({ type, onSubmit, setSelectedRoom }: AuditFormProps) => { <FieldLabel>{t('Date')}</FieldLabel> <FieldRow> <DateRangePicker value={dateRangeField.value} onChange={dateRangeField.onChange} display='flex' flexGrow={1} /> - {dateRangeFieldState.error?.type === 'required' && <FieldError>{t('The_field_is_required', t('Date'))}</FieldError>} + {dateRangeFieldState.error?.type === 'required' && <FieldError>{t('Required_field', { field: t('Date') })}</FieldError>} {dateRangeFieldState.error?.type === 'validate' && <FieldError>{dateRangeFieldState.error.message}</FieldError>} </FieldRow> </Field> diff --git a/apps/meteor/client/views/audit/components/tabs/DirectTab.tsx b/apps/meteor/client/views/audit/components/tabs/DirectTab.tsx index 540f97ebaea..ce2b7e044d3 100644 --- a/apps/meteor/client/views/audit/components/tabs/DirectTab.tsx +++ b/apps/meteor/client/views/audit/components/tabs/DirectTab.tsx @@ -39,7 +39,7 @@ const DirectTab = ({ form: { control } }: DirectTabProps): ReactElement => { placeholder={t('Username_Placeholder')} /> </FieldRow> - {usersFieldState.error?.type === 'required' && <FieldError>{t('The_field_is_required', t('Users'))}</FieldError>} + {usersFieldState.error?.type === 'required' && <FieldError>{t('Required_field', { field: t('Users') })}</FieldError>} {usersFieldState.error?.type === 'validate' && <FieldError>{usersFieldState.error.message}</FieldError>} </Field> ); diff --git a/apps/meteor/client/views/audit/components/tabs/OmnichannelTab.tsx b/apps/meteor/client/views/audit/components/tabs/OmnichannelTab.tsx index 8fbeb800ec2..c756b372488 100644 --- a/apps/meteor/client/views/audit/components/tabs/OmnichannelTab.tsx +++ b/apps/meteor/client/views/audit/components/tabs/OmnichannelTab.tsx @@ -39,7 +39,7 @@ const OmnichannelTab = ({ form: { control } }: OmnichannelTabProps): ReactElemen placeholder={t('Username_Placeholder')} /> </FieldRow> - {visitorFieldState.error?.type === 'required' && <FieldError>{t('The_field_is_required', t('Visitor'))}</FieldError>} + {visitorFieldState.error?.type === 'required' && <FieldError>{t('Required_field', { field: t('Visitor') })}</FieldError>} {visitorFieldState.error?.type === 'validate' && <FieldError>{visitorFieldState.error.message}</FieldError>} </Field> <Field flexShrink={1} marginInlineStart={8}> @@ -48,7 +48,7 @@ const OmnichannelTab = ({ form: { control } }: OmnichannelTabProps): ReactElemen <AutoCompleteAgent error={(() => { if (agentFieldState.error?.type === 'required') { - return t('The_field_is_required', t('Agent')); + return t('Required_field', { field: t('Agent') }); } return agentFieldState.error?.message; @@ -58,7 +58,7 @@ const OmnichannelTab = ({ form: { control } }: OmnichannelTabProps): ReactElemen placeholder={t('Username_Placeholder')} /> </FieldRow> - {agentFieldState.error?.type === 'required' && <FieldError>{t('The_field_is_required', t('Agent'))}</FieldError>} + {agentFieldState.error?.type === 'required' && <FieldError>{t('Required_field', { field: t('Agent') })}</FieldError>} {agentFieldState.error?.type === 'validate' && <FieldError>{agentFieldState.error.message}</FieldError>} </Field> </> diff --git a/apps/meteor/client/views/audit/components/tabs/RoomsTab.tsx b/apps/meteor/client/views/audit/components/tabs/RoomsTab.tsx index bc5de9ae780..d58cc3ccb70 100644 --- a/apps/meteor/client/views/audit/components/tabs/RoomsTab.tsx +++ b/apps/meteor/client/views/audit/components/tabs/RoomsTab.tsx @@ -34,7 +34,7 @@ const RoomsTab = ({ form: { control }, setSelectedRoom }: RoomsTabProps) => { } /> </FieldRow> - {ridFieldState.error?.type === 'required' && <FieldError>{t('The_field_is_required', t('Channel_name'))}</FieldError>} + {ridFieldState.error?.type === 'required' && <FieldError>{t('Required_field', { field: t('Channel_name') })}</FieldError>} {ridFieldState.error?.type === 'validate' && <FieldError>{ridFieldState.error.message}</FieldError>} </Field> ); diff --git a/apps/meteor/client/views/audit/components/tabs/UsersTab.tsx b/apps/meteor/client/views/audit/components/tabs/UsersTab.tsx index 48ff06b1c69..652f7a739a6 100644 --- a/apps/meteor/client/views/audit/components/tabs/UsersTab.tsx +++ b/apps/meteor/client/views/audit/components/tabs/UsersTab.tsx @@ -22,7 +22,7 @@ const UsersTab = ({ form: { control } }: UsersTabProps): ReactElement => { required: true, validate: (value) => { if (value.length < 1) { - return t('The_field_is_required', t('Users')); + return t('Required_field', { field: t('Users') }); } }, }, @@ -39,7 +39,7 @@ const UsersTab = ({ form: { control } }: UsersTabProps): ReactElement => { placeholder={t('Username_Placeholder')} /> </FieldRow> - {usersFieldState.error?.type === 'required' && <FieldError>{t('The_field_is_required', t('Users'))}</FieldError>} + {usersFieldState.error?.type === 'required' && <FieldError>{t('Required_field', { field: t('Users') })}</FieldError>} {usersFieldState.error?.type === 'validate' && <FieldError>{usersFieldState.error.message}</FieldError>} </Field> ); diff --git a/apps/meteor/client/views/omnichannel/customFields/EditCustomFields.tsx b/apps/meteor/client/views/omnichannel/customFields/EditCustomFields.tsx index 2e01ffc802c..7d48b657aae 100644 --- a/apps/meteor/client/views/omnichannel/customFields/EditCustomFields.tsx +++ b/apps/meteor/client/views/omnichannel/customFields/EditCustomFields.tsx @@ -112,7 +112,7 @@ const EditCustomFields = ({ customFieldData }: { customFieldData?: Serialized<IL name='field' control={control} rules={{ - required: t('The_field_is_required', t('Field')), + required: t('Required_field', { field: t('Field') }), validate: (value) => (!/^[0-9a-zA-Z-_]+$/.test(value) ? t('error-invalid-custom-field-name') : undefined), }} render={({ field }) => ( @@ -141,7 +141,7 @@ const EditCustomFields = ({ customFieldData }: { customFieldData?: Serialized<IL <Controller name='label' control={control} - rules={{ required: t('The_field_is_required', t('Label')) }} + rules={{ required: t('Required_field', { field: t('Label') }) }} render={({ field }) => ( <TextInput id={labelField} diff --git a/apps/meteor/client/views/omnichannel/departments/EditDepartment.tsx b/apps/meteor/client/views/omnichannel/departments/EditDepartment.tsx index c1aed1dbe7a..52bb159b2e0 100644 --- a/apps/meteor/client/views/omnichannel/departments/EditDepartment.tsx +++ b/apps/meteor/client/views/omnichannel/departments/EditDepartment.tsx @@ -258,7 +258,7 @@ function EditDepartment({ data, id, title, allowedToForwardData }: EditDepartmen flexGrow={1} error={errors.name?.message as string} placeholder={t('Name')} - {...register('name', { required: t('The_field_is_required', 'name') })} + {...register('name', { required: t('Required_field', { field: t('Name') }) })} /> </FieldRow> {errors.name && ( @@ -296,7 +296,7 @@ function EditDepartment({ data, id, title, allowedToForwardData }: EditDepartmen addon={<Icon name='mail' size='x20' />} placeholder={t('Email')} {...register('email', { - required: t('The_field_is_required', 'email'), + required: t('Required_field', { field: t('Email') }), validate: (email) => validateEmail(email) || t('error-invalid-email-address'), })} aria-describedby={`${emailField}-error`} @@ -442,7 +442,7 @@ function EditDepartment({ data, id, title, allowedToForwardData }: EditDepartmen <Controller control={control} name='chatClosingTags' - rules={{ required: t('The_field_is_required', 'tags') }} + rules={{ required: t('Required_field', 'tags') }} render={({ field: { value, onChange } }) => ( <DepartmentTags id={chatClosingTagsField} diff --git a/apps/meteor/client/views/omnichannel/directory/contacts/contextualBar/ContactNewEdit.tsx b/apps/meteor/client/views/omnichannel/directory/contacts/contextualBar/ContactNewEdit.tsx index 4d025f1f25b..f4d2e8119c3 100644 --- a/apps/meteor/client/views/omnichannel/directory/contacts/contextualBar/ContactNewEdit.tsx +++ b/apps/meteor/client/views/omnichannel/directory/contacts/contextualBar/ContactNewEdit.tsx @@ -122,7 +122,7 @@ const ContactNewEdit = ({ id, data, close }: ContactNewEditProps): ReactElement return !contact || contact._id === id; }; - const validateName = (v: string): string | boolean => (!v.trim() ? t('The_field_is_required', t('Name')) : true); + const validateName = (v: string): string | boolean => (!v.trim() ? t('Required_field', { field: t('Name') }) : true); const handleContactManagerChange = async (userId: string): Promise<void> => { setUserId(userId); diff --git a/apps/meteor/client/views/omnichannel/triggers/EditTrigger.tsx b/apps/meteor/client/views/omnichannel/triggers/EditTrigger.tsx index 60124362e97..6545d859a9f 100644 --- a/apps/meteor/client/views/omnichannel/triggers/EditTrigger.tsx +++ b/apps/meteor/client/views/omnichannel/triggers/EditTrigger.tsx @@ -169,7 +169,7 @@ const EditTrigger = ({ triggerData }: { triggerData?: Serialized<ILivechatTrigge <Controller name='name' control={control} - rules={{ required: t('The_field_is_required', t('Name')) }} + rules={{ required: t('Required_field', { field: t('Name') }) }} render={({ field }) => ( <TextInput {...field} diff --git a/apps/meteor/client/views/omnichannel/triggers/actions/ActionExternalServiceUrl.tsx b/apps/meteor/client/views/omnichannel/triggers/actions/ActionExternalServiceUrl.tsx index 16c98520bc3..6b8f11b9203 100644 --- a/apps/meteor/client/views/omnichannel/triggers/actions/ActionExternalServiceUrl.tsx +++ b/apps/meteor/client/views/omnichannel/triggers/actions/ActionExternalServiceUrl.tsx @@ -69,7 +69,7 @@ export const ActionExternalServiceUrl = ({ control, trigger, index, disabled, .. control={control} defaultValue='' rules={{ - required: t('The_field_is_required', t('External_service_url')), + required: t('Required_field', { field: t('External_service_url') }), validate: testExternalService, deps: serviceTimeoutFieldName, }} diff --git a/apps/meteor/client/views/omnichannel/triggers/actions/ExternalServiceActionForm.tsx b/apps/meteor/client/views/omnichannel/triggers/actions/ExternalServiceActionForm.tsx index c684a2b2744..c53cd1e076a 100644 --- a/apps/meteor/client/views/omnichannel/triggers/actions/ExternalServiceActionForm.tsx +++ b/apps/meteor/client/views/omnichannel/triggers/actions/ExternalServiceActionForm.tsx @@ -46,7 +46,7 @@ export const ExternalServiceActionForm = ({ control, trigger, index, ...props }: name={timeoutFieldName} defaultValue={10000} rules={{ - required: t('The_field_is_required', t('Timeout_in_miliseconds')), + required: t('Required_field', { field: t('Timeout_in_miliseconds') }), min: { value: 0, message: t('Timeout_in_miliseconds_cant_be_negative_number') }, }} render={({ field }) => { diff --git a/apps/meteor/client/views/omnichannel/triggers/actions/SendMessageActionForm.tsx b/apps/meteor/client/views/omnichannel/triggers/actions/SendMessageActionForm.tsx index e267f873135..c48083054e4 100644 --- a/apps/meteor/client/views/omnichannel/triggers/actions/SendMessageActionForm.tsx +++ b/apps/meteor/client/views/omnichannel/triggers/actions/SendMessageActionForm.tsx @@ -34,7 +34,7 @@ export const SendMessageActionForm = ({ control, index, ...props }: SendMessageA control={control} name={name} defaultValue='' - rules={{ required: t('The_field_is_required', t('Message')) }} + rules={{ required: t('Required_field', { field: t('Message') }) }} render={({ field }) => ( <TextAreaInput error={messageError?.message} diff --git a/apps/meteor/client/views/room/contextualBar/Info/EditRoomInfo/EditRoomInfo.tsx b/apps/meteor/client/views/room/contextualBar/Info/EditRoomInfo/EditRoomInfo.tsx index b49ddb845cd..b2aac49927a 100644 --- a/apps/meteor/client/views/room/contextualBar/Info/EditRoomInfo/EditRoomInfo.tsx +++ b/apps/meteor/client/views/room/contextualBar/Info/EditRoomInfo/EditRoomInfo.tsx @@ -256,7 +256,7 @@ const EditRoomInfo = ({ room, onClickClose, onClickBack }: EditRoomInfoProps) => name='roomName' control={control} rules={{ - required: t('error-the-field-is-required', { field: t('Name') }), + required: t('Required_field', { field: t('Name') }), validate: (value) => validateName(value), }} render={({ field }) => ( diff --git a/apps/meteor/client/views/room/contextualBar/UserInfo/ReportUserModal.tsx b/apps/meteor/client/views/room/contextualBar/UserInfo/ReportUserModal.tsx index d62ebb96bef..5f94f7c407b 100644 --- a/apps/meteor/client/views/room/contextualBar/UserInfo/ReportUserModal.tsx +++ b/apps/meteor/client/views/room/contextualBar/UserInfo/ReportUserModal.tsx @@ -1,4 +1,5 @@ import { Box, FieldGroup, Field, FieldLabel, FieldRow, FieldError, TextAreaInput } from '@rocket.chat/fuselage'; +import { useUniqueId } from '@rocket.chat/fuselage-hooks'; import { UserAvatar } from '@rocket.chat/ui-avatar'; import type { ComponentProps } from 'react'; import React from 'react'; @@ -8,14 +9,14 @@ import { useTranslation } from 'react-i18next'; import GenericModal from '../../../../components/GenericModal/GenericModal'; type ReportUserModalProps = { - onConfirm: (description: string) => void; + onConfirm: (reasonForReport: string) => void; onClose: () => void; displayName: string; username: string; }; type ReportUserModalsFields = { - description: string; + reasonForReport: string; }; const ReportUserModal = ({ username, displayName, onConfirm, onClose }: ReportUserModalProps) => { @@ -25,16 +26,18 @@ const ReportUserModal = ({ username, displayName, onConfirm, onClose }: ReportUs formState: { errors }, } = useForm<ReportUserModalsFields>({ defaultValues: { - description: '', + reasonForReport: '', }, }); const { t } = useTranslation(); + const reasonForReportId = useUniqueId(); + return ( <GenericModal wrapperFunction={(props: ComponentProps<typeof Box>) => ( - <Box is='form' onSubmit={handleSubmit(({ description }) => onConfirm(description))} {...props} /> + <Box is='form' onSubmit={handleSubmit(({ reasonForReport }) => onConfirm(reasonForReport))} {...props} /> )} variant='danger' title={t('Report_User')} @@ -44,7 +47,7 @@ const ReportUserModal = ({ username, displayName, onConfirm, onClose }: ReportUs > <FieldGroup> <Field> - <FieldLabel> + <FieldLabel htmlFor={reasonForReportId}> <Box mbe='x12' display='flex' alignItems='center'> <UserAvatar username={username} /> <Box mis='x12' fontScale='p1' fontWeight='700'> @@ -56,12 +59,13 @@ const ReportUserModal = ({ username, displayName, onConfirm, onClose }: ReportUs <TextAreaInput rows={3} placeholder={t('Why_do_you_want_to_report_question_mark')} - {...register('description', { required: t('Please_fill_out_reason_for_report') })} + {...register('reasonForReport', { required: t('Required_field', { field: t('Reason_for_report') }) })} width='full' mbe='x4' + aria-label={t('Reason_for_report')} /> </FieldRow> - {errors.description && <FieldError>{errors.description.message}</FieldError>} + {errors.reasonForReport && <FieldError>{errors.reasonForReport.message}</FieldError>} </Field> </FieldGroup> </GenericModal> diff --git a/apps/meteor/client/views/room/modals/FileUploadModal/FileUploadModal.tsx b/apps/meteor/client/views/room/modals/FileUploadModal/FileUploadModal.tsx index 312776397b3..23135d9b961 100644 --- a/apps/meteor/client/views/room/modals/FileUploadModal/FileUploadModal.tsx +++ b/apps/meteor/client/views/room/modals/FileUploadModal/FileUploadModal.tsx @@ -47,7 +47,7 @@ const FileUploadModal = ({ if (!name) { return dispatchToastMessage({ type: 'error', - message: t('error-the-field-is-required', { field: t('Name') }), + message: t('Required_field', { field: t('Upload_file_name') }), }); } @@ -99,7 +99,7 @@ const FileUploadModal = ({ <FieldRow> <TextInput value={name} onChange={handleName} /> </FieldRow> - {!name && <FieldError>{t('error-the-field-is-required', { field: t('Name') })}</FieldError>} + {!name && <FieldError>{t('Required_field', { field: t('Upload_file_name') })}</FieldError>} </Field> {showDescription && ( <Field> @@ -116,7 +116,7 @@ const FileUploadModal = ({ <Button secondary onClick={onClose}> {t('Cancel')} </Button> - <Button primary type='submit' disabled={!name}> + <Button primary type='submit'> {t('Send')} </Button> </Modal.FooterControllers> diff --git a/apps/meteor/client/views/room/webdav/AddWebdavAccountModal.tsx b/apps/meteor/client/views/room/webdav/AddWebdavAccountModal.tsx index 7e003f79a20..63ebaecc5eb 100644 --- a/apps/meteor/client/views/room/webdav/AddWebdavAccountModal.tsx +++ b/apps/meteor/client/views/room/webdav/AddWebdavAccountModal.tsx @@ -55,23 +55,32 @@ const AddWebdavAccountModal = ({ onClose, onConfirm }: AddWebdavAccountModalProp <Field> <FieldLabel>{t('Webdav_Server_URL')}</FieldLabel> <FieldRow> - <TextInput placeholder={t('Webdav_Server_URL')} {...register('serverURL', { required: true })} /> + <TextInput + placeholder={t('Webdav_Server_URL')} + {...register('serverURL', { required: t('Required_field', { field: t('Webdav_Server_URL') }) })} + /> </FieldRow> - {errors.serverURL && <FieldError>{t('error-the-field-is-required', { field: t('Webdav_Server_URL') })}</FieldError>} + {errors.serverURL && <FieldError>{errors.serverURL.message}</FieldError>} </Field> <Field> <FieldLabel>{t('Username')}</FieldLabel> <FieldRow> - <TextInput placeholder={t('Username')} {...register('username', { required: true })} /> + <TextInput + placeholder={t('Username')} + {...register('username', { required: t('Required_field', { field: t('Username') }) })} + /> </FieldRow> - {errors.username && <FieldError>{t('error-the-field-is-required', { field: t('Username') })}</FieldError>} + {errors.username && <FieldError>{errors.username.message}</FieldError>} </Field> <Field> <FieldLabel>{t('Password')}</FieldLabel> <FieldRow> - <PasswordInput placeholder={t('Password')} {...register('password', { required: true })} /> + <PasswordInput + placeholder={t('Password')} + {...register('password', { required: t('Required_field', { field: t('Password') }) })} + /> </FieldRow> - {errors.password && <FieldError>{t('error-the-field-is-required', { field: t('Password') })}</FieldError>} + {errors.password && <FieldError>{errors.password.message}</FieldError>} </Field> </FieldGroup> </Modal.Content> diff --git a/apps/meteor/client/views/room/webdav/SaveToWebdavModal.tsx b/apps/meteor/client/views/room/webdav/SaveToWebdavModal.tsx index c51763bee73..e64a4e33c1b 100644 --- a/apps/meteor/client/views/room/webdav/SaveToWebdavModal.tsx +++ b/apps/meteor/client/views/room/webdav/SaveToWebdavModal.tsx @@ -30,7 +30,7 @@ const SaveToWebdavModal = ({ onClose, data }: SaveToWebdavModalProps): ReactElem control, handleSubmit, formState: { errors }, - } = useForm<{ accountId: string }>(); + } = useForm<{ accountId: string }>({ mode: 'all' }); const enabled = useSetting<boolean>('Webdav_Integration_Enabled', false); @@ -98,13 +98,13 @@ const SaveToWebdavModal = ({ onClose, data }: SaveToWebdavModalProps): ReactElem <Controller name='accountId' control={control} - rules={{ required: true }} + rules={{ required: t('Required_field', { field: t('Select_a_webdav_server') }) }} render={({ field }): ReactElement => ( <Select {...field} options={accountsOptions} id={accountIdField} placeholder={t('Select_an_option')} /> )} /> </FieldRow> - {errors.accountId && <FieldError>{t('Field_required')}</FieldError>} + {errors.accountId && <FieldError>{errors.accountId.message}</FieldError>} </Field> </FieldGroup> )} diff --git a/apps/meteor/client/views/root/MainLayout/RegisterUsername.tsx b/apps/meteor/client/views/root/MainLayout/RegisterUsername.tsx index bfbbce5d37e..fd1691bcb16 100644 --- a/apps/meteor/client/views/root/MainLayout/RegisterUsername.tsx +++ b/apps/meteor/client/views/root/MainLayout/RegisterUsername.tsx @@ -105,7 +105,10 @@ const RegisterUsername = () => { <Field> <FieldLabel id='username-label'>{t('Username')}</FieldLabel> <FieldRow> - <TextInput aria-labelledby='username-label' {...register('username', { required: t('Username_cant_be_empty') })} /> + <TextInput + aria-labelledby='username-label' + {...register('username', { required: t('Required_field', { field: t('Username') }) })} + /> </FieldRow> {errors.username && ( <FieldError> diff --git a/apps/meteor/tests/e2e/omnichannel/omnichannel-contact-center.spec.ts b/apps/meteor/tests/e2e/omnichannel/omnichannel-contact-center.spec.ts index d0e7b713342..d3c667e20f8 100644 --- a/apps/meteor/tests/e2e/omnichannel/omnichannel-contact-center.spec.ts +++ b/apps/meteor/tests/e2e/omnichannel/omnichannel-contact-center.spec.ts @@ -42,7 +42,7 @@ const URL = { }; const ERROR = { - nameRequired: 'The field Name is required.', + nameRequired: 'Name required', invalidEmail: 'Invalid email address', existingEmail: 'Email already exists', existingPhone: 'Phone already exists', diff --git a/apps/meteor/tests/e2e/omnichannel/omnichannel-departaments.spec.ts b/apps/meteor/tests/e2e/omnichannel/omnichannel-departaments.spec.ts index 872eafdfb2a..023d11de475 100644 --- a/apps/meteor/tests/e2e/omnichannel/omnichannel-departaments.spec.ts +++ b/apps/meteor/tests/e2e/omnichannel/omnichannel-departaments.spec.ts @@ -8,8 +8,8 @@ import { createDepartment, deleteDepartment } from '../utils/omnichannel/departm import { test, expect } from '../utils/test'; const ERROR = { - requiredName: 'The field name is required.', - requiredEmail: 'The field email is required.', + requiredName: 'Name required', + requiredEmail: 'Email required', invalidEmail: 'Invalid email address', }; diff --git a/apps/meteor/tests/e2e/omnichannel/omnichannel-priorities.spec.ts b/apps/meteor/tests/e2e/omnichannel/omnichannel-priorities.spec.ts index 1da1837572e..9ee1d8d99fd 100644 --- a/apps/meteor/tests/e2e/omnichannel/omnichannel-priorities.spec.ts +++ b/apps/meteor/tests/e2e/omnichannel/omnichannel-priorities.spec.ts @@ -8,7 +8,7 @@ import { test, expect } from '../utils/test'; const PRIORITY_NAME = faker.person.firstName(); const ERROR = { - fieldNameRequired: 'The field Name is required.', + fieldNameRequired: 'Name required', }; test.skip(!IS_EE, 'Omnichannel Priorities > Enterprise Only'); diff --git a/apps/meteor/tests/e2e/omnichannel/omnichannel-sla-policies.spec.ts b/apps/meteor/tests/e2e/omnichannel/omnichannel-sla-policies.spec.ts index 35a371c61ba..d5b5544e9ac 100644 --- a/apps/meteor/tests/e2e/omnichannel/omnichannel-sla-policies.spec.ts +++ b/apps/meteor/tests/e2e/omnichannel/omnichannel-sla-policies.spec.ts @@ -6,8 +6,8 @@ import { OmnichannelSlaPolicies } from '../page-objects/omnichannel-sla-policies import { test, expect } from '../utils/test'; const ERROR = { - nameRequired: 'The field Name is required.', - estimatedWaitTimeRequired: 'The field Estimated wait time (time in minutes) is required.', + nameRequired: 'Name required', + estimatedWaitTimeRequired: 'Estimated wait time (time in minutes) required', }; const INITIAL_SLA = { diff --git a/packages/i18n/src/locales/af.i18n.json b/packages/i18n/src/locales/af.i18n.json index 40ab367489b..661360c109b 100644 --- a/packages/i18n/src/locales/af.i18n.json +++ b/packages/i18n/src/locales/af.i18n.json @@ -2367,7 +2367,6 @@ "The_application_name_is_required": "Die aansoek naam is nodig", "The_channel_name_is_required": "Die kanaal naam is nodig", "The_emails_are_being_sent": "Die e-posse word gestuur.", - "The_field_is_required": "Die veld%s is nodig.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Die grootte van die prentjie sal nie werk nie omdat ons ImageMagick of GraphicsMagick nie op u bediener geïnstalleer het nie.", "The_redirectUri_is_required": "Die redirectUri is nodig", "The_server_will_restart_in_s_seconds": "Die bediener sal herbegin in%s sekondes", diff --git a/packages/i18n/src/locales/ar.i18n.json b/packages/i18n/src/locales/ar.i18n.json index d3a86879f71..6d3d406e6c8 100644 --- a/packages/i18n/src/locales/ar.i18n.json +++ b/packages/i18n/src/locales/ar.i18n.json @@ -4126,8 +4126,7 @@ "The_application_name_is_required": "اسم التطبيق مطلوب", "The_channel_name_is_required": "اسم القناة مطلوب", "The_emails_are_being_sent": "يتم إرسال رسائل البريد الإلكتروني.", - "The_empty_room__roomName__will_be_removed_automatically": "ستتم إزالة Ø§Ù„ØºØ±ÙØ© Ø§Ù„ÙØ§Ø±ØºØ© <span style=\"font-weight: bold;\">{{roomName}}</span> will be تلقائيًا.", - "The_field_is_required": "الØÙ‚Ù„ %s مطلوب.", + "The_empty_room__roomName__will_be_removed_automatically": "ستتم إزالة Ø§Ù„ØºØ±ÙØ© Ø§Ù„ÙØ§Ø±ØºØ© <span style=\"font-weight: bold;\">{{roomName}}</span> will be تلقائيًا.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "لن يعمل تغيير ØØ¬Ù… الصورة لأننا لا نستطيع اكتشا٠تثبيت ImageMagick أو GraphicsMagick على الخادم الخاص بك.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "الرسالة عبارة عن مناقشة أنك لن تتمكن من استعادة الرسائل!", "The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again": "تم تعطيل إشعارات الهات٠المØÙ…ول لجميع المستخدمين، انتقل إلى \"المسؤول > منبثق\" لتمكين البوابة المنبثقة مرة أخرى", diff --git a/packages/i18n/src/locales/az.i18n.json b/packages/i18n/src/locales/az.i18n.json index 118be4b3792..7b1c3f48fa1 100644 --- a/packages/i18n/src/locales/az.i18n.json +++ b/packages/i18n/src/locales/az.i18n.json @@ -2366,8 +2366,7 @@ "Thank_you_for_your_feedback": "ÆlaqÉ™ üçün təşəkkür edirik", "The_application_name_is_required": "ÆrizÉ™ adı tÉ™lÉ™b olunur", "The_channel_name_is_required": "Kanal adı tÉ™lÉ™b olunur", - "The_emails_are_being_sent": "E-poçt göndÉ™rilir.", - "The_field_is_required": "%s sahÉ™ tÉ™lÉ™b olunur.", + "The_emails_are_being_sent": "E-poçt göndÉ™rilir.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "ImageMagick vÉ™ ya GraphicsMagick-i serverinizdÉ™ yüklÉ™mÉ™yÉ™cÉ™yimiz üçün ÅŸÉ™kil ölçüsünün iÅŸlÉ™mÉ™yÉ™cÉ™yi.", "The_redirectUri_is_required": "RedirectUri tÉ™lÉ™b olunur", "The_server_will_restart_in_s_seconds": "Server%s saniyÉ™ É™rzindÉ™ yenidÉ™n baÅŸlayacaq", diff --git a/packages/i18n/src/locales/be-BY.i18n.json b/packages/i18n/src/locales/be-BY.i18n.json index 85868846875..daea286edfe 100644 --- a/packages/i18n/src/locales/be-BY.i18n.json +++ b/packages/i18n/src/locales/be-BY.i18n.json @@ -2384,8 +2384,7 @@ "Thank_you_for_your_feedback": "ДзÑкуй за ваш водгук", "The_application_name_is_required": "Ð†Ð¼Ñ Ð¿Ñ€Ñ‹ÐºÐ»Ð°Ð´Ð°Ð½Ð½Ñ Ð¿Ð°Ñ‚Ñ€Ð°Ð±ÑƒÐµÑ†Ñ†Ð°", "The_channel_name_is_required": "Ðазва канала патрабуецца", - "The_emails_are_being_sent": "ЛіÑты былі адпраўленыÑ.", - "The_field_is_required": "Поле %s патрабуецца.", + "The_emails_are_being_sent": "ЛіÑты былі адпраўленыÑ.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "ЗмÑніць памер малюнка не будзе працаваць, таму што мы не можам выÑвіць ImageMagick або GraphicsMagick уÑталÑваны на вашым Ñерверы.", "The_redirectUri_is_required": "RedirectUri патрабуецца", "The_server_will_restart_in_s_seconds": "Сервер будзе перазагружаны у %s Ñекунд", diff --git a/packages/i18n/src/locales/bg.i18n.json b/packages/i18n/src/locales/bg.i18n.json index ac7c8ddcd00..f7bc5ad2cf8 100644 --- a/packages/i18n/src/locales/bg.i18n.json +++ b/packages/i18n/src/locales/bg.i18n.json @@ -2363,8 +2363,7 @@ "Thank_you_for_your_feedback": "Благодарим Ви за обратната връзка", "The_application_name_is_required": "Името на приложението е задължително", "The_channel_name_is_required": "Името на канала е задължително", - "The_emails_are_being_sent": "Изпращат Ñе имейлите.", - "The_field_is_required": "Полето %s е задължително.", + "The_emails_are_being_sent": "Изпращат Ñе имейлите.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Размерът на изображението нÑма да работи, защото не можем да открием ImageMagick или GraphicsMagick, инÑталирани на Ð²Ð°ÑˆÐ¸Ñ Ñървър.", "The_redirectUri_is_required": "Ðеобходимо е пренаÑочването", "The_server_will_restart_in_s_seconds": "Сървъра ще бъде реÑтартиран Ñлед %s Ñекунди", diff --git a/packages/i18n/src/locales/bs.i18n.json b/packages/i18n/src/locales/bs.i18n.json index ebe0b045c41..85e70bbb0ab 100644 --- a/packages/i18n/src/locales/bs.i18n.json +++ b/packages/i18n/src/locales/bs.i18n.json @@ -2360,8 +2360,7 @@ "Thank_you_for_your_feedback": "Hvala vam na povratnim informacijama", "The_application_name_is_required": "Naziv aplikacije je potreban", "The_channel_name_is_required": "Ime sobe je potrebno", - "The_emails_are_being_sent": "E-mailovi su poslani.", - "The_field_is_required": "Polje %s je traženo.", + "The_emails_are_being_sent": "E-mailovi su poslani.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Promjena veliÄine slike neće raditi, jer ne možemo provjeriti da je ImageMagick ili GraphicsMagick instaliran na vaÅ¡em poslužitelju.", "The_redirectUri_is_required": "RedirectUri je potrebno", "The_server_will_restart_in_s_seconds": "Poslužitelj će se ponovno pokrenuti u %s sekundi", diff --git a/packages/i18n/src/locales/ca.i18n.json b/packages/i18n/src/locales/ca.i18n.json index 3f74fc96741..f4d304e0863 100644 --- a/packages/i18n/src/locales/ca.i18n.json +++ b/packages/i18n/src/locales/ca.i18n.json @@ -4044,8 +4044,7 @@ "The_application_name_is_required": "El nom de laplicació és obligatori.", "The_channel_name_is_required": "Es requereix el nom del canal", "The_emails_are_being_sent": "Els missatges de correu-e s'estan enviant.", - "The_empty_room__roomName__will_be_removed_automatically": "La sala buida <span style=\"font-weight: bold;\">{{roomName}}</span> s'eliminarà automà ticament.", - "The_field_is_required": "El camp %s és obligatori.", + "The_empty_room__roomName__will_be_removed_automatically": "La sala buida <span style=\"font-weight: bold;\">{{roomName}}</span> s'eliminarà automà ticament.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "L'ajust de mida de les imatges no funcionarà perquè no podem detectar ni ImageMagick ni GraphicsMagick al servidor.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "El missatge és una discussió, no podrà recuperar els missatges!", "The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again": "Les notificacions mòbils es deshabilitaron per a tots els usuaris, aneu a \"Admin> Push\" per habilitar Push inici novament", diff --git a/packages/i18n/src/locales/cs.i18n.json b/packages/i18n/src/locales/cs.i18n.json index 914d6c35d48..a7422491276 100644 --- a/packages/i18n/src/locales/cs.i18n.json +++ b/packages/i18n/src/locales/cs.i18n.json @@ -3413,8 +3413,7 @@ "The_application_name_is_required": "Název aplikace je vyžadován", "The_channel_name_is_required": "Název mÃstnosti je vyžadován", "The_emails_are_being_sent": "Tyto e-maily jsou odesÃlány.", - "The_empty_room__roomName__will_be_removed_automatically": "Prázdná mÃstnost <span style=\"font-weight: bold;\">{{roomName}}</span> bude automaticky odstranÄ›na.", - "The_field_is_required": "Pole %s je povinné.", + "The_empty_room__roomName__will_be_removed_automatically": "Prázdná mÃstnost <span style=\"font-weight: bold;\">{{roomName}}</span> bude automaticky odstranÄ›na.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Nelze zmÄ›nit velikost obrázku, protože na serveru nebyl nalezen ImageMagick ani GraphicsMagick.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "Zpráva je diskuse, ze které nebudete moci obnovit zprávy!", "The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again": "Mobilnà oznámenà byla deaktivována vÅ¡em uživatelům, v admin sekci \"Notifikace\" znovu aktivujte Push Gateway", diff --git a/packages/i18n/src/locales/cy.i18n.json b/packages/i18n/src/locales/cy.i18n.json index f9c7b4d7ec8..7f63d511201 100644 --- a/packages/i18n/src/locales/cy.i18n.json +++ b/packages/i18n/src/locales/cy.i18n.json @@ -2361,8 +2361,7 @@ "Thank_you_for_your_feedback": "Diolch i chi am eich adborth", "The_application_name_is_required": "Mae angen enw'r cais", "The_channel_name_is_required": "Mae angen enw'r sianel", - "The_emails_are_being_sent": "Mae'r negeseuon e-bost yn cael eu hanfon.", - "The_field_is_required": "Mae'r maes %s yn ofynnol.", + "The_emails_are_being_sent": "Mae'r negeseuon e-bost yn cael eu hanfon.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Ni fydd maint y delwedd yn gweithio oherwydd na allwn ganfod ImageMagick neu GraphicsMagick ar eich gweinydd.", "The_redirectUri_is_required": "Mae angen y redirectUri", "The_server_will_restart_in_s_seconds": "Bydd y gweinydd yn ailgychwyn yn %s eiliad", diff --git a/packages/i18n/src/locales/da.i18n.json b/packages/i18n/src/locales/da.i18n.json index a675ab4843c..2aabbfcd864 100644 --- a/packages/i18n/src/locales/da.i18n.json +++ b/packages/i18n/src/locales/da.i18n.json @@ -3521,8 +3521,7 @@ "The_application_name_is_required": "Ansøgningsnavnet er pÃ¥krævet", "The_channel_name_is_required": "Kanalnavnet er pÃ¥krævet", "The_emails_are_being_sent": "E-mailsne bliver sendt.", - "The_empty_room__roomName__will_be_removed_automatically": "Det tomme rum <span style=\"font-weight: bold;\">{{roomName}}</span> fjernes automatisk.", - "The_field_is_required": "Feltet%s er pÃ¥krævet.", + "The_empty_room__roomName__will_be_removed_automatically": "Det tomme rum <span style=\"font-weight: bold;\">{{roomName}}</span> fjernes automatisk.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Billedforstørrelsen fungerer ikke, fordi vi ikke kan opdage ImageMagick eller GraphicsMagick installeret pÃ¥ din server.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "Meddelelsen er en diskussion og du vil derfor ikke kunne gendanne meddelelserne!", "The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again": "Mobilmeddelelser blev deaktiveret for alle brugere. TilgÃ¥ \"Admin > Push\" for at aktivere Push Gateway igen", diff --git a/packages/i18n/src/locales/de-AT.i18n.json b/packages/i18n/src/locales/de-AT.i18n.json index 0be8030f573..bbe960596a2 100644 --- a/packages/i18n/src/locales/de-AT.i18n.json +++ b/packages/i18n/src/locales/de-AT.i18n.json @@ -2368,8 +2368,7 @@ "Thank_you_for_your_feedback": "Vielen Dank für Ihre Rückmeldung.", "The_application_name_is_required": "Es muss ein Name für diese Anwendung angegeben werden.", "The_channel_name_is_required": "Ein Name für den Raum muss angegeben werden.", - "The_emails_are_being_sent": "Die E-Mails werden gesendet.", - "The_field_is_required": "Das Feld %s ist erforderlich.", + "The_emails_are_being_sent": "Die E-Mails werden gesendet.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Die automatische Skalierung der Bilder funktioniert nicht, da ImageMagick oder GraphicsMagick nicht auf dem Server installiert sind.", "The_redirectUri_is_required": "Es muss eine Weiterleitung-URL angegeben werden.", "The_server_will_restart_in_s_seconds": "Der Server wird in %s Sekunden neu gestartet", diff --git a/packages/i18n/src/locales/de-IN.i18n.json b/packages/i18n/src/locales/de-IN.i18n.json index 41da8fb3c80..edccd128e31 100644 --- a/packages/i18n/src/locales/de-IN.i18n.json +++ b/packages/i18n/src/locales/de-IN.i18n.json @@ -2661,8 +2661,7 @@ "Thank_you_for_your_feedback": "Vielen Dank für Deine Rückmeldung", "The_application_name_is_required": "Es muss ein Name für diese Anwendung angegeben werden", "The_channel_name_is_required": "Ein Name für den Kanal muss angegeben werden", - "The_emails_are_being_sent": "E-Mails werden gesendet", - "The_field_is_required": "Das Feld %s ist erforderlich", + "The_emails_are_being_sent": "E-Mails werden gesendet", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Die automatische Skalierung der Bilder funktioniert nicht, da ImageMagick oder GraphicsMagick nicht auf dem Server installiert sind.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "Diese Nachricht ist eine Diskussion. Wenn Du diese löschst, wirst Du die Nachrichten der Diskussion nicht mehr auffinden können.", "The_peer__peer__does_not_exist": "Der Peer <em>{{peer}}</ em> ist nicht vorhanden.", diff --git a/packages/i18n/src/locales/de.i18n.json b/packages/i18n/src/locales/de.i18n.json index 72963c308e6..59e32901418 100644 --- a/packages/i18n/src/locales/de.i18n.json +++ b/packages/i18n/src/locales/de.i18n.json @@ -4635,8 +4635,7 @@ "The_application_name_is_required": "Es muss ein Name für diese Anwendung angegeben werden", "The_channel_name_is_required": "Ein Name für den Channel muss angegeben werden", "The_emails_are_being_sent": "E-Mails werden gesendet", - "The_empty_room__roomName__will_be_removed_automatically": "Der leere Raum <span style=\"font-weight: bold;\">{{roomName}}</span> wird automatisch entfernt.", - "The_field_is_required": "Das Feld %s ist erforderlich", + "The_empty_room__roomName__will_be_removed_automatically": "Der leere Raum <span style=\"font-weight: bold;\">{{roomName}}</span> wird automatisch entfernt.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Die automatische Skalierung der Bilder funktioniert nicht, da ImageMagick oder GraphicsMagick nicht auf dem Server installiert sind.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "Diese Nachricht ist eine Diskussion. Wenn Sie diese löschen, werden Sie die Nachrichten der Diskussion nicht mehr auffinden können.", "The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again": "Die mobilen Benachrichtigungen wurden für alle Benutzer deaktiviert, wechseln Sie zu \"Admin > Push\", um das Push-Gateway erneut zu aktivieren", diff --git a/packages/i18n/src/locales/el.i18n.json b/packages/i18n/src/locales/el.i18n.json index 731a56695f7..3e335c6638d 100644 --- a/packages/i18n/src/locales/el.i18n.json +++ b/packages/i18n/src/locales/el.i18n.json @@ -2373,8 +2373,7 @@ "Thank_you_for_your_feedback": "ΕυχαÏιστοÏμε για τα σχόλιά σας", "The_application_name_is_required": "Το όνομα της εφαÏμογής απαιτείται", "The_channel_name_is_required": "Το όνομα του ÎºÎ±Î½Î±Î»Î¹Î¿Ï Î±Ï€Î±Î¹Ï„ÎµÎ¯Ï„Î±Î¹", - "The_emails_are_being_sent": "Τα μηνÏματα ηλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Ï„Î±Ï‡Ï…Î´Ïομείου που αποστÎλλονται.", - "The_field_is_required": "Το πεδίο %s απαιτείται.", + "The_emails_are_being_sent": "Τα μηνÏματα ηλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Ï„Î±Ï‡Ï…Î´Ïομείου που αποστÎλλονται.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Το μÎγεθος της εικόνας δεν θα λειτουÏγήσει, επειδή δεν μποÏεί να ανιχνεÏσει ImageMagick ή GraphicsMagick εγκατεστημÎνο στον server σας.", "The_redirectUri_is_required": "Η redirectUri απαιτείται", "The_server_will_restart_in_s_seconds": "Ο διακομιστής θα κάνει επανεκκίνηση στο %s δευτεÏόλεπτα", diff --git a/packages/i18n/src/locales/en.i18n.json b/packages/i18n/src/locales/en.i18n.json index 849582f934b..796e9d0519f 100644 --- a/packages/i18n/src/locales/en.i18n.json +++ b/packages/i18n/src/locales/en.i18n.json @@ -1682,7 +1682,7 @@ "Direct_Message": "Direct message", "Livechat_Facebook_Enabled": "Facebook integration enabled", "Direct_message_creation_description": "Select one or more people to message", - "Direct_message_creation_error": "Please select at least one person", + "Direct_message_creation_error": "Select at least one person", "Direct_message_creation_description_hint": "More people cannot be added once created", "Direct_message_someone": "Direct message someone", "Direct_message_you_have_joined": "You have joined a new direct message with", @@ -4239,7 +4239,6 @@ "Please_fill_all_the_information": "Please fill all the information", "Please_fill_an_email": "Please fill an email", "Please_fill_name_and_email": "Please fill name and email", - "Please_fill_out_reason_for_report": "Please fill out the reason for the report", "Please_select_an_user": "Please select an user", "Please_select_enabled_yes_or_no": "Please select an option for Enabled", "Please_select_visibility": "Please select a visibility", @@ -4390,6 +4389,7 @@ "Real_Time_Monitoring": "Real-time Monitoring", "RealName_Change_Disabled": "Your Rocket.Chat administrator has disabled the changing of names", "Reason_for_joining": "Reason for joining", + "Reason_for_report": "Reason for report", "Reason_To_Join": "Reason to Join", "Receive_alerts": "Receive alerts", "Receive_Group_Mentions": "Receive @all and @here mentions", @@ -4583,6 +4583,7 @@ "Robot_Instructions_File_Content": "Robots.txt File Contents", "Root": "Root", "Required_action": "Required action", + "Required_field": "{{field}} required", "Default_Referrer_Policy": "Default Referrer Policy", "Default_Referrer_Policy_Description": "This controls the 'referrer' header that's sent when requesting embedded media from other servers. For more information, refer to [this link from MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy). Remember, a full page refresh is required for this to take effect", "No_feature_to_preview": "No feature to preview", @@ -5279,7 +5280,6 @@ "The_channel_name_is_required": "The channel name is required", "The_emails_are_being_sent": "The emails are being sent.", "The_empty_room__roomName__will_be_removed_automatically": "The empty room <span style=\"font-weight: bold;\">{{roomName}}</span> will be removed automatically.", - "The_field_is_required": "The field %s is required.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "The image resize will not work because we can not detect ImageMagick or GraphicsMagick installed on your server.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "The message is a discussion you will not be able to recover the messages!", "The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again": "The mobile notifications were disabled to all users, go to \"Admin > Push\" to enable the Push Gateway again", diff --git a/packages/i18n/src/locales/eo.i18n.json b/packages/i18n/src/locales/eo.i18n.json index 1558424c944..907767a7f7d 100644 --- a/packages/i18n/src/locales/eo.i18n.json +++ b/packages/i18n/src/locales/eo.i18n.json @@ -2366,8 +2366,7 @@ "Thank_you_for_your_feedback": "Dankon pro viaj sugestoj", "The_application_name_is_required": "La aplika nomo estas postulita", "The_channel_name_is_required": "La kanala nomo estas postulita", - "The_emails_are_being_sent": "La retpoÅtoj estas senditaj.", - "The_field_is_required": "La kampo%s estas postulita.", + "The_emails_are_being_sent": "La retpoÅtoj estas senditaj.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "La regrandigo de bildoj ne funkcios ĉar ni ne povas detekti ImageMagick aÅ GraphicsMagick instalitan sur via servilo.", "The_redirectUri_is_required": "La redirectUri estas postulita", "The_server_will_restart_in_s_seconds": "La servilo rekomencos en%s sekundoj", diff --git a/packages/i18n/src/locales/es.i18n.json b/packages/i18n/src/locales/es.i18n.json index a276a3c5169..4a690dd7a4b 100644 --- a/packages/i18n/src/locales/es.i18n.json +++ b/packages/i18n/src/locales/es.i18n.json @@ -4109,8 +4109,7 @@ "The_application_name_is_required": "El nombre de la aplicación es obligatorio", "The_channel_name_is_required": "El nombre del canal es obligatorio", "The_emails_are_being_sent": "Los correos electrónicos se están enviando.", - "The_empty_room__roomName__will_be_removed_automatically": "La sala vacÃa <span style=\"font-weight: bold;\">{{roomName}}</span> se eliminará automáticamente.", - "The_field_is_required": "El campo %s es obligatorio.", + "The_empty_room__roomName__will_be_removed_automatically": "La sala vacÃa <span style=\"font-weight: bold;\">{{roomName}}</span> se eliminará automáticamente.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "El ajuste de tamaño de las imágenes no funcionará porque no detectamos ImageMagick o GraphicsMagick instalados en tu servidor.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "El mensaje es una discusión, asà que no podrás recuperar los mensajes", "The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again": "Las notificaciones móviles se han deshabilitado para todos los usuarios. Ve a \"Administración\" > \"Push\" para habilitar puerta de enlace push nuevamente", diff --git a/packages/i18n/src/locales/fa.i18n.json b/packages/i18n/src/locales/fa.i18n.json index c4850a7d30e..b14bc31d773 100644 --- a/packages/i18n/src/locales/fa.i18n.json +++ b/packages/i18n/src/locales/fa.i18n.json @@ -2702,7 +2702,6 @@ "The_application_name_is_required": "نام نرم Ø§ÙØ²Ø§Ø± مورد نیاز است", "The_channel_name_is_required": "نام کانال نیاز است", "The_emails_are_being_sent": "ایمیل در ØØ§Ù„ ارسال.", - "The_field_is_required": "زمینه به %s مورد نیاز است.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "تغییر اندازه تصویر به کار نخواهد کرد زیرا ما نمی توانیم تشخیص ImageMagick را یا GraphicsMagick بر روی سرور خود نصب شده است.", "The_redirectUri_is_required": "redirectUri مورد نیاز است", "The_server_will_restart_in_s_seconds": "سرور در %s ثانیه راه اندازی مجدد خواهد", diff --git a/packages/i18n/src/locales/fi.i18n.json b/packages/i18n/src/locales/fi.i18n.json index 17b5f65eab3..26ba8019aeb 100644 --- a/packages/i18n/src/locales/fi.i18n.json +++ b/packages/i18n/src/locales/fi.i18n.json @@ -4727,8 +4727,7 @@ "The_application_will_be_able_to": "<1>{{appName}}</1> voi:", "The_channel_name_is_required": "Kanavan nimi on pakollinen", "The_emails_are_being_sent": "Sähköpostiviestejä lähetetään.", - "The_empty_room__roomName__will_be_removed_automatically": "Tyhjä huone <span style=\"font-weight: bold;\">{{roomName}}</span> poistetaan automaattisesti.", - "The_field_is_required": "Kenttä %s on pakollinen.", + "The_empty_room__roomName__will_be_removed_automatically": "Tyhjä huone <span style=\"font-weight: bold;\">{{roomName}}</span> poistetaan automaattisesti.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Kuvien koon muuttaminen ei toimi, koska ImageMagickia tai GraphicsMagickia ei havaittu asennettuna palvelimessa.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "Viesti on keskustelu, et voi palauttaa näitä viestejä!", "The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again": "Mobiili-ilmoitukset oli poistettu käytöstä kaikilta käyttäjiltä. Ota Push Gateway uudelleen käyttöön kohdassa \"Admin > Push\"", diff --git a/packages/i18n/src/locales/fr.i18n.json b/packages/i18n/src/locales/fr.i18n.json index 84d33eaf533..80e4504d208 100644 --- a/packages/i18n/src/locales/fr.i18n.json +++ b/packages/i18n/src/locales/fr.i18n.json @@ -4121,8 +4121,7 @@ "The_application_name_is_required": "Le nom de l'application est requis", "The_channel_name_is_required": "Le nom du canal est obligatoire", "The_emails_are_being_sent": "Les e-mails sont en cours d'envoi.", - "The_empty_room__roomName__will_be_removed_automatically": "Le salon vide <span style=\"font-weight: bold;\">{{roomName}}</span> sera supprimé automatiquement.", - "The_field_is_required": "Le champ %s est requis.", + "The_empty_room__roomName__will_be_removed_automatically": "Le salon vide <span style=\"font-weight: bold;\">{{roomName}}</span> sera supprimé automatiquement.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Le redimensionnement de l'image ne fonctionnera pas car nous n'avons pas trouvé ImageMagick ou GraphicsMagick installé sur votre serveur.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "Le message est une discussion, vous ne pourrez pas récupérer les messages.", "The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again": "Les notifications mobiles ont été désactivées pour tous les utilisateurs, accédez à \"Admin > Push\" pour réactiver la passerelle Push", diff --git a/packages/i18n/src/locales/he.i18n.json b/packages/i18n/src/locales/he.i18n.json index 33a4b920b4b..499e2ca41d2 100644 --- a/packages/i18n/src/locales/he.i18n.json +++ b/packages/i18n/src/locales/he.i18n.json @@ -1304,8 +1304,7 @@ "Thank_you_for_your_feedback": "תודה לך על המשוב", "The_application_name_is_required": "×©× ×”×פליקציה × ×“×¨×©", "The_channel_name_is_required": "×©× ×”×¢×¨×•×¥ × ×“×¨×©", - "The_emails_are_being_sent": "×”××™×ž×™×™×œ×™× × ×©×œ×—×™×.", - "The_field_is_required": "השדה %s ×”×•× ×—×•×‘×”.", + "The_emails_are_being_sent": "×”××™×ž×™×™×œ×™× × ×©×œ×—×™×.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "×©×™× ×•×™ גודל ×”×ª×ž×•× ×” ×œ× ×™×¢×‘×•×“ ×›×™ ×× ×—× ×• ×œ× ×™×›×•×œ×™× ×œ×–×”×•×ª ImageMagick ×ו GraphicsMagick מותקן על השרת שלך.", "The_redirectUri_is_required": "RedirectUri × ×“×¨×©", "The_server_will_restart_in_s_seconds": "השרת יפעיל ×ת עצמו מחדש בעוד ", diff --git a/packages/i18n/src/locales/hi-IN.i18n.json b/packages/i18n/src/locales/hi-IN.i18n.json index 1049d8495d8..090e081e83f 100644 --- a/packages/i18n/src/locales/hi-IN.i18n.json +++ b/packages/i18n/src/locales/hi-IN.i18n.json @@ -4010,7 +4010,6 @@ "Please_fill_all_the_information": "कृपया सारी जानकारी à¤à¤°à¥‡à¤‚", "Please_fill_an_email": "कृपया à¤à¤• ईमेल à¤à¤°à¥‡à¤‚", "Please_fill_name_and_email": "कृपया नाम और ईमेल à¤à¤°à¥‡à¤‚", - "Please_fill_out_reason_for_report": "कृपया रिपोरà¥à¤Ÿ का कारण à¤à¤°à¥‡à¤‚", "Please_select_an_user": "कृपया à¤à¤• उपयोगकरà¥à¤¤à¤¾ चà¥à¤¨à¥‡à¤‚", "Please_select_enabled_yes_or_no": "कृपया सकà¥à¤·à¤® के लिठà¤à¤• विकलà¥à¤ª चà¥à¤¨à¥‡à¤‚", "Please_select_visibility": "कृपया à¤à¤• दृशà¥à¤¯à¤¤à¤¾ चà¥à¤¨à¥‡à¤‚", @@ -4988,8 +4987,7 @@ "The_application_will_be_able_to": "<1>{{appName}}</1> यह करने में सकà¥à¤·à¤® होगा:", "The_channel_name_is_required": "चैनल का नाम आवशà¥à¤¯à¤• है", "The_emails_are_being_sent": "ईमेल à¤à¥‡à¤œà¥‡ जा रहे हैं.", - "The_empty_room__roomName__will_be_removed_automatically": "खाली कमरा <span style=\"font-weight: bold;\">{{roomName}}</span> सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ रूप से हटा दिया जाà¤à¤—ा।", - "The_field_is_required": "फ़ीलà¥à¤¡ %s आवशà¥à¤¯à¤• है.", + "The_empty_room__roomName__will_be_removed_automatically": "खाली कमरा <span style=\"font-weight: bold;\">{{roomName}}</span> सà¥à¤µà¤šà¤¾à¤²à¤¿à¤¤ रूप से हटा दिया जाà¤à¤—ा।", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "छवि का आकार बदलना काम नहीं करेगा कà¥à¤¯à¥‹à¤‚कि हम आपके सरà¥à¤µà¤° पर सà¥à¤¥à¤¾à¤ªà¤¿à¤¤ ImageMagick या गà¥à¤°à¤¾à¤«à¤¼à¤¿à¤•à¥à¤¸Magick का पता नहीं लगा सकते हैं।", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "संदेश à¤à¤• चरà¥à¤šà¤¾ है आप संदेशों को पà¥à¤¨à¤°à¥à¤ªà¥à¤°à¤¾à¤ªà¥à¤¤ नहीं कर पाà¤à¤‚गे!", "The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again": "मोबाइल सूचनाà¤à¤‚ सà¤à¥€ उपयोगकरà¥à¤¤à¤¾à¤“ं के लिठअकà¥à¤·à¤® कर दी गई थीं, पà¥à¤¶ गेटवे को फिर से सकà¥à¤·à¤® करने के लिठ\"à¤à¤¡à¤®à¤¿à¤¨ > पà¥à¤¶\" पर जाà¤à¤‚", diff --git a/packages/i18n/src/locales/hr.i18n.json b/packages/i18n/src/locales/hr.i18n.json index 84c4295d520..c9547b1042e 100644 --- a/packages/i18n/src/locales/hr.i18n.json +++ b/packages/i18n/src/locales/hr.i18n.json @@ -2501,7 +2501,6 @@ "The_application_name_is_required": "Naziv aplikacije je potreban", "The_channel_name_is_required": "Ime sobe je potrebno", "The_emails_are_being_sent": "E-mailovi su poslani.", - "The_field_is_required": "Polje %s je traženo.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Promjena veliÄine slike neće raditi, jer ne možemo provjeriti da je ImageMagick ili GraphicsMagick instaliran na vaÅ¡em poslužitelju.", "The_redirectUri_is_required": "RedirectUri je potrebno", "The_server_will_restart_in_s_seconds": "Poslužitelj će se ponovno pokrenuti u %s sekundi", diff --git a/packages/i18n/src/locales/hu.i18n.json b/packages/i18n/src/locales/hu.i18n.json index f7f85536c18..a281e3b2c64 100644 --- a/packages/i18n/src/locales/hu.i18n.json +++ b/packages/i18n/src/locales/hu.i18n.json @@ -4540,8 +4540,7 @@ "The_application_name_is_required": "Az alkalmazás neve kötelezÅ‘", "The_channel_name_is_required": "A csatorna neve kötelezÅ‘", "The_emails_are_being_sent": "Az e-mailek elküldésre kerültek.", - "The_empty_room__roomName__will_be_removed_automatically": "Az üres <span style=\"font-weight: bold;\">{{roomName}}</span> szoba automatikusan el lesz távolÃtva.", - "The_field_is_required": "A(z) %s mezÅ‘ kötelezÅ‘.", + "The_empty_room__roomName__will_be_removed_automatically": "Az üres <span style=\"font-weight: bold;\">{{roomName}}</span> szoba automatikusan el lesz távolÃtva.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "A kép átméretezése nem fog működni, mert nem észlelhetÅ‘ a kiszolgálóra telepÃtett ImageMagick vagy GraphicsMagick program.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "Az üzenet egy megbeszélés, nem lesz képes helyreállÃtani az üzeneteket!", "The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again": "A mobil értesÃtések le lettek tiltva az összes felhasználó számára. Menjen az „Adminisztráció → Leküldés†menüponthoz a leküldéses átjáró újbóli engedélyezéséhez.", diff --git a/packages/i18n/src/locales/id.i18n.json b/packages/i18n/src/locales/id.i18n.json index 1abc2fadd68..6eb8dd75ec6 100644 --- a/packages/i18n/src/locales/id.i18n.json +++ b/packages/i18n/src/locales/id.i18n.json @@ -2374,7 +2374,6 @@ "The_application_name_is_required": "Nama aplikasi diperlukan", "The_channel_name_is_required": "Nama channel diperlukan", "The_emails_are_being_sent": "Email telah dikirim.", - "The_field_is_required": "Kolom %s wajib diisi", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Gambar resize tidak akan bekerja karena kita tidak dapat mendeteksi ImageMagick atau GraphicsMagick diinstal pada server Anda.", "The_redirectUri_is_required": "The redirectUri diperlukan", "The_server_will_restart_in_s_seconds": "server akan restart%s detik", diff --git a/packages/i18n/src/locales/it.i18n.json b/packages/i18n/src/locales/it.i18n.json index 160dbe3cf40..f4bbf05e2fa 100644 --- a/packages/i18n/src/locales/it.i18n.json +++ b/packages/i18n/src/locales/it.i18n.json @@ -2920,8 +2920,7 @@ "Thank_you_for_your_feedback": "Grazie per il tuo feedback", "The_application_name_is_required": "Il nome dell'applicazione è richiesta", "The_channel_name_is_required": "Il nome del canale è richiesto", - "The_emails_are_being_sent": "Le email verranno inviate.", - "The_field_is_required": "Il campo %s è richiesto.", + "The_emails_are_being_sent": "Le email verranno inviate.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Il ridimensionamento dell'immagine non funzionerà se non rileva ImageMagick or GraphicsMagick installato sul tuo server.", "The_redirectUri_is_required": "Il redirectUri é richiesto", "The_server_will_restart_in_s_seconds": "Il server si riavvierà in %s secondi", diff --git a/packages/i18n/src/locales/ja.i18n.json b/packages/i18n/src/locales/ja.i18n.json index 982f9495d91..dcdf00bf7ed 100644 --- a/packages/i18n/src/locales/ja.i18n.json +++ b/packages/i18n/src/locales/ja.i18n.json @@ -4070,8 +4070,7 @@ "The_application_name_is_required": "アプリケーションåã¯å¿…é ˆã§ã™", "The_channel_name_is_required": "ãƒãƒ£ãƒãƒ«åã¯å¿…é ˆã§ã™", "The_emails_are_being_sent": "メールをé€ä¿¡ä¸ã§ã™ã€‚", - "The_empty_room__roomName__will_be_removed_automatically": "空ã®ãƒ«ãƒ¼ãƒ <span style=\"font-weight: bold;\">{{roomName}}</span>ã¯è‡ªå‹•çš„ã«å‰Šé™¤ã•れã¾ã™ã€‚", - "The_field_is_required": "%s é …ç›®ã¯ã€å¿…é ˆã§ã™ã€‚", + "The_empty_room__roomName__will_be_removed_automatically": "空ã®ãƒ«ãƒ¼ãƒ <span style=\"font-weight: bold;\">{{roomName}}</span>ã¯è‡ªå‹•çš„ã«å‰Šé™¤ã•れã¾ã™ã€‚", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "サーãƒãƒ¼ã«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•れãŸImageMagickã¾ãŸã¯GraphicsMagickを検出ã§ããªã„ãŸã‚ã€ç”»åƒã®ã‚µã‚¤ã‚ºå¤‰æ›´ãŒæ©Ÿèƒ½ã—ã¾ã›ã‚“。", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "ã“ã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’復元ã§ããªã„ディスカッションã§ã™ï¼", "The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again": "ã™ã¹ã¦ã®ãƒ¦ãƒ¼ã‚¶ãƒ¼ã«å¯¾ã—ã¦ãƒ¢ãƒã‚¤ãƒ«é€šçŸ¥ãŒç„¡åйã«ãªã‚Šã¾ã—ãŸã€‚[管ç†ï¼½>[プッシュ]ã«ç§»å‹•ã—ã¦ã€ãƒ—ッシュゲートウェイをå†åº¦æœ‰åйã«ã—ã¦ãã ã•ã„", diff --git a/packages/i18n/src/locales/ka-GE.i18n.json b/packages/i18n/src/locales/ka-GE.i18n.json index 3c550632cc4..8f2098ff495 100644 --- a/packages/i18n/src/locales/ka-GE.i18n.json +++ b/packages/i18n/src/locales/ka-GE.i18n.json @@ -3165,7 +3165,6 @@ "The_channel_name_is_required": "სáƒáƒáƒ˜áƒ áƒáƒ áƒáƒ ხის სáƒáƒ®áƒ”ლი", "The_emails_are_being_sent": "ელ.ფáƒáƒ¡áƒ¢áƒ იგზáƒáƒ•ნებáƒ.", "The_empty_room__roomName__will_be_removed_automatically": "ცáƒáƒ იელი áƒáƒ—áƒáƒ®áƒ˜ <span style=\"font-weight: bold;\">{{roomName}}</span> áƒáƒ•ტáƒáƒ›áƒáƒ¢áƒ£áƒ áƒáƒ“ მáƒáƒ˜áƒ®áƒ¡áƒœáƒ”ბáƒ.", - "The_field_is_required": "ველი %s áƒáƒ£áƒªáƒ˜áƒšáƒ”ბელიáƒ.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "სურáƒáƒ—ის ზáƒáƒ›áƒ˜áƒ¡ შეცვლრáƒáƒ იმუშáƒáƒ•ებს, რáƒáƒ“გáƒáƒœ ჩვენ ვერვპáƒáƒ£áƒšáƒáƒ‘თ თქვენს სერვერზე დáƒáƒ§áƒ”ნებულ ImageMagick áƒáƒœ GraphicsMagick-ს.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "შეტყáƒáƒ‘ინებრáƒáƒ ის გáƒáƒœáƒ®áƒ˜áƒšáƒ•რდრთქვენ ვერშეძლებთ შეტყáƒáƒ‘ინებების áƒáƒ¦áƒ“გენáƒáƒ¡", "The_redirectUri_is_required": "გáƒáƒ“áƒáƒ›áƒ˜áƒ¡áƒáƒ›áƒáƒ თების ლინკირსáƒáƒáƒ˜áƒ áƒ", diff --git a/packages/i18n/src/locales/km.i18n.json b/packages/i18n/src/locales/km.i18n.json index 997ee66a00e..8927c7f3335 100644 --- a/packages/i18n/src/locales/km.i18n.json +++ b/packages/i18n/src/locales/km.i18n.json @@ -2691,8 +2691,7 @@ "Thank_you_for_your_feedback": "សូមអរគុណសម្រាប់មážáž·ážšáž”ស់អ្នក", "The_application_name_is_required": "ឈ្មោះកម្មវិធីនáŸáŸ‡áž‚ឺážáŸ’រូវបានទាមទារ", "The_channel_name_is_required": "ឈ្មោះឆានែលនáŸáŸ‡áž‚ឺážáŸ’រូវបានទាមទារ", - "The_emails_are_being_sent": "áž“áŸáŸ‡â€‹áž¢áŸŠáž¸áž˜áŸ‚ល​ážáŸ’រូវ​បាន​បញ្ជូន​។", - "The_field_is_required": "ចន្លោះ %s ážáŸ’រូវ​បំពáŸáž‰", + "The_emails_are_being_sent": "áž“áŸáŸ‡â€‹áž¢áŸŠáž¸áž˜áŸ‚ល​ážáŸ’រូវ​បាន​បញ្ជូន​។", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "ប្ដូរទំហំរូបភាពនឹងមិនធ្វើការដោយសារážáŸ‚យើងមិនអាចរកឃើញ ImageMagick ឬ GraphicsMagick ដែលបានដំឡើងនៅលើម៉ាស៊ីនបម្រើរបស់អ្នក។", "The_redirectUri_is_required": "redirectUri áž“áŸáŸ‡áž‚ឺážáŸ’រូវបានទាមទារ", "The_server_will_restart_in_s_seconds": "ម៉ាស៊ីនបម្រើនáŸáŸ‡áž“ឹងចាប់ផ្ដើមឡើងវិញនៅក្នុង %s វិនាទី", diff --git a/packages/i18n/src/locales/ko.i18n.json b/packages/i18n/src/locales/ko.i18n.json index ad5818ab9f8..5df1f0db78b 100644 --- a/packages/i18n/src/locales/ko.i18n.json +++ b/packages/i18n/src/locales/ko.i18n.json @@ -3470,8 +3470,7 @@ "The_application_name_is_required": "ì‘ìš©í”„ë¡œê·¸ëž¨ëª…ì´ í•„ìš”í•©ë‹ˆë‹¤.", "The_channel_name_is_required": "채ë„ëª…ì´ í•„ìš”í•©ë‹ˆë‹¤.", "The_emails_are_being_sent": "ì´ë©”ì¼ì„ ì „ì†¡ 중입니다.", - "The_empty_room__roomName__will_be_removed_automatically": "사용하지 않는 대화방 <span style=\"font-weight: bold;\">{{roomName}}</span>ì€ ìžë™ìœ¼ë¡œ ì œê±°ë©ë‹ˆë‹¤.", - "The_field_is_required": "%s 필드는 필수 í•목입니다.", + "The_empty_room__roomName__will_be_removed_automatically": "사용하지 않는 대화방 <span style=\"font-weight: bold;\">{{roomName}}</span>ì€ ìžë™ìœ¼ë¡œ ì œê±°ë©ë‹ˆë‹¤.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "ì„œë²„ì— ImageMagick ë˜ëŠ” GraphicMagickì´ ì„¤ì¹˜ë˜ì–´ 있지 않아 ì´ë¯¸ì§€ í¬ê¸°ë¥¼ ìž¬ì¡°ì •í• ìˆ˜ 없습니다.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "ê·¸ 메시지는 메시지 복구가 불가능한 í† ë¡ ìž…ë‹ˆë‹¤.", "The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again": "ëª¨ë°”ì¼ ì•Œë¦¼ì´ ëª¨ë“ ì‚¬ìš©ìžì—게 사용 중지ë˜ì—ˆìŠµë‹ˆë‹¤. \"관리ìž> 푸시\"로 ì´ë™í•˜ì—¬ 푸시 게ì´íŠ¸ì›¨ì´ë¥¼ 다시 사용으로 변경하ì‹ì‹œì˜¤.", diff --git a/packages/i18n/src/locales/ku.i18n.json b/packages/i18n/src/locales/ku.i18n.json index 9b4a4d1aaeb..a4c5e7108a2 100644 --- a/packages/i18n/src/locales/ku.i18n.json +++ b/packages/i18n/src/locales/ku.i18n.json @@ -2360,8 +2360,7 @@ "Thank_you_for_your_feedback": "Spas ji bo we Deng xwe", "The_application_name_is_required": "Navê sepanê pêwîst e", "The_channel_name_is_required": "The name kanala pêwîst e", - "The_emails_are_being_sent": "Mailan têne ÅŸandin.", - "The_field_is_required": "Li qadê %s tê xwestin.", + "The_emails_are_being_sent": "Mailan têne ÅŸandin.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Mezinahiyê image xebata wê ne ji ber ku em nikarin bi durustî .Pêşîn an GraphicsMagick li ser server te sazkirin.", "The_redirectUri_is_required": "The redirectUri pêwîst e", "The_server_will_restart_in_s_seconds": "ڕاژەکارەکە Ù‡Û•Úµ ئەبێتەوە Ù„Û• %s چرکەدا", diff --git a/packages/i18n/src/locales/lo.i18n.json b/packages/i18n/src/locales/lo.i18n.json index d427b251e86..547e9274a6f 100644 --- a/packages/i18n/src/locales/lo.i18n.json +++ b/packages/i18n/src/locales/lo.i18n.json @@ -2403,8 +2403,7 @@ "Thank_you_for_your_feedback": "ຂà»â€‹àº‚àºàºšâ€‹à»ƒàºˆâ€‹àº—່ານ​ສà»àº²â€‹àº¥àº±àºšâ€‹àºàº²àº™â€‹àº•à»àº²â€‹àº™àº´â€‹àº•ິ​ຊົມ​ຂàºàº‡â€‹àº—່ານ​", "The_application_name_is_required": "ຊື່ຄà»àº²àº®à»‰àºàº‡àºªàº°àº«àº¡àº±àºà»àº¡à»ˆàº™àºˆà»àº²à»€àº›àº±àº™àº•້àºàº‡", "The_channel_name_is_required": "ຊື່ຊ່àºàº‡àº—າງàºàº²àº™àºˆà»àº²à»€àº›àº±àº™àº•້àºàº‡", - "The_emails_are_being_sent": "àºàºµà»€àº¡àº§à»„ດ້ຖືàºàºªàº»à»ˆàº‡à»„ປà»àº¥à»‰àº§.", - "The_field_is_required": "ພາàºàºªàº°àº«àº™àº²àº¡ %s à»àº¡à»ˆàº™àº•້àºàº‡àºàº²àº™.", + "The_emails_are_being_sent": "àºàºµà»€àº¡àº§à»„ດ້ຖືàºàºªàº»à»ˆàº‡à»„ປà»àº¥à»‰àº§.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "àºàº²àº™ resize ຮູບພາບຈະບà»à»ˆà»€àº®àº±àº”ວຽàºà»€àºžàº²àº°àº§à»ˆàº²àºžàº§àºà»€àº®àº»àº²àºšà»à»ˆàºªàº²àº¡àº²àº”àºàº§àº”ພົບ ImageMagick ຫຼື GraphicsMagick àºàº²àº™àº•ິດຕັ້ງໃນເຄື່àºàº‡à»àº¡à»ˆàº‚່າàºàº‚àºàº‡àº—່ານ.", "The_redirectUri_is_required": "The redirectUri ຈà»àº²à»€àº›àº±àº™àº•້àºàº‡àº¡àºµ", "The_server_will_restart_in_s_seconds": "ເຄື່àºàº‡à»àº¡à»ˆàº‚່າàºàº‚àºàº‡àºˆàº°à»€àº¥àºµà»ˆàº¡àºàº²àº™à»€àº®àº±àº”ວຽàºà»ƒàº™ %s ວິນາທີ", diff --git a/packages/i18n/src/locales/lt.i18n.json b/packages/i18n/src/locales/lt.i18n.json index 88fb66dc554..7408a8eeb76 100644 --- a/packages/i18n/src/locales/lt.i18n.json +++ b/packages/i18n/src/locales/lt.i18n.json @@ -2421,8 +2421,7 @@ "Thank_you_for_your_feedback": "DÄ—kojame už jÅ«sų atsiliepimus", "The_application_name_is_required": "BÅ«tina nurodyti programos pavadinimÄ…", "The_channel_name_is_required": "Reikalingas kanalo pavadinimas", - "The_emails_are_being_sent": "El. LaiÅ¡kai siunÄiami.", - "The_field_is_required": "Laukas%s reikalingas.", + "The_emails_are_being_sent": "El. LaiÅ¡kai siunÄiami.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Vaizdo dydžio keitimas neveiks, nes negalime nustatyti serverio \"ImageMagick\" ar \"GraphicsMagick\".", "The_redirectUri_is_required": "Reikia redirectUri", "The_server_will_restart_in_s_seconds": "Serveris bus paleistas iÅ¡ naujo po%s sekundžių", diff --git a/packages/i18n/src/locales/lv.i18n.json b/packages/i18n/src/locales/lv.i18n.json index 544eac3dbeb..a9e38267b01 100644 --- a/packages/i18n/src/locales/lv.i18n.json +++ b/packages/i18n/src/locales/lv.i18n.json @@ -2375,8 +2375,7 @@ "Thank_you_for_your_feedback": "Paldies par jÅ«su atsauksmÄ“m", "The_application_name_is_required": "Pieteikuma nosaukums ir nepiecieÅ¡ams", "The_channel_name_is_required": "Ir nepiecieÅ¡ams kanÄla nosaukums", - "The_emails_are_being_sent": "E-pasta ziņojumi tiek nosÅ«tÄ«ti.", - "The_field_is_required": "NepiecieÅ¡ams %s lauks.", + "The_emails_are_being_sent": "E-pasta ziņojumi tiek nosÅ«tÄ«ti.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "AttÄ“la izmÄ“ru maiņa nestrÄdÄs, jo mÄ“s nevaram atrast jÅ«su serverÄ« uzinstalÄ“tu ImageMagick vai GraphicsMagick.", "The_redirectUri_is_required": "NepiecieÅ¡ams RedirectUri ", "The_server_will_restart_in_s_seconds": "Serveris restartÄ“sies pÄ“c %s sekundÄ“m", diff --git a/packages/i18n/src/locales/mn.i18n.json b/packages/i18n/src/locales/mn.i18n.json index 60e18063b49..407c86309db 100644 --- a/packages/i18n/src/locales/mn.i18n.json +++ b/packages/i18n/src/locales/mn.i18n.json @@ -2361,8 +2361,7 @@ "Thank_you_for_your_feedback": "Таны Ñанал Ñ…Ò¯ÑÑлтÑнд баÑрлалаа", "The_application_name_is_required": "Програмын нÑÑ€ шаардлагатай", "The_channel_name_is_required": "Сувгийн нÑÑ€ шаардлагатай", - "The_emails_are_being_sent": "Ð-мÑйл илгÑÑж байна.", - "The_field_is_required": "%s талбар шаардлагатай.", + "The_emails_are_being_sent": "Ð-мÑйл илгÑÑж байна.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "ImageMagick ÑÑвÑл GraphicsMagick-г Ñервер дÑÑÑ€ÑÑ Ñуулгаж чаддаггүй болохоор зургийн Ñ…ÑмжÑÑг өөрчлөх боломжгүй.", "The_redirectUri_is_required": "RedirectUri шаардлагатай", "The_server_will_restart_in_s_seconds": "Сервер%s Ñекундын дараа дахин ÑхлүүлÑÑ… болно", diff --git a/packages/i18n/src/locales/ms-MY.i18n.json b/packages/i18n/src/locales/ms-MY.i18n.json index 524260560a3..9e203c69baf 100644 --- a/packages/i18n/src/locales/ms-MY.i18n.json +++ b/packages/i18n/src/locales/ms-MY.i18n.json @@ -2372,8 +2372,7 @@ "Thank_you_for_your_feedback": "Terima kasih atas maklum balas anda", "The_application_name_is_required": "Nama permohonan diperlukan", "The_channel_name_is_required": "Nama saluran diperlukan", - "The_emails_are_being_sent": "E-mel yang sedang dihantar.", - "The_field_is_required": "Medan ini %s diperlukan", + "The_emails_are_being_sent": "E-mel yang sedang dihantar.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "The saiz semula imej tidak akan berfungsi kerana kita tidak dapat mengesan ImageMagick atau GraphicsMagick dipasang pada pelayan anda.", "The_redirectUri_is_required": "The redirectUri diperlukan", "The_server_will_restart_in_s_seconds": "Server akan memulakan semula dalam %s saat", diff --git a/packages/i18n/src/locales/nl.i18n.json b/packages/i18n/src/locales/nl.i18n.json index bf7f7ffb780..9796181ae1b 100644 --- a/packages/i18n/src/locales/nl.i18n.json +++ b/packages/i18n/src/locales/nl.i18n.json @@ -4109,8 +4109,7 @@ "The_application_name_is_required": "De naam van de applicatie is vereist", "The_channel_name_is_required": "De naam van het kanaal is vereist", "The_emails_are_being_sent": "De e-mails worden verzonden.", - "The_empty_room__roomName__will_be_removed_automatically": "De lege kamer <span style=\"font-weight: bold;\">{{roomName}}</span> wordt automatisch verwijderd.", - "The_field_is_required": "Het veld %s is vereist.", + "The_empty_room__roomName__will_be_removed_automatically": "De lege kamer <span style=\"font-weight: bold;\">{{roomName}}</span> wordt automatisch verwijderd.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Het wijzigen van de grootte van de afbeelding zal niet werken omdat we ImageMagick of GraphicsMagick niet kunnen detecteren die op uw server zijn geïnstalleerd.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "Het bericht is een discussie, u kunt de berichten niet herstellen!", "The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again": "De mobiele meldingen werden voor alle gebruikers uitgeschakeld, ga naar \"Admin > Push\" om de Push Gateway weer in te schakelen", diff --git a/packages/i18n/src/locales/no.i18n.json b/packages/i18n/src/locales/no.i18n.json index 5bdbf2fb89c..a89485a5f6c 100644 --- a/packages/i18n/src/locales/no.i18n.json +++ b/packages/i18n/src/locales/no.i18n.json @@ -3962,8 +3962,7 @@ "The_application_name_is_required": "Programnavnet kreves", "The_application_will_be_able_to": "<1>{{appName}}</1> vil kunne:", "The_channel_name_is_required": "Kanalnavnet er pÃ¥krevd", - "The_emails_are_being_sent": "E-postene blir sendt.", - "The_field_is_required": "Feltet%s er pÃ¥krevd.", + "The_emails_are_being_sent": "E-postene blir sendt.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Bildestørrelsen fungerer ikke fordi vi ikke kan oppdage ImageMagick eller GraphicsMagick installert pÃ¥ serveren din.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "Meldingen er en diskusjon, du vil ikke kunne gjenopprette meldingene!", "The_necessary_browser_permissions_for_location_sharing_are_not_granted": "De nødvendige nettlesertillatelsene for posisjonsdeling ble ikke gitt", diff --git a/packages/i18n/src/locales/pl.i18n.json b/packages/i18n/src/locales/pl.i18n.json index b7d60c54ee2..e909624ad4a 100644 --- a/packages/i18n/src/locales/pl.i18n.json +++ b/packages/i18n/src/locales/pl.i18n.json @@ -4543,8 +4543,7 @@ "The_application_name_is_required": "Wymagana jest nazwa aplikacji", "The_channel_name_is_required": "Wymagana jest nazwa pokoju", "The_emails_are_being_sent": "WiadomoÅ›ci e-mail sÄ… wysyÅ‚ane.", - "The_empty_room__roomName__will_be_removed_automatically": "Pusty pokój <span style=\"font-weight: bold;\">{{roomName}}</span> zostanie automatycznie usuniÄ™ty.", - "The_field_is_required": "Pole %s jest wymagane.", + "The_empty_room__roomName__will_be_removed_automatically": "Pusty pokój <span style=\"font-weight: bold;\">{{roomName}}</span> zostanie automatycznie usuniÄ™ty.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Zmiana rozmiaru obrazu nie bÄ™dzie dziaÅ‚ać, ponieważ nie możemy wykryć zainstalowanego ImageMagick lub GraphicsMagick na serwerze.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "Wiadomość jest dyskusjÄ…, której nie bÄ™dziesz w stanie odzyskać!", "The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again": "Powiadomienia mobilne zostaÅ‚y wyłączone dla wszystkich użytkowników, idź do \"Admin>Push\" aby uruchomić ponownie bramÄ™ push", diff --git a/packages/i18n/src/locales/pt-BR.i18n.json b/packages/i18n/src/locales/pt-BR.i18n.json index dc62318cb23..b2575a19067 100644 --- a/packages/i18n/src/locales/pt-BR.i18n.json +++ b/packages/i18n/src/locales/pt-BR.i18n.json @@ -4223,8 +4223,7 @@ "The_application_name_is_required": "O nome do aplicativo é obrigatório", "The_channel_name_is_required": "O nome do canal é obrigatório", "The_emails_are_being_sent": "Os e-mails estão sendo enviados.", - "The_empty_room__roomName__will_be_removed_automatically": "A sala vazia <span style=\"font-weight: bold;\">{{roomName}}</span> será removida automaticamente.", - "The_field_is_required": "O campo %s é obrigatório.", + "The_empty_room__roomName__will_be_removed_automatically": "A sala vazia <span style=\"font-weight: bold;\">{{roomName}}</span> será removida automaticamente.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "O redimensionamento da imagem não vai funcionar porque não conseguimos detectar se o ImageMagick ou GraphicsMagick está instalado no seu servidor.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "A mensagem é uma discussão, você não poderá recuperar as mensagens!", "The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again": "As notificações móveis foram desativadas para todos os usuários, vá para \"Admin > Push\" para ativar o Push Gateway novamente", diff --git a/packages/i18n/src/locales/pt.i18n.json b/packages/i18n/src/locales/pt.i18n.json index 8f4acc81dbd..84d840b92a5 100644 --- a/packages/i18n/src/locales/pt.i18n.json +++ b/packages/i18n/src/locales/pt.i18n.json @@ -2729,8 +2729,7 @@ "Thank_you_for_your_feedback": "Obrigado pelo sua opinião", "The_application_name_is_required": "O nome da aplicação é obrigatório", "The_channel_name_is_required": "O nome do canal é obrigatório", - "The_emails_are_being_sent": "Os emails estão a ser enviados.", - "The_field_is_required": "O campo %s é obrigatório.", + "The_emails_are_being_sent": "Os emails estão a ser enviados.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "O redimensionamento da imagem não vai funcionar porque não conseguimos detectar ImageMagick ou GraphicsMagick instalado no seu servidor.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "A mensagem é uma discussão, não poderá recuperar as mensagens!", "The_peer__peer__does_not_exist": "O par <em>{{peer}}</em> não existe.", diff --git a/packages/i18n/src/locales/ro.i18n.json b/packages/i18n/src/locales/ro.i18n.json index aefc4d07065..7266b188338 100644 --- a/packages/i18n/src/locales/ro.i18n.json +++ b/packages/i18n/src/locales/ro.i18n.json @@ -2364,8 +2364,7 @@ "Thank_you_for_your_feedback": "Vă mulÈ›umim pentru feedback", "The_application_name_is_required": "Este nevoie de numele aplicaÈ›iei", "The_channel_name_is_required": "Este nevoie de numele canalului", - "The_emails_are_being_sent": "E-mail-urile sunt trimise.", - "The_field_is_required": "Este nevoie de câmpul %s.", + "The_emails_are_being_sent": "E-mail-urile sunt trimise.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Redimensionarea imaginii nu va funcÈ›iona, deoarece nu putem detecta ImageMagick sau GraphicsMagick instalat pe server.", "The_redirectUri_is_required": "URI de redirectare este necesar", "The_server_will_restart_in_s_seconds": "Serverul va reporni în %s secunde", diff --git a/packages/i18n/src/locales/ru.i18n.json b/packages/i18n/src/locales/ru.i18n.json index 1829f7f2eb0..6edc8030513 100644 --- a/packages/i18n/src/locales/ru.i18n.json +++ b/packages/i18n/src/locales/ru.i18n.json @@ -4294,8 +4294,7 @@ "The_application_name_is_required": "ТребуетÑÑ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ приложениÑ", "The_channel_name_is_required": "ТребуетÑÑ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ канала", "The_emails_are_being_sent": "ПиÑьма отправлÑÑŽÑ‚ÑÑ.", - "The_empty_room__roomName__will_be_removed_automatically": "ПуÑтой чат <span style=\"font-weight: bold;\">{{roomName}}</span> будет удален автоматичеÑки.", - "The_field_is_required": "Поле %s обÑзательно.", + "The_empty_room__roomName__will_be_removed_automatically": "ПуÑтой чат <span style=\"font-weight: bold;\">{{roomName}}</span> будет удален автоматичеÑки.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Изменить размер Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð½Ðµ получитÑÑ, потому что мы не можем обнаружить уÑтановленные на вашем Ñервере ImageMagick или GraphicsMagick.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "Сообщение обÑуждениÑ, вы не Ñможете воÑÑтановить ÑообщениÑ!", "The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again": "Мобильные ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð±Ñ‹Ð»Ð¸ отключены Ð´Ð»Ñ Ð²Ñех пользователей, перейдите в \"Admin > Push\", чтобы Ñнова включить Push Gateway", diff --git a/packages/i18n/src/locales/sk-SK.i18n.json b/packages/i18n/src/locales/sk-SK.i18n.json index f5bc7bfcbc5..d6cf085ad97 100644 --- a/packages/i18n/src/locales/sk-SK.i18n.json +++ b/packages/i18n/src/locales/sk-SK.i18n.json @@ -2375,8 +2375,7 @@ "Thank_you_for_your_feedback": "ÄŽakujeme vám za vaÅ¡u spätnú väzbu", "The_application_name_is_required": "Názov aplikácie je povinný", "The_channel_name_is_required": "Názov kanála je povinný", - "The_emails_are_being_sent": "Posielajú sa e-maily.", - "The_field_is_required": "Je potrebné pole%s.", + "The_emails_are_being_sent": "Posielajú sa e-maily.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Zmena veľkosti obrázka nebude fungovaÅ¥, pretože na vaÅ¡om serveri nemôžeme nájsÅ¥ aplikácie ImageMagick alebo GraphicsMagick.", "The_redirectUri_is_required": "Vyžaduje sa presmerovanie", "The_server_will_restart_in_s_seconds": "Server sa reÅ¡tartuje v%s", diff --git a/packages/i18n/src/locales/sl-SI.i18n.json b/packages/i18n/src/locales/sl-SI.i18n.json index 668bb94dc2c..64900b03860 100644 --- a/packages/i18n/src/locales/sl-SI.i18n.json +++ b/packages/i18n/src/locales/sl-SI.i18n.json @@ -2355,8 +2355,7 @@ "Thank_you_for_your_feedback": "Hvala za vaÅ¡e mnenje", "The_application_name_is_required": "Ime aplikacije je obvezno", "The_channel_name_is_required": "Ime kanala je obvezno", - "The_emails_are_being_sent": "PoÅ¡iljanje e-poÅ¡tnih sporoÄil.", - "The_field_is_required": "Polje %s je obvezno.", + "The_emails_are_being_sent": "PoÅ¡iljanje e-poÅ¡tnih sporoÄil.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Velikost slike ne bo delovala, ker ne moremo zaznati ImageMagick ali GraphicsMagick, nameÅ¡Äenega na vaÅ¡em strežniku.", "The_redirectUri_is_required": "Preusmeritveni uri (redirectUri) je zahtevan", "The_server_will_restart_in_s_seconds": "Strežnik se bo znova zagnal v %s sekundah", diff --git a/packages/i18n/src/locales/sq.i18n.json b/packages/i18n/src/locales/sq.i18n.json index 312494da2e8..c5fb06df952 100644 --- a/packages/i18n/src/locales/sq.i18n.json +++ b/packages/i18n/src/locales/sq.i18n.json @@ -2365,8 +2365,7 @@ "Thank_you_for_your_feedback": "Faleminderit për komentin tuaj", "The_application_name_is_required": "Emri i aplikimit është e nevojshme", "The_channel_name_is_required": "Emri kanal është e nevojshme", - "The_emails_are_being_sent": "Email janë duke u dërguar.", - "The_field_is_required": "Fusha %s është e nevojshme.", + "The_emails_are_being_sent": "Email janë duke u dërguar.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Imazhi resize nuk do të funksionojë, sepse ne nuk mund të zbulojë ImageMagick ose GraphicsMagick instaluar në serverin tuaj.", "The_redirectUri_is_required": "RedirectUri është e nevojshme", "The_server_will_restart_in_s_seconds": "Serveri do të rifillojë në %s sekonda", diff --git a/packages/i18n/src/locales/sr.i18n.json b/packages/i18n/src/locales/sr.i18n.json index e26e8bd3862..d60ff9ce80f 100644 --- a/packages/i18n/src/locales/sr.i18n.json +++ b/packages/i18n/src/locales/sr.i18n.json @@ -2170,8 +2170,7 @@ "Thank_you_for_your_feedback": "Хвала на повратним информацијама", "The_application_name_is_required": "Име апликације је потребно", "The_channel_name_is_required": "Име канала је потребно", - "The_emails_are_being_sent": "Е-поруке Ñе шаљу.", - "The_field_is_required": "је обавезно поље %s.", + "The_emails_are_being_sent": "Е-поруке Ñе шаљу.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "РеÑизе Ñлика неће радити, јер не можемо открити ИмагеМагицк или грапхицÑмагицк инÑталиран на вашем Ñерверу.", "The_redirectUri_is_required": "РедирецтУри је потребна", "The_server_will_restart_in_s_seconds": "Сервер ће Ñе поново покренути у %s Ñекунди", diff --git a/packages/i18n/src/locales/sv.i18n.json b/packages/i18n/src/locales/sv.i18n.json index 4e436fe6c53..4f091bb77fa 100644 --- a/packages/i18n/src/locales/sv.i18n.json +++ b/packages/i18n/src/locales/sv.i18n.json @@ -4735,8 +4735,7 @@ "The_application_will_be_able_to": "<1>{{appName}}</1> kommer att kunna:", "The_channel_name_is_required": "Kanalnamnet krävs ", "The_emails_are_being_sent": "E-postmeddelandena skickas.", - "The_empty_room__roomName__will_be_removed_automatically": "Det tomma rummet <span style=\"font-weight: bold;\">{{roomName}}</span> tas bort automatiskt.", - "The_field_is_required": "Fältet %s krävs.", + "The_empty_room__roomName__will_be_removed_automatically": "Det tomma rummet <span style=\"font-weight: bold;\">{{roomName}}</span> tas bort automatiskt.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Det kommer inte att gÃ¥ att ändra storlek pÃ¥ bilden, eftersom vi inte kan hitta ImageMagick eller GraphicsMagick pÃ¥ din server.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "Meddelandet är en diskussion. Du kan inte Ã¥terskapa meddelandena.", "The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again": "Mobilaviseringar inaktiverades för alla användare. GÃ¥ till \"Administration > Push\" om du vill aktivera en gateway för pushmeddelanden igen", diff --git a/packages/i18n/src/locales/ta-IN.i18n.json b/packages/i18n/src/locales/ta-IN.i18n.json index 7a2c562d4ff..c4c941c40d7 100644 --- a/packages/i18n/src/locales/ta-IN.i18n.json +++ b/packages/i18n/src/locales/ta-IN.i18n.json @@ -2366,7 +2366,6 @@ "The_application_name_is_required": "விணà¯à®£à®ªà¯à®ª பெயர௠தேவை", "The_channel_name_is_required": "சேனல௠பெயர௠தேவைபà¯à®ªà®Ÿà¯à®•ிறதà¯", "The_emails_are_being_sent": "மினà¯à®©à®žà¯à®šà®²à¯à®•ளை அனà¯à®ªà¯à®ªà®¿ வைகà¯à®•பà¯à®ªà®Ÿà¯à®•ினà¯à®±à®©à®°à¯.", - "The_field_is_required": "தà¯à®±à¯ˆà®¯à®¿à®²à¯% கள௠தேவை.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "நாஙà¯à®•ள௠ImageMagick அலà¯à®²à®¤à¯ GraphicsMagick உஙà¯à®•ள௠சரà¯à®µà®°à®¿à®²à¯ நிறà¯à®µà®ªà¯à®ªà®Ÿà¯à®Ÿ கணà¯à®Ÿà®±à®¿à®¯ à®®à¯à®Ÿà®¿à®¯à®¾à®¤à¯, à®à®©à¯†à®©à®¿à®²à¯ படஅளவை இயஙà¯à®•ாதà¯.", "The_redirectUri_is_required": "redirecturi தேவை", "The_server_will_restart_in_s_seconds": "சரà¯à®µà®°à¯ %s வினாடிகள௠மீணà¯à®Ÿà¯à®®à¯ தொடஙà¯à®•à¯à®®à¯", diff --git a/packages/i18n/src/locales/th-TH.i18n.json b/packages/i18n/src/locales/th-TH.i18n.json index 7d393a3034f..520f6ce3a20 100644 --- a/packages/i18n/src/locales/th-TH.i18n.json +++ b/packages/i18n/src/locales/th-TH.i18n.json @@ -2359,8 +2359,7 @@ "Thank_you_for_your_feedback": "ขà¸à¸šà¸„ุณสำหรับความคิดเห็นขà¸à¸‡à¸„ุณ", "The_application_name_is_required": "ต้à¸à¸‡à¸£à¸°à¸šà¸¸à¸Šà¸·à¹ˆà¸à¹à¸à¹‡à¸žà¸žà¸¥à¸´à¹€à¸„ชัน", "The_channel_name_is_required": "ต้à¸à¸‡à¸£à¸°à¸šà¸¸à¸Šà¸·à¹ˆà¸à¸Šà¹ˆà¸à¸‡", - "The_emails_are_being_sent": "à¸à¸³à¸¥à¸±à¸‡à¸ªà¹ˆà¸‡à¸à¸µà¹€à¸¡à¸¥", - "The_field_is_required": "ต้à¸à¸‡à¸£à¸°à¸šà¸¸à¸Ÿà¸´à¸¥à¸”์%s", + "The_emails_are_being_sent": "à¸à¸³à¸¥à¸±à¸‡à¸ªà¹ˆà¸‡à¸à¸µà¹€à¸¡à¸¥", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "à¸à¸²à¸£à¸›à¸£à¸±à¸šà¸‚นาดภาพจะไม่ทำงานเนื่à¸à¸‡à¸ˆà¸²à¸à¹€à¸£à¸²à¹„ม่สามารถตรวจพบ ImageMagick หรืภGraphicsMagick ที่ติดตั้งบนเซิร์ฟเวà¸à¸£à¹Œà¸‚à¸à¸‡à¸„ุณ", "The_redirectUri_is_required": "จำเป็นต้à¸à¸‡à¸¡à¸µ redirectUri", "The_server_will_restart_in_s_seconds": "เซิร์ฟเวà¸à¸£à¹Œà¸ˆà¸°à¸£à¸µà¸ªà¸•าร์ทเป็น %s วินาที", diff --git a/packages/i18n/src/locales/tr.i18n.json b/packages/i18n/src/locales/tr.i18n.json index 59b0c8927e2..c3e87903191 100644 --- a/packages/i18n/src/locales/tr.i18n.json +++ b/packages/i18n/src/locales/tr.i18n.json @@ -2801,8 +2801,7 @@ "Thank_you_for_your_feedback": "Görüşleriniz için teÅŸekkür ederiz", "The_application_name_is_required": "Uygulama adı gerekli", "The_channel_name_is_required": "Kanal adı gerekli", - "The_emails_are_being_sent": "E-postalar gönderiliyor.", - "The_field_is_required": "%s alanı gerekli.", + "The_emails_are_being_sent": "E-postalar gönderiliyor.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Biz ImageMagick veya GraphicsMagick sunucunuzda yüklü algılayamaz çünkü resim boyutlandırmak çalışmaz.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "Bu ileti bir tartışma olduÄŸu için iletileri geri getiremeyeceksiniz!", "The_peer__peer__does_not_exist": "<em>{{peer}}</em> adında bir eÅŸ yok.", diff --git a/packages/i18n/src/locales/ug.i18n.json b/packages/i18n/src/locales/ug.i18n.json index 78c3650e003..b576cd5102c 100644 --- a/packages/i18n/src/locales/ug.i18n.json +++ b/packages/i18n/src/locales/ug.i18n.json @@ -1045,8 +1045,7 @@ "Thank_you_for_your_feedback": "Ø³Ù‰Ø²Ù†Ù‰Ú Ø¦Ù‰Ù†ÙƒØ§Ø³Ù‰Úىزگە كۆپتىن ÙƒÛ†Ù¾ رەھمەت", "The_application_name_is_required": "Ø¦Û•Ù¾Ù†Ù‰Ú Ø¦Ù‰Ø³Ù…Ù‰Ù†Ù‰ چوقۇم تولدۇرىسىز", "The_channel_name_is_required": "Ù‚Ø§Ù†Ø§Ù„Ù†Ù‰Ú Ø¦Ù‰Ø³Ù…Ù‰Ù†Ù‰ چوقۇم تولدۇرۇÚ", - "The_emails_are_being_sent": "ئىلخەت يوللاندى", - "The_field_is_required": "چوقۇم تولدۇرۇÚ%sخەت بۆلىكى", + "The_emails_are_being_sent": "ئىلخەت يوللاندى", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "تاپالمىدۇق.GraphicsMagickنى ياكىImageMagick Ø±Û•Ø³Ù‰Ù…Ù†Ù‰Ú Ú†ÙˆÚ ÙƒÙ‰Ú†Ù‰ÙƒÙ„Ù‰ÙƒÙ‰Ù†Ù‰ ئۆزگەرتكىلى بولمىدى، چۈنكى بىز Ù…Û‡Ù„Ø§Ø²Ù‰Ù…ØªÛØ±Ø¯Ø§ قاچىلىنىپ بولغان", "The_redirectUri_is_required": "چوقۇم تولدۇرۇÚURIسەكرەپ يۆتكەلگەن", "The_server_will_restart_in_s_seconds": "سÛكۇنتتىن ÙƒÛيىن قايتىدىن قوزغىتىلىدۇ %s Ù…Û‡Ù„Ø§Ø²Ù‰Ù…Ù‰ØªÛØ±", diff --git a/packages/i18n/src/locales/uk.i18n.json b/packages/i18n/src/locales/uk.i18n.json index b8e27a4f8c3..eb2b8542d4e 100644 --- a/packages/i18n/src/locales/uk.i18n.json +++ b/packages/i18n/src/locales/uk.i18n.json @@ -2911,8 +2911,7 @@ "Thank_you_for_your_feedback": "СпаÑибі за ваш відгук", "The_application_name_is_required": "Ім'Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ потрібен", "The_channel_name_is_required": "Ðазва каналу потрібно", - "The_emails_are_being_sent": "Електронні лиÑти відправлÑютьÑÑ.", - "The_field_is_required": "Поле %s потрібно.", + "The_emails_are_being_sent": "Електронні лиÑти відправлÑютьÑÑ.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Зміни розміру Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ðµ буде працювати, тому що ми не можемо виÑвити ImageMagick або GraphicsMagick вÑтановлений на вашому Ñервері.", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ - це Ð¾Ð±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñке ви не зможете відновити!", "The_redirectUri_is_required": "RedirectUri потрібно", diff --git a/packages/i18n/src/locales/vi-VN.i18n.json b/packages/i18n/src/locales/vi-VN.i18n.json index bf073e9c6ae..e4ff1343a07 100644 --- a/packages/i18n/src/locales/vi-VN.i18n.json +++ b/packages/i18n/src/locales/vi-VN.i18n.json @@ -2465,8 +2465,7 @@ "Thank_you_for_your_feedback": "Cảm Æ¡n phản hồi của baÌ£n", "The_application_name_is_required": "Tên ứng dụng là bắt buá»™c", "The_channel_name_is_required": "Tên kênh là bắt buá»™c", - "The_emails_are_being_sent": "Các email Ä‘ang được gá»i.", - "The_field_is_required": "Trưá»ng%s là bắt buá»™c.", + "The_emails_are_being_sent": "Các email Ä‘ang được gá»i.", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "Thay đổi kÃch thước hình ảnh sẽ không hoạt động vì chúng tôi không thể phát hiện ImageMagick hoặc GraphicsMagick được cà i đặt trên máy chá»§ cá»§a bạn.", "The_redirectUri_is_required": "RedirectUri là bắt buá»™c", "The_server_will_restart_in_s_seconds": "Máy chá»§ sẽ khởi động lại trong%s giây", diff --git a/packages/i18n/src/locales/zh-HK.i18n.json b/packages/i18n/src/locales/zh-HK.i18n.json index e9821173dc0..2da4905ae33 100644 --- a/packages/i18n/src/locales/zh-HK.i18n.json +++ b/packages/i18n/src/locales/zh-HK.i18n.json @@ -2392,8 +2392,7 @@ "Thank_you_for_your_feedback": "感谢您的å馈æ„è§", "The_application_name_is_required": "应用程åºå称是必需的", "The_channel_name_is_required": "频é“å称是必需的", - "The_emails_are_being_sent": "电å邮件æ£åœ¨å‘é€ã€‚", - "The_field_is_required": "å—æ®µ %s 必须填写。", + "The_emails_are_being_sent": "电å邮件æ£åœ¨å‘é€ã€‚", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "图åƒå¤§å°è°ƒæ•´ä¸èµ·ä½œç”¨ï¼Œå› ä¸ºæˆ‘ä»¬æ— æ³•æ£€æµ‹åˆ°æœåŠ¡å™¨ä¸Šå®‰è£…çš„ImageMagick或GraphicsMagick。", "The_redirectUri_is_required": "redirectUri是必需的", "The_server_will_restart_in_s_seconds": "æœåŠ¡å™¨å°†ä»¥ï¼…s秒为å•ä½é‡æ–°å¯åЍ", diff --git a/packages/i18n/src/locales/zh-TW.i18n.json b/packages/i18n/src/locales/zh-TW.i18n.json index 741132996be..7b8dc7495a8 100644 --- a/packages/i18n/src/locales/zh-TW.i18n.json +++ b/packages/i18n/src/locales/zh-TW.i18n.json @@ -3896,8 +3896,7 @@ "The_application_name_is_required": "應用程å¼å稱是必需的", "The_channel_name_is_required": "é »é“å稱是必需的", "The_emails_are_being_sent": "é›»å郵件傳é€ä¸", - "The_empty_room__roomName__will_be_removed_automatically": "空房間 <span style=\"font-weight: bold;\">{{roomName}}</span> 將自動刪除。", - "The_field_is_required": "æ¬„ä½ %s å¿…å¡«", + "The_empty_room__roomName__will_be_removed_automatically": "空房間 <span style=\"font-weight: bold;\">{{roomName}}</span> 將自動刪除。", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "圖片大å°èª¿æ•´ä¸æœƒèµ·ä½œç”¨ï¼Œå› ç‚ºåœ¨æˆ‘å€‘åµæ¸¬ä¸åˆ°ä¼ºæœå™¨ä¸Šå®‰è£çš„ ImageMagick 或 GraphicsMagick 工具", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "æ¤è¨Šæ¯æ˜¯åœ¨è«–壇䏿‚¨ä¸å¯ä»¥å¾©åŽŸè¨Šæ¯!", "The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again": "所有使用者都åœç”¨äº†æ‰‹æ©Ÿé€šçŸ¥ï¼Œè«‹åˆ°â€œç®¡ç†>推é€â€ä»¥å†æ¬¡å•Ÿç”¨æŽ¨é€é–˜é“", diff --git a/packages/i18n/src/locales/zh.i18n.json b/packages/i18n/src/locales/zh.i18n.json index 323da595433..f3e8c2e0fc9 100644 --- a/packages/i18n/src/locales/zh.i18n.json +++ b/packages/i18n/src/locales/zh.i18n.json @@ -3556,8 +3556,7 @@ "The_application_name_is_required": "应用åç§°å¿…å¡«", "The_channel_name_is_required": "频é“å称为必填", "The_emails_are_being_sent": "邮件已å‘é€ã€‚", - "The_empty_room__roomName__will_be_removed_automatically": "空房间 <span style=\"font-weight: bold;\">{{roomName}}</span> 将被自动移除。", - "The_field_is_required": "å—æ®µ %s å¿…å¡«", + "The_empty_room__roomName__will_be_removed_automatically": "空房间 <span style=\"font-weight: bold;\">{{roomName}}</span> 将被自动移除。", "The_image_resize_will_not_work_because_we_can_not_detect_ImageMagick_or_GraphicsMagick_installed_in_your_server": "æ— æ³•è°ƒæ•´å›¾ç‰‡å°ºå¯¸ï¼Œå› ä¸ºæˆ‘ä»¬æ— æ³•åœ¨æœåŠ¡å™¨ä¸Šæ‰¾åˆ°å·²å®‰è£…çš„ ImageMagick 或 GraphicsMagick 。", "The_message_is_a_discussion_you_will_not_be_able_to_recover": "æ¤æ¶ˆæ¯æ˜¯ä¸€ä¸ªè®¨è®ºä½ å°†æ— æ³•æ¢å¤æ¤æ¶ˆæ¯!", "The_mobile_notifications_were_disabled_to_all_users_go_to_Admin_Push_to_enable_the_Push_Gateway_again": "所有用户的移动端通知都已ç¦ç”¨ã€‚å‰å¾€ â€œç®¡ç† > 推é€â€ 冿¬¡å¯ç”¨æŽ¨é€ç½‘å…³", diff --git a/packages/ui-client/src/components/CustomFieldsForm.tsx b/packages/ui-client/src/components/CustomFieldsForm.tsx index dc464fcd23c..98b9c3fdad7 100644 --- a/packages/ui-client/src/components/CustomFieldsForm.tsx +++ b/packages/ui-client/src/components/CustomFieldsForm.tsx @@ -52,7 +52,7 @@ const CustomField = <T extends FieldValues>({ (error: RHFFieldError) => { switch (error?.type) { case 'required': - return t('The_field_is_required', label || name); + return t('Required_field', { field: label || name }); case 'minLength': return t('Min_length_is', props?.minLength); case 'maxLength': diff --git a/packages/web-ui-registration/src/LoginForm.tsx b/packages/web-ui-registration/src/LoginForm.tsx index d63886091fa..6e28a443be6 100644 --- a/packages/web-ui-registration/src/LoginForm.tsx +++ b/packages/web-ui-registration/src/LoginForm.tsx @@ -162,7 +162,7 @@ export const LoginForm = ({ setLoginRoute }: { setLoginRoute: DispatchLoginRoute <FieldRow> <TextInput {...register('usernameOrEmail', { - required: t('registration.component.form.requiredField'), + required: t('Required_field', { field: t('registration.component.form.emailOrUsername') }), })} placeholder={usernameOrEmailPlaceholder || t('registration.component.form.emailPlaceholder')} error={errors.usernameOrEmail?.message} @@ -184,7 +184,7 @@ export const LoginForm = ({ setLoginRoute }: { setLoginRoute: DispatchLoginRoute <FieldRow> <PasswordInput {...register('password', { - required: t('registration.component.form.requiredField'), + required: t('Required_field', { field: t('registration.component.form.password') }), })} placeholder={passwordPlaceholder} error={errors.password?.message} diff --git a/packages/web-ui-registration/src/RegisterForm.tsx b/packages/web-ui-registration/src/RegisterForm.tsx index 311593d8e9b..ce7cb700d5c 100644 --- a/packages/web-ui-registration/src/RegisterForm.tsx +++ b/packages/web-ui-registration/src/RegisterForm.tsx @@ -148,7 +148,7 @@ export const RegisterForm = ({ setLoginRoute }: { setLoginRoute: DispatchLoginRo <FieldRow> <TextInput {...register('name', { - required: requireNameForRegister ? t('registration.component.form.requiredField') : false, + required: requireNameForRegister ? t('Required_field', { field: t('registration.component.form.name') }) : false, })} error={errors?.name?.message} aria-required={requireNameForRegister} @@ -171,7 +171,7 @@ export const RegisterForm = ({ setLoginRoute }: { setLoginRoute: DispatchLoginRo <FieldRow> <TextInput {...register('email', { - required: t('registration.component.form.requiredField'), + required: t('Required_field', { field: t('registration.component.form.email') }), pattern: { value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i, message: t('registration.component.form.invalidEmail'), @@ -198,7 +198,7 @@ export const RegisterForm = ({ setLoginRoute }: { setLoginRoute: DispatchLoginRo <FieldRow> <TextInput {...register('username', { - required: t('registration.component.form.requiredField'), + required: t('Required_field', { field: t('registration.component.form.username') }), })} error={errors?.username?.message} aria-required='true' @@ -221,7 +221,7 @@ export const RegisterForm = ({ setLoginRoute }: { setLoginRoute: DispatchLoginRo <FieldRow> <PasswordInput {...register('password', { - required: t('registration.component.form.requiredField'), + required: t('Required_field', { field: t('registration.component.form.password') }), validate: () => (!passwordIsValid ? t('Password_must_meet_the_complexity_requirements') : true), })} error={errors.password?.message} @@ -247,7 +247,7 @@ export const RegisterForm = ({ setLoginRoute }: { setLoginRoute: DispatchLoginRo <FieldRow> <PasswordInput {...register('passwordConfirmation', { - required: t('registration.component.form.requiredField'), + required: t('Required_field', { field: t('registration.component.form.confirmPassword') }), deps: ['password'], validate: (val: string) => (watch('password') === val ? true : t('registration.component.form.invalidConfirmPass')), })} @@ -275,7 +275,7 @@ export const RegisterForm = ({ setLoginRoute }: { setLoginRoute: DispatchLoginRo <FieldRow> <TextAreaInput {...register('reason', { - required: t('registration.component.form.requiredField'), + required: t('Required_field', { field: t('registration.component.form.reasonToJoin') }), })} error={errors?.reason?.message} aria-required='true' diff --git a/packages/web-ui-registration/src/ResetPasswordForm.tsx b/packages/web-ui-registration/src/ResetPasswordForm.tsx index ae771c4494f..9a807934d48 100644 --- a/packages/web-ui-registration/src/ResetPasswordForm.tsx +++ b/packages/web-ui-registration/src/ResetPasswordForm.tsx @@ -56,7 +56,7 @@ export const ResetPasswordForm = ({ setLoginRoute }: { setLoginRoute: DispatchLo <FieldRow> <TextInput {...register('email', { - required: t('registration.component.form.requiredField'), + required: t('Required_field', { field: t('registration.component.form.email') }), pattern: { value: /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,}$/i, message: t('registration.page.resetPassword.errors.invalidEmail'), -- GitLab