1c8dccda01
Created by Github action --------- Co-authored-by: github-actions <github-actions@twenty.com>
7470 lines
302 KiB
Plaintext
7470 lines
302 KiB
Plaintext
msgid ""
|
||
msgstr ""
|
||
"POT-Creation-Date: 2025-01-30 18:16+0100\n"
|
||
"MIME-Version: 1.0\n"
|
||
"Content-Type: text/plain; charset=UTF-8\n"
|
||
"Content-Transfer-Encoding: 8bit\n"
|
||
"X-Generator: @lingui/cli\n"
|
||
"Language: ca\n"
|
||
"Project-Id-Version: cf448e737e0d6d7b78742f963d761c61\n"
|
||
"Report-Msgid-Bugs-To: \n"
|
||
"PO-Revision-Date: 2025-01-01 00:00\n"
|
||
"Last-Translator: \n"
|
||
"Language-Team: Catalan\n"
|
||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||
"X-Crowdin-Project: cf448e737e0d6d7b78742f963d761c61\n"
|
||
"X-Crowdin-Project-ID: 1\n"
|
||
"X-Crowdin-Language: ca\n"
|
||
"X-Crowdin-File: /packages/twenty-front/src/locales/en.po\n"
|
||
"X-Crowdin-File-ID: 29\n"
|
||
|
||
#. js-lingui-id: /8h/VA
|
||
#: src/modules/object-record/spreadsheet-import/utils/getSpreadSheetFieldValidationDefinitions.ts
|
||
msgid " must be one of {ratingValues} values"
|
||
msgstr " ha de ser un dels valors {ratingValues}"
|
||
|
||
#. js-lingui-id: ypz2+E
|
||
#: src/modules/object-record/object-filter-dropdown/utils/getOperandLabel.ts
|
||
msgid ": Empty"
|
||
msgstr ": Buit"
|
||
|
||
#. js-lingui-id: CE75IR
|
||
#: src/modules/object-record/object-filter-dropdown/utils/getOperandLabel.ts
|
||
msgid ": Future"
|
||
msgstr ": Futur"
|
||
|
||
#. js-lingui-id: uhan84
|
||
#: src/modules/views/hooks/useComputeRecordRelationFilterLabelValue.tsx
|
||
msgid ": Loading..."
|
||
msgstr ": Carregant..."
|
||
|
||
#. js-lingui-id: Nk/d+Z
|
||
#: src/modules/object-record/object-filter-dropdown/utils/getOperandLabel.ts
|
||
msgid ": Not"
|
||
msgstr ": No"
|
||
|
||
#. js-lingui-id: 1ORnec
|
||
#: src/modules/object-record/object-filter-dropdown/utils/getOperandLabel.ts
|
||
msgid ": NotEmpty"
|
||
msgstr ": NoBuit"
|
||
|
||
#. js-lingui-id: 11QpPG
|
||
#: src/modules/object-record/object-filter-dropdown/utils/getOperandLabel.ts
|
||
msgid ": NotNull"
|
||
msgstr ": NoNul"
|
||
|
||
#. js-lingui-id: gK4ysT
|
||
#: src/modules/object-record/object-filter-dropdown/utils/getOperandLabel.ts
|
||
msgid ": Past"
|
||
msgstr ": Passat"
|
||
|
||
#. js-lingui-id: 4iJDkt
|
||
#: src/modules/object-record/object-filter-dropdown/utils/getOperandLabel.ts
|
||
msgid ": Today"
|
||
msgstr ": Avui"
|
||
|
||
#. js-lingui-id: 4tCM3o
|
||
#: src/modules/views/components/ViewBarFilterDropdownVectorSearchButton.tsx
|
||
#: src/modules/views/components/ViewBarFilterDropdownAnyFieldSearchButtonMenuItem.tsx
|
||
msgid "· {objectFilterDropdownSearchInput}"
|
||
msgstr "· {objectFilterDropdownSearchInput}"
|
||
|
||
#. js-lingui-id: ZBGbuw
|
||
#: src/modules/workflow/workflow-steps/components/WorkflowRunStepOutputDetail.tsx
|
||
#: src/modules/workflow/workflow-steps/components/WorkflowRunStepInputDetail.tsx
|
||
#: src/modules/settings/admin-panel/health-status/components/JsonDataIndicatorHealthStatus.tsx
|
||
#: src/modules/object-record/record-field/ui/meta-types/input/components/RawJsonFieldInput.tsx
|
||
msgid "[empty string]"
|
||
msgstr "[cadena buida]"
|
||
|
||
#. js-lingui-id: m6BGdm
|
||
#. placeholder {0}: Math.abs(days)
|
||
#. placeholder {1}: import { isDate, isNumber, isString } from '@sniptt/guards'; import { differenceInCalendarDays, differenceInDays, differenceInYears, format, formatDistance, formatDistanceToNow, isToday, isValid, parseISO, type Locale, } from 'date-fns'; import { DateFormat } from '@/localization/constants/DateFormat'; import { isDefined } from 'twenty-shared/utils'; import { CustomError } from '@/error-handler/CustomError'; import { i18n } from '@lingui/core'; import { plural, t } from '@lingui/core/macro'; import { logError } from './logError'; export const parseDate = (dateToParse: Date | string | number): Date => { if (dateToParse === 'now') return new Date(); let formattedDate: Date | null = null; if (!dateToParse) { throw new CustomError( `Invalid date passed to formatPastDate: "${dateToParse}"`, 'INVALID_DATE_FORMAT', ); } else if (isString(dateToParse)) { formattedDate = parseISO(dateToParse); } else if (isDate(dateToParse)) { formattedDate = dateToParse; } else if (isNumber(dateToParse)) { formattedDate = new Date(dateToParse); } if (!formattedDate) { throw new CustomError( `Invalid date passed to formatPastDate: "${dateToParse}"`, 'INVALID_DATE_FORMAT', ); } if (!isValid(formattedDate)) { throw new CustomError( `Invalid date passed to formatPastDate: "${dateToParse}"`, 'INVALID_DATE_FORMAT', ); } return formattedDate; }; export const formatDate = ( dateToFormat: Date | string | number, formatString: string, ) => { try { const parsedDate = parseDate(dateToFormat); return format(parsedDate, formatString); } catch (error) { logError(error); return ''; } }; export const beautifyExactDateTime = ( dateToBeautify: Date | string | number, ) => { const parsedDate = parseDate(dateToBeautify); const isTodayDate = isToday(parsedDate); const dateFormat = isTodayDate ? 'HH:mm' : 'MMM d, yyyy · HH:mm'; return formatDate(dateToBeautify, dateFormat); }; export const beautifyExactDate = (dateToBeautify: Date | string | number) => { const parsedDate = parseDate(dateToBeautify); const isTodayDate = isToday(parsedDate); if (isTodayDate) { return t`Today`; } return formatDate(dateToBeautify, 'MMM d, yyyy'); }; export const beautifyPastDateRelativeToNow = ( pastDate: Date | string | number, locale?: Locale, ) => { try { const parsedDate = parseDate(pastDate); const now = new Date(); const diffInSeconds = Math.abs( (now.getTime() - parsedDate.getTime()) / 1000, ); // For very recent times (less than 30 seconds), show "now" if (diffInSeconds < 30) { return t`now`; } return formatDistanceToNow(parsedDate, { addSuffix: true, locale, includeSeconds: true, }); } catch (error) { logError(error); return ''; } }; export const hasDatePassed = (date: Date | string | number) => { try { const parsedDate = parseDate(date); return differenceInCalendarDays(new Date(), parsedDate) >= 1; } catch (error) { logError(error); return false; } }; export const beautifyDateDiff = ( date: string, dateToCompareWith?: string, short = false, locale?: Locale, ) => { // For simple cases, use date-fns which has excellent locale support if (!short && isDefined(locale)) { const fromDate = new Date(date); const toDate = dateToCompareWith ? new Date(dateToCompareWith) : new Date(); return formatDistance(fromDate, toDate, { locale }); } // Manual implementation for complex cases or when locale is not available const fromDate = parseISO(date); const toDate = dateToCompareWith ? parseISO(dateToCompareWith) : new Date(); const years = differenceInYears(fromDate, toDate); // Calculate remaining days after accounting for full years const startDateForDayCalculation = new Date(toDate); startDateForDayCalculation.setFullYear( startDateForDayCalculation.getFullYear() + years, ); const days = differenceInDays(fromDate, startDateForDayCalculation); let result = ''; if (years !== 0) { result = plural(Math.abs(years), { one: `${years} ${t`year`}`, other: `${years} ${t`years`}`, }); if (short) return result; } if (years !== 0 && days !== 0) { result += ` ${t`and`} `; } if (days !== 0) { const daysPart = plural(Math.abs(days), { one: `${days} ${t`day`}`, other: `${days} ${t`days`}`, }); result += daysPart; } return result; }; export const formatToHumanReadableDate = (date: Date | string) => { const parsedJSDate = parseDate(date); return i18n.date(parsedJSDate, { dateStyle: 'medium' }); }; export const getDateFormatString = ( dateFormat: DateFormat, isDateTimeInput: boolean, ): string => { const timePart = isDateTimeInput ? ' HH:mm' : ''; switch (dateFormat) { case DateFormat.DAY_FIRST: return `dd/MM/yyyy${timePart}`; case DateFormat.YEAR_FIRST: return `yyyy-MM-dd${timePart}`; case DateFormat.MONTH_FIRST: default: return `MM/dd/yyyy${timePart}`; } };
|
||
#. placeholder {2}: import { isDate, isNumber, isString } from '@sniptt/guards'; import { differenceInCalendarDays, differenceInDays, differenceInYears, format, formatDistance, formatDistanceToNow, isToday, isValid, parseISO, type Locale, } from 'date-fns'; import { DateFormat } from '@/localization/constants/DateFormat'; import { isDefined } from 'twenty-shared/utils'; import { CustomError } from '@/error-handler/CustomError'; import { i18n } from '@lingui/core'; import { plural, t } from '@lingui/core/macro'; import { logError } from './logError'; export const parseDate = (dateToParse: Date | string | number): Date => { if (dateToParse === 'now') return new Date(); let formattedDate: Date | null = null; if (!dateToParse) { throw new CustomError( `Invalid date passed to formatPastDate: "${dateToParse}"`, 'INVALID_DATE_FORMAT', ); } else if (isString(dateToParse)) { formattedDate = parseISO(dateToParse); } else if (isDate(dateToParse)) { formattedDate = dateToParse; } else if (isNumber(dateToParse)) { formattedDate = new Date(dateToParse); } if (!formattedDate) { throw new CustomError( `Invalid date passed to formatPastDate: "${dateToParse}"`, 'INVALID_DATE_FORMAT', ); } if (!isValid(formattedDate)) { throw new CustomError( `Invalid date passed to formatPastDate: "${dateToParse}"`, 'INVALID_DATE_FORMAT', ); } return formattedDate; }; export const formatDate = ( dateToFormat: Date | string | number, formatString: string, ) => { try { const parsedDate = parseDate(dateToFormat); return format(parsedDate, formatString); } catch (error) { logError(error); return ''; } }; export const beautifyExactDateTime = ( dateToBeautify: Date | string | number, ) => { const parsedDate = parseDate(dateToBeautify); const isTodayDate = isToday(parsedDate); const dateFormat = isTodayDate ? 'HH:mm' : 'MMM d, yyyy · HH:mm'; return formatDate(dateToBeautify, dateFormat); }; export const beautifyExactDate = (dateToBeautify: Date | string | number) => { const parsedDate = parseDate(dateToBeautify); const isTodayDate = isToday(parsedDate); if (isTodayDate) { return t`Today`; } return formatDate(dateToBeautify, 'MMM d, yyyy'); }; export const beautifyPastDateRelativeToNow = ( pastDate: Date | string | number, locale?: Locale, ) => { try { const parsedDate = parseDate(pastDate); const now = new Date(); const diffInSeconds = Math.abs( (now.getTime() - parsedDate.getTime()) / 1000, ); // For very recent times (less than 30 seconds), show "now" if (diffInSeconds < 30) { return t`now`; } return formatDistanceToNow(parsedDate, { addSuffix: true, locale, includeSeconds: true, }); } catch (error) { logError(error); return ''; } }; export const hasDatePassed = (date: Date | string | number) => { try { const parsedDate = parseDate(date); return differenceInCalendarDays(new Date(), parsedDate) >= 1; } catch (error) { logError(error); return false; } }; export const beautifyDateDiff = ( date: string, dateToCompareWith?: string, short = false, locale?: Locale, ) => { // For simple cases, use date-fns which has excellent locale support if (!short && isDefined(locale)) { const fromDate = new Date(date); const toDate = dateToCompareWith ? new Date(dateToCompareWith) : new Date(); return formatDistance(fromDate, toDate, { locale }); } // Manual implementation for complex cases or when locale is not available const fromDate = parseISO(date); const toDate = dateToCompareWith ? parseISO(dateToCompareWith) : new Date(); const years = differenceInYears(fromDate, toDate); // Calculate remaining days after accounting for full years const startDateForDayCalculation = new Date(toDate); startDateForDayCalculation.setFullYear( startDateForDayCalculation.getFullYear() + years, ); const days = differenceInDays(fromDate, startDateForDayCalculation); let result = ''; if (years !== 0) { result = plural(Math.abs(years), { one: `${years} ${t`year`}`, other: `${years} ${t`years`}`, }); if (short) return result; } if (years !== 0 && days !== 0) { result += ` ${t`and`} `; } if (days !== 0) { const daysPart = plural(Math.abs(days), { one: `${days} ${t`day`}`, other: `${days} ${t`days`}`, }); result += daysPart; } return result; }; export const formatToHumanReadableDate = (date: Date | string) => { const parsedJSDate = parseDate(date); return i18n.date(parsedJSDate, { dateStyle: 'medium' }); }; export const getDateFormatString = ( dateFormat: DateFormat, isDateTimeInput: boolean, ): string => { const timePart = isDateTimeInput ? ' HH:mm' : ''; switch (dateFormat) { case DateFormat.DAY_FIRST: return `dd/MM/yyyy${timePart}`; case DateFormat.YEAR_FIRST: return `yyyy-MM-dd${timePart}`; case DateFormat.MONTH_FIRST: default: return `MM/dd/yyyy${timePart}`; } };
|
||
#: src/utils/date-utils.ts
|
||
msgid "{0, plural, one {{days} {1}} other {{days} {2}}}"
|
||
msgstr "{0, plural, one {{dies} {1}} other {{dies} {2}}}"
|
||
|
||
#. js-lingui-id: FYY5cK
|
||
#. placeholder {0}: Math.abs(years)
|
||
#. placeholder {1}: import { isDate, isNumber, isString } from '@sniptt/guards'; import { differenceInCalendarDays, differenceInDays, differenceInYears, format, formatDistance, formatDistanceToNow, isToday, isValid, parseISO, type Locale, } from 'date-fns'; import { DateFormat } from '@/localization/constants/DateFormat'; import { isDefined } from 'twenty-shared/utils'; import { CustomError } from '@/error-handler/CustomError'; import { i18n } from '@lingui/core'; import { plural, t } from '@lingui/core/macro'; import { logError } from './logError'; export const parseDate = (dateToParse: Date | string | number): Date => { if (dateToParse === 'now') return new Date(); let formattedDate: Date | null = null; if (!dateToParse) { throw new CustomError( `Invalid date passed to formatPastDate: "${dateToParse}"`, 'INVALID_DATE_FORMAT', ); } else if (isString(dateToParse)) { formattedDate = parseISO(dateToParse); } else if (isDate(dateToParse)) { formattedDate = dateToParse; } else if (isNumber(dateToParse)) { formattedDate = new Date(dateToParse); } if (!formattedDate) { throw new CustomError( `Invalid date passed to formatPastDate: "${dateToParse}"`, 'INVALID_DATE_FORMAT', ); } if (!isValid(formattedDate)) { throw new CustomError( `Invalid date passed to formatPastDate: "${dateToParse}"`, 'INVALID_DATE_FORMAT', ); } return formattedDate; }; export const formatDate = ( dateToFormat: Date | string | number, formatString: string, ) => { try { const parsedDate = parseDate(dateToFormat); return format(parsedDate, formatString); } catch (error) { logError(error); return ''; } }; export const beautifyExactDateTime = ( dateToBeautify: Date | string | number, ) => { const parsedDate = parseDate(dateToBeautify); const isTodayDate = isToday(parsedDate); const dateFormat = isTodayDate ? 'HH:mm' : 'MMM d, yyyy · HH:mm'; return formatDate(dateToBeautify, dateFormat); }; export const beautifyExactDate = (dateToBeautify: Date | string | number) => { const parsedDate = parseDate(dateToBeautify); const isTodayDate = isToday(parsedDate); if (isTodayDate) { return t`Today`; } return formatDate(dateToBeautify, 'MMM d, yyyy'); }; export const beautifyPastDateRelativeToNow = ( pastDate: Date | string | number, locale?: Locale, ) => { try { const parsedDate = parseDate(pastDate); const now = new Date(); const diffInSeconds = Math.abs( (now.getTime() - parsedDate.getTime()) / 1000, ); // For very recent times (less than 30 seconds), show "now" if (diffInSeconds < 30) { return t`now`; } return formatDistanceToNow(parsedDate, { addSuffix: true, locale, includeSeconds: true, }); } catch (error) { logError(error); return ''; } }; export const hasDatePassed = (date: Date | string | number) => { try { const parsedDate = parseDate(date); return differenceInCalendarDays(new Date(), parsedDate) >= 1; } catch (error) { logError(error); return false; } }; export const beautifyDateDiff = ( date: string, dateToCompareWith?: string, short = false, locale?: Locale, ) => { // For simple cases, use date-fns which has excellent locale support if (!short && isDefined(locale)) { const fromDate = new Date(date); const toDate = dateToCompareWith ? new Date(dateToCompareWith) : new Date(); return formatDistance(fromDate, toDate, { locale }); } // Manual implementation for complex cases or when locale is not available const fromDate = parseISO(date); const toDate = dateToCompareWith ? parseISO(dateToCompareWith) : new Date(); const years = differenceInYears(fromDate, toDate); // Calculate remaining days after accounting for full years const startDateForDayCalculation = new Date(toDate); startDateForDayCalculation.setFullYear( startDateForDayCalculation.getFullYear() + years, ); const days = differenceInDays(fromDate, startDateForDayCalculation); let result = ''; if (years !== 0) { result = plural(Math.abs(years), { one: `${years} ${t`year`}`, other: `${years} ${t`years`}`, }); if (short) return result; } if (years !== 0 && days !== 0) { result += ` ${t`and`} `; } if (days !== 0) { const daysPart = plural(Math.abs(days), { one: `${days} ${t`day`}`, other: `${days} ${t`days`}`, }); result += daysPart; } return result; }; export const formatToHumanReadableDate = (date: Date | string) => { const parsedJSDate = parseDate(date); return i18n.date(parsedJSDate, { dateStyle: 'medium' }); }; export const getDateFormatString = ( dateFormat: DateFormat, isDateTimeInput: boolean, ): string => { const timePart = isDateTimeInput ? ' HH:mm' : ''; switch (dateFormat) { case DateFormat.DAY_FIRST: return `dd/MM/yyyy${timePart}`; case DateFormat.YEAR_FIRST: return `yyyy-MM-dd${timePart}`; case DateFormat.MONTH_FIRST: default: return `MM/dd/yyyy${timePart}`; } };
|
||
#. placeholder {2}: import { isDate, isNumber, isString } from '@sniptt/guards'; import { differenceInCalendarDays, differenceInDays, differenceInYears, format, formatDistance, formatDistanceToNow, isToday, isValid, parseISO, type Locale, } from 'date-fns'; import { DateFormat } from '@/localization/constants/DateFormat'; import { isDefined } from 'twenty-shared/utils'; import { CustomError } from '@/error-handler/CustomError'; import { i18n } from '@lingui/core'; import { plural, t } from '@lingui/core/macro'; import { logError } from './logError'; export const parseDate = (dateToParse: Date | string | number): Date => { if (dateToParse === 'now') return new Date(); let formattedDate: Date | null = null; if (!dateToParse) { throw new CustomError( `Invalid date passed to formatPastDate: "${dateToParse}"`, 'INVALID_DATE_FORMAT', ); } else if (isString(dateToParse)) { formattedDate = parseISO(dateToParse); } else if (isDate(dateToParse)) { formattedDate = dateToParse; } else if (isNumber(dateToParse)) { formattedDate = new Date(dateToParse); } if (!formattedDate) { throw new CustomError( `Invalid date passed to formatPastDate: "${dateToParse}"`, 'INVALID_DATE_FORMAT', ); } if (!isValid(formattedDate)) { throw new CustomError( `Invalid date passed to formatPastDate: "${dateToParse}"`, 'INVALID_DATE_FORMAT', ); } return formattedDate; }; export const formatDate = ( dateToFormat: Date | string | number, formatString: string, ) => { try { const parsedDate = parseDate(dateToFormat); return format(parsedDate, formatString); } catch (error) { logError(error); return ''; } }; export const beautifyExactDateTime = ( dateToBeautify: Date | string | number, ) => { const parsedDate = parseDate(dateToBeautify); const isTodayDate = isToday(parsedDate); const dateFormat = isTodayDate ? 'HH:mm' : 'MMM d, yyyy · HH:mm'; return formatDate(dateToBeautify, dateFormat); }; export const beautifyExactDate = (dateToBeautify: Date | string | number) => { const parsedDate = parseDate(dateToBeautify); const isTodayDate = isToday(parsedDate); if (isTodayDate) { return t`Today`; } return formatDate(dateToBeautify, 'MMM d, yyyy'); }; export const beautifyPastDateRelativeToNow = ( pastDate: Date | string | number, locale?: Locale, ) => { try { const parsedDate = parseDate(pastDate); const now = new Date(); const diffInSeconds = Math.abs( (now.getTime() - parsedDate.getTime()) / 1000, ); // For very recent times (less than 30 seconds), show "now" if (diffInSeconds < 30) { return t`now`; } return formatDistanceToNow(parsedDate, { addSuffix: true, locale, includeSeconds: true, }); } catch (error) { logError(error); return ''; } }; export const hasDatePassed = (date: Date | string | number) => { try { const parsedDate = parseDate(date); return differenceInCalendarDays(new Date(), parsedDate) >= 1; } catch (error) { logError(error); return false; } }; export const beautifyDateDiff = ( date: string, dateToCompareWith?: string, short = false, locale?: Locale, ) => { // For simple cases, use date-fns which has excellent locale support if (!short && isDefined(locale)) { const fromDate = new Date(date); const toDate = dateToCompareWith ? new Date(dateToCompareWith) : new Date(); return formatDistance(fromDate, toDate, { locale }); } // Manual implementation for complex cases or when locale is not available const fromDate = parseISO(date); const toDate = dateToCompareWith ? parseISO(dateToCompareWith) : new Date(); const years = differenceInYears(fromDate, toDate); // Calculate remaining days after accounting for full years const startDateForDayCalculation = new Date(toDate); startDateForDayCalculation.setFullYear( startDateForDayCalculation.getFullYear() + years, ); const days = differenceInDays(fromDate, startDateForDayCalculation); let result = ''; if (years !== 0) { result = plural(Math.abs(years), { one: `${years} ${t`year`}`, other: `${years} ${t`years`}`, }); if (short) return result; } if (years !== 0 && days !== 0) { result += ` ${t`and`} `; } if (days !== 0) { const daysPart = plural(Math.abs(days), { one: `${days} ${t`day`}`, other: `${days} ${t`days`}`, }); result += daysPart; } return result; }; export const formatToHumanReadableDate = (date: Date | string) => { const parsedJSDate = parseDate(date); return i18n.date(parsedJSDate, { dateStyle: 'medium' }); }; export const getDateFormatString = ( dateFormat: DateFormat, isDateTimeInput: boolean, ): string => { const timePart = isDateTimeInput ? ' HH:mm' : ''; switch (dateFormat) { case DateFormat.DAY_FIRST: return `dd/MM/yyyy${timePart}`; case DateFormat.YEAR_FIRST: return `yyyy-MM-dd${timePart}`; case DateFormat.MONTH_FIRST: default: return `MM/dd/yyyy${timePart}`; } };
|
||
#: src/utils/date-utils.ts
|
||
msgid "{0, plural, one {{years} {1}} other {{years} {2}}}"
|
||
msgstr "{0, plural, one {{anys} {1}} other {{anys} {2}}}"
|
||
|
||
#. js-lingui-id: ROdDR9
|
||
#: src/modules/object-record/record-board/record-board-column/utils/computeAggregateValueAndLabel.ts
|
||
msgid "{aggregateLabel} of {fieldLabel}"
|
||
msgstr "{aggregateLabel} de {fieldLabel}"
|
||
|
||
#. js-lingui-id: zi5SHH
|
||
#: src/modules/object-record/record-index/components/RecordIndexPageHeader.tsx
|
||
msgid "{contextStoreNumberOfSelectedRecords} selected"
|
||
msgstr "{contextStoreNumberOfSelectedRecords} seleccionats"
|
||
|
||
#. js-lingui-id: POhzPf
|
||
#: src/modules/ai/hooks/useAIChatFileUpload.ts
|
||
msgid "{failedCount} file(s) failed to upload"
|
||
msgstr "{failedCount} fitxer(s) no s'ha(n) pogut carregar"
|
||
|
||
#. js-lingui-id: WS/avX
|
||
#: src/modules/spreadsheet-import/steps/components/ImportDataStep.tsx
|
||
msgid "{formattedCreatedRecordsProgress} out of {formattedRecordsToImportCount} records imported."
|
||
msgstr "{formattedCreatedRecordsProgress} de {formattedRecordsToImportCount} registres importats."
|
||
|
||
#. js-lingui-id: J2Vio9
|
||
#: src/modules/billing/components/internal/MeteredPriceSelector.tsx
|
||
msgid "{nickname} - {price}$"
|
||
msgstr "{nickname} - {price}$"
|
||
|
||
#. js-lingui-id: OeIgEg
|
||
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelOverrideCell.tsx
|
||
msgid "{roleLabel} can {humanReadableAction} {objectLabel} records"
|
||
msgstr "{roleLabel} pot {humanReadableAction} registres de {objectLabel}"
|
||
|
||
#. js-lingui-id: D0C09b
|
||
#: src/modules/settings/roles/role-permissions/object-level-permissions/components/SettingsRolePermissionsObjectLevelOverrideCell.tsx
|
||
msgid "{roleLabel} can't {humanReadableAction} {objectLabel} records"
|
||
msgstr "{roleLabel} no pot {humanReadableAction} registres de {objectLabel}"
|
||
|
||
#. js-lingui-id: uHZWwU
|
||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentConfirmationModal.tsx
|
||
msgid "{roleTargetName} will be assigned to the \"{newRoleName}\" role."
|
||
msgstr "{roleTargetName} s'assignarà al rol \"{newRoleName}\"."
|
||
|
||
#. js-lingui-id: WN9tFl
|
||
#: src/modules/settings/roles/role-assignment/components/SettingsRoleAssignmentConfirmationModalSubtitle.tsx
|
||
msgid "{workspaceMemberName} will be unassigned from the following role:"
|
||
msgstr "{workspaceMemberName} serà desassignat del següent rol:"
|
||
|
||
#. js-lingui-id: CwstSL
|
||
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
|
||
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
|
||
#: src/modules/settings/accounts/components/SettingsAccountsConnectionForm.tsx
|
||
msgid "••••••••"
|
||
msgstr "••••••••"
|
||
|
||
#. js-lingui-id: vb5TwV
|
||
#: src/pages/settings/data-model/new-field/SettingsObjectNewFieldSelect.tsx
|
||
msgid "1. Select a field type"
|
||
msgstr "1. Selecciona un tipus de camp"
|
||
|
||
#. js-lingui-id: XSdCGq
|
||
#: src/pages/settings/roles/SettingsRoleAddObjectLevel.tsx
|
||
msgid "1. Select an object"
|
||
msgstr "1. Seleccioneu un objecte"
|
||
|
||
#. js-lingui-id: SLjiTq
|
||
#: src/modules/settings/data-model/components/SettingsDataModelNewFieldBreadcrumbDropDown.tsx
|
||
#: src/modules/settings/data-model/components/SettingsDataModelNewFieldBreadcrumbDropDown.tsx
|
||
msgid "1. Type"
|
||
msgstr "1. Tipus"
|
||
|
||
#. js-lingui-id: 7IIx+y
|
||
#: src/pages/onboarding/ChooseYourPlan.tsx
|
||
msgid "10,000 workflow node executions"
|
||
msgstr "10.000 execucions de nodes de flux de treball"
|
||
|
||
#. js-lingui-id: 4EdXYs
|
||
#: src/pages/settings/profile/appearance/components/DateTimeSettingsTimeFormatSelect.tsx
|
||
#: src/modules/settings/experience/components/DateTimeSettingsTimeFormatSelect.tsx
|
||
msgid "12h ({hour12Label})"
|
||
msgstr "12h ({hour12Label})"
|
||
|
||
#. js-lingui-id: yXvRMf
|
||
#: src/modules/settings/data-model/components/SettingsDataModelNewFieldBreadcrumbDropDown.tsx
|
||
#: src/modules/settings/data-model/components/SettingsDataModelNewFieldBreadcrumbDropDown.tsx
|
||
msgid "2. Configure"
|
||
msgstr "2. Configura"
|
||
|
||
#. js-lingui-id: 0HAF12
|
||
#: src/pages/settings/data-model/new-field/SettingsObjectNewFieldConfigure.tsx
|
||
msgid "2. Configure field"
|
||
msgstr "2. Configura el camp"
|
||
|
||
#. js-lingui-id: 0Tx9MD
|
||
#: src/modules/settings/roles/role-permissions/object-level-permissions/object-form/components/SettingsRolePermissionsObjectLevelObjectForm.tsx
|
||
msgid "2. Set {objectLabelPlural} permissions"
|
||
msgstr "2. Establiu permisos per a {objectLabelPlural}"
|
||
|
||
#. js-lingui-id: YfwnsU
|
||
#: src/pages/onboarding/ChooseYourPlan.tsx
|
||
msgid "20,000 workflow node executions"
|
||
msgstr "20.000 execucions de nodes de flux de treball"
|
||
|
||
#. js-lingui-id: QsMprd
|
||
#: src/pages/settings/profile/appearance/components/DateTimeSettingsTimeFormatSelect.tsx
|
||
#: src/modules/settings/experience/components/DateTimeSettingsTimeFormatSelect.tsx
|
||
msgid "24h ({hour24Label})"
|
||
msgstr "24h ({hour24Label})"
|
||
|
||
#. js-lingui-id: hziCGA
|
||
#: src/modules/settings/two-factor-authentication/components/DeleteTwoFactorAuthenticationMethod.tsx
|
||
msgid "2FA Method has been deleted successfully."
|
||
msgstr "El mètode 2FA ha estat suprimit amb èxit."
|
||
|
||
#. js-lingui-id: cNBo/E
|
||
#: src/modules/settings/two-factor-authentication/components/DeleteTwoFactorAuthenticationMethod.tsx
|
||
msgid "2FA Method Reset"
|
||
msgstr "Restabliment del mètode 2FA"
|
||
|
||
#. js-lingui-id: keUlu+
|
||
#: src/modules/workflow/components/OverrideWorkflowDraftConfirmationModal.tsx
|
||
msgid "A draft already exists"
|
||
msgstr "Ja hi ha un esborrany existent"
|
||
|
||
#. js-lingui-id: OITESn
|
||
#: src/modules/workflow/components/OverrideWorkflowDraftConfirmationModal.tsx
|
||
msgid "A draft already exists for this workflow. Are you sure you want to erase it?"
|
||
msgstr "Ja hi ha un esborrany existent per aquest flux de treball. Estàs segur que vols esborrar-lo?"
|
||
|
||
#. js-lingui-id: C6xZqR
|
||
#: src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx
|
||
msgid "A role must be selected for the API key"
|
||
msgstr "Cal seleccionar un rol per a la clau API"
|
||
|
||
#. js-lingui-id: nMTB1f
|
||
#: src/pages/onboarding/CreateWorkspace.tsx
|
||
msgid "A shared environment where you will be able to manage your customer relations with your team."
|
||
msgstr "Un entorn compartit on podreu gestionar les vostres relacions amb els clients amb el vostre equip."
|
||
|
||
#. js-lingui-id: /cSHSG
|
||
#: src/modules/auth/sign-in-up/components/EmailVerificationSent.tsx
|
||
msgid "A verification email has been sent to"
|
||
msgstr "S'ha enviat un correu electrònic de verificació a"
|
||
|
||
#. js-lingui-id: JE9zuL
|
||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsSection.tsx
|
||
msgid "Ability to edit all settings"
|
||
msgstr "Capacitat per editar tots els paràmetres"
|
||
|
||
#. js-lingui-id: wTKqOI
|
||
#: src/modules/settings/roles/role-permissions/object-level-permissions/field-permissions/components/SettingsRolePermissionsObjectLevelObjectFieldPermissionTable.tsx
|
||
msgid "Ability to interact with this object's fields."
|
||
msgstr "Capacitat per interactuar amb els camps d'aquest objecte."
|
||
|
||
#. js-lingui-id: ssjjFt
|
||
#: src/modules/ui/input/components/ImageInput.tsx
|
||
msgid "Abort"
|
||
msgstr "Avorta"
|
||
|
||
#. js-lingui-id: uyJsf6
|
||
#: src/pages/settings/data-model/SettingsNewObject.tsx
|
||
#: src/modules/settings/data-model/object-details/components/tabs/ObjectSettings.tsx
|
||
#: src/modules/settings/admin-panel/components/SettingsAdminGeneral.tsx
|
||
msgid "About"
|
||
msgstr "Sobre"
|
||
|
||
#. js-lingui-id: NBHoKd
|
||
#: src/modules/billing/components/SettingsBillingSubscriptionInfo.tsx
|
||
msgid "About my subscription"
|
||
msgstr "Sobre la meva subscripció"
|
||
|
||
#. js-lingui-id: DhgC7B
|
||
#: src/modules/settings/admin-panel/components/SettingsAdminGeneral.tsx
|
||
msgid "About this user"
|
||
msgstr "Sobre aquest usuari"
|
||
|
||
#. js-lingui-id: PtK3Kn
|
||
#: src/modules/settings/admin-panel/components/SettingsAdminWorkspaceContent.tsx
|
||
msgid "About this workspace"
|
||
msgstr "Sobre aquest espai de treball"
|
||
|
||
#. js-lingui-id: AeXO77
|
||
#: src/pages/settings/accounts/SettingsAccounts.tsx
|
||
#: src/pages/settings/accounts/SettingsAccounts.tsx
|
||
#: src/modules/settings/accounts/components/SettingsConnectedAccountsTableHeader.tsx
|
||
msgid "Account"
|
||
msgstr "Compte"
|
||
|
||
#. js-lingui-id: 9o6rjW
|
||
#: src/utils/title-utils.ts
|
||
msgid "Account - Settings"
|
||
msgstr "Compte - Configuració"
|
||
|
||
#. js-lingui-id: nD0Y+a
|
||
#: src/pages/settings/SettingsWorkspaceMembers.tsx
|
||
#: src/modules/settings/profile/components/DeleteAccount.tsx
|
||
msgid "Account Deletion"
|
||
msgstr "Eliminació de compte"
|
||
|
||
#. js-lingui-id: bPwFdf
|
||
#: src/pages/settings/accounts/SettingsAccountsEmails.tsx
|
||
#: src/pages/settings/accounts/SettingsAccountsCalendars.tsx
|
||
#: src/modules/settings/hooks/useSettingsNavigationItems.tsx
|
||
#: src/modules/settings/accounts/components/SettingsAccountsNewImapSmtpCaldavConnection.tsx
|
||
#: src/modules/settings/accounts/components/SettingsAccountsEditImapSmtpCaldavConnection.tsx
|
||
msgid "Accounts"
|
||
msgstr "Comptes"
|
||
|
||
#. js-lingui-id: GGcxJO
|
||
#: src/modules/settings/security/components/SSO/SettingsSSOSAMLForm.tsx
|
||
msgid "ACS Url copied to clipboard"
|
||
msgstr "URL ACS copiat al porta-retalls"
|
||
|
||
#. js-lingui-id: bwRvnp
|
||
#: src/modules/workflow/workflow-steps/workflow-actions/utils/getActionHeaderTypeOrThrow.ts
|
||
msgid "Action"
|
||
msgstr "Acció"
|
||
|
||
#. js-lingui-id: 7L01XJ
|
||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsToolSection.tsx
|
||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsSettingsTableHeader.tsx
|
||
#: src/modules/settings/roles/role-permissions/objects-permissions/components/SettingsRolePermissionsObjectsTableHeader.tsx
|
||
#: src/modules/settings/roles/role-permissions/object-level-permissions/object-form/components/SettingsRolePermissionsObjectLevelObjectFormObjectLevelTableHeader.tsx
|
||
msgid "Actions"
|
||
msgstr "Accions"
|
||
|
||
#. js-lingui-id: mQKK3r
|
||
#: src/modules/settings/roles/role-permissions/permission-flags/components/SettingsRolePermissionsToolSection.tsx
|
||
msgid "Actions permissions"
|
||
msgstr "Permisos d |