Add missing translations (#10414)
As per title, add ~200 missing translations in different places of app. Most places are now available for translation with AI but still some aren't available - some enums (like in MenuItemSelectColor.tsx) or values in complex types (like in SettingsNonCompositeFieldTypeConfigs.ts) or values where are injected some variables (like in SettingsDataModelFieldNumberForm.tsx) --------- Co-authored-by: Félix Malfait <felix@twenty.com>
This commit is contained in:
@ -111,7 +111,7 @@ export const Releases = () => {
|
||||
title={t`Releases`}
|
||||
links={[
|
||||
{
|
||||
children: <Trans>Workspace</Trans>,
|
||||
children: <Trans>Other</Trans>,
|
||||
href: getSettingsPath(SettingsPath.Workspace),
|
||||
},
|
||||
{ children: <Trans>Releases</Trans> },
|
||||
|
||||
@ -18,6 +18,7 @@ import { z } from 'zod';
|
||||
import { FieldMetadataType } from '~/generated-metadata/graphql';
|
||||
import { useNavigateApp } from '~/hooks/useNavigateApp';
|
||||
import { getSettingsPath } from '~/utils/navigation/getSettingsPath';
|
||||
import { t } from '@lingui/core/macro';
|
||||
|
||||
export const settingsDataModelFieldTypeFormSchema = z.object({
|
||||
type: z.enum(
|
||||
@ -68,10 +69,10 @@ export const SettingsObjectNewFieldSelect = () => {
|
||||
{...formMethods}
|
||||
>
|
||||
<SubMenuTopBarContainer
|
||||
title="1. Select a field type"
|
||||
title={t`1. Select a field type`}
|
||||
links={[
|
||||
{ children: 'Workspace', href: '/settings/workspace' },
|
||||
{ children: 'Objects', href: '/settings/objects' },
|
||||
{ children: t`Workspace`, href: '/settings/workspace' },
|
||||
{ children: t`Objects`, href: '/settings/objects' },
|
||||
{
|
||||
children: activeObjectMetadataItem.labelPlural,
|
||||
href: getSettingsPath(SettingsPath.ObjectDetail, {
|
||||
|
||||
@ -260,7 +260,7 @@ export const SettingsDevelopersApiKeyDetail = () => {
|
||||
</Trans>
|
||||
}
|
||||
onConfirmClick={deleteIntegration}
|
||||
deleteButtonText="Delete"
|
||||
deleteButtonText={t`Delete`}
|
||||
loading={isLoading}
|
||||
/>
|
||||
<ConfirmationModal
|
||||
|
||||
@ -21,6 +21,7 @@ import { AnalyticsGraphDataInstanceContext } from '@/analytics/states/contexts/A
|
||||
import { isAnalyticsEnabledState } from '@/client-config/states/isAnalyticsEnabledState';
|
||||
import { useObjectMetadataItems } from '@/object-metadata/hooks/useObjectMetadataItems';
|
||||
import { SettingsPageContainer } from '@/settings/components/SettingsPageContainer';
|
||||
import { useWebhookUpdateForm } from '@/settings/developers/hooks/useWebhookUpdateForm';
|
||||
import { SettingsPath } from '@/types/SettingsPath';
|
||||
import { Select, SelectOption } from '@/ui/input/components/Select';
|
||||
import { TextArea } from '@/ui/input/components/TextArea';
|
||||
@ -30,10 +31,9 @@ import { SubMenuTopBarContainer } from '@/ui/layout/page/components/SubMenuTopBa
|
||||
import { useIsFeatureEnabled } from '@/workspace/hooks/useIsFeatureEnabled';
|
||||
import { Trans, useLingui } from '@lingui/react/macro';
|
||||
import { useRecoilValue } from 'recoil';
|
||||
import { isDefined } from 'twenty-shared';
|
||||
import { FeatureFlagKey } from '~/generated/graphql';
|
||||
import { getSettingsPath } from '~/utils/navigation/getSettingsPath';
|
||||
import { useWebhookUpdateForm } from '@/settings/developers/hooks/useWebhookUpdateForm';
|
||||
import { isDefined } from 'twenty-shared';
|
||||
|
||||
const OBJECT_DROPDOWN_WIDTH = 340;
|
||||
const ACTION_DROPDOWN_WIDTH = 140;
|
||||
@ -96,21 +96,21 @@ export const SettingsDevelopersWebhooksDetail = () => {
|
||||
|
||||
const fieldTypeOptions: SelectOption<string>[] = useMemo(
|
||||
() => [
|
||||
{ value: '*', label: 'All Objects', Icon: IconNorthStar },
|
||||
{ value: '*', label: t`All Objects`, Icon: IconNorthStar },
|
||||
...objectMetadataItems.map((item) => ({
|
||||
value: item.nameSingular,
|
||||
label: item.labelPlural,
|
||||
Icon: getIcon(item.icon),
|
||||
})),
|
||||
],
|
||||
[objectMetadataItems, getIcon],
|
||||
[objectMetadataItems, getIcon, t],
|
||||
);
|
||||
|
||||
const actionOptions: SelectOption<string>[] = [
|
||||
{ value: '*', label: 'All Actions', Icon: IconNorthStar },
|
||||
{ value: 'created', label: 'Created', Icon: IconPlus },
|
||||
{ value: 'updated', label: 'Updated', Icon: IconRefresh },
|
||||
{ value: 'deleted', label: 'Deleted', Icon: IconTrash },
|
||||
{ value: '*', label: t`All Actions`, Icon: IconNorthStar },
|
||||
{ value: 'created', label: t`Created`, Icon: IconPlus },
|
||||
{ value: 'updated', label: t`Updated`, Icon: IconRefresh },
|
||||
{ value: 'deleted', label: t`Deleted`, Icon: IconTrash },
|
||||
];
|
||||
|
||||
if (loading || !formData) {
|
||||
@ -214,12 +214,12 @@ export const SettingsDevelopersWebhooksDetail = () => {
|
||||
</Section>
|
||||
<Section>
|
||||
<H2Title
|
||||
title="Secret"
|
||||
description="Optional: Define a secret string that we will include in every webhook. Use this to authenticate and verify the webhook upon receipt."
|
||||
title={t`Secret`}
|
||||
description={t`Optional: Define a secret string that we will include in every webhook. Use this to authenticate and verify the webhook upon receipt.`}
|
||||
/>
|
||||
<TextInput
|
||||
type="password"
|
||||
placeholder="Write a secret"
|
||||
placeholder={t`Write a secret`}
|
||||
value={formData.secret}
|
||||
onChange={(secret: string) => {
|
||||
updateWebhook({ secret: secret.trim() });
|
||||
|
||||
@ -3,17 +3,18 @@ import { SettingsLabContent } from '@/settings/lab/components/SettingsLabContent
|
||||
import { SettingsPath } from '@/types/SettingsPath';
|
||||
import { SubMenuTopBarContainer } from '@/ui/layout/page/components/SubMenuTopBarContainer';
|
||||
import { getSettingsPath } from '~/utils/navigation/getSettingsPath';
|
||||
import { t } from '@lingui/core/macro';
|
||||
|
||||
export const SettingsLab = () => {
|
||||
return (
|
||||
<SubMenuTopBarContainer
|
||||
title="Lab"
|
||||
title={t`Lab`}
|
||||
links={[
|
||||
{
|
||||
children: 'Other',
|
||||
children: t`Other`,
|
||||
href: getSettingsPath(SettingsPath.Lab),
|
||||
},
|
||||
{ children: 'Lab' },
|
||||
{ children: t`Lab` },
|
||||
]}
|
||||
>
|
||||
<SettingsPageContainer>
|
||||
|
||||
@ -33,7 +33,7 @@ export const DateTimeSettingsDateFormatSelect = ({
|
||||
<Select
|
||||
dropdownId="datetime-settings-date-format"
|
||||
dropdownWidth={218}
|
||||
label="Date format"
|
||||
label={t`Date format`}
|
||||
fullWidth
|
||||
dropdownWidthAuto
|
||||
value={value}
|
||||
|
||||
@ -3,6 +3,7 @@ import { findAvailableTimeZoneOption } from '@/localization/utils/findAvailableT
|
||||
import { AVAILABLE_TIMEZONE_OPTIONS } from '@/settings/accounts/constants/AvailableTimezoneOptions';
|
||||
import { Select } from '@/ui/input/components/Select';
|
||||
import { isDefined } from 'twenty-shared';
|
||||
import { t } from '@lingui/core/macro';
|
||||
|
||||
type DateTimeSettingsTimeZoneSelectProps = {
|
||||
value?: string;
|
||||
@ -20,15 +21,15 @@ export const DateTimeSettingsTimeZoneSelect = ({
|
||||
return (
|
||||
<Select
|
||||
dropdownId="settings-accounts-calendar-time-zone"
|
||||
label="Time zone"
|
||||
label={t`Time zone`}
|
||||
dropdownWidthAuto
|
||||
fullWidth
|
||||
value={value}
|
||||
options={[
|
||||
{
|
||||
label: isDefined(systemTimeZoneOption)
|
||||
? `System settings - ${systemTimeZoneOption.label}`
|
||||
: 'System settings',
|
||||
? t`System settings`.concat(` - ${systemTimeZoneOption.label}`)
|
||||
: t`System settings`,
|
||||
value: 'system',
|
||||
},
|
||||
...AVAILABLE_TIMEZONE_OPTIONS,
|
||||
|
||||
@ -108,7 +108,7 @@ export const SettingsSecurityApprovedAccessDomain = () => {
|
||||
>
|
||||
<SettingsPageContainer>
|
||||
<Section>
|
||||
<H2Title title="Domain" description="The name of your Domain" />
|
||||
<H2Title title={t`Domain`} description={t`The name of your Domain`} />
|
||||
<Controller
|
||||
name="domain"
|
||||
control={formConfig.control}
|
||||
@ -128,8 +128,8 @@ export const SettingsSecurityApprovedAccessDomain = () => {
|
||||
</Section>
|
||||
<Section>
|
||||
<H2Title
|
||||
title="Email verification"
|
||||
description="We will send your a link to verify domain ownership"
|
||||
title={t`Email verification`}
|
||||
description={t`We will send your a link to verify domain ownership`}
|
||||
/>
|
||||
<Controller
|
||||
name="email"
|
||||
|
||||
@ -16,6 +16,7 @@ import pick from 'lodash.pick';
|
||||
import { FormProvider, useForm } from 'react-hook-form';
|
||||
import { useNavigateSettings } from '~/hooks/useNavigateSettings';
|
||||
import { getSettingsPath } from '~/utils/navigation/getSettingsPath';
|
||||
import { t } from '@lingui/core/macro';
|
||||
|
||||
export const SettingsSecuritySSOIdentifyProvider = () => {
|
||||
const navigate = useNavigateSettings();
|
||||
@ -55,7 +56,7 @@ export const SettingsSecuritySSOIdentifyProvider = () => {
|
||||
|
||||
return (
|
||||
<SubMenuTopBarContainer
|
||||
title="New SSO Configuration"
|
||||
title={t`New SSO Configuration`}
|
||||
actionButton={
|
||||
<SaveAndCancelButtons
|
||||
isSaveDisabled={!formConfig.formState.isValid}
|
||||
|
||||
Reference in New Issue
Block a user