mirror of
https://github.com/documenso/documenso.git
synced 2026-07-11 21:45:18 +10:00
Compare commits
19 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 12d44e1c59 | |||
| 9dc66afc7b | |||
| 7a13be6bf2 | |||
| 1032028395 | |||
| 2396d0d5d0 | |||
| dac262edc9 | |||
| 25eb4ffedf | |||
| ee0ea82635 | |||
| 5f7f6698fd | |||
| 402809c809 | |||
| 733e273c05 | |||
| 7c7933c2d4 | |||
| bb120d65dd | |||
| 9c14aa6297 | |||
| 6387e809a8 | |||
| 5b2b1591a4 | |||
| e5cb4c6bfd | |||
| 8185f916d3 | |||
| c308dbf257 |
@@ -0,0 +1,222 @@
|
||||
---
|
||||
date: 2026-05-07
|
||||
title: Pdf Placeholder Selection Fields
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
Extend PDF placeholders so radio and dropdown fields can be configured from the existing Documenso placeholder syntax:
|
||||
|
||||
```text
|
||||
{{FIELD_TYPE, RECIPIENT, key=value, key=value}}
|
||||
```
|
||||
|
||||
Do not introduce a new delimiter style. Existing applications may already generate placeholders in this format, so the new selection-field behavior should fit into it.
|
||||
|
||||
## Goals
|
||||
|
||||
- Keep the current placeholder grammar unchanged.
|
||||
- Support checkbox placeholders with option lists, checked values, validation, direction, required, read-only, and font size.
|
||||
- Support radio placeholders with option lists, default/preselected values, direction, required, read-only, and font size.
|
||||
- Support dropdown placeholders with option lists, default value, required, read-only, and font size.
|
||||
- Use `options` as the only public list key in PDF placeholders.
|
||||
- Convert `options` into internal `fieldMeta.values` during parsing.
|
||||
- Make generated fields usable immediately in the editor, signing UI, preview renderer, and final PDF export.
|
||||
|
||||
## Non-Goals
|
||||
|
||||
- No semicolon placeholder syntax.
|
||||
- No `values` alias in PDF placeholder syntax.
|
||||
- No database migration.
|
||||
- No behavior change for existing placeholders such as `{{text, r1, required=true}}`.
|
||||
|
||||
## Placeholder Syntax
|
||||
|
||||
Use the existing comma-separated placeholder format:
|
||||
|
||||
```text
|
||||
{{checkbox, r1, options=Email|SMS|Phone, checked=Email|Phone, validationRule=atLeast, validationLength=1}}
|
||||
{{radio, r1, options=Card|Bank transfer|Check, defaultValue=Check}}
|
||||
{{radio, r1, options=Basic|Pro|Enterprise, selected=Pro, direction=horizontal}}
|
||||
{{dropdown, r1, options=United States|Canada|United Kingdom}}
|
||||
{{dropdown, r2, options=Sales|Legal|Finance, defaultValue=Legal}}
|
||||
```
|
||||
|
||||
Use `|` inside `options` because `,` is already the top-level placeholder delimiter.
|
||||
|
||||
Parsing rules:
|
||||
|
||||
- Split top-level placeholder tokens on unescaped commas.
|
||||
- Split metadata tokens on the first unescaped equals sign.
|
||||
- Split `options` on unescaped pipes.
|
||||
- Trim option values and drop empty values.
|
||||
- Preserve option order.
|
||||
- Support escaped delimiters: `\,`, `\=`, and `\|`.
|
||||
- Treat field type values case-insensitively.
|
||||
|
||||
## Field Type Mapping
|
||||
|
||||
- `checkbox` maps to `FieldType.CHECKBOX`.
|
||||
- `radio` maps to `FieldType.RADIO`.
|
||||
- `dropdown` maps to `FieldType.DROPDOWN`.
|
||||
|
||||
## Metadata Mapping
|
||||
|
||||
### Checkbox
|
||||
|
||||
Example:
|
||||
|
||||
```text
|
||||
{{checkbox, r1, options=Email|SMS|Phone, checked=Email|Phone, validationRule=atLeast, validationLength=1}}
|
||||
```
|
||||
|
||||
Normalize to:
|
||||
|
||||
```ts
|
||||
{
|
||||
type: FieldType.CHECKBOX,
|
||||
fieldMeta: {
|
||||
type: 'checkbox',
|
||||
validationRule: 'Select at least',
|
||||
validationLength: 1,
|
||||
values: [
|
||||
{ id: 1, value: 'Email', checked: true },
|
||||
{ id: 2, value: 'SMS', checked: false },
|
||||
{ id: 3, value: 'Phone', checked: true },
|
||||
],
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
Accepted keys:
|
||||
|
||||
- `options`
|
||||
- `checked`
|
||||
- `direction=vertical|horizontal`
|
||||
- `validationRule=atLeast|exactly|atMost`
|
||||
- `validationLength=1`
|
||||
- `required=true|false`
|
||||
- `readOnly=true|false`
|
||||
- `fontSize=12`
|
||||
|
||||
Map checkbox validation aliases internally: `atLeast` -> `Select at least`, `exactly` -> `Select exactly`, `atMost` -> `Select at most`.
|
||||
|
||||
Checkbox placeholders do not support `label` or `placeholder` metadata.
|
||||
|
||||
### Radio
|
||||
|
||||
Example:
|
||||
|
||||
```text
|
||||
{{radio, r1, options=Card|Bank transfer|Check, selected=Bank transfer}}
|
||||
```
|
||||
|
||||
Normalize to:
|
||||
|
||||
```ts
|
||||
{
|
||||
type: FieldType.RADIO,
|
||||
fieldMeta: {
|
||||
type: 'radio',
|
||||
values: [
|
||||
{ id: 1, value: 'Card', checked: false },
|
||||
{ id: 2, value: 'Bank transfer', checked: true },
|
||||
{ id: 3, value: 'Check', checked: false },
|
||||
],
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
Accepted keys:
|
||||
|
||||
- `options`
|
||||
- `selected`, `default`, or `defaultValue`
|
||||
- `direction=vertical|horizontal`
|
||||
- `required=true|false`
|
||||
- `readOnly=true|false`
|
||||
- `fontSize=12`
|
||||
|
||||
Radio placeholders do not support `label` or `placeholder` metadata.
|
||||
|
||||
### Dropdown
|
||||
|
||||
Example:
|
||||
|
||||
```text
|
||||
{{dropdown, r1, options=Sales|Legal|Finance, defaultValue=Legal}}
|
||||
```
|
||||
|
||||
Normalize to:
|
||||
|
||||
```ts
|
||||
{
|
||||
type: FieldType.DROPDOWN,
|
||||
fieldMeta: {
|
||||
type: 'dropdown',
|
||||
values: [{ value: 'Sales' }, { value: 'Legal' }, { value: 'Finance' }],
|
||||
defaultValue: 'Legal',
|
||||
},
|
||||
}
|
||||
```
|
||||
|
||||
Accepted keys:
|
||||
|
||||
- `options`
|
||||
- `selected`, `default`, or `defaultValue`
|
||||
- `required=true|false`
|
||||
- `readOnly=true|false`
|
||||
- `fontSize=12`
|
||||
|
||||
`defaultValue` should only be set if it matches one parsed option.
|
||||
|
||||
Dropdown placeholders do not support `label` or `placeholder` metadata.
|
||||
|
||||
## Code Touchpoints
|
||||
|
||||
- `packages/lib/server-only/pdf/helpers.ts`
|
||||
- Extend `parseFieldMetaFromPlaceholder` so `options` normalizes into checkbox/radio/dropdown `fieldMeta.values`.
|
||||
- Add delimiter-aware helpers for commas, equals signs, and pipes.
|
||||
- `packages/lib/server-only/pdf/auto-place-fields.ts`
|
||||
- Replace plain comma splitting with delimiter-aware splitting.
|
||||
- Preserve the existing positional structure: field type, recipient, metadata.
|
||||
- `packages/lib/types/field-meta.ts`
|
||||
- Keep current internal schemas: checkbox/radio/dropdown still store options as `fieldMeta.values`.
|
||||
- `packages/ui/primitives/document-flow/field-content.tsx`
|
||||
- Display a radio fallback when a placeholder-created radio has no options.
|
||||
- Docs:
|
||||
- `apps/docs/content/docs/users/documents/advanced/pdf-placeholders.mdx`
|
||||
- `apps/docs/content/docs/developers/api/fields.mdx`
|
||||
|
||||
## Test Plan
|
||||
|
||||
Unit tests:
|
||||
|
||||
- `options=Yes|No|Maybe` becomes stable radio values.
|
||||
- `selected=No` marks only the matching radio option checked.
|
||||
- Checkbox `options`, `checked`, `validationRule`, and `validationLength` normalize correctly.
|
||||
- Dropdown `options` and `defaultValue` normalize correctly.
|
||||
- Escaped delimiters parse correctly, for example `options=Sales\|Ops|Legal\, Compliance|A\=B`.
|
||||
|
||||
E2E/API tests:
|
||||
|
||||
- Add a PDF fixture with checkbox, radio, and dropdown placeholders using the current syntax.
|
||||
- Verify created fields have schema-compatible metadata and expected options/defaults.
|
||||
|
||||
Suggested verification:
|
||||
|
||||
```bash
|
||||
npm run test -w @documenso/lib -- server-only/pdf/helpers.test.ts
|
||||
npm run test:dev -w @documenso/app-tests -- e2e/auto-placing-fields/auto-place-fields-document.spec.ts
|
||||
npm run test:dev -w @documenso/app-tests -- e2e/envelope-editor-v2/envelope-fields.spec.ts
|
||||
npx tsc --noEmit -p packages/lib/tsconfig.json
|
||||
npx tsc --noEmit -p apps/remix/tsconfig.json
|
||||
```
|
||||
|
||||
Do not use `npm run build` for routine verification unless explicitly requested.
|
||||
|
||||
## Decisions
|
||||
|
||||
- Keep the existing placeholder format.
|
||||
- Use only `options` publicly.
|
||||
- Keep `values` as an internal metadata field only.
|
||||
- Use `|` as the option delimiter inside `options`.
|
||||
@@ -109,6 +109,37 @@ You can customize fields by adding options after the recipient identifier:
|
||||
| `maxValue` | Number | Maximum allowed value |
|
||||
| `numberFormat` | Format string | Number display format |
|
||||
|
||||
### Selection Field Options
|
||||
|
||||
Checkbox, radio, and dropdown placeholders can define their selectable choices via the `options` property.
|
||||
Separate choices with pipe (`|`) characters.
|
||||
Checkbox, radio, and dropdown placeholders do not support `label` or `placeholder` metadata.
|
||||
|
||||
| Option | Applies To | Values | Description |
|
||||
| ------------------ | ------------------------- | ------------------------ | ---------------------------------------- |
|
||||
| `options` | Checkbox, Radio, Dropdown | `Option 1|Option 2` | Selectable choices |
|
||||
| `checked` | Checkbox | `Option 1|Option 2` | Pre-checked choices |
|
||||
| `selected` | Radio, Dropdown | One option value | Pre-selected/default choice |
|
||||
| `default` | Radio, Dropdown | One option value | Alias for `selected` |
|
||||
| `defaultValue` | Radio, Dropdown | One option value | Alias for `selected` |
|
||||
| `direction` | Checkbox, Radio | `vertical`, `horizontal` | Option layout |
|
||||
| `validationRule` | Checkbox | `atLeast`, `exactly`, `atMost` | Checkbox selection validation rule |
|
||||
| `validationLength` | Checkbox | Number (e.g., `1`) | Checkbox validation option count |
|
||||
| `required` | Checkbox, Radio, Dropdown | `true`, `false` | Whether the field must be completed |
|
||||
| `readOnly` | Checkbox, Radio, Dropdown | `true`, `false` | Whether the pre-selected value is locked |
|
||||
| `fontSize` | Checkbox, Radio, Dropdown | Number (e.g., `12`) | Field text size |
|
||||
|
||||
For checkbox validation, `validationLength` defines the option count:
|
||||
- `atLeast` means at least that many options must be selected
|
||||
- `exactly` means exactly that many options must be selected
|
||||
- `atMost` means at most that many options must be selected
|
||||
|
||||
If an option needs a literal delimiter, escape it with a backslash:
|
||||
|
||||
```
|
||||
{{dropdown, r1, options=Sales\|Ops|Legal\, Compliance|A\=B}}
|
||||
```
|
||||
|
||||
### Examples with Options
|
||||
|
||||
```
|
||||
@@ -116,6 +147,10 @@ You can customize fields by adding options after the recipient identifier:
|
||||
{{number, r1, minValue=0, maxValue=100, value=50}}
|
||||
{{name, r1, fontSize=14}}
|
||||
{{text, r2, readOnly=true, text=Contract #12345}}
|
||||
{{checkbox, r1, options=Email|SMS|Phone, checked=Email|Phone, validationRule=atLeast, validationLength=1}}
|
||||
{{radio, r1, options=Card|Bank transfer|Check, selected=Check}}
|
||||
{{dropdown, r1, options=United States|Canada|United Kingdom}}
|
||||
{{dropdown, r2, options=Sales|Legal|Finance, defaultValue=Legal}}
|
||||
```
|
||||
|
||||
<Callout type="info">
|
||||
|
||||
@@ -96,7 +96,7 @@ export const SignUpForm = ({
|
||||
password: '',
|
||||
signature: '',
|
||||
},
|
||||
mode: 'onChange',
|
||||
mode: 'onBlur',
|
||||
resolver: zodResolver(ZSignUpFormSchema),
|
||||
});
|
||||
|
||||
|
||||
@@ -57,7 +57,10 @@ export const UNSAFE_createEnvelopeItems = async ({
|
||||
flattenForm: envelope.type !== 'TEMPLATE',
|
||||
});
|
||||
|
||||
const { cleanedPdf, placeholders } = await extractPdfPlaceholders(normalized);
|
||||
const { cleanedPdf, placeholders } = await extractPdfPlaceholders(normalized, {
|
||||
envelopeId: envelope.id,
|
||||
fileName: file.name,
|
||||
});
|
||||
|
||||
const { documentData } = await putPdfFileServerSide({
|
||||
name: file.name,
|
||||
|
||||
@@ -85,7 +85,10 @@ export const UNSAFE_replaceEnvelopeItemPdf = async ({
|
||||
flattenForm: envelope.type !== 'TEMPLATE',
|
||||
});
|
||||
|
||||
const { cleanedPdf, placeholders } = await extractPdfPlaceholders(normalized);
|
||||
const { cleanedPdf, placeholders } = await extractPdfPlaceholders(normalized, {
|
||||
envelopeId: envelope.id,
|
||||
fileName: data.file.name,
|
||||
});
|
||||
|
||||
// Upload the new PDF and get a new DocumentData record.
|
||||
const { documentData: newDocumentData, filePageCount } = await putPdfFileServerSide({
|
||||
|
||||
@@ -1,8 +1,15 @@
|
||||
import { AppError, AppErrorCode } from '@documenso/lib/errors/app-error';
|
||||
import { type TFieldAndMeta, ZEnvelopeFieldAndMetaSchema } from '@documenso/lib/types/field-meta';
|
||||
import { logger } from '@documenso/lib/utils/logger';
|
||||
import { PDF, rgb } from '@libpdf/core';
|
||||
import type { FieldType, Recipient } from '@prisma/client';
|
||||
|
||||
import { parseFieldMetaFromPlaceholder, parseFieldTypeFromPlaceholder } from './helpers';
|
||||
import {
|
||||
parseFieldMetaFromPlaceholder,
|
||||
parseFieldTypeFromPlaceholder,
|
||||
parsePlaceholderData,
|
||||
parseRawFieldMetaFromPlaceholder,
|
||||
} from './helpers';
|
||||
|
||||
const PLACEHOLDER_REGEX = /\{\{([^}]+)\}\}/g;
|
||||
const DEFAULT_FIELD_HEIGHT_PERCENT = 2;
|
||||
@@ -61,7 +68,15 @@ export type FieldToCreate = TFieldAndMeta & {
|
||||
height: number;
|
||||
};
|
||||
|
||||
export const extractPlaceholdersFromPDF = async (pdf: Buffer): Promise<PlaceholderInfo[]> => {
|
||||
type ExtractPlaceholdersLogContext = {
|
||||
envelopeId?: string;
|
||||
fileName?: string;
|
||||
};
|
||||
|
||||
export const extractPlaceholdersFromPDF = async (
|
||||
pdf: Buffer,
|
||||
logContext?: ExtractPlaceholdersLogContext,
|
||||
): Promise<PlaceholderInfo[]> => {
|
||||
const pdfDoc = await PDF.load(new Uint8Array(pdf));
|
||||
|
||||
const placeholders: PlaceholderInfo[] = [];
|
||||
@@ -85,7 +100,7 @@ export const extractPlaceholdersFromPDF = async (pdf: Buffer): Promise<Placehold
|
||||
continue;
|
||||
}
|
||||
|
||||
const placeholderData = innerMatch[1].split(',').map((property) => property.trim());
|
||||
const placeholderData = parsePlaceholderData(innerMatch[1]);
|
||||
const [fieldTypeString, recipientOrMeta, ...fieldMetaData] = placeholderData;
|
||||
|
||||
let fieldType: FieldType;
|
||||
@@ -109,14 +124,51 @@ export const extractPlaceholdersFromPDF = async (pdf: Buffer): Promise<Placehold
|
||||
|
||||
const recipient = recipientOrMeta;
|
||||
|
||||
const rawFieldMeta = Object.fromEntries(fieldMetaData.map((property) => property.split('=')));
|
||||
/*
|
||||
Parse and validate the field metadata. A malformed selection placeholder
|
||||
(e.g. an unknown validation rule or a default value that doesn't match an
|
||||
option) is skipped like an invalid field type rather than aborting the whole
|
||||
upload, which may contain other valid placeholders and files.
|
||||
*/
|
||||
let fieldAndMeta: TFieldAndMeta;
|
||||
|
||||
const parsedFieldMeta = parseFieldMetaFromPlaceholder(rawFieldMeta, fieldType);
|
||||
try {
|
||||
const rawFieldMeta = parseRawFieldMetaFromPlaceholder(fieldMetaData);
|
||||
const parsedFieldMeta = parseFieldMetaFromPlaceholder(rawFieldMeta, fieldType);
|
||||
|
||||
const fieldAndMeta: TFieldAndMeta = ZEnvelopeFieldAndMetaSchema.parse({
|
||||
type: fieldType,
|
||||
fieldMeta: parsedFieldMeta,
|
||||
});
|
||||
const parsedFieldAndMeta = ZEnvelopeFieldAndMetaSchema.safeParse({
|
||||
type: fieldType,
|
||||
fieldMeta: parsedFieldMeta,
|
||||
});
|
||||
|
||||
/*
|
||||
Surface schema failures as INVALID_BODY (400) instead of letting the raw
|
||||
ZodError bubble up to the caller as an INTERNAL_SERVER_ERROR (500).
|
||||
*/
|
||||
if (!parsedFieldAndMeta.success) {
|
||||
throw new AppError(AppErrorCode.INVALID_BODY, {
|
||||
message: `Invalid field metadata for placeholder "${placeholder}": ${parsedFieldAndMeta.error.message}`,
|
||||
});
|
||||
}
|
||||
|
||||
fieldAndMeta = parsedFieldAndMeta.data;
|
||||
} catch (error) {
|
||||
const appError = AppError.parseError(error);
|
||||
|
||||
logger.warn(
|
||||
{
|
||||
envelopeId: logContext?.envelopeId,
|
||||
fileName: logContext?.fileName,
|
||||
placeholder,
|
||||
page: page.index + 1,
|
||||
code: appError.code,
|
||||
message: appError.message,
|
||||
},
|
||||
'Skipping placeholder with invalid field metadata',
|
||||
);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
/*
|
||||
LibPDF returns bbox in points with bottom-left origin.
|
||||
@@ -182,8 +234,9 @@ export const removePlaceholdersFromPDF = async (pdf: Buffer, placeholders?: Plac
|
||||
*/
|
||||
export const extractPdfPlaceholders = async (
|
||||
pdf: Buffer,
|
||||
logContext?: ExtractPlaceholdersLogContext,
|
||||
): Promise<{ cleanedPdf: Buffer; placeholders: PlaceholderInfo[] }> => {
|
||||
const placeholders = await extractPlaceholdersFromPDF(pdf);
|
||||
const placeholders = await extractPlaceholdersFromPDF(pdf, logContext);
|
||||
|
||||
if (placeholders.length === 0) {
|
||||
return { cleanedPdf: pdf, placeholders: [] };
|
||||
|
||||
@@ -0,0 +1,235 @@
|
||||
import { FieldType } from '@prisma/client';
|
||||
import { describe, expect, it } from 'vitest';
|
||||
|
||||
import { AppError, AppErrorCode } from '../../errors/app-error';
|
||||
import {
|
||||
parseFieldMetaFromPlaceholder,
|
||||
parseFieldTypeFromPlaceholder,
|
||||
parsePlaceholderData,
|
||||
parseRawFieldMetaFromPlaceholder,
|
||||
} from './helpers';
|
||||
|
||||
const expectInvalidBody = (fn: () => unknown) => {
|
||||
try {
|
||||
fn();
|
||||
expect.unreachable('Expected an AppError to be thrown');
|
||||
} catch (error) {
|
||||
expect(error).toBeInstanceOf(AppError);
|
||||
expect((error as AppError).code).toBe(AppErrorCode.INVALID_BODY);
|
||||
}
|
||||
};
|
||||
|
||||
describe('parseFieldTypeFromPlaceholder function', () => {
|
||||
it('maps known field type strings to the FieldType enum', () => {
|
||||
expect(parseFieldTypeFromPlaceholder('signature')).toBe(FieldType.SIGNATURE);
|
||||
expect(parseFieldTypeFromPlaceholder('radio')).toBe(FieldType.RADIO);
|
||||
expect(parseFieldTypeFromPlaceholder('checkbox')).toBe(FieldType.CHECKBOX);
|
||||
expect(parseFieldTypeFromPlaceholder('dropdown')).toBe(FieldType.DROPDOWN);
|
||||
});
|
||||
|
||||
it('is case-insensitive and trims surrounding whitespace', () => {
|
||||
expect(parseFieldTypeFromPlaceholder(' SiGnAtUrE ')).toBe(FieldType.SIGNATURE);
|
||||
expect(parseFieldTypeFromPlaceholder('RADIO')).toBe(FieldType.RADIO);
|
||||
});
|
||||
|
||||
it('throws INVALID_BODY for an unknown field type', () => {
|
||||
expectInvalidBody(() => parseFieldTypeFromPlaceholder('FILE'));
|
||||
});
|
||||
});
|
||||
|
||||
describe('parsePlaceholderData function', () => {
|
||||
it('splits top-level parts on commas and trims each token', () => {
|
||||
expect(parsePlaceholderData('SIGNATURE, r1, required=true')).toEqual(['SIGNATURE', 'r1', 'required=true']);
|
||||
});
|
||||
|
||||
it('does not split on escaped commas', () => {
|
||||
expect(parsePlaceholderData('dropdown, r1, options=Legal\\, Compliance|Sales')).toEqual([
|
||||
'dropdown',
|
||||
'r1',
|
||||
'options=Legal\\, Compliance|Sales',
|
||||
]);
|
||||
});
|
||||
});
|
||||
|
||||
describe('parseRawFieldMetaFromPlaceholder function', () => {
|
||||
it('splits each token into a key/value entry', () => {
|
||||
expect(parseRawFieldMetaFromPlaceholder(['required=true', 'fontSize=12'])).toEqual({
|
||||
required: 'true',
|
||||
fontSize: '12',
|
||||
});
|
||||
});
|
||||
|
||||
it('only splits on the first unescaped equals sign', () => {
|
||||
expect(parseRawFieldMetaFromPlaceholder(['label=a=b'])).toEqual({ label: 'a=b' });
|
||||
});
|
||||
|
||||
it('drops tokens without a value and overwrites duplicate keys with the last', () => {
|
||||
expect(parseRawFieldMetaFromPlaceholder(['required', 'fontSize=12', 'fontSize=14'])).toEqual({
|
||||
fontSize: '14',
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('parseFieldMetaFromPlaceholder function', () => {
|
||||
describe('non-field-meta cases', () => {
|
||||
it('returns undefined for signature and free signature fields', () => {
|
||||
expect(parseFieldMetaFromPlaceholder({ required: 'true' }, FieldType.SIGNATURE)).toBeUndefined();
|
||||
expect(parseFieldMetaFromPlaceholder({}, FieldType.FREE_SIGNATURE)).toBeUndefined();
|
||||
});
|
||||
|
||||
it('returns undefined when there is no metadata', () => {
|
||||
expect(parseFieldMetaFromPlaceholder({}, FieldType.TEXT)).toBeUndefined();
|
||||
});
|
||||
});
|
||||
|
||||
describe('generic metadata', () => {
|
||||
it('coerces required/readOnly to booleans (case-insensitive)', () => {
|
||||
expect(parseFieldMetaFromPlaceholder({ required: 'TRUE', readOnly: 'false' }, FieldType.TEXT)).toEqual({
|
||||
type: 'text',
|
||||
required: true,
|
||||
readOnly: false,
|
||||
});
|
||||
});
|
||||
|
||||
it('coerces numeric properties to numbers', () => {
|
||||
expect(parseFieldMetaFromPlaceholder({ fontSize: '14' }, FieldType.TEXT)).toEqual({
|
||||
type: 'text',
|
||||
fontSize: 14,
|
||||
});
|
||||
});
|
||||
|
||||
it('drops numeric properties that are not a number', () => {
|
||||
const parsed = parseFieldMetaFromPlaceholder({ fontSize: 'abc' }, FieldType.TEXT);
|
||||
|
||||
expect(parsed).toEqual({ type: 'text' });
|
||||
expect(parsed).not.toHaveProperty('fontSize');
|
||||
});
|
||||
|
||||
it('keeps label/placeholder for non-selection fields', () => {
|
||||
expect(parseFieldMetaFromPlaceholder({ label: 'Company Name', placeholder: 'Acme' }, FieldType.TEXT)).toEqual({
|
||||
type: 'text',
|
||||
label: 'Company Name',
|
||||
placeholder: 'Acme',
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
describe('radio fields', () => {
|
||||
it('builds stable values from options', () => {
|
||||
expect(parseFieldMetaFromPlaceholder({ options: 'Yes|No|Maybe' }, FieldType.RADIO)).toEqual({
|
||||
type: 'radio',
|
||||
values: [
|
||||
{ id: 1, checked: false, value: 'Yes' },
|
||||
{ id: 2, checked: false, value: 'No' },
|
||||
{ id: 3, checked: false, value: 'Maybe' },
|
||||
],
|
||||
});
|
||||
});
|
||||
|
||||
it('marks only the selected option as checked', () => {
|
||||
const parsed = parseFieldMetaFromPlaceholder({ options: 'Yes|No|Maybe', selected: 'No' }, FieldType.RADIO);
|
||||
|
||||
expect(parsed).toEqual({
|
||||
type: 'radio',
|
||||
values: [
|
||||
{ id: 1, checked: false, value: 'Yes' },
|
||||
{ id: 2, checked: true, value: 'No' },
|
||||
{ id: 3, checked: false, value: 'Maybe' },
|
||||
],
|
||||
});
|
||||
});
|
||||
|
||||
it('throws when a default value is provided without options', () => {
|
||||
expectInvalidBody(() => parseFieldMetaFromPlaceholder({ selected: 'No' }, FieldType.RADIO));
|
||||
});
|
||||
|
||||
it('throws when the default value does not match an option', () => {
|
||||
expectInvalidBody(() => parseFieldMetaFromPlaceholder({ options: 'Yes|No', selected: 'Maybe' }, FieldType.RADIO));
|
||||
});
|
||||
|
||||
it('throws when options is empty', () => {
|
||||
expectInvalidBody(() => parseFieldMetaFromPlaceholder({ options: '' }, FieldType.RADIO));
|
||||
});
|
||||
});
|
||||
|
||||
describe('checkbox fields', () => {
|
||||
it('builds values with checked state, validation rule alias and length', () => {
|
||||
const parsed = parseFieldMetaFromPlaceholder(
|
||||
{
|
||||
options: 'Email|SMS|Phone',
|
||||
checked: 'Email|Phone',
|
||||
validationRule: 'atLeast',
|
||||
validationLength: '1',
|
||||
},
|
||||
FieldType.CHECKBOX,
|
||||
);
|
||||
|
||||
expect(parsed).toEqual({
|
||||
type: 'checkbox',
|
||||
validationRule: 'Select at least',
|
||||
validationLength: 1,
|
||||
values: [
|
||||
{ id: 1, checked: true, value: 'Email' },
|
||||
{ id: 2, checked: false, value: 'SMS' },
|
||||
{ id: 3, checked: true, value: 'Phone' },
|
||||
],
|
||||
});
|
||||
});
|
||||
|
||||
it('throws for an unknown validation rule', () => {
|
||||
expectInvalidBody(() =>
|
||||
parseFieldMetaFromPlaceholder({ options: 'A|B', validationRule: 'nope' }, FieldType.CHECKBOX),
|
||||
);
|
||||
});
|
||||
|
||||
it('throws when checked values are provided without options', () => {
|
||||
expectInvalidBody(() => parseFieldMetaFromPlaceholder({ checked: 'A' }, FieldType.CHECKBOX));
|
||||
});
|
||||
|
||||
it('throws when a checked value does not match an option', () => {
|
||||
expectInvalidBody(() => parseFieldMetaFromPlaceholder({ options: 'A|B', checked: 'C' }, FieldType.CHECKBOX));
|
||||
});
|
||||
});
|
||||
|
||||
describe('dropdown fields', () => {
|
||||
it('builds values and sets a matching default value', () => {
|
||||
expect(
|
||||
parseFieldMetaFromPlaceholder(
|
||||
{ options: 'United States|Canada|United Kingdom', defaultValue: 'Canada' },
|
||||
FieldType.DROPDOWN,
|
||||
),
|
||||
).toEqual({
|
||||
type: 'dropdown',
|
||||
values: [{ value: 'United States' }, { value: 'Canada' }, { value: 'United Kingdom' }],
|
||||
defaultValue: 'Canada',
|
||||
});
|
||||
});
|
||||
|
||||
it('throws when the default value does not match an option', () => {
|
||||
expectInvalidBody(() => parseFieldMetaFromPlaceholder({ options: 'A|B', defaultValue: 'C' }, FieldType.DROPDOWN));
|
||||
});
|
||||
});
|
||||
|
||||
describe('selection field options parsing', () => {
|
||||
it('trims option values and drops empty entries', () => {
|
||||
expect(parseFieldMetaFromPlaceholder({ options: ' A || B ' }, FieldType.DROPDOWN)).toEqual({
|
||||
type: 'dropdown',
|
||||
values: [{ value: 'A' }, { value: 'B' }],
|
||||
});
|
||||
});
|
||||
|
||||
it('parses escaped delimiters through the full placeholder pipeline', () => {
|
||||
const [, , ...fieldMetaData] = parsePlaceholderData(
|
||||
'dropdown, r1, options=Sales\\|Ops|Legal\\, Compliance|A\\=B',
|
||||
);
|
||||
|
||||
const rawFieldMeta = parseRawFieldMetaFromPlaceholder(fieldMetaData);
|
||||
const parsed = parseFieldMetaFromPlaceholder(rawFieldMeta, FieldType.DROPDOWN);
|
||||
|
||||
expect(parsed).toEqual({
|
||||
type: 'dropdown',
|
||||
values: [{ value: 'Sales|Ops' }, { value: 'Legal, Compliance' }, { value: 'A=B' }],
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -45,6 +45,134 @@ type RecipientPlaceholderInfo = {
|
||||
recipientIndex: number;
|
||||
};
|
||||
|
||||
const CHECKBOX_VALIDATION_RULE_BY_ALIAS: Record<string, string> = {
|
||||
atLeast: 'Select at least',
|
||||
exactly: 'Select exactly',
|
||||
atMost: 'Select at most',
|
||||
};
|
||||
|
||||
/*
|
||||
Split a string on a delimiter, treating `\` as an escape for the next character.
|
||||
Delimiters preceded by `\` are kept in the output instead of splitting (e.g. `\,`, `\=`, `\|`).
|
||||
|
||||
With delimiter ',' (top-level placeholder parts):
|
||||
'radio, r1, options=Card/Check|Bank Transfer, selected=Bank Transfer'
|
||||
-> ['radio', ' r1', ' options=Card/Check|Bank Transfer', ' selected=Bank Transfer']
|
||||
|
||||
With delimiter '=' (split one field metadata token into key + value):
|
||||
'options=Card/Check|Bank Transfer'
|
||||
-> ['options', 'Card/Check|Bank Transfer']
|
||||
|
||||
With delimiter '|' (split option list inside 'options='):
|
||||
'Card/Check|Bank Transfer'
|
||||
-> ['Card/Check', 'Bank Transfer']
|
||||
*/
|
||||
const splitPlaceholderToken = (value: string, delimiter: string): string[] => {
|
||||
const parts: string[] = [];
|
||||
let currentPart = '';
|
||||
|
||||
for (let index = 0; index < value.length; index++) {
|
||||
const char = value[index];
|
||||
const nextChar = value[index + 1];
|
||||
|
||||
if (char === '\\' && nextChar) {
|
||||
currentPart += char + nextChar;
|
||||
index++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (char === delimiter) {
|
||||
parts.push(currentPart);
|
||||
currentPart = '';
|
||||
continue;
|
||||
}
|
||||
|
||||
currentPart += char;
|
||||
}
|
||||
|
||||
parts.push(currentPart);
|
||||
|
||||
return parts;
|
||||
};
|
||||
|
||||
/*
|
||||
Removes the escape backslashes left over after splitting, so \,=, \|, \\ become their literal characters.
|
||||
|
||||
E.g.
|
||||
'Legal\, Compliance' -> 'Legal, Compliance'
|
||||
'Card\|Check' -> 'Card|Check'
|
||||
'A\=B' -> 'A=B'
|
||||
'C\D' -> 'C\D'
|
||||
*/
|
||||
const unescapePlaceholderValue = (value: string): string => {
|
||||
return value.replace(/\\([,=|\\])/g, '$1');
|
||||
};
|
||||
|
||||
/*
|
||||
Cleans up a selection option/default after splitting:
|
||||
unescapes literal delimiters, collapses repeated whitespace, and trims the ends.
|
||||
|
||||
E.g.
|
||||
' Legal\, Compliance ' -> 'Legal, Compliance'
|
||||
*/
|
||||
const normalizePlaceholderSelectionValue = (value: string): string => {
|
||||
return unescapePlaceholderValue(value).replace(/\s+/g, ' ').trim();
|
||||
};
|
||||
|
||||
/*
|
||||
Split an options string into individual choices.
|
||||
Splits on unescaped '|', then unescapes, trims, and drops empty entries.
|
||||
|
||||
E.g.
|
||||
'Card/Check|Bank Transfer' -> ['Card/Check', 'Bank Transfer']
|
||||
'Card\\|Check|Bank Transfer' -> ['Card|Check', 'Bank Transfer']
|
||||
*/
|
||||
const parsePlaceholderOptions = (value: string): string[] => {
|
||||
return splitPlaceholderToken(value, '|')
|
||||
.map((option) => normalizePlaceholderSelectionValue(option))
|
||||
.filter((option) => option.length > 0);
|
||||
};
|
||||
|
||||
/*
|
||||
Split a placeholder string into top-level parts (field type, recipient, metadata).
|
||||
Splits on unescaped commas, then trims whitespace.
|
||||
|
||||
E.g.
|
||||
'SIGNATURE, r1, required=true'
|
||||
-> ['SIGNATURE', 'r1', 'required=true']
|
||||
*/
|
||||
export const parsePlaceholderData = (value: string): string[] => {
|
||||
return splitPlaceholderToken(value, ',').map((token) => token.trim());
|
||||
};
|
||||
|
||||
/*
|
||||
Transforms the field metadata string array into a record of key/value pairs.
|
||||
Each token is split on the first unescaped '='; tokens with no key or no '=' are dropped.
|
||||
|
||||
E.g.
|
||||
['required=true', 'fontSize=12', 'label=a=b']
|
||||
-> { required: 'true', fontSize: '12', label: 'a=b' }
|
||||
*/
|
||||
export const parseRawFieldMetaFromPlaceholder = (fieldMetaData: string[]): Record<string, string> => {
|
||||
const rawFieldMeta: Record<string, string> = {};
|
||||
|
||||
for (const fieldMeta of fieldMetaData) {
|
||||
// Split on the first '=' only; any further '=' stays part of the value (e.g. 'label=a=b').
|
||||
const [rawKey, ...valueParts] = splitPlaceholderToken(fieldMeta, '=');
|
||||
|
||||
if (!rawKey || valueParts.length === 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const key = rawKey.trim();
|
||||
const value = valueParts.join('=').trim();
|
||||
|
||||
rawFieldMeta[key] = value;
|
||||
}
|
||||
|
||||
return rawFieldMeta;
|
||||
};
|
||||
|
||||
/*
|
||||
Parse field type string to FieldType enum.
|
||||
Normalizes the input (uppercase, trim) and validates it's a valid field type.
|
||||
@@ -72,6 +200,169 @@ export const parseFieldTypeFromPlaceholder = (fieldTypeString: string): FieldTyp
|
||||
});
|
||||
};
|
||||
|
||||
const getDefaultFieldMetaValue = (rawFieldMeta: Record<string, string>) => {
|
||||
const defaultValue = rawFieldMeta.defaultValue ?? rawFieldMeta.default ?? rawFieldMeta.selected;
|
||||
|
||||
return defaultValue ? normalizePlaceholderSelectionValue(defaultValue) : undefined;
|
||||
};
|
||||
|
||||
const parseCheckboxValidationRule = (value: string): string => {
|
||||
const validationRule = CHECKBOX_VALIDATION_RULE_BY_ALIAS[value];
|
||||
|
||||
if (!validationRule) {
|
||||
throw new AppError(AppErrorCode.INVALID_BODY, {
|
||||
message: `Invalid checkbox placeholder validation rule: ${value}`,
|
||||
});
|
||||
}
|
||||
|
||||
return validationRule;
|
||||
};
|
||||
|
||||
const parseSelectionFieldOptions = (
|
||||
rawFieldMeta: Record<string, string>,
|
||||
fieldType: FieldType,
|
||||
): string[] | undefined => {
|
||||
const rawOptions = rawFieldMeta.options;
|
||||
|
||||
if (rawOptions === undefined) {
|
||||
return;
|
||||
}
|
||||
|
||||
const parsedOptions = parsePlaceholderOptions(rawOptions);
|
||||
|
||||
if (parsedOptions.length === 0) {
|
||||
throw new AppError(AppErrorCode.INVALID_BODY, {
|
||||
message: `${fieldType} placeholder options must contain at least one value`,
|
||||
});
|
||||
}
|
||||
|
||||
return parsedOptions;
|
||||
};
|
||||
|
||||
const applyRadioFieldOptions = (parsedFieldMeta: Record<string, unknown>, rawFieldMeta: Record<string, string>) => {
|
||||
const options = parseSelectionFieldOptions(rawFieldMeta, FieldType.RADIO);
|
||||
const defaultValue = getDefaultFieldMetaValue(rawFieldMeta);
|
||||
|
||||
if (!options && defaultValue) {
|
||||
throw new AppError(AppErrorCode.INVALID_BODY, {
|
||||
message: 'Radio placeholder default value requires options',
|
||||
});
|
||||
}
|
||||
|
||||
if (!options) {
|
||||
return;
|
||||
}
|
||||
|
||||
const selectedOptionIndex = defaultValue ? options.findIndex((option) => option === defaultValue) : -1;
|
||||
|
||||
if (defaultValue && selectedOptionIndex === -1) {
|
||||
throw new AppError(AppErrorCode.INVALID_BODY, {
|
||||
message: `Radio placeholder default value "${defaultValue}" must match one of the options`,
|
||||
});
|
||||
}
|
||||
|
||||
parsedFieldMeta.values = options.map((option, index) => ({
|
||||
id: index + 1,
|
||||
checked: index === selectedOptionIndex,
|
||||
value: option,
|
||||
}));
|
||||
};
|
||||
|
||||
const applyCheckboxFieldOptions = (parsedFieldMeta: Record<string, unknown>, rawFieldMeta: Record<string, string>) => {
|
||||
const options = parseSelectionFieldOptions(rawFieldMeta, FieldType.CHECKBOX);
|
||||
const checkedValues = rawFieldMeta.checked ? parsePlaceholderOptions(rawFieldMeta.checked) : [];
|
||||
|
||||
if (!options && checkedValues.length > 0) {
|
||||
throw new AppError(AppErrorCode.INVALID_BODY, {
|
||||
message: 'Checkbox placeholder checked values require options',
|
||||
});
|
||||
}
|
||||
|
||||
if (!options) {
|
||||
return;
|
||||
}
|
||||
|
||||
const unmatchedCheckedValues = checkedValues.filter((checkedValue) => !options.includes(checkedValue));
|
||||
|
||||
if (unmatchedCheckedValues.length > 0) {
|
||||
const unmatchedCheckedValue = unmatchedCheckedValues[0];
|
||||
|
||||
throw new AppError(AppErrorCode.INVALID_BODY, {
|
||||
message: [`Checkbox placeholder checked value "${unmatchedCheckedValue}"`, 'must match one of the options'].join(
|
||||
' ',
|
||||
),
|
||||
});
|
||||
}
|
||||
|
||||
parsedFieldMeta.values = options.map((option, index) => ({
|
||||
id: index + 1,
|
||||
checked: checkedValues.includes(option),
|
||||
value: option,
|
||||
}));
|
||||
};
|
||||
|
||||
const applyDropdownFieldOptions = (parsedFieldMeta: Record<string, unknown>, rawFieldMeta: Record<string, string>) => {
|
||||
const options = parseSelectionFieldOptions(rawFieldMeta, FieldType.DROPDOWN);
|
||||
const defaultValue = getDefaultFieldMetaValue(rawFieldMeta);
|
||||
|
||||
if (!options && defaultValue) {
|
||||
throw new AppError(AppErrorCode.INVALID_BODY, {
|
||||
message: 'Dropdown placeholder default value requires options',
|
||||
});
|
||||
}
|
||||
|
||||
if (!options) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (defaultValue && !options.includes(defaultValue)) {
|
||||
throw new AppError(AppErrorCode.INVALID_BODY, {
|
||||
message: `Dropdown placeholder default value "${defaultValue}" must match one of the options`,
|
||||
});
|
||||
}
|
||||
|
||||
parsedFieldMeta.values = options.map((option) => ({
|
||||
value: option,
|
||||
}));
|
||||
|
||||
if (defaultValue) {
|
||||
parsedFieldMeta.defaultValue = defaultValue;
|
||||
}
|
||||
};
|
||||
|
||||
/*
|
||||
Generic field metadata properties are simple properties consisting of a key and a value.
|
||||
E.g. 'required=true', 'fontSize=12', 'textAlign=left'
|
||||
They don't require special handling.
|
||||
|
||||
Special field metadata properties are complex properties consisting of a key and a value with multiple parts.
|
||||
E.g. 'options=Card/Check|Bank Transfer', 'checked=Card|Check', 'selected=Bank Transfer'
|
||||
They require special handling.
|
||||
*/
|
||||
const shouldSkipGenericFieldMetaParsing = (property: string, fieldType: FieldType): boolean => {
|
||||
if (property === 'options' || property === 'default' || property === 'selected') {
|
||||
return true;
|
||||
}
|
||||
|
||||
const isSelectionField =
|
||||
fieldType === FieldType.CHECKBOX || fieldType === FieldType.RADIO || fieldType === FieldType.DROPDOWN;
|
||||
|
||||
if (!isSelectionField) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (
|
||||
property === 'label' ||
|
||||
property === 'placeholder' ||
|
||||
property === 'defaultValue' ||
|
||||
(fieldType === FieldType.CHECKBOX && property === 'checked')
|
||||
) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
/*
|
||||
Transform raw field metadata from placeholder format to schema format.
|
||||
Users should provide properly capitalized property names (e.g., readOnly, fontSize, textAlign).
|
||||
@@ -91,7 +382,7 @@ export const parseFieldMetaFromPlaceholder = (
|
||||
|
||||
const fieldTypeString = String(fieldType).toLowerCase();
|
||||
|
||||
const parsedFieldMeta: Record<string, boolean | number | string> = {
|
||||
const parsedFieldMeta: Record<string, unknown> = {
|
||||
type: fieldTypeString,
|
||||
};
|
||||
|
||||
@@ -104,24 +395,39 @@ export const parseFieldMetaFromPlaceholder = (
|
||||
const rawFieldMetaEntries = Object.entries(rawFieldMeta);
|
||||
|
||||
for (const [property, value] of rawFieldMetaEntries) {
|
||||
if (shouldSkipGenericFieldMetaParsing(property, fieldType)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const unescapedValue = unescapePlaceholderValue(value);
|
||||
|
||||
if (property === 'readOnly' || property === 'required') {
|
||||
parsedFieldMeta[property] = value === 'true';
|
||||
parsedFieldMeta[property] = unescapedValue.toLowerCase() === 'true';
|
||||
} else if (property === 'validationRule' && fieldType === FieldType.CHECKBOX) {
|
||||
parsedFieldMeta[property] = parseCheckboxValidationRule(unescapedValue);
|
||||
} else if (
|
||||
property === 'fontSize' ||
|
||||
property === 'maxValue' ||
|
||||
property === 'minValue' ||
|
||||
property === 'characterLimit'
|
||||
property === 'characterLimit' ||
|
||||
property === 'validationLength'
|
||||
) {
|
||||
const numValue = Number(value);
|
||||
const numValue = Number(unescapedValue);
|
||||
|
||||
if (!Number.isNaN(numValue)) {
|
||||
parsedFieldMeta[property] = numValue;
|
||||
}
|
||||
} else {
|
||||
parsedFieldMeta[property] = value;
|
||||
parsedFieldMeta[property] = unescapedValue;
|
||||
}
|
||||
}
|
||||
|
||||
match(fieldType)
|
||||
.with(FieldType.RADIO, () => applyRadioFieldOptions(parsedFieldMeta, rawFieldMeta))
|
||||
.with(FieldType.CHECKBOX, () => applyCheckboxFieldOptions(parsedFieldMeta, rawFieldMeta))
|
||||
.with(FieldType.DROPDOWN, () => applyDropdownFieldOptions(parsedFieldMeta, rawFieldMeta))
|
||||
.otherwise(() => undefined);
|
||||
|
||||
return parsedFieldMeta;
|
||||
};
|
||||
|
||||
|
||||
@@ -1416,8 +1416,8 @@ msgid "Add Placeholders"
|
||||
msgstr "Platzhalter hinzufügen"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Add rate limit window"
|
||||
msgstr ""
|
||||
msgid "Add rate limit"
|
||||
msgstr "Rate-Limit hinzufügen"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Add recipients"
|
||||
@@ -2008,7 +2008,6 @@ msgstr "Jede Quelle"
|
||||
msgid "Any Status"
|
||||
msgstr "Jeder Status"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
msgid "API"
|
||||
msgstr "API"
|
||||
@@ -2018,6 +2017,10 @@ msgstr "API"
|
||||
msgid "API key"
|
||||
msgstr "API-Schlüssel"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "API rate limits"
|
||||
msgstr "API-Rate-Limits"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "API requests"
|
||||
msgstr "API-Anfragen"
|
||||
@@ -2678,10 +2681,6 @@ msgstr "Unterzeichner kann nicht entfernt werden"
|
||||
msgid "Cannot upload items after the document has been sent"
|
||||
msgstr "Artikel können nicht hochgeladen werden, nachdem das Dokument versendet wurde."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Capabilities enabled for this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/recipient-roles.ts
|
||||
msgctxt "Recipient role name"
|
||||
msgid "Cc"
|
||||
@@ -4408,6 +4407,10 @@ msgstr "Dokumenteinstellungen"
|
||||
msgid "Document preferences updated"
|
||||
msgstr "Dokumentpräferenzen aktualisiert"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Document rate limits"
|
||||
msgstr "Dokumenten-Rate-Limits"
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
|
||||
#: apps/remix/app/components/general/document/document-status.tsx
|
||||
msgid "Document rejected"
|
||||
@@ -4543,7 +4546,6 @@ msgstr "Dokumentation"
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
#: apps/remix/app/components/general/app-nav-desktop.tsx
|
||||
#: apps/remix/app/components/general/app-nav-mobile.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-upload-page.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx
|
||||
@@ -4993,6 +4995,10 @@ msgstr "E-Mail-Präferenzen"
|
||||
msgid "Email preferences updated"
|
||||
msgstr "E-Mail-Präferenzen aktualisiert"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Email rate limits"
|
||||
msgstr "E-Mail-Rate-Limits"
|
||||
|
||||
#: packages/ui/components/document/document-email-checkboxes.tsx
|
||||
msgid "Email recipients when a pending document is deleted"
|
||||
msgstr "Empfänger per E-Mail benachrichtigen, wenn ein ausstehendes Dokument gelöscht wird"
|
||||
@@ -5088,7 +5094,6 @@ msgstr "E-Mail-Verifizierung wurde entfernt"
|
||||
msgid "Email verification has been resent"
|
||||
msgstr "E-Mail-Verifizierung wurde erneut gesendet"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
@@ -5102,14 +5107,16 @@ msgstr "E-Mails"
|
||||
msgid "Embedding, 5 members included and more"
|
||||
msgstr "Einbettung, 5 Mitglieder enthalten und mehr"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty = Unlimited, 0 = Blocked"
|
||||
msgstr "Leer = Unbegrenzt, 0 = Blockiert"
|
||||
|
||||
#: packages/ui/primitives/document-flow/add-fields.tsx
|
||||
msgid "Empty field"
|
||||
msgstr "Leeres Feld"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty quota means unlimited, 0 blocks the resource. Rate limit windows accept values like 5m, 1h or 24h."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx
|
||||
msgid "Enable"
|
||||
msgstr "Aktivieren"
|
||||
@@ -5229,10 +5236,6 @@ msgstr "Stellen Sie sicher, dass Sie das Embedding-Token verwenden und nicht das
|
||||
msgid "Enter"
|
||||
msgstr "Eingeben"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a max request count greater than 0"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
|
||||
msgid "Enter a name for your new folder. Folders help you organise your items."
|
||||
msgstr "Geben Sie einen Namen für Ihren neuen Ordner ein. Ordner helfen Ihnen, Ihre Dateien zu organisieren."
|
||||
@@ -5241,10 +5244,6 @@ msgstr "Geben Sie einen Namen für Ihren neuen Ordner ein. Ordner helfen Ihnen,
|
||||
msgid "Enter a new title"
|
||||
msgstr "Neuen Titel eingeben"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a window, e.g. 5m"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/subscription-claim-form.tsx
|
||||
msgid "Enter claim name"
|
||||
msgstr "Anspruchsname eingeben"
|
||||
@@ -5503,10 +5502,6 @@ msgstr "Alle haben unterschrieben"
|
||||
msgid "Everyone has signed! You will receive an email copy of the signed document."
|
||||
msgstr "Alle haben unterschrieben! Sie erhalten eine Kopie des unterschriebenen Dokuments per E-Mail."
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Exceeded"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx
|
||||
msgid "Exceeded timeout"
|
||||
msgstr "Zeitüberschreitung überschritten"
|
||||
@@ -6770,10 +6765,6 @@ msgstr "Lichtmodus"
|
||||
msgid "Like to have your own public profile with agreements?"
|
||||
msgstr "Möchten Sie Ihr eigenes öffentliches Profil mit Vereinbarungen haben?"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Limit reached"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Limits"
|
||||
msgstr "Limits"
|
||||
@@ -7079,10 +7070,6 @@ msgstr "MAU (angemeldet)"
|
||||
msgid "Max"
|
||||
msgstr "Max"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Max requests"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
|
||||
msgid "Maximum file size: 4MB. Maximum 100 rows per upload. Blank values will use template defaults."
|
||||
msgstr "Maximale Dateigröße: 4MB. Maximal 100 Zeilen pro Upload. Leere Werte verwenden die Vorlagenstandards."
|
||||
@@ -7129,12 +7116,12 @@ msgstr "Mitglied seit"
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-groups-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/team-groups-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/teams.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
@@ -7203,12 +7190,16 @@ msgid "Monthly Active Users: Users that had at least one of their documents comp
|
||||
msgstr "Monatlich aktive Benutzer: Benutzer, die mindestens eines ihrer Dokumente abgeschlossen haben"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly quota"
|
||||
msgstr ""
|
||||
msgid "Monthly API quota"
|
||||
msgstr "Monatliches API-Kontingent"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Monthly usage"
|
||||
msgstr ""
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly document quota"
|
||||
msgstr "Monatliches Dokumentenkontingent"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly email quota"
|
||||
msgstr "Monatliches E-Mail-Kontingent"
|
||||
|
||||
#: apps/remix/app/components/dialogs/envelopes-bulk-move-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/folder-move-dialog.tsx
|
||||
@@ -7299,6 +7290,7 @@ msgid "Name"
|
||||
msgstr "Name"
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Name is required"
|
||||
msgstr "Name ist erforderlich"
|
||||
|
||||
@@ -7306,10 +7298,6 @@ msgstr "Name ist erforderlich"
|
||||
msgid "Name Settings"
|
||||
msgstr "Einstellungen für Namen"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Near limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx
|
||||
msgid "Need to sign documents?"
|
||||
msgstr "Müssen Dokumente signieren?"
|
||||
@@ -7449,10 +7437,6 @@ msgstr "Es sind derzeit keine weiteren Maßnahmen Ihrerseits erforderlich."
|
||||
msgid "No groups found"
|
||||
msgstr "Keine Gruppen gefunden"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "No inherited claim"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/admin-license-card.tsx
|
||||
msgid "No License Configured"
|
||||
msgstr "Keine Lizenz konfiguriert"
|
||||
@@ -8169,10 +8153,6 @@ msgstr "Ausstehende Organisationseinladungen"
|
||||
msgid "Pending since"
|
||||
msgstr "Ausstehend seit"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "People with access to this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/billing-plans.tsx
|
||||
msgid "per month"
|
||||
@@ -8335,6 +8315,10 @@ msgstr "Bitte geben Sie einen aussagekräftigen Namen für Ihr Token ein. Dies w
|
||||
msgid "Please enter a number"
|
||||
msgstr "Bitte gib eine Zahl ein"
|
||||
|
||||
#: apps/remix/app/components/general/claim-account.tsx
|
||||
msgid "Please enter a valid name."
|
||||
msgstr "Bitte geben Sie einen gültigen Namen ein."
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-number-dialog.tsx
|
||||
msgid "Please enter a valid number"
|
||||
msgstr "Bitte geben Sie eine gültige Nummer ein."
|
||||
@@ -9073,10 +9057,6 @@ msgstr "Organisationsmitglied entfernen"
|
||||
msgid "Remove Organisation Member"
|
||||
msgstr "Organisationsmitglied entfernen"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Remove rate limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Remove recipient"
|
||||
msgstr "Empfänger entfernen"
|
||||
@@ -9267,10 +9247,6 @@ msgstr "Zahlung klären"
|
||||
msgid "Resolve payment"
|
||||
msgstr "Zahlung klären"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Resource blocked"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
|
||||
msgid "Response"
|
||||
msgstr "Antwort"
|
||||
@@ -9847,10 +9823,6 @@ msgstr "Senden..."
|
||||
msgid "Sent"
|
||||
msgstr "Gesendet"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Sent this period"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
msgid "Session revoked"
|
||||
msgstr "Sitzung widerrufen"
|
||||
@@ -10833,10 +10805,10 @@ msgid "Team URL"
|
||||
msgstr "Team-URL"
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.teams.tsx
|
||||
@@ -10847,10 +10819,6 @@ msgstr "Teams"
|
||||
msgid "Teams help you organise your work and collaborate with others. Create your first team to get started."
|
||||
msgstr "Teams helfen Ihnen, Ihre Arbeit zu organisieren und mit anderen zusammenzuarbeiten. Erstellen Sie Ihr erstes Team, um loszulegen."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Teams that belong to this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Teams that this organisation group is currently assigned to"
|
||||
msgstr "Teams, denen diese Organisationsgruppe derzeit zugewiesen ist"
|
||||
@@ -12329,6 +12297,8 @@ msgstr "Unbekannter Name"
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-claims-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Unlimited"
|
||||
msgstr "Unbegrenzt"
|
||||
|
||||
@@ -12621,18 +12591,15 @@ msgstr "Hochladen"
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#. placeholder {0}: selectedStat?.period || 'N/A'
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Usage for period: {0}"
|
||||
msgstr "Nutzung für Zeitraum: {0}"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx
|
||||
msgid "Use"
|
||||
msgstr "Verwenden"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a duration with a unit, e.g. 5m, 1h, or 24h"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a unique window for each rate limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx
|
||||
#: apps/remix/app/components/forms/signin.tsx
|
||||
msgid "Use Authenticator"
|
||||
@@ -13534,18 +13501,10 @@ msgstr "Whitelabeling, unbegrenzte Mitglieder und mehr"
|
||||
msgid "Width:"
|
||||
msgstr "Breite:"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Window"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx
|
||||
msgid "Withdrawing Consent"
|
||||
msgstr "Zustimmung widerrufen"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Within limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/public-profile-form.tsx
|
||||
msgid "Write a description to display on your public profile"
|
||||
msgstr "Schreiben Sie eine Beschreibung, die in Ihrem öffentlichen Profil angezeigt wird"
|
||||
|
||||
@@ -1411,8 +1411,8 @@ msgid "Add Placeholders"
|
||||
msgstr "Add Placeholders"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Add rate limit window"
|
||||
msgstr "Add rate limit window"
|
||||
msgid "Add rate limit"
|
||||
msgstr "Add rate limit"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Add recipients"
|
||||
@@ -2003,7 +2003,6 @@ msgstr "Any Source"
|
||||
msgid "Any Status"
|
||||
msgstr "Any Status"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
msgid "API"
|
||||
msgstr "API"
|
||||
@@ -2013,6 +2012,10 @@ msgstr "API"
|
||||
msgid "API key"
|
||||
msgstr "API key"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "API rate limits"
|
||||
msgstr "API rate limits"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "API requests"
|
||||
msgstr "API requests"
|
||||
@@ -2673,10 +2676,6 @@ msgstr "Cannot remove signer"
|
||||
msgid "Cannot upload items after the document has been sent"
|
||||
msgstr "Cannot upload items after the document has been sent"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Capabilities enabled for this organisation."
|
||||
msgstr "Capabilities enabled for this organisation."
|
||||
|
||||
#: packages/lib/constants/recipient-roles.ts
|
||||
msgctxt "Recipient role name"
|
||||
msgid "Cc"
|
||||
@@ -4403,6 +4402,10 @@ msgstr "Document Preferences"
|
||||
msgid "Document preferences updated"
|
||||
msgstr "Document preferences updated"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Document rate limits"
|
||||
msgstr "Document rate limits"
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
|
||||
#: apps/remix/app/components/general/document/document-status.tsx
|
||||
msgid "Document rejected"
|
||||
@@ -4538,7 +4541,6 @@ msgstr "Documentation"
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
#: apps/remix/app/components/general/app-nav-desktop.tsx
|
||||
#: apps/remix/app/components/general/app-nav-mobile.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-upload-page.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx
|
||||
@@ -4988,6 +4990,10 @@ msgstr "Email Preferences"
|
||||
msgid "Email preferences updated"
|
||||
msgstr "Email preferences updated"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Email rate limits"
|
||||
msgstr "Email rate limits"
|
||||
|
||||
#: packages/ui/components/document/document-email-checkboxes.tsx
|
||||
msgid "Email recipients when a pending document is deleted"
|
||||
msgstr "Email recipients when a pending document is deleted"
|
||||
@@ -5083,7 +5089,6 @@ msgstr "Email verification has been removed"
|
||||
msgid "Email verification has been resent"
|
||||
msgstr "Email verification has been resent"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
@@ -5097,14 +5102,16 @@ msgstr "Emails"
|
||||
msgid "Embedding, 5 members included and more"
|
||||
msgstr "Embedding, 5 members included and more"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty = Unlimited, 0 = Blocked"
|
||||
msgstr "Empty = Unlimited, 0 = Blocked"
|
||||
|
||||
#: packages/ui/primitives/document-flow/add-fields.tsx
|
||||
msgid "Empty field"
|
||||
msgstr "Empty field"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty quota means unlimited, 0 blocks the resource. Rate limit windows accept values like 5m, 1h or 24h."
|
||||
msgstr "Empty quota means unlimited, 0 blocks the resource. Rate limit windows accept values like 5m, 1h or 24h."
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx
|
||||
msgid "Enable"
|
||||
msgstr "Enable"
|
||||
@@ -5224,10 +5231,6 @@ msgstr "Ensure that you are using the embedding token, not the API token"
|
||||
msgid "Enter"
|
||||
msgstr "Enter"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a max request count greater than 0"
|
||||
msgstr "Enter a max request count greater than 0"
|
||||
|
||||
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
|
||||
msgid "Enter a name for your new folder. Folders help you organise your items."
|
||||
msgstr "Enter a name for your new folder. Folders help you organise your items."
|
||||
@@ -5236,10 +5239,6 @@ msgstr "Enter a name for your new folder. Folders help you organise your items."
|
||||
msgid "Enter a new title"
|
||||
msgstr "Enter a new title"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a window, e.g. 5m"
|
||||
msgstr "Enter a window, e.g. 5m"
|
||||
|
||||
#: apps/remix/app/components/forms/subscription-claim-form.tsx
|
||||
msgid "Enter claim name"
|
||||
msgstr "Enter claim name"
|
||||
@@ -5498,10 +5497,6 @@ msgstr "Everyone has signed"
|
||||
msgid "Everyone has signed! You will receive an email copy of the signed document."
|
||||
msgstr "Everyone has signed! You will receive an email copy of the signed document."
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Exceeded"
|
||||
msgstr "Exceeded"
|
||||
|
||||
#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx
|
||||
msgid "Exceeded timeout"
|
||||
msgstr "Exceeded timeout"
|
||||
@@ -6765,10 +6760,6 @@ msgstr "Light Mode"
|
||||
msgid "Like to have your own public profile with agreements?"
|
||||
msgstr "Like to have your own public profile with agreements?"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Limit reached"
|
||||
msgstr "Limit reached"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Limits"
|
||||
msgstr "Limits"
|
||||
@@ -7074,10 +7065,6 @@ msgstr "MAU (signed in)"
|
||||
msgid "Max"
|
||||
msgstr "Max"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Max requests"
|
||||
msgstr "Max requests"
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
|
||||
msgid "Maximum file size: 4MB. Maximum 100 rows per upload. Blank values will use template defaults."
|
||||
msgstr "Maximum file size: 4MB. Maximum 100 rows per upload. Blank values will use template defaults."
|
||||
@@ -7124,12 +7111,12 @@ msgstr "Member Since"
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-groups-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/team-groups-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/teams.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
@@ -7198,12 +7185,16 @@ msgid "Monthly Active Users: Users that had at least one of their documents comp
|
||||
msgstr "Monthly Active Users: Users that had at least one of their documents completed"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly quota"
|
||||
msgstr "Monthly quota"
|
||||
msgid "Monthly API quota"
|
||||
msgstr "Monthly API quota"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Monthly usage"
|
||||
msgstr "Monthly usage"
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly document quota"
|
||||
msgstr "Monthly document quota"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly email quota"
|
||||
msgstr "Monthly email quota"
|
||||
|
||||
#: apps/remix/app/components/dialogs/envelopes-bulk-move-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/folder-move-dialog.tsx
|
||||
@@ -7294,6 +7285,7 @@ msgid "Name"
|
||||
msgstr "Name"
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Name is required"
|
||||
msgstr "Name is required"
|
||||
|
||||
@@ -7301,10 +7293,6 @@ msgstr "Name is required"
|
||||
msgid "Name Settings"
|
||||
msgstr "Name Settings"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Near limit"
|
||||
msgstr "Near limit"
|
||||
|
||||
#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx
|
||||
msgid "Need to sign documents?"
|
||||
msgstr "Need to sign documents?"
|
||||
@@ -7444,10 +7432,6 @@ msgstr "No further action is required from you at this time."
|
||||
msgid "No groups found"
|
||||
msgstr "No groups found"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "No inherited claim"
|
||||
msgstr "No inherited claim"
|
||||
|
||||
#: apps/remix/app/components/general/admin-license-card.tsx
|
||||
msgid "No License Configured"
|
||||
msgstr "No License Configured"
|
||||
@@ -8164,10 +8148,6 @@ msgstr "Pending Organisation Invites"
|
||||
msgid "Pending since"
|
||||
msgstr "Pending since"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "People with access to this organisation."
|
||||
msgstr "People with access to this organisation."
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/billing-plans.tsx
|
||||
msgid "per month"
|
||||
@@ -8330,6 +8310,10 @@ msgstr "Please enter a meaningful name for your token. This will help you identi
|
||||
msgid "Please enter a number"
|
||||
msgstr "Please enter a number"
|
||||
|
||||
#: apps/remix/app/components/general/claim-account.tsx
|
||||
msgid "Please enter a valid name."
|
||||
msgstr "Please enter a valid name."
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-number-dialog.tsx
|
||||
msgid "Please enter a valid number"
|
||||
msgstr "Please enter a valid number"
|
||||
@@ -9068,10 +9052,6 @@ msgstr "Remove organisation member"
|
||||
msgid "Remove Organisation Member"
|
||||
msgstr "Remove Organisation Member"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Remove rate limit"
|
||||
msgstr "Remove rate limit"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Remove recipient"
|
||||
msgstr "Remove recipient"
|
||||
@@ -9262,10 +9242,6 @@ msgstr "Resolve"
|
||||
msgid "Resolve payment"
|
||||
msgstr "Resolve payment"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Resource blocked"
|
||||
msgstr "Resource blocked"
|
||||
|
||||
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
|
||||
msgid "Response"
|
||||
msgstr "Response"
|
||||
@@ -9842,10 +9818,6 @@ msgstr "Sending..."
|
||||
msgid "Sent"
|
||||
msgstr "Sent"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Sent this period"
|
||||
msgstr "Sent this period"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
msgid "Session revoked"
|
||||
msgstr "Session revoked"
|
||||
@@ -10828,10 +10800,10 @@ msgid "Team URL"
|
||||
msgstr "Team URL"
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.teams.tsx
|
||||
@@ -10842,10 +10814,6 @@ msgstr "Teams"
|
||||
msgid "Teams help you organise your work and collaborate with others. Create your first team to get started."
|
||||
msgstr "Teams help you organise your work and collaborate with others. Create your first team to get started."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Teams that belong to this organisation."
|
||||
msgstr "Teams that belong to this organisation."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Teams that this organisation group is currently assigned to"
|
||||
msgstr "Teams that this organisation group is currently assigned to"
|
||||
@@ -12324,6 +12292,8 @@ msgstr "Unknown name"
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-claims-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Unlimited"
|
||||
msgstr "Unlimited"
|
||||
|
||||
@@ -12616,18 +12586,15 @@ msgstr "Uploading"
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#. placeholder {0}: selectedStat?.period || 'N/A'
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Usage for period: {0}"
|
||||
msgstr "Usage for period: {0}"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx
|
||||
msgid "Use"
|
||||
msgstr "Use"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a duration with a unit, e.g. 5m, 1h, or 24h"
|
||||
msgstr "Use a duration with a unit, e.g. 5m, 1h, or 24h"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a unique window for each rate limit"
|
||||
msgstr "Use a unique window for each rate limit"
|
||||
|
||||
#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx
|
||||
#: apps/remix/app/components/forms/signin.tsx
|
||||
msgid "Use Authenticator"
|
||||
@@ -13529,18 +13496,10 @@ msgstr "Whitelabeling, unlimited members and more"
|
||||
msgid "Width:"
|
||||
msgstr "Width:"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Window"
|
||||
msgstr "Window"
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx
|
||||
msgid "Withdrawing Consent"
|
||||
msgstr "Withdrawing Consent"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Within limit"
|
||||
msgstr "Within limit"
|
||||
|
||||
#: apps/remix/app/components/forms/public-profile-form.tsx
|
||||
msgid "Write a description to display on your public profile"
|
||||
msgstr "Write a description to display on your public profile"
|
||||
|
||||
@@ -1416,8 +1416,8 @@ msgid "Add Placeholders"
|
||||
msgstr "Agregar Marcadores de posición"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Add rate limit window"
|
||||
msgstr ""
|
||||
msgid "Add rate limit"
|
||||
msgstr "Agregar límite de velocidad"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Add recipients"
|
||||
@@ -2008,7 +2008,6 @@ msgstr "Cualquier fuente"
|
||||
msgid "Any Status"
|
||||
msgstr "Cualquier estado"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
msgid "API"
|
||||
msgstr "API"
|
||||
@@ -2018,6 +2017,10 @@ msgstr "API"
|
||||
msgid "API key"
|
||||
msgstr "Clave API"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "API rate limits"
|
||||
msgstr "Límites de velocidad de la API"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "API requests"
|
||||
msgstr "Solicitudes de API"
|
||||
@@ -2678,10 +2681,6 @@ msgstr "No se puede eliminar el firmante"
|
||||
msgid "Cannot upload items after the document has been sent"
|
||||
msgstr "No se pueden cargar elementos después de que el documento ha sido enviado"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Capabilities enabled for this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/recipient-roles.ts
|
||||
msgctxt "Recipient role name"
|
||||
msgid "Cc"
|
||||
@@ -4408,6 +4407,10 @@ msgstr "Preferencias del documento"
|
||||
msgid "Document preferences updated"
|
||||
msgstr "Preferencias del documento actualizadas"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Document rate limits"
|
||||
msgstr "Límites de velocidad de documentos"
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
|
||||
#: apps/remix/app/components/general/document/document-status.tsx
|
||||
msgid "Document rejected"
|
||||
@@ -4543,7 +4546,6 @@ msgstr "Documentación"
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
#: apps/remix/app/components/general/app-nav-desktop.tsx
|
||||
#: apps/remix/app/components/general/app-nav-mobile.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-upload-page.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx
|
||||
@@ -4993,6 +4995,10 @@ msgstr "Preferencias de correo electrónico"
|
||||
msgid "Email preferences updated"
|
||||
msgstr "Preferencias de correo electrónico actualizadas"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Email rate limits"
|
||||
msgstr "Límites de velocidad de correo electrónico"
|
||||
|
||||
#: packages/ui/components/document/document-email-checkboxes.tsx
|
||||
msgid "Email recipients when a pending document is deleted"
|
||||
msgstr "Enviar un correo electrónico a los destinatarios cuando se elimine un documento pendiente"
|
||||
@@ -5088,7 +5094,6 @@ msgstr "La verificación de correo electrónico ha sido eliminada"
|
||||
msgid "Email verification has been resent"
|
||||
msgstr "La verificación de correo electrónico ha sido reenviada"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
@@ -5102,14 +5107,16 @@ msgstr "Correos electrónicos"
|
||||
msgid "Embedding, 5 members included and more"
|
||||
msgstr "Incrustación, 5 miembros incluidos y más"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty = Unlimited, 0 = Blocked"
|
||||
msgstr "Vacío = Ilimitado, 0 = Bloqueado"
|
||||
|
||||
#: packages/ui/primitives/document-flow/add-fields.tsx
|
||||
msgid "Empty field"
|
||||
msgstr "Campo vacío"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty quota means unlimited, 0 blocks the resource. Rate limit windows accept values like 5m, 1h or 24h."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx
|
||||
msgid "Enable"
|
||||
msgstr "Habilitar"
|
||||
@@ -5229,10 +5236,6 @@ msgstr "Asegúrate de que estás utilizando el token de incrustación, no el tok
|
||||
msgid "Enter"
|
||||
msgstr "Ingresar"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a max request count greater than 0"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
|
||||
msgid "Enter a name for your new folder. Folders help you organise your items."
|
||||
msgstr "Ingrese un nombre para su nueva carpeta. Las carpetas le ayudan a organizar sus elementos."
|
||||
@@ -5241,10 +5244,6 @@ msgstr "Ingrese un nombre para su nueva carpeta. Las carpetas le ayudan a organi
|
||||
msgid "Enter a new title"
|
||||
msgstr "Introduce un nuevo título"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a window, e.g. 5m"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/subscription-claim-form.tsx
|
||||
msgid "Enter claim name"
|
||||
msgstr "Ingresar nombre de la reclamación"
|
||||
@@ -5503,10 +5502,6 @@ msgstr "Todos han firmado"
|
||||
msgid "Everyone has signed! You will receive an email copy of the signed document."
|
||||
msgstr "¡Todos han firmado! Recibirás una copia del documento firmado por correo electrónico."
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Exceeded"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx
|
||||
msgid "Exceeded timeout"
|
||||
msgstr "Tiempo de espera excedido"
|
||||
@@ -6770,10 +6765,6 @@ msgstr "Modo claro"
|
||||
msgid "Like to have your own public profile with agreements?"
|
||||
msgstr "¿Te gustaría tener tu propio perfil público con acuerdos?"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Limit reached"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Limits"
|
||||
msgstr "Límites"
|
||||
@@ -7079,10 +7070,6 @@ msgstr "MAU (con sesión iniciada)"
|
||||
msgid "Max"
|
||||
msgstr "Máx"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Max requests"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
|
||||
msgid "Maximum file size: 4MB. Maximum 100 rows per upload. Blank values will use template defaults."
|
||||
msgstr "Tamaño máximo de archivo: 4MB. Máximo 100 filas por carga. Los valores en blanco usarán los valores predeterminados de la plantilla."
|
||||
@@ -7129,12 +7116,12 @@ msgstr "Miembro desde"
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-groups-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/team-groups-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/teams.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
@@ -7203,12 +7190,16 @@ msgid "Monthly Active Users: Users that had at least one of their documents comp
|
||||
msgstr "Usuarios activos mensuales: Usuarios que completaron al menos uno de sus documentos"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly quota"
|
||||
msgstr ""
|
||||
msgid "Monthly API quota"
|
||||
msgstr "Cuota mensual de API"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Monthly usage"
|
||||
msgstr ""
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly document quota"
|
||||
msgstr "Cuota mensual de documentos"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly email quota"
|
||||
msgstr "Cuota mensual de correos electrónicos"
|
||||
|
||||
#: apps/remix/app/components/dialogs/envelopes-bulk-move-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/folder-move-dialog.tsx
|
||||
@@ -7299,6 +7290,7 @@ msgid "Name"
|
||||
msgstr "Nombre"
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Name is required"
|
||||
msgstr "Se requiere el nombre"
|
||||
|
||||
@@ -7306,10 +7298,6 @@ msgstr "Se requiere el nombre"
|
||||
msgid "Name Settings"
|
||||
msgstr "Configuración de Nombre"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Near limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx
|
||||
msgid "Need to sign documents?"
|
||||
msgstr "¿Necesitas firmar documentos?"
|
||||
@@ -7449,10 +7437,6 @@ msgstr "No further action is required from you at this time."
|
||||
msgid "No groups found"
|
||||
msgstr "No se encontraron grupos"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "No inherited claim"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/admin-license-card.tsx
|
||||
msgid "No License Configured"
|
||||
msgstr "Licencia no configurada"
|
||||
@@ -8169,10 +8153,6 @@ msgstr "Invitaciones pendientes de la organización"
|
||||
msgid "Pending since"
|
||||
msgstr "Pendiente desde"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "People with access to this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/billing-plans.tsx
|
||||
msgid "per month"
|
||||
@@ -8335,6 +8315,10 @@ msgstr "Por favor, ingresa un nombre significativo para tu token. Esto te ayudar
|
||||
msgid "Please enter a number"
|
||||
msgstr "Por favor ingresa un número"
|
||||
|
||||
#: apps/remix/app/components/general/claim-account.tsx
|
||||
msgid "Please enter a valid name."
|
||||
msgstr "Por favor, introduce un nombre válido."
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-number-dialog.tsx
|
||||
msgid "Please enter a valid number"
|
||||
msgstr "Por favor, ingresa un número válido"
|
||||
@@ -9073,10 +9057,6 @@ msgstr "Eliminar miembro de la organización"
|
||||
msgid "Remove Organisation Member"
|
||||
msgstr "Eliminar miembro de la organización"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Remove rate limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Remove recipient"
|
||||
msgstr "Eliminar destinatario"
|
||||
@@ -9267,10 +9247,6 @@ msgstr "Resolver"
|
||||
msgid "Resolve payment"
|
||||
msgstr "Resolver pago"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Resource blocked"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
|
||||
msgid "Response"
|
||||
msgstr "Respuesta"
|
||||
@@ -9847,10 +9823,6 @@ msgstr "Enviando..."
|
||||
msgid "Sent"
|
||||
msgstr "Enviado"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Sent this period"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
msgid "Session revoked"
|
||||
msgstr "Sesión revocada"
|
||||
@@ -10833,10 +10805,10 @@ msgid "Team URL"
|
||||
msgstr "URL del equipo"
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.teams.tsx
|
||||
@@ -10847,10 +10819,6 @@ msgstr "Equipos"
|
||||
msgid "Teams help you organise your work and collaborate with others. Create your first team to get started."
|
||||
msgstr "Los equipos te ayudan a organizar tu trabajo y colaborar con otros. Crea tu primer equipo para comenzar."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Teams that belong to this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Teams that this organisation group is currently assigned to"
|
||||
msgstr "Equipos a los que actualmente está asignado este grupo de organización"
|
||||
@@ -12329,6 +12297,8 @@ msgstr "Nombre desconocido"
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-claims-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Unlimited"
|
||||
msgstr "Ilimitado"
|
||||
|
||||
@@ -12621,18 +12591,15 @@ msgstr "Subiendo"
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#. placeholder {0}: selectedStat?.period || 'N/A'
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Usage for period: {0}"
|
||||
msgstr "Uso para el período: {0}"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx
|
||||
msgid "Use"
|
||||
msgstr "Usar"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a duration with a unit, e.g. 5m, 1h, or 24h"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a unique window for each rate limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx
|
||||
#: apps/remix/app/components/forms/signin.tsx
|
||||
msgid "Use Authenticator"
|
||||
@@ -13534,18 +13501,10 @@ msgstr "Etiqueta blanca, miembros ilimitados y más"
|
||||
msgid "Width:"
|
||||
msgstr "Ancho:"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Window"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx
|
||||
msgid "Withdrawing Consent"
|
||||
msgstr "Retirar Consentimiento"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Within limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/public-profile-form.tsx
|
||||
msgid "Write a description to display on your public profile"
|
||||
msgstr "Escribe una descripción para mostrar en tu perfil público"
|
||||
|
||||
@@ -1416,8 +1416,8 @@ msgid "Add Placeholders"
|
||||
msgstr "Ajouter des espaces réservés"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Add rate limit window"
|
||||
msgstr ""
|
||||
msgid "Add rate limit"
|
||||
msgstr "Ajouter une limite de fréquence"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Add recipients"
|
||||
@@ -2008,7 +2008,6 @@ msgstr "Toute source"
|
||||
msgid "Any Status"
|
||||
msgstr "Tout statut"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
msgid "API"
|
||||
msgstr "API"
|
||||
@@ -2018,6 +2017,10 @@ msgstr "API"
|
||||
msgid "API key"
|
||||
msgstr "Clé d’API"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "API rate limits"
|
||||
msgstr "Limites de fréquence de l’API"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "API requests"
|
||||
msgstr "Requêtes API"
|
||||
@@ -2678,10 +2681,6 @@ msgstr "Impossible de supprimer le signataire"
|
||||
msgid "Cannot upload items after the document has been sent"
|
||||
msgstr "Impossible de télécharger des éléments après l'envoi du document"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Capabilities enabled for this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/recipient-roles.ts
|
||||
msgctxt "Recipient role name"
|
||||
msgid "Cc"
|
||||
@@ -4408,6 +4407,10 @@ msgstr "Préférences de document"
|
||||
msgid "Document preferences updated"
|
||||
msgstr "Préférences de document mises à jour"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Document rate limits"
|
||||
msgstr "Limites de fréquence des documents"
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
|
||||
#: apps/remix/app/components/general/document/document-status.tsx
|
||||
msgid "Document rejected"
|
||||
@@ -4543,7 +4546,6 @@ msgstr "Documentation"
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
#: apps/remix/app/components/general/app-nav-desktop.tsx
|
||||
#: apps/remix/app/components/general/app-nav-mobile.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-upload-page.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx
|
||||
@@ -4993,6 +4995,10 @@ msgstr "Préférences de messagerie"
|
||||
msgid "Email preferences updated"
|
||||
msgstr "Préférences de messagerie mises à jour"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Email rate limits"
|
||||
msgstr "Limites de fréquence des e-mails"
|
||||
|
||||
#: packages/ui/components/document/document-email-checkboxes.tsx
|
||||
msgid "Email recipients when a pending document is deleted"
|
||||
msgstr "Envoyer un e-mail aux destinataires lorsqu’un document en attente est supprimé"
|
||||
@@ -5088,7 +5094,6 @@ msgstr "La vérification par email a été supprimée"
|
||||
msgid "Email verification has been resent"
|
||||
msgstr "La vérification par email a été renvoyée"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
@@ -5102,14 +5107,16 @@ msgstr "E-mails"
|
||||
msgid "Embedding, 5 members included and more"
|
||||
msgstr "Intégration, 5 membres inclus et plus"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty = Unlimited, 0 = Blocked"
|
||||
msgstr "Vide = Illimité, 0 = Bloqué"
|
||||
|
||||
#: packages/ui/primitives/document-flow/add-fields.tsx
|
||||
msgid "Empty field"
|
||||
msgstr "Champ vide"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty quota means unlimited, 0 blocks the resource. Rate limit windows accept values like 5m, 1h or 24h."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx
|
||||
msgid "Enable"
|
||||
msgstr "Activer"
|
||||
@@ -5229,10 +5236,6 @@ msgstr "Assurez-vous d’utiliser le jeton d’intégration, et non le jeton d
|
||||
msgid "Enter"
|
||||
msgstr "Entrer"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a max request count greater than 0"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
|
||||
msgid "Enter a name for your new folder. Folders help you organise your items."
|
||||
msgstr "Entrez un nom pour votre nouveau dossier. Les dossiers vous aident à organiser vos éléments."
|
||||
@@ -5241,10 +5244,6 @@ msgstr "Entrez un nom pour votre nouveau dossier. Les dossiers vous aident à or
|
||||
msgid "Enter a new title"
|
||||
msgstr "Saisissez un nouveau titre"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a window, e.g. 5m"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/subscription-claim-form.tsx
|
||||
msgid "Enter claim name"
|
||||
msgstr "Entrez le nom de la réclamation"
|
||||
@@ -5503,10 +5502,6 @@ msgstr "Tout le monde a signé"
|
||||
msgid "Everyone has signed! You will receive an email copy of the signed document."
|
||||
msgstr "Tout le monde a signé ! Vous recevrez une copie du document signé par e-mail."
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Exceeded"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx
|
||||
msgid "Exceeded timeout"
|
||||
msgstr "Délai dépassé"
|
||||
@@ -6770,10 +6765,6 @@ msgstr "Mode clair"
|
||||
msgid "Like to have your own public profile with agreements?"
|
||||
msgstr "Vous voulez avoir votre propre profil public avec des accords ?"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Limit reached"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Limits"
|
||||
msgstr "Limites"
|
||||
@@ -7079,10 +7070,6 @@ msgstr "MAU (connecté)"
|
||||
msgid "Max"
|
||||
msgstr "Maximum"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Max requests"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
|
||||
msgid "Maximum file size: 4MB. Maximum 100 rows per upload. Blank values will use template defaults."
|
||||
msgstr "Taille maximale du fichier : 4 Mo. Maximum de 100 lignes par importation. Les valeurs vides utiliseront les valeurs par défaut du modèle."
|
||||
@@ -7129,12 +7116,12 @@ msgstr "Membre depuis"
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-groups-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/team-groups-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/teams.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
@@ -7203,12 +7190,16 @@ msgid "Monthly Active Users: Users that had at least one of their documents comp
|
||||
msgstr "Utilisateurs actifs mensuels : utilisateurs ayant terminé au moins un de leurs documents"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly quota"
|
||||
msgstr ""
|
||||
msgid "Monthly API quota"
|
||||
msgstr "Quota d’API mensuel"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Monthly usage"
|
||||
msgstr ""
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly document quota"
|
||||
msgstr "Quota de documents mensuel"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly email quota"
|
||||
msgstr "Quota d’e-mails mensuel"
|
||||
|
||||
#: apps/remix/app/components/dialogs/envelopes-bulk-move-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/folder-move-dialog.tsx
|
||||
@@ -7299,6 +7290,7 @@ msgid "Name"
|
||||
msgstr "Nom"
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Name is required"
|
||||
msgstr "Le nom est requis"
|
||||
|
||||
@@ -7306,10 +7298,6 @@ msgstr "Le nom est requis"
|
||||
msgid "Name Settings"
|
||||
msgstr "Paramètres du nom"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Near limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx
|
||||
msgid "Need to sign documents?"
|
||||
msgstr "Besoin de signer des documents ?"
|
||||
@@ -7449,10 +7437,6 @@ msgstr "Aucune autre action n'est requise de votre part pour le moment."
|
||||
msgid "No groups found"
|
||||
msgstr "Aucun groupe trouvé"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "No inherited claim"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/admin-license-card.tsx
|
||||
msgid "No License Configured"
|
||||
msgstr "Aucune licence configurée"
|
||||
@@ -8169,10 +8153,6 @@ msgstr "Invitations à l’organisation en attente"
|
||||
msgid "Pending since"
|
||||
msgstr "En attente depuis"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "People with access to this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/billing-plans.tsx
|
||||
msgid "per month"
|
||||
@@ -8335,6 +8315,10 @@ msgstr "Veuillez entrer un nom significatif pour votre token. Cela vous aidera
|
||||
msgid "Please enter a number"
|
||||
msgstr "Veuillez entrer un nombre"
|
||||
|
||||
#: apps/remix/app/components/general/claim-account.tsx
|
||||
msgid "Please enter a valid name."
|
||||
msgstr "Veuiillez entrer un nom valide."
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-number-dialog.tsx
|
||||
msgid "Please enter a valid number"
|
||||
msgstr "Veuillez entrer un numéro valide"
|
||||
@@ -9073,10 +9057,6 @@ msgstr "Supprimer le membre de l'organisation"
|
||||
msgid "Remove Organisation Member"
|
||||
msgstr "Supprimer un membre de l’organisation"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Remove rate limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Remove recipient"
|
||||
msgstr "Supprimer le destinataire"
|
||||
@@ -9267,10 +9247,6 @@ msgstr "Résoudre"
|
||||
msgid "Resolve payment"
|
||||
msgstr "Résoudre le paiement"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Resource blocked"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
|
||||
msgid "Response"
|
||||
msgstr "Réponse"
|
||||
@@ -9847,10 +9823,6 @@ msgstr "Envoi..."
|
||||
msgid "Sent"
|
||||
msgstr "Envoyé"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Sent this period"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
msgid "Session revoked"
|
||||
msgstr "Session révoquée"
|
||||
@@ -10833,10 +10805,10 @@ msgid "Team URL"
|
||||
msgstr "URL de l'équipe"
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.teams.tsx
|
||||
@@ -10847,10 +10819,6 @@ msgstr "Équipes"
|
||||
msgid "Teams help you organise your work and collaborate with others. Create your first team to get started."
|
||||
msgstr "Les équipes vous aident à organiser votre travail et à collaborer avec d'autres. Créez votre première équipe pour commencer."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Teams that belong to this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Teams that this organisation group is currently assigned to"
|
||||
msgstr "Équipes auxquelles ce groupe d'organisation est actuellement attribué"
|
||||
@@ -12329,6 +12297,8 @@ msgstr "Nom inconnu"
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-claims-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Unlimited"
|
||||
msgstr "Illimité"
|
||||
|
||||
@@ -12621,18 +12591,15 @@ msgstr "Importation en cours"
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#. placeholder {0}: selectedStat?.period || 'N/A'
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Usage for period: {0}"
|
||||
msgstr "Utilisation pour la période : {0}"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx
|
||||
msgid "Use"
|
||||
msgstr "Utiliser"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a duration with a unit, e.g. 5m, 1h, or 24h"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a unique window for each rate limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx
|
||||
#: apps/remix/app/components/forms/signin.tsx
|
||||
msgid "Use Authenticator"
|
||||
@@ -13534,18 +13501,10 @@ msgstr "Marque blanche, membres illimités et plus"
|
||||
msgid "Width:"
|
||||
msgstr "Largeur :"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Window"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx
|
||||
msgid "Withdrawing Consent"
|
||||
msgstr "Retrait du consentement"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Within limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/public-profile-form.tsx
|
||||
msgid "Write a description to display on your public profile"
|
||||
msgstr "Écrivez une description à afficher sur votre profil public"
|
||||
|
||||
@@ -1416,8 +1416,8 @@ msgid "Add Placeholders"
|
||||
msgstr "Aggiungi segnaposto"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Add rate limit window"
|
||||
msgstr ""
|
||||
msgid "Add rate limit"
|
||||
msgstr "Aggiungi limite di velocità"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Add recipients"
|
||||
@@ -2008,7 +2008,6 @@ msgstr "Qualsiasi fonte"
|
||||
msgid "Any Status"
|
||||
msgstr "Qualsiasi stato"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
msgid "API"
|
||||
msgstr "API"
|
||||
@@ -2018,6 +2017,10 @@ msgstr "API"
|
||||
msgid "API key"
|
||||
msgstr "Chiave API"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "API rate limits"
|
||||
msgstr "Limiti di velocità API"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "API requests"
|
||||
msgstr "Richieste API"
|
||||
@@ -2678,10 +2681,6 @@ msgstr "Impossibile rimuovere il firmatario"
|
||||
msgid "Cannot upload items after the document has been sent"
|
||||
msgstr "Non è possibile caricare gli elementi dopo che il documento è stato inviato"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Capabilities enabled for this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/recipient-roles.ts
|
||||
msgctxt "Recipient role name"
|
||||
msgid "Cc"
|
||||
@@ -4408,6 +4407,10 @@ msgstr "Preferenze Documento"
|
||||
msgid "Document preferences updated"
|
||||
msgstr "Preferenze del documento aggiornate"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Document rate limits"
|
||||
msgstr "Limiti di velocità documento"
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
|
||||
#: apps/remix/app/components/general/document/document-status.tsx
|
||||
msgid "Document rejected"
|
||||
@@ -4543,7 +4546,6 @@ msgstr "Documentazione"
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
#: apps/remix/app/components/general/app-nav-desktop.tsx
|
||||
#: apps/remix/app/components/general/app-nav-mobile.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-upload-page.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx
|
||||
@@ -4993,6 +4995,10 @@ msgstr "Preferenze Email"
|
||||
msgid "Email preferences updated"
|
||||
msgstr "Preferenze email aggiornate"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Email rate limits"
|
||||
msgstr "Limiti di velocità email"
|
||||
|
||||
#: packages/ui/components/document/document-email-checkboxes.tsx
|
||||
msgid "Email recipients when a pending document is deleted"
|
||||
msgstr "Invia un'email ai destinatari quando un documento in sospeso viene eliminato"
|
||||
@@ -5088,7 +5094,6 @@ msgstr "Verifica email rimossa"
|
||||
msgid "Email verification has been resent"
|
||||
msgstr "Verifica email rinviata"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
@@ -5102,14 +5107,16 @@ msgstr "Email"
|
||||
msgid "Embedding, 5 members included and more"
|
||||
msgstr "Incorporamento, 5 membri inclusi e altro"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty = Unlimited, 0 = Blocked"
|
||||
msgstr "Vuoto = Illimitato, 0 = Bloccato"
|
||||
|
||||
#: packages/ui/primitives/document-flow/add-fields.tsx
|
||||
msgid "Empty field"
|
||||
msgstr "Campo vuoto"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty quota means unlimited, 0 blocks the resource. Rate limit windows accept values like 5m, 1h or 24h."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx
|
||||
msgid "Enable"
|
||||
msgstr "Abilita"
|
||||
@@ -5229,10 +5236,6 @@ msgstr "Assicurati di utilizzare il token di embedding, e non il token API"
|
||||
msgid "Enter"
|
||||
msgstr "Inserisci"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a max request count greater than 0"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
|
||||
msgid "Enter a name for your new folder. Folders help you organise your items."
|
||||
msgstr "Inserisci un nome per la tua nuova cartella. Le cartelle ti aiutano a organizzare i tuoi elementi."
|
||||
@@ -5241,10 +5244,6 @@ msgstr "Inserisci un nome per la tua nuova cartella. Le cartelle ti aiutano a or
|
||||
msgid "Enter a new title"
|
||||
msgstr "Inserisci un nuovo titolo"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a window, e.g. 5m"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/subscription-claim-form.tsx
|
||||
msgid "Enter claim name"
|
||||
msgstr "Inserisci nome richiesta"
|
||||
@@ -5503,10 +5502,6 @@ msgstr "Hanno firmato tutti"
|
||||
msgid "Everyone has signed! You will receive an email copy of the signed document."
|
||||
msgstr "Tutti hanno firmato! Riceverai una copia del documento firmato via email."
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Exceeded"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx
|
||||
msgid "Exceeded timeout"
|
||||
msgstr "Tempo scaduto"
|
||||
@@ -6770,10 +6765,6 @@ msgstr "Modalità chiara"
|
||||
msgid "Like to have your own public profile with agreements?"
|
||||
msgstr "Ti piacerebbe avere il tuo profilo pubblico con accordi?"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Limit reached"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Limits"
|
||||
msgstr "Limiti"
|
||||
@@ -7079,10 +7070,6 @@ msgstr "MAU (autenticati)"
|
||||
msgid "Max"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Max requests"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
|
||||
msgid "Maximum file size: 4MB. Maximum 100 rows per upload. Blank values will use template defaults."
|
||||
msgstr "Dimensione massima del file: 4MB. Massimo 100 righe per caricamento. I valori vuoti utilizzeranno i valori predefiniti del modello."
|
||||
@@ -7129,12 +7116,12 @@ msgstr "Membro dal"
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-groups-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/team-groups-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/teams.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
@@ -7203,12 +7190,16 @@ msgid "Monthly Active Users: Users that had at least one of their documents comp
|
||||
msgstr "Utenti attivi mensili: Utenti con almeno uno dei loro documenti completati"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly quota"
|
||||
msgstr ""
|
||||
msgid "Monthly API quota"
|
||||
msgstr "Quota API mensile"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Monthly usage"
|
||||
msgstr ""
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly document quota"
|
||||
msgstr "Quota documenti mensile"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly email quota"
|
||||
msgstr "Quota email mensile"
|
||||
|
||||
#: apps/remix/app/components/dialogs/envelopes-bulk-move-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/folder-move-dialog.tsx
|
||||
@@ -7299,6 +7290,7 @@ msgid "Name"
|
||||
msgstr "Nome"
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Name is required"
|
||||
msgstr "Nome richiesto"
|
||||
|
||||
@@ -7306,10 +7298,6 @@ msgstr "Nome richiesto"
|
||||
msgid "Name Settings"
|
||||
msgstr "Impostazioni Nome"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Near limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx
|
||||
msgid "Need to sign documents?"
|
||||
msgstr "Hai bisogno di firmare documenti?"
|
||||
@@ -7449,10 +7437,6 @@ msgstr "Non sono richieste ulteriori azioni da parte tua in questo momento."
|
||||
msgid "No groups found"
|
||||
msgstr "Nessun gruppo trovato"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "No inherited claim"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/admin-license-card.tsx
|
||||
msgid "No License Configured"
|
||||
msgstr "Nessuna licenza configurata"
|
||||
@@ -8169,10 +8153,6 @@ msgstr "Inviti all’organizzazione in sospeso"
|
||||
msgid "Pending since"
|
||||
msgstr "In sospeso dal"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "People with access to this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/billing-plans.tsx
|
||||
msgid "per month"
|
||||
@@ -8335,6 +8315,10 @@ msgstr "Si prega di inserire un nome significativo per il proprio token. Questo
|
||||
msgid "Please enter a number"
|
||||
msgstr "Inserisci un numero"
|
||||
|
||||
#: apps/remix/app/components/general/claim-account.tsx
|
||||
msgid "Please enter a valid name."
|
||||
msgstr "Per favore inserisci un nome valido."
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-number-dialog.tsx
|
||||
msgid "Please enter a valid number"
|
||||
msgstr "Per favore inserisci un numero valido"
|
||||
@@ -9073,10 +9057,6 @@ msgstr "Rimuovere membro dell'organizzazione"
|
||||
msgid "Remove Organisation Member"
|
||||
msgstr "Rimuovi membro dell'organizzazione"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Remove rate limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Remove recipient"
|
||||
msgstr "Rimuovi destinatario"
|
||||
@@ -9267,10 +9247,6 @@ msgstr "Risolvi"
|
||||
msgid "Resolve payment"
|
||||
msgstr "Risolvere il pagamento"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Resource blocked"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
|
||||
msgid "Response"
|
||||
msgstr "Risposta"
|
||||
@@ -9847,10 +9823,6 @@ msgstr "Invio..."
|
||||
msgid "Sent"
|
||||
msgstr "Inviato"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Sent this period"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
msgid "Session revoked"
|
||||
msgstr "Sessione revocata"
|
||||
@@ -10833,10 +10805,10 @@ msgid "Team URL"
|
||||
msgstr "URL del team"
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.teams.tsx
|
||||
@@ -10847,10 +10819,6 @@ msgstr "Team"
|
||||
msgid "Teams help you organise your work and collaborate with others. Create your first team to get started."
|
||||
msgstr "I team ti aiutano a organizzare il tuo lavoro e collaborare con altri. Crea il tuo primo team per iniziare."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Teams that belong to this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Teams that this organisation group is currently assigned to"
|
||||
msgstr "Team a cui è attualmente assegnato questo gruppo di organizzazione"
|
||||
@@ -12329,6 +12297,8 @@ msgstr "Nome sconosciuto"
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-claims-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Unlimited"
|
||||
msgstr "Illimitato"
|
||||
|
||||
@@ -12621,18 +12591,15 @@ msgstr "Caricamento in corso"
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#. placeholder {0}: selectedStat?.period || 'N/A'
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Usage for period: {0}"
|
||||
msgstr "Utilizzo per il periodo: {0}"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx
|
||||
msgid "Use"
|
||||
msgstr "Utilizza"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a duration with a unit, e.g. 5m, 1h, or 24h"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a unique window for each rate limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx
|
||||
#: apps/remix/app/components/forms/signin.tsx
|
||||
msgid "Use Authenticator"
|
||||
@@ -13534,18 +13501,10 @@ msgstr "White label, membri illimitati e altro"
|
||||
msgid "Width:"
|
||||
msgstr "Larghezza:"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Window"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx
|
||||
msgid "Withdrawing Consent"
|
||||
msgstr "Ritiro del consenso"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Within limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/public-profile-form.tsx
|
||||
msgid "Write a description to display on your public profile"
|
||||
msgstr "Scrivi una descrizione da mostrare sul tuo profilo pubblico"
|
||||
|
||||
@@ -1416,8 +1416,8 @@ msgid "Add Placeholders"
|
||||
msgstr "プレースホルダーを追加"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Add rate limit window"
|
||||
msgstr ""
|
||||
msgid "Add rate limit"
|
||||
msgstr "レート制限を追加"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Add recipients"
|
||||
@@ -2008,7 +2008,6 @@ msgstr "すべてのソース"
|
||||
msgid "Any Status"
|
||||
msgstr "すべてのステータス"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
msgid "API"
|
||||
msgstr "API"
|
||||
@@ -2018,6 +2017,10 @@ msgstr "API"
|
||||
msgid "API key"
|
||||
msgstr "API キー"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "API rate limits"
|
||||
msgstr "API レート制限"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "API requests"
|
||||
msgstr "API リクエスト"
|
||||
@@ -2678,10 +2681,6 @@ msgstr "署名者を削除できません"
|
||||
msgid "Cannot upload items after the document has been sent"
|
||||
msgstr "ドキュメント送信後はアイテムをアップロードできません"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Capabilities enabled for this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/recipient-roles.ts
|
||||
msgctxt "Recipient role name"
|
||||
msgid "Cc"
|
||||
@@ -4408,6 +4407,10 @@ msgstr "ドキュメント設定"
|
||||
msgid "Document preferences updated"
|
||||
msgstr "文書設定を更新しました"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Document rate limits"
|
||||
msgstr "ドキュメントのレート制限"
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
|
||||
#: apps/remix/app/components/general/document/document-status.tsx
|
||||
msgid "Document rejected"
|
||||
@@ -4543,7 +4546,6 @@ msgstr "ドキュメント"
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
#: apps/remix/app/components/general/app-nav-desktop.tsx
|
||||
#: apps/remix/app/components/general/app-nav-mobile.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-upload-page.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx
|
||||
@@ -4993,6 +4995,10 @@ msgstr "メール設定"
|
||||
msgid "Email preferences updated"
|
||||
msgstr "メール設定を更新しました"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Email rate limits"
|
||||
msgstr "メールのレート制限"
|
||||
|
||||
#: packages/ui/components/document/document-email-checkboxes.tsx
|
||||
msgid "Email recipients when a pending document is deleted"
|
||||
msgstr "保留中のドキュメントが削除されたときに受信者へメール通知する"
|
||||
@@ -5088,7 +5094,6 @@ msgstr "メール認証を削除しました"
|
||||
msgid "Email verification has been resent"
|
||||
msgstr "メール認証を再送しました"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
@@ -5102,14 +5107,16 @@ msgstr "メール"
|
||||
msgid "Embedding, 5 members included and more"
|
||||
msgstr "埋め込み、5 メンバー含む など"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty = Unlimited, 0 = Blocked"
|
||||
msgstr "空欄 = 無制限、0 = ブロックされます"
|
||||
|
||||
#: packages/ui/primitives/document-flow/add-fields.tsx
|
||||
msgid "Empty field"
|
||||
msgstr "空のフィールド"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty quota means unlimited, 0 blocks the resource. Rate limit windows accept values like 5m, 1h or 24h."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx
|
||||
msgid "Enable"
|
||||
msgstr "有効化"
|
||||
@@ -5229,10 +5236,6 @@ msgstr "埋め込みトークンを使用していることを確認し、API
|
||||
msgid "Enter"
|
||||
msgstr "入力してください"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a max request count greater than 0"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
|
||||
msgid "Enter a name for your new folder. Folders help you organise your items."
|
||||
msgstr "新しいフォルダ名を入力してください。フォルダを使うとアイテムを整理できます。"
|
||||
@@ -5241,10 +5244,6 @@ msgstr "新しいフォルダ名を入力してください。フォルダを使
|
||||
msgid "Enter a new title"
|
||||
msgstr "新しいタイトルを入力してください"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a window, e.g. 5m"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/subscription-claim-form.tsx
|
||||
msgid "Enter claim name"
|
||||
msgstr "クレーム名を入力"
|
||||
@@ -5503,10 +5502,6 @@ msgstr "全員が署名しました"
|
||||
msgid "Everyone has signed! You will receive an email copy of the signed document."
|
||||
msgstr "全員が署名しました。署名済みドキュメントのコピーがメールで送信されます。"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Exceeded"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx
|
||||
msgid "Exceeded timeout"
|
||||
msgstr "タイムアウトを超えました"
|
||||
@@ -6770,10 +6765,6 @@ msgstr "ライトモード"
|
||||
msgid "Like to have your own public profile with agreements?"
|
||||
msgstr "自分の合意書付き公開プロフィールが欲しいですか?"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Limit reached"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Limits"
|
||||
msgstr "上限"
|
||||
@@ -7079,10 +7070,6 @@ msgstr "MAU(サインイン済み)"
|
||||
msgid "Max"
|
||||
msgstr "最大"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Max requests"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
|
||||
msgid "Maximum file size: 4MB. Maximum 100 rows per upload. Blank values will use template defaults."
|
||||
msgstr "最大ファイルサイズ: 4MB。アップロードあたり最大 100 行。空の値はテンプレートのデフォルトが使用されます。"
|
||||
@@ -7129,12 +7116,12 @@ msgstr "メンバー登録日"
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-groups-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/team-groups-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/teams.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
@@ -7203,12 +7190,16 @@ msgid "Monthly Active Users: Users that had at least one of their documents comp
|
||||
msgstr "月間アクティブユーザー:1 つ以上の文書が完了したユーザー"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly quota"
|
||||
msgstr ""
|
||||
msgid "Monthly API quota"
|
||||
msgstr "月間 API クォータ"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Monthly usage"
|
||||
msgstr ""
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly document quota"
|
||||
msgstr "月間ドキュメントクォータ"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly email quota"
|
||||
msgstr "月間メールクォータ"
|
||||
|
||||
#: apps/remix/app/components/dialogs/envelopes-bulk-move-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/folder-move-dialog.tsx
|
||||
@@ -7299,6 +7290,7 @@ msgid "Name"
|
||||
msgstr "名前"
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Name is required"
|
||||
msgstr "名前は必須です"
|
||||
|
||||
@@ -7306,10 +7298,6 @@ msgstr "名前は必須です"
|
||||
msgid "Name Settings"
|
||||
msgstr "名前の設定"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Near limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx
|
||||
msgid "Need to sign documents?"
|
||||
msgstr "文書への署名が必要ですか?"
|
||||
@@ -7449,10 +7437,6 @@ msgstr "現在、お客様が行う必要のある操作はありません。"
|
||||
msgid "No groups found"
|
||||
msgstr "グループが見つかりません"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "No inherited claim"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/admin-license-card.tsx
|
||||
msgid "No License Configured"
|
||||
msgstr "ライセンスが設定されていません"
|
||||
@@ -8169,10 +8153,6 @@ msgstr "保留中の組織招待"
|
||||
msgid "Pending since"
|
||||
msgstr "保留開始日時"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "People with access to this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/billing-plans.tsx
|
||||
msgid "per month"
|
||||
@@ -8335,6 +8315,10 @@ msgstr "トークンの用途が分かる名前を入力してください。後
|
||||
msgid "Please enter a number"
|
||||
msgstr "数値を入力してください"
|
||||
|
||||
#: apps/remix/app/components/general/claim-account.tsx
|
||||
msgid "Please enter a valid name."
|
||||
msgstr "有効な名前を入力してください。"
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-number-dialog.tsx
|
||||
msgid "Please enter a valid number"
|
||||
msgstr "有効な数値を入力してください"
|
||||
@@ -9073,10 +9057,6 @@ msgstr "組織メンバーを削除"
|
||||
msgid "Remove Organisation Member"
|
||||
msgstr "組織メンバーを削除"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Remove rate limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Remove recipient"
|
||||
msgstr "受信者を削除"
|
||||
@@ -9267,10 +9247,6 @@ msgstr "解決"
|
||||
msgid "Resolve payment"
|
||||
msgstr "支払いを解決"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Resource blocked"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
|
||||
msgid "Response"
|
||||
msgstr "レスポンス"
|
||||
@@ -9847,10 +9823,6 @@ msgstr "送信中..."
|
||||
msgid "Sent"
|
||||
msgstr "送信日時"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Sent this period"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
msgid "Session revoked"
|
||||
msgstr "セッションを取り消しました"
|
||||
@@ -10833,10 +10805,10 @@ msgid "Team URL"
|
||||
msgstr "チーム URL"
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.teams.tsx
|
||||
@@ -10847,10 +10819,6 @@ msgstr "チーム"
|
||||
msgid "Teams help you organise your work and collaborate with others. Create your first team to get started."
|
||||
msgstr "チームは作業を整理し、他のメンバーとコラボレーションするのに役立ちます。最初のチームを作成して始めましょう。"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Teams that belong to this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Teams that this organisation group is currently assigned to"
|
||||
msgstr "この組織グループが現在割り当てられているチーム"
|
||||
@@ -12329,6 +12297,8 @@ msgstr "不明な名前"
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-claims-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Unlimited"
|
||||
msgstr "無制限"
|
||||
|
||||
@@ -12621,18 +12591,15 @@ msgstr "アップロード中"
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#. placeholder {0}: selectedStat?.period || 'N/A'
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Usage for period: {0}"
|
||||
msgstr "期間内の利用状況: {0}"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx
|
||||
msgid "Use"
|
||||
msgstr "使用"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a duration with a unit, e.g. 5m, 1h, or 24h"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a unique window for each rate limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx
|
||||
#: apps/remix/app/components/forms/signin.tsx
|
||||
msgid "Use Authenticator"
|
||||
@@ -13534,18 +13501,10 @@ msgstr "ホワイトラベリング、メンバー無制限など"
|
||||
msgid "Width:"
|
||||
msgstr "幅:"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Window"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx
|
||||
msgid "Withdrawing Consent"
|
||||
msgstr "同意の撤回"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Within limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/public-profile-form.tsx
|
||||
msgid "Write a description to display on your public profile"
|
||||
msgstr "公開プロフィールに表示する説明文を入力してください"
|
||||
|
||||
@@ -1416,8 +1416,8 @@ msgid "Add Placeholders"
|
||||
msgstr "플레이스홀더 추가"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Add rate limit window"
|
||||
msgstr ""
|
||||
msgid "Add rate limit"
|
||||
msgstr "요청 한도 추가"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Add recipients"
|
||||
@@ -2008,7 +2008,6 @@ msgstr "모든 소스"
|
||||
msgid "Any Status"
|
||||
msgstr "모든 상태"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
msgid "API"
|
||||
msgstr "API"
|
||||
@@ -2018,6 +2017,10 @@ msgstr "API"
|
||||
msgid "API key"
|
||||
msgstr "API 키"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "API rate limits"
|
||||
msgstr "API 요청 한도"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "API requests"
|
||||
msgstr "API 요청"
|
||||
@@ -2678,10 +2681,6 @@ msgstr "서명자를 제거할 수 없습니다."
|
||||
msgid "Cannot upload items after the document has been sent"
|
||||
msgstr "문서를 전송한 이후에는 항목을 업로드할 수 없습니다."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Capabilities enabled for this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/recipient-roles.ts
|
||||
msgctxt "Recipient role name"
|
||||
msgid "Cc"
|
||||
@@ -4408,6 +4407,10 @@ msgstr "문서 기본 설정"
|
||||
msgid "Document preferences updated"
|
||||
msgstr "문서 환경설정이 업데이트되었습니다"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Document rate limits"
|
||||
msgstr "문서 요청 한도"
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
|
||||
#: apps/remix/app/components/general/document/document-status.tsx
|
||||
msgid "Document rejected"
|
||||
@@ -4543,7 +4546,6 @@ msgstr "문서"
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
#: apps/remix/app/components/general/app-nav-desktop.tsx
|
||||
#: apps/remix/app/components/general/app-nav-mobile.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-upload-page.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx
|
||||
@@ -4993,6 +4995,10 @@ msgstr "이메일 기본 설정"
|
||||
msgid "Email preferences updated"
|
||||
msgstr "이메일 기본 설정이 업데이트되었습니다."
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Email rate limits"
|
||||
msgstr "이메일 요청 한도"
|
||||
|
||||
#: packages/ui/components/document/document-email-checkboxes.tsx
|
||||
msgid "Email recipients when a pending document is deleted"
|
||||
msgstr "보류 중인 문서가 삭제되면 수신자에게 이메일 보내기"
|
||||
@@ -5088,7 +5094,6 @@ msgstr "이메일 인증이 제거되었습니다"
|
||||
msgid "Email verification has been resent"
|
||||
msgstr "이메일 인증이 다시 전송되었습니다"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
@@ -5102,14 +5107,16 @@ msgstr "이메일"
|
||||
msgid "Embedding, 5 members included and more"
|
||||
msgstr "임베딩, 5명의 구성원 포함 등"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty = Unlimited, 0 = Blocked"
|
||||
msgstr "비워 두기 = 무제한, 0 = 차단됨"
|
||||
|
||||
#: packages/ui/primitives/document-flow/add-fields.tsx
|
||||
msgid "Empty field"
|
||||
msgstr "빈 필드"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty quota means unlimited, 0 blocks the resource. Rate limit windows accept values like 5m, 1h or 24h."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx
|
||||
msgid "Enable"
|
||||
msgstr "활성화"
|
||||
@@ -5229,10 +5236,6 @@ msgstr "임베딩 토큰이 아닌 API 토큰을 사용하고 있지 않은지
|
||||
msgid "Enter"
|
||||
msgstr "입력하세요"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a max request count greater than 0"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
|
||||
msgid "Enter a name for your new folder. Folders help you organise your items."
|
||||
msgstr "새 폴더 이름을 입력하세요. 폴더는 항목을 정리하는 데 도움이 됩니다."
|
||||
@@ -5241,10 +5244,6 @@ msgstr "새 폴더 이름을 입력하세요. 폴더는 항목을 정리하는
|
||||
msgid "Enter a new title"
|
||||
msgstr "새 제목을 입력하세요."
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a window, e.g. 5m"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/subscription-claim-form.tsx
|
||||
msgid "Enter claim name"
|
||||
msgstr "클레임 이름 입력"
|
||||
@@ -5503,10 +5502,6 @@ msgstr "모든 사람이 서명했습니다"
|
||||
msgid "Everyone has signed! You will receive an email copy of the signed document."
|
||||
msgstr "모두 서명했습니다! 서명된 문서의 사본이 이메일로 전송됩니다."
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Exceeded"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx
|
||||
msgid "Exceeded timeout"
|
||||
msgstr "시간 초과됨"
|
||||
@@ -6770,10 +6765,6 @@ msgstr "라이트 모드"
|
||||
msgid "Like to have your own public profile with agreements?"
|
||||
msgstr "계약이 포함된 나만의 공개 프로필을 원하시나요?"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Limit reached"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Limits"
|
||||
msgstr "제한"
|
||||
@@ -7079,10 +7070,6 @@ msgstr "MAU(로그인 기준)"
|
||||
msgid "Max"
|
||||
msgstr "최대"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Max requests"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
|
||||
msgid "Maximum file size: 4MB. Maximum 100 rows per upload. Blank values will use template defaults."
|
||||
msgstr "최대 파일 크기: 4MB. 업로드당 최대 100행. 비어 있는 값은 템플릿 기본값이 사용됩니다."
|
||||
@@ -7129,12 +7116,12 @@ msgstr "가입일"
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-groups-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/team-groups-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/teams.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
@@ -7203,12 +7190,16 @@ msgid "Monthly Active Users: Users that had at least one of their documents comp
|
||||
msgstr "월간 활성 사용자: 문서가 하나 이상 완료된 사용자"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly quota"
|
||||
msgstr ""
|
||||
msgid "Monthly API quota"
|
||||
msgstr "월간 API 할당량"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Monthly usage"
|
||||
msgstr ""
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly document quota"
|
||||
msgstr "월간 문서 할당량"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly email quota"
|
||||
msgstr "월간 이메일 할당량"
|
||||
|
||||
#: apps/remix/app/components/dialogs/envelopes-bulk-move-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/folder-move-dialog.tsx
|
||||
@@ -7299,6 +7290,7 @@ msgid "Name"
|
||||
msgstr "이름"
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Name is required"
|
||||
msgstr "이름은 필수 항목입니다."
|
||||
|
||||
@@ -7306,10 +7298,6 @@ msgstr "이름은 필수 항목입니다."
|
||||
msgid "Name Settings"
|
||||
msgstr "이름 설정"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Near limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx
|
||||
msgid "Need to sign documents?"
|
||||
msgstr "문서에 서명이 필요하신가요?"
|
||||
@@ -7449,10 +7437,6 @@ msgstr "현재 추가로 수행해야 할 작업은 없습니다."
|
||||
msgid "No groups found"
|
||||
msgstr "그룹을 찾을 수 없습니다."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "No inherited claim"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/admin-license-card.tsx
|
||||
msgid "No License Configured"
|
||||
msgstr "라이선스가 구성되지 않았습니다"
|
||||
@@ -8169,10 +8153,6 @@ msgstr "보류 중인 조직 초대"
|
||||
msgid "Pending since"
|
||||
msgstr "다음 시점부터 보류 중"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "People with access to this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/billing-plans.tsx
|
||||
msgid "per month"
|
||||
@@ -8335,6 +8315,10 @@ msgstr "토큰을 나중에 식별할 수 있도록 의미 있는 이름을 입
|
||||
msgid "Please enter a number"
|
||||
msgstr "숫자를 입력하세요"
|
||||
|
||||
#: apps/remix/app/components/general/claim-account.tsx
|
||||
msgid "Please enter a valid name."
|
||||
msgstr "올바른 이름을 입력해 주세요."
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-number-dialog.tsx
|
||||
msgid "Please enter a valid number"
|
||||
msgstr "올바른 숫자를 입력하세요"
|
||||
@@ -9073,10 +9057,6 @@ msgstr "조직 구성원 제거"
|
||||
msgid "Remove Organisation Member"
|
||||
msgstr "조직 구성원 제거"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Remove rate limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Remove recipient"
|
||||
msgstr "수신자 제거"
|
||||
@@ -9267,10 +9247,6 @@ msgstr "해결"
|
||||
msgid "Resolve payment"
|
||||
msgstr "결제 해결"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Resource blocked"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
|
||||
msgid "Response"
|
||||
msgstr "응답"
|
||||
@@ -9847,10 +9823,6 @@ msgstr "전송 중..."
|
||||
msgid "Sent"
|
||||
msgstr "발송됨"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Sent this period"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
msgid "Session revoked"
|
||||
msgstr "세션이 해지되었습니다."
|
||||
@@ -10833,10 +10805,10 @@ msgid "Team URL"
|
||||
msgstr "팀 URL"
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.teams.tsx
|
||||
@@ -10847,10 +10819,6 @@ msgstr "팀"
|
||||
msgid "Teams help you organise your work and collaborate with others. Create your first team to get started."
|
||||
msgstr "팀은 작업을 조직하고 다른 사람과 협업하는 데 도움이 됩니다. 첫 번째 팀을 생성하여 시작하세요."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Teams that belong to this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Teams that this organisation group is currently assigned to"
|
||||
msgstr "이 조직 그룹이 현재 할당된 팀"
|
||||
@@ -12329,6 +12297,8 @@ msgstr "이름을 알 수 없음"
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-claims-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Unlimited"
|
||||
msgstr "무제한"
|
||||
|
||||
@@ -12621,18 +12591,15 @@ msgstr "업로드 중"
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#. placeholder {0}: selectedStat?.period || 'N/A'
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Usage for period: {0}"
|
||||
msgstr "기간별 사용량: {0}"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx
|
||||
msgid "Use"
|
||||
msgstr "사용"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a duration with a unit, e.g. 5m, 1h, or 24h"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a unique window for each rate limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx
|
||||
#: apps/remix/app/components/forms/signin.tsx
|
||||
msgid "Use Authenticator"
|
||||
@@ -13534,18 +13501,10 @@ msgstr "화이트라벨, 무제한 구성원 등"
|
||||
msgid "Width:"
|
||||
msgstr "너비:"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Window"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx
|
||||
msgid "Withdrawing Consent"
|
||||
msgstr "동의 철회"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Within limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/public-profile-form.tsx
|
||||
msgid "Write a description to display on your public profile"
|
||||
msgstr "공개 프로필에 표시될 설명을 작성하세요."
|
||||
|
||||
@@ -1416,8 +1416,8 @@ msgid "Add Placeholders"
|
||||
msgstr "Placeholders toevoegen"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Add rate limit window"
|
||||
msgstr ""
|
||||
msgid "Add rate limit"
|
||||
msgstr "Snelheidslimiet toevoegen"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Add recipients"
|
||||
@@ -2008,7 +2008,6 @@ msgstr "Elke bron"
|
||||
msgid "Any Status"
|
||||
msgstr "Elke status"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
msgid "API"
|
||||
msgstr "API"
|
||||
@@ -2018,6 +2017,10 @@ msgstr "API"
|
||||
msgid "API key"
|
||||
msgstr "API-sleutel"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "API rate limits"
|
||||
msgstr "API-snelheidslimieten"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "API requests"
|
||||
msgstr "API-verzoeken"
|
||||
@@ -2678,10 +2681,6 @@ msgstr "Ondertekenaar kan niet worden verwijderd"
|
||||
msgid "Cannot upload items after the document has been sent"
|
||||
msgstr "Items kunnen niet worden geüpload nadat het document is verzonden"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Capabilities enabled for this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/recipient-roles.ts
|
||||
msgctxt "Recipient role name"
|
||||
msgid "Cc"
|
||||
@@ -4408,6 +4407,10 @@ msgstr "Documentvoorkeuren"
|
||||
msgid "Document preferences updated"
|
||||
msgstr "Documentvoorkeuren bijgewerkt"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Document rate limits"
|
||||
msgstr "Documentsnelheidslimieten"
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
|
||||
#: apps/remix/app/components/general/document/document-status.tsx
|
||||
msgid "Document rejected"
|
||||
@@ -4543,7 +4546,6 @@ msgstr "Documentatie"
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
#: apps/remix/app/components/general/app-nav-desktop.tsx
|
||||
#: apps/remix/app/components/general/app-nav-mobile.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-upload-page.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx
|
||||
@@ -4993,6 +4995,10 @@ msgstr "E-mailvoorkeuren"
|
||||
msgid "Email preferences updated"
|
||||
msgstr "E-mailvoorkeuren bijgewerkt"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Email rate limits"
|
||||
msgstr "E-mailsnelheidslimieten"
|
||||
|
||||
#: packages/ui/components/document/document-email-checkboxes.tsx
|
||||
msgid "Email recipients when a pending document is deleted"
|
||||
msgstr "E-mail ontvangers wanneer een in behandeling zijnd document wordt verwijderd"
|
||||
@@ -5088,7 +5094,6 @@ msgstr "E‑mailverificatie is verwijderd"
|
||||
msgid "Email verification has been resent"
|
||||
msgstr "E‑mailverificatie is opnieuw verzonden"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
@@ -5102,14 +5107,16 @@ msgstr "E-mails"
|
||||
msgid "Embedding, 5 members included and more"
|
||||
msgstr "Inbedding, 5 leden inbegrepen en meer"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty = Unlimited, 0 = Blocked"
|
||||
msgstr "Leeg = Onbeperkt, 0 = Geblokkeerd"
|
||||
|
||||
#: packages/ui/primitives/document-flow/add-fields.tsx
|
||||
msgid "Empty field"
|
||||
msgstr "Leeg veld"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty quota means unlimited, 0 blocks the resource. Rate limit windows accept values like 5m, 1h or 24h."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx
|
||||
msgid "Enable"
|
||||
msgstr "Inschakelen"
|
||||
@@ -5229,10 +5236,6 @@ msgstr "Zorg ervoor dat je het embedding-token gebruikt en niet het API-token"
|
||||
msgid "Enter"
|
||||
msgstr "Invoeren"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a max request count greater than 0"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
|
||||
msgid "Enter a name for your new folder. Folders help you organise your items."
|
||||
msgstr "Voer een naam in voor je nieuwe map. Mappen helpen je je items te organiseren."
|
||||
@@ -5241,10 +5244,6 @@ msgstr "Voer een naam in voor je nieuwe map. Mappen helpen je je items te organi
|
||||
msgid "Enter a new title"
|
||||
msgstr "Voer een nieuwe titel in"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a window, e.g. 5m"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/subscription-claim-form.tsx
|
||||
msgid "Enter claim name"
|
||||
msgstr "Voer claimnaam in"
|
||||
@@ -5503,10 +5502,6 @@ msgstr "Iedereen heeft getekend"
|
||||
msgid "Everyone has signed! You will receive an email copy of the signed document."
|
||||
msgstr "Iedereen heeft ondertekend! U ontvangt een kopie van het ondertekende document per e-mail."
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Exceeded"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx
|
||||
msgid "Exceeded timeout"
|
||||
msgstr "Time‑out overschreden"
|
||||
@@ -6770,10 +6765,6 @@ msgstr "Lichte modus"
|
||||
msgid "Like to have your own public profile with agreements?"
|
||||
msgstr "Wil je een eigen openbaar profiel met overeenkomsten?"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Limit reached"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Limits"
|
||||
msgstr "Limieten"
|
||||
@@ -7079,10 +7070,6 @@ msgstr "MAU (ingelogd)"
|
||||
msgid "Max"
|
||||
msgstr "Max"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Max requests"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
|
||||
msgid "Maximum file size: 4MB. Maximum 100 rows per upload. Blank values will use template defaults."
|
||||
msgstr "Maximale bestandsgrootte: 4 MB. Maximaal 100 rijen per upload. Lege waarden gebruiken de standaardwaarden van de sjabloon."
|
||||
@@ -7129,12 +7116,12 @@ msgstr "Lid sinds"
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-groups-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/team-groups-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/teams.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
@@ -7203,12 +7190,16 @@ msgid "Monthly Active Users: Users that had at least one of their documents comp
|
||||
msgstr "Maandelijks actieve gebruikers: gebruikers van wie ten minste één document is voltooid"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly quota"
|
||||
msgstr ""
|
||||
msgid "Monthly API quota"
|
||||
msgstr "Maandelijkse API-limiet"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Monthly usage"
|
||||
msgstr ""
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly document quota"
|
||||
msgstr "Maandelijkse documentlimiet"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly email quota"
|
||||
msgstr "Maandelijkse e-maillimiet"
|
||||
|
||||
#: apps/remix/app/components/dialogs/envelopes-bulk-move-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/folder-move-dialog.tsx
|
||||
@@ -7299,6 +7290,7 @@ msgid "Name"
|
||||
msgstr "Naam"
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Name is required"
|
||||
msgstr "Naam is verplicht"
|
||||
|
||||
@@ -7306,10 +7298,6 @@ msgstr "Naam is verplicht"
|
||||
msgid "Name Settings"
|
||||
msgstr "Naam-instellingen"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Near limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx
|
||||
msgid "Need to sign documents?"
|
||||
msgstr "Moet je documenten ondertekenen?"
|
||||
@@ -7449,10 +7437,6 @@ msgstr "Er is op dit moment geen verdere actie van jou vereist."
|
||||
msgid "No groups found"
|
||||
msgstr "Geen groepen gevonden"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "No inherited claim"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/admin-license-card.tsx
|
||||
msgid "No License Configured"
|
||||
msgstr "Geen licentie geconfigureerd"
|
||||
@@ -8169,10 +8153,6 @@ msgstr "Openstaande organisatie-uitnodigingen"
|
||||
msgid "Pending since"
|
||||
msgstr "In behandeling sinds"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "People with access to this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/billing-plans.tsx
|
||||
msgid "per month"
|
||||
@@ -8335,6 +8315,10 @@ msgstr "Voer een betekenisvolle naam in voor je token. Hiermee kun je het later
|
||||
msgid "Please enter a number"
|
||||
msgstr "Voer een nummer in"
|
||||
|
||||
#: apps/remix/app/components/general/claim-account.tsx
|
||||
msgid "Please enter a valid name."
|
||||
msgstr "Voer een geldige naam in."
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-number-dialog.tsx
|
||||
msgid "Please enter a valid number"
|
||||
msgstr "Voer een geldig nummer in"
|
||||
@@ -9073,10 +9057,6 @@ msgstr "Organisatielid verwijderen"
|
||||
msgid "Remove Organisation Member"
|
||||
msgstr "Organisatielid verwijderen"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Remove rate limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Remove recipient"
|
||||
msgstr "Ontvanger verwijderen"
|
||||
@@ -9267,10 +9247,6 @@ msgstr "Oplossen"
|
||||
msgid "Resolve payment"
|
||||
msgstr "Betaling oplossen"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Resource blocked"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
|
||||
msgid "Response"
|
||||
msgstr "Antwoord"
|
||||
@@ -9847,10 +9823,6 @@ msgstr "Verzenden..."
|
||||
msgid "Sent"
|
||||
msgstr "Verzonden"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Sent this period"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
msgid "Session revoked"
|
||||
msgstr "Sessie ingetrokken"
|
||||
@@ -10833,10 +10805,10 @@ msgid "Team URL"
|
||||
msgstr "Team‑URL"
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.teams.tsx
|
||||
@@ -10847,10 +10819,6 @@ msgstr "Teams"
|
||||
msgid "Teams help you organise your work and collaborate with others. Create your first team to get started."
|
||||
msgstr "Teams helpen je je werk te organiseren en samen te werken met anderen. Maak je eerste team aan om te beginnen."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Teams that belong to this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Teams that this organisation group is currently assigned to"
|
||||
msgstr "Teams waaraan deze organisatiegroep momenteel is toegewezen"
|
||||
@@ -12329,6 +12297,8 @@ msgstr "Onbekende naam"
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-claims-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Unlimited"
|
||||
msgstr "Onbeperkt"
|
||||
|
||||
@@ -12621,18 +12591,15 @@ msgstr "Uploaden"
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#. placeholder {0}: selectedStat?.period || 'N/A'
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Usage for period: {0}"
|
||||
msgstr "Gebruik voor periode: {0}"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx
|
||||
msgid "Use"
|
||||
msgstr "Gebruiken"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a duration with a unit, e.g. 5m, 1h, or 24h"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a unique window for each rate limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx
|
||||
#: apps/remix/app/components/forms/signin.tsx
|
||||
msgid "Use Authenticator"
|
||||
@@ -13534,18 +13501,10 @@ msgstr "Whitelabeling, onbeperkte leden en meer"
|
||||
msgid "Width:"
|
||||
msgstr "Breedte:"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Window"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx
|
||||
msgid "Withdrawing Consent"
|
||||
msgstr "Toestemming intrekken"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Within limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/public-profile-form.tsx
|
||||
msgid "Write a description to display on your public profile"
|
||||
msgstr "Schrijf een beschrijving die op je openbare profiel wordt weergegeven"
|
||||
|
||||
@@ -1416,8 +1416,8 @@ msgid "Add Placeholders"
|
||||
msgstr "Dodaj domyślny tekst"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Add rate limit window"
|
||||
msgstr ""
|
||||
msgid "Add rate limit"
|
||||
msgstr "Dodaj limit przepustowości"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Add recipients"
|
||||
@@ -2008,7 +2008,6 @@ msgstr "Dowolne źródło"
|
||||
msgid "Any Status"
|
||||
msgstr "Dowolny status"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
msgid "API"
|
||||
msgstr "API"
|
||||
@@ -2018,6 +2017,10 @@ msgstr "API"
|
||||
msgid "API key"
|
||||
msgstr "Klucz API"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "API rate limits"
|
||||
msgstr "Limit przepustowości API"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "API requests"
|
||||
msgstr "Żądania API"
|
||||
@@ -2678,10 +2681,6 @@ msgstr "Nie można usunąć podpisującego"
|
||||
msgid "Cannot upload items after the document has been sent"
|
||||
msgstr "Nie możesz przesłać elementów po wysłaniu dokumentu"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Capabilities enabled for this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/recipient-roles.ts
|
||||
msgctxt "Recipient role name"
|
||||
msgid "Cc"
|
||||
@@ -4408,6 +4407,10 @@ msgstr "Ustawienia dokumentu"
|
||||
msgid "Document preferences updated"
|
||||
msgstr "Ustawienia dokumentu zostały zaktualizowane"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Document rate limits"
|
||||
msgstr "Limit przepustowości dokumentów"
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
|
||||
#: apps/remix/app/components/general/document/document-status.tsx
|
||||
msgid "Document rejected"
|
||||
@@ -4543,7 +4546,6 @@ msgstr "Dokumentacja"
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
#: apps/remix/app/components/general/app-nav-desktop.tsx
|
||||
#: apps/remix/app/components/general/app-nav-mobile.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-upload-page.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx
|
||||
@@ -4993,6 +4995,10 @@ msgstr "Ustawienia adresu e-mail"
|
||||
msgid "Email preferences updated"
|
||||
msgstr "Ustawienia adresu e-mail zostały zaktualizowane"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Email rate limits"
|
||||
msgstr "Limit przepustowości wiadomości"
|
||||
|
||||
#: packages/ui/components/document/document-email-checkboxes.tsx
|
||||
msgid "Email recipients when a pending document is deleted"
|
||||
msgstr "Wyślij odbiorcom wiadomość, gdy oczekujący dokument zostanie usunięty"
|
||||
@@ -5088,7 +5094,6 @@ msgstr "Weryfikacja adresu e-mail została usunięta"
|
||||
msgid "Email verification has been resent"
|
||||
msgstr "Weryfikacja adresu e-mail została ponownie wysłana"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
@@ -5102,14 +5107,16 @@ msgstr "Adresy e-mail"
|
||||
msgid "Embedding, 5 members included and more"
|
||||
msgstr "Osadzanie dokumentów, 5 użytkowników i więcej"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty = Unlimited, 0 = Blocked"
|
||||
msgstr "Puste = bez ograniczeń, 0 = zablokowane"
|
||||
|
||||
#: packages/ui/primitives/document-flow/add-fields.tsx
|
||||
msgid "Empty field"
|
||||
msgstr "Puste pole"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty quota means unlimited, 0 blocks the resource. Rate limit windows accept values like 5m, 1h or 24h."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx
|
||||
msgid "Enable"
|
||||
msgstr "Włącz"
|
||||
@@ -5229,10 +5236,6 @@ msgstr "Upewnij się, że używasz tokena osadzania, a nie tokenu API."
|
||||
msgid "Enter"
|
||||
msgstr "Wpisz"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a max request count greater than 0"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
|
||||
msgid "Enter a name for your new folder. Folders help you organise your items."
|
||||
msgstr "Wpisz nazwę nowego folderu. Foldery pomagają uporządkować elementy."
|
||||
@@ -5241,10 +5244,6 @@ msgstr "Wpisz nazwę nowego folderu. Foldery pomagają uporządkować elementy."
|
||||
msgid "Enter a new title"
|
||||
msgstr "Wpisz nowy tytuł"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a window, e.g. 5m"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/subscription-claim-form.tsx
|
||||
msgid "Enter claim name"
|
||||
msgstr "Wpisz nazwę"
|
||||
@@ -5503,10 +5502,6 @@ msgstr "Wszyscy podpisali"
|
||||
msgid "Everyone has signed! You will receive an email copy of the signed document."
|
||||
msgstr "Wszyscy podpisali! Otrzymasz wiadomość z podpisanym dokumentem."
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Exceeded"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx
|
||||
msgid "Exceeded timeout"
|
||||
msgstr "Przekroczono limit czasu"
|
||||
@@ -6770,10 +6765,6 @@ msgstr "Tryb jasny"
|
||||
msgid "Like to have your own public profile with agreements?"
|
||||
msgstr "Czy chcesz mieć własny profil publiczny z umowami?"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Limit reached"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Limits"
|
||||
msgstr "Limity"
|
||||
@@ -7079,10 +7070,6 @@ msgstr "MAU (zalogowani)"
|
||||
msgid "Max"
|
||||
msgstr "Maks."
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Max requests"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
|
||||
msgid "Maximum file size: 4MB. Maximum 100 rows per upload. Blank values will use template defaults."
|
||||
msgstr "Maksymalny rozmiar pliku to 4 MB. Możesz przesłać maksymalnie 100 wierszy na raz. Puste wartości zostaną zastąpione domyślnymi z szablonu."
|
||||
@@ -7129,12 +7116,12 @@ msgstr "Data dołączenia"
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-groups-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/team-groups-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/teams.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
@@ -7203,12 +7190,16 @@ msgid "Monthly Active Users: Users that had at least one of their documents comp
|
||||
msgstr "Miesięczna liczba aktywnych użytkowników: Użytkownicy, którzy zakończyli co najmniej jeden dokument"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly quota"
|
||||
msgstr ""
|
||||
msgid "Monthly API quota"
|
||||
msgstr "Miesięczny limit API"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Monthly usage"
|
||||
msgstr ""
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly document quota"
|
||||
msgstr "Miesięczny limit dokumentów"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly email quota"
|
||||
msgstr "Miesięczny limit wiadomości"
|
||||
|
||||
#: apps/remix/app/components/dialogs/envelopes-bulk-move-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/folder-move-dialog.tsx
|
||||
@@ -7299,6 +7290,7 @@ msgid "Name"
|
||||
msgstr "Nazwa"
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Name is required"
|
||||
msgstr "Nazwa jest wymagana"
|
||||
|
||||
@@ -7306,10 +7298,6 @@ msgstr "Nazwa jest wymagana"
|
||||
msgid "Name Settings"
|
||||
msgstr "Ustawienia nazwy"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Near limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx
|
||||
msgid "Need to sign documents?"
|
||||
msgstr "Potrzebujesz podpisywać dokumenty?"
|
||||
@@ -7449,10 +7437,6 @@ msgstr "Nie musisz nic więcej robić."
|
||||
msgid "No groups found"
|
||||
msgstr "Nie znaleziono grup"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "No inherited claim"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/admin-license-card.tsx
|
||||
msgid "No License Configured"
|
||||
msgstr "Brak skonfigurowanej licencji"
|
||||
@@ -8169,10 +8153,6 @@ msgstr "Oczekujące zaproszenia do organizacji"
|
||||
msgid "Pending since"
|
||||
msgstr "Oczekuje od"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "People with access to this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/billing-plans.tsx
|
||||
msgid "per month"
|
||||
@@ -8335,6 +8315,10 @@ msgstr "Wpisz nazwę tokena. Pomoże to później w jego identyfikacji."
|
||||
msgid "Please enter a number"
|
||||
msgstr "Wpisz liczbę"
|
||||
|
||||
#: apps/remix/app/components/general/claim-account.tsx
|
||||
msgid "Please enter a valid name."
|
||||
msgstr "Wpisz prawidłową nazwę."
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-number-dialog.tsx
|
||||
msgid "Please enter a valid number"
|
||||
msgstr "Wpisz prawidłową liczbę"
|
||||
@@ -9073,10 +9057,6 @@ msgstr "Usuń użytkownika organizacji"
|
||||
msgid "Remove Organisation Member"
|
||||
msgstr "Usuń użytkownika organizacji"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Remove rate limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Remove recipient"
|
||||
msgstr "Usuń odbiorcę"
|
||||
@@ -9267,10 +9247,6 @@ msgstr "Rozwiąż"
|
||||
msgid "Resolve payment"
|
||||
msgstr "Rozwiąż płatność"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Resource blocked"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
|
||||
msgid "Response"
|
||||
msgstr "Odpowiedź"
|
||||
@@ -9847,10 +9823,6 @@ msgstr "Wysyłanie..."
|
||||
msgid "Sent"
|
||||
msgstr "Wysłano"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Sent this period"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
msgid "Session revoked"
|
||||
msgstr "Sesja została unieważniona"
|
||||
@@ -10833,10 +10805,10 @@ msgid "Team URL"
|
||||
msgstr "Adres URL zespołu"
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.teams.tsx
|
||||
@@ -10847,10 +10819,6 @@ msgstr "Zespoły"
|
||||
msgid "Teams help you organise your work and collaborate with others. Create your first team to get started."
|
||||
msgstr "Zespoły pomagają organizować pracę i współpracować z innymi. Utwórz swój pierwszy zespół, aby rozpocząć."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Teams that belong to this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Teams that this organisation group is currently assigned to"
|
||||
msgstr "Zespoły, do których przypisana jest grupa organizacji"
|
||||
@@ -12329,6 +12297,8 @@ msgstr "Nieznana nazwa"
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-claims-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Unlimited"
|
||||
msgstr "Bez ograniczeń"
|
||||
|
||||
@@ -12621,18 +12591,15 @@ msgstr "Przesyłanie"
|
||||
msgid "URL"
|
||||
msgstr "Adres URL"
|
||||
|
||||
#. placeholder {0}: selectedStat?.period || 'N/A'
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Usage for period: {0}"
|
||||
msgstr "Okres: {0}"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx
|
||||
msgid "Use"
|
||||
msgstr "Użyj"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a duration with a unit, e.g. 5m, 1h, or 24h"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a unique window for each rate limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx
|
||||
#: apps/remix/app/components/forms/signin.tsx
|
||||
msgid "Use Authenticator"
|
||||
@@ -13534,18 +13501,10 @@ msgstr "Własny branding, nieograniczona liczba użytkowników i więcej"
|
||||
msgid "Width:"
|
||||
msgstr "Szerokość:"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Window"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx
|
||||
msgid "Withdrawing Consent"
|
||||
msgstr "Wycofanie zgody"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Within limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/public-profile-form.tsx
|
||||
msgid "Write a description to display on your public profile"
|
||||
msgstr "Wpisz opis, który będzie wyświetlany w profilu publicznym"
|
||||
|
||||
@@ -1411,7 +1411,7 @@ msgid "Add Placeholders"
|
||||
msgstr "Adicionar Espaços Reservados"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Add rate limit window"
|
||||
msgid "Add rate limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
@@ -2003,7 +2003,6 @@ msgstr "Qualquer Origem"
|
||||
msgid "Any Status"
|
||||
msgstr "Qualquer Status"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
msgid "API"
|
||||
msgstr ""
|
||||
@@ -2013,6 +2012,10 @@ msgstr ""
|
||||
msgid "API key"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "API rate limits"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "API requests"
|
||||
msgstr ""
|
||||
@@ -2673,10 +2676,6 @@ msgstr "Não é possível remover o signatário"
|
||||
msgid "Cannot upload items after the document has been sent"
|
||||
msgstr "Não é possível fazer upload de itens após o envio do documento"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Capabilities enabled for this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/recipient-roles.ts
|
||||
msgctxt "Recipient role name"
|
||||
msgid "Cc"
|
||||
@@ -4403,6 +4402,10 @@ msgstr "Preferências de Documento"
|
||||
msgid "Document preferences updated"
|
||||
msgstr "Preferências de documento atualizadas"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Document rate limits"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
|
||||
#: apps/remix/app/components/general/document/document-status.tsx
|
||||
msgid "Document rejected"
|
||||
@@ -4538,7 +4541,6 @@ msgstr "Documentação"
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
#: apps/remix/app/components/general/app-nav-desktop.tsx
|
||||
#: apps/remix/app/components/general/app-nav-mobile.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-upload-page.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx
|
||||
@@ -4988,6 +4990,10 @@ msgstr "Preferências de E-mail"
|
||||
msgid "Email preferences updated"
|
||||
msgstr "Preferências de e-mail atualizadas"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Email rate limits"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/components/document/document-email-checkboxes.tsx
|
||||
msgid "Email recipients when a pending document is deleted"
|
||||
msgstr ""
|
||||
@@ -5083,7 +5089,6 @@ msgstr "A verificação de e-mail foi removida"
|
||||
msgid "Email verification has been resent"
|
||||
msgstr "A verificação de e-mail foi reenviada"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
@@ -5097,14 +5102,16 @@ msgstr "E-mails"
|
||||
msgid "Embedding, 5 members included and more"
|
||||
msgstr "Incorporação, 5 membros incluídos e mais"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty = Unlimited, 0 = Blocked"
|
||||
msgstr ""
|
||||
|
||||
#: packages/ui/primitives/document-flow/add-fields.tsx
|
||||
msgid "Empty field"
|
||||
msgstr "Campo vazio"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty quota means unlimited, 0 blocks the resource. Rate limit windows accept values like 5m, 1h or 24h."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx
|
||||
msgid "Enable"
|
||||
msgstr "Ativar"
|
||||
@@ -5224,10 +5231,6 @@ msgstr ""
|
||||
msgid "Enter"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a max request count greater than 0"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
|
||||
msgid "Enter a name for your new folder. Folders help you organise your items."
|
||||
msgstr "Digite um nome para sua nova pasta. As pastas ajudam você a organizar seus itens."
|
||||
@@ -5236,10 +5239,6 @@ msgstr "Digite um nome para sua nova pasta. As pastas ajudam você a organizar s
|
||||
msgid "Enter a new title"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a window, e.g. 5m"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/subscription-claim-form.tsx
|
||||
msgid "Enter claim name"
|
||||
msgstr "Digite o nome da reivindicação"
|
||||
@@ -5498,10 +5497,6 @@ msgstr "Todos assinaram"
|
||||
msgid "Everyone has signed! You will receive an email copy of the signed document."
|
||||
msgstr "Todos assinaram! Você receberá uma cópia do documento assinado por e-mail."
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Exceeded"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx
|
||||
msgid "Exceeded timeout"
|
||||
msgstr "Tempo limite excedido"
|
||||
@@ -6765,10 +6760,6 @@ msgstr "Modo Claro"
|
||||
msgid "Like to have your own public profile with agreements?"
|
||||
msgstr "Gostaria de ter seu próprio perfil público com contratos?"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Limit reached"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Limits"
|
||||
msgstr ""
|
||||
@@ -7074,10 +7065,6 @@ msgstr "MAU (entrou)"
|
||||
msgid "Max"
|
||||
msgstr "Máx"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Max requests"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
|
||||
msgid "Maximum file size: 4MB. Maximum 100 rows per upload. Blank values will use template defaults."
|
||||
msgstr "Tamanho máximo do arquivo: 4MB. Máximo de 100 linhas por upload. Valores em branco usarão os padrões do modelo."
|
||||
@@ -7124,12 +7111,12 @@ msgstr "Membro Desde"
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-groups-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/team-groups-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/teams.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
@@ -7198,11 +7185,15 @@ msgid "Monthly Active Users: Users that had at least one of their documents comp
|
||||
msgstr "Usuários Ativos Mensais: Usuários que tiveram pelo menos um de seus documentos concluídos"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly quota"
|
||||
msgid "Monthly API quota"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Monthly usage"
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly document quota"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly email quota"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/envelopes-bulk-move-dialog.tsx
|
||||
@@ -7294,6 +7285,7 @@ msgid "Name"
|
||||
msgstr "Nome"
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Name is required"
|
||||
msgstr "O nome é obrigatório"
|
||||
|
||||
@@ -7301,10 +7293,6 @@ msgstr "O nome é obrigatório"
|
||||
msgid "Name Settings"
|
||||
msgstr "Configurações de Nome"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Near limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx
|
||||
msgid "Need to sign documents?"
|
||||
msgstr "Precisa assinar documentos?"
|
||||
@@ -7444,10 +7432,6 @@ msgstr "Nenhuma ação adicional é necessária de sua parte neste momento."
|
||||
msgid "No groups found"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "No inherited claim"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/admin-license-card.tsx
|
||||
msgid "No License Configured"
|
||||
msgstr ""
|
||||
@@ -8164,10 +8148,6 @@ msgstr ""
|
||||
msgid "Pending since"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "People with access to this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/billing-plans.tsx
|
||||
msgid "per month"
|
||||
@@ -8330,6 +8310,10 @@ msgstr "Por favor, insira um nome significativo para seu token. Isso ajudará vo
|
||||
msgid "Please enter a number"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/claim-account.tsx
|
||||
msgid "Please enter a valid name."
|
||||
msgstr "Por favor, insira um nome válido."
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-number-dialog.tsx
|
||||
msgid "Please enter a valid number"
|
||||
msgstr "Por favor, insira um número válido"
|
||||
@@ -9068,10 +9052,6 @@ msgstr "Remover membro da organização"
|
||||
msgid "Remove Organisation Member"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Remove rate limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Remove recipient"
|
||||
msgstr "Remover destinatário"
|
||||
@@ -9262,10 +9242,6 @@ msgstr "Resolver"
|
||||
msgid "Resolve payment"
|
||||
msgstr "Resolver pagamento"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Resource blocked"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
|
||||
msgid "Response"
|
||||
msgstr "Resposta"
|
||||
@@ -9842,10 +9818,6 @@ msgstr "Enviando..."
|
||||
msgid "Sent"
|
||||
msgstr "Enviado"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Sent this period"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
msgid "Session revoked"
|
||||
msgstr "Sessão revogada"
|
||||
@@ -10828,10 +10800,10 @@ msgid "Team URL"
|
||||
msgstr "URL da Equipe"
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.teams.tsx
|
||||
@@ -10842,10 +10814,6 @@ msgstr "Equipes"
|
||||
msgid "Teams help you organise your work and collaborate with others. Create your first team to get started."
|
||||
msgstr "Equipes ajudam você a organizar seu trabalho e colaborar com outros. Crie sua primeira equipe para começar."
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Teams that belong to this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Teams that this organisation group is currently assigned to"
|
||||
msgstr "Equipes às quais este grupo da organização está atualmente atribuído"
|
||||
@@ -12324,6 +12292,8 @@ msgstr "Nome desconhecido"
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-claims-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Unlimited"
|
||||
msgstr "Ilimitado"
|
||||
|
||||
@@ -12616,18 +12586,15 @@ msgstr "Enviando"
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#. placeholder {0}: selectedStat?.period || 'N/A'
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Usage for period: {0}"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx
|
||||
msgid "Use"
|
||||
msgstr "Usar"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a duration with a unit, e.g. 5m, 1h, or 24h"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a unique window for each rate limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx
|
||||
#: apps/remix/app/components/forms/signin.tsx
|
||||
msgid "Use Authenticator"
|
||||
@@ -13529,18 +13496,10 @@ msgstr "Whitelabeling, membros ilimitados e mais"
|
||||
msgid "Width:"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Window"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx
|
||||
msgid "Withdrawing Consent"
|
||||
msgstr "Retirada de Consentimento"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Within limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/public-profile-form.tsx
|
||||
msgid "Write a description to display on your public profile"
|
||||
msgstr "Escreva uma descrição para exibir em seu perfil público"
|
||||
|
||||
@@ -1416,8 +1416,8 @@ msgid "Add Placeholders"
|
||||
msgstr "添加占位符"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Add rate limit window"
|
||||
msgstr ""
|
||||
msgid "Add rate limit"
|
||||
msgstr "添加速率限制"
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Add recipients"
|
||||
@@ -2008,7 +2008,6 @@ msgstr "任意来源"
|
||||
msgid "Any Status"
|
||||
msgstr "任意状态"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
msgid "API"
|
||||
msgstr "API"
|
||||
@@ -2018,6 +2017,10 @@ msgstr "API"
|
||||
msgid "API key"
|
||||
msgstr "API 密钥"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "API rate limits"
|
||||
msgstr "API 速率限制"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "API requests"
|
||||
msgstr "API 请求"
|
||||
@@ -2678,10 +2681,6 @@ msgstr "无法移除签署人"
|
||||
msgid "Cannot upload items after the document has been sent"
|
||||
msgstr "文档发送后无法再上传项目"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Capabilities enabled for this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: packages/lib/constants/recipient-roles.ts
|
||||
msgctxt "Recipient role name"
|
||||
msgid "Cc"
|
||||
@@ -4408,6 +4407,10 @@ msgstr "文档偏好"
|
||||
msgid "Document preferences updated"
|
||||
msgstr "文档偏好设置已更新"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Document rate limits"
|
||||
msgstr "文档速率限制"
|
||||
|
||||
#: apps/remix/app/components/general/document-signing/document-signing-reject-dialog.tsx
|
||||
#: apps/remix/app/components/general/document/document-status.tsx
|
||||
msgid "Document rejected"
|
||||
@@ -4543,7 +4546,6 @@ msgstr "文档"
|
||||
#: apps/remix/app/components/general/app-command-menu.tsx
|
||||
#: apps/remix/app/components/general/app-nav-desktop.tsx
|
||||
#: apps/remix/app/components/general/app-nav-mobile.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/envelope-editor/envelope-editor-upload-page.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/general/skeletons/document-edit-skeleton.tsx
|
||||
@@ -4993,6 +4995,10 @@ msgstr "邮件偏好"
|
||||
msgid "Email preferences updated"
|
||||
msgstr "邮件偏好已更新"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Email rate limits"
|
||||
msgstr "电子邮件速率限制"
|
||||
|
||||
#: packages/ui/components/document/document-email-checkboxes.tsx
|
||||
msgid "Email recipients when a pending document is deleted"
|
||||
msgstr "在待处理文档被删除时向收件人发送电子邮件通知"
|
||||
@@ -5088,7 +5094,6 @@ msgstr "邮箱验证已移除"
|
||||
msgid "Email verification has been resent"
|
||||
msgstr "验证邮件已重新发送"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-stats-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-email-domains-table.tsx
|
||||
@@ -5102,14 +5107,16 @@ msgstr "邮箱"
|
||||
msgid "Embedding, 5 members included and more"
|
||||
msgstr "内嵌、包含 5 名成员等更多功能"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty = Unlimited, 0 = Blocked"
|
||||
msgstr "留空 = 不限,0 = 禁用"
|
||||
|
||||
#: packages/ui/primitives/document-flow/add-fields.tsx
|
||||
msgid "Empty field"
|
||||
msgstr "空字段"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Empty quota means unlimited, 0 blocks the resource. Rate limit windows accept values like 5m, 1h or 24h."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/team-inherit-member-enable-dialog.tsx
|
||||
msgid "Enable"
|
||||
msgstr "启用"
|
||||
@@ -5229,10 +5236,6 @@ msgstr "请确保您使用的是嵌入令牌,而不是 API 令牌"
|
||||
msgid "Enter"
|
||||
msgstr "输入"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a max request count greater than 0"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/folder-create-dialog.tsx
|
||||
msgid "Enter a name for your new folder. Folders help you organise your items."
|
||||
msgstr "为新文件夹输入名称。文件夹可以帮助您整理项目。"
|
||||
@@ -5241,10 +5244,6 @@ msgstr "为新文件夹输入名称。文件夹可以帮助您整理项目。"
|
||||
msgid "Enter a new title"
|
||||
msgstr "输入新标题"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Enter a window, e.g. 5m"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/subscription-claim-form.tsx
|
||||
msgid "Enter claim name"
|
||||
msgstr "输入声明名称"
|
||||
@@ -5503,10 +5502,6 @@ msgstr "所有人都已签署"
|
||||
msgid "Everyone has signed! You will receive an email copy of the signed document."
|
||||
msgstr "所有人都已签署!您将收到一份已签署文档的电子邮件副本。"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Exceeded"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/passkey-create-dialog.tsx
|
||||
msgid "Exceeded timeout"
|
||||
msgstr "超时"
|
||||
@@ -6770,10 +6765,6 @@ msgstr "浅色模式"
|
||||
msgid "Like to have your own public profile with agreements?"
|
||||
msgstr "想拥有属于自己的公开协议页面吗?"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Limit reached"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Limits"
|
||||
msgstr "限制"
|
||||
@@ -7079,10 +7070,6 @@ msgstr "月活跃用户(已登录)"
|
||||
msgid "Max"
|
||||
msgstr "最大值"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Max requests"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/template-bulk-send-dialog.tsx
|
||||
msgid "Maximum file size: 4MB. Maximum 100 rows per upload. Blank values will use template defaults."
|
||||
msgstr "最大文件大小:4MB。每次上传最多 100 行。空值将使用模板默认值。"
|
||||
@@ -7129,12 +7116,12 @@ msgstr "加入时间"
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-group-create-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/team-member-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-groups-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/team-groups-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/teams.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl._index.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
@@ -7203,12 +7190,16 @@ msgid "Monthly Active Users: Users that had at least one of their documents comp
|
||||
msgstr "月活跃用户:至少有一份文档被完成的用户"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly quota"
|
||||
msgstr ""
|
||||
msgid "Monthly API quota"
|
||||
msgstr "每月 API 配额"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Monthly usage"
|
||||
msgstr ""
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly document quota"
|
||||
msgstr "每月文档配额"
|
||||
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
msgid "Monthly email quota"
|
||||
msgstr "每月邮件配额"
|
||||
|
||||
#: apps/remix/app/components/dialogs/envelopes-bulk-move-dialog.tsx
|
||||
#: apps/remix/app/components/dialogs/folder-move-dialog.tsx
|
||||
@@ -7299,6 +7290,7 @@ msgid "Name"
|
||||
msgstr "姓名"
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-name-dialog.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Name is required"
|
||||
msgstr "名称为必填项"
|
||||
|
||||
@@ -7306,10 +7298,6 @@ msgstr "名称为必填项"
|
||||
msgid "Name Settings"
|
||||
msgstr "姓名设置"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Near limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_recipient+/sign.$token+/complete.tsx
|
||||
msgid "Need to sign documents?"
|
||||
msgstr "需要签署文档?"
|
||||
@@ -7449,10 +7437,6 @@ msgstr "目前您无需再执行任何操作。"
|
||||
msgid "No groups found"
|
||||
msgstr "未找到群组"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "No inherited claim"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/admin-license-card.tsx
|
||||
msgid "No License Configured"
|
||||
msgstr "未配置许可证"
|
||||
@@ -8169,10 +8153,6 @@ msgstr "待处理的组织邀请"
|
||||
msgid "Pending since"
|
||||
msgstr "待处理起始时间"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "People with access to this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/organisation-create-dialog.tsx
|
||||
#: apps/remix/app/components/general/billing-plans.tsx
|
||||
msgid "per month"
|
||||
@@ -8335,6 +8315,10 @@ msgstr "请输入一个有意义的令牌名称,以便日后识别。"
|
||||
msgid "Please enter a number"
|
||||
msgstr "请输入一个数字"
|
||||
|
||||
#: apps/remix/app/components/general/claim-account.tsx
|
||||
msgid "Please enter a valid name."
|
||||
msgstr "请输入有效姓名。"
|
||||
|
||||
#: apps/remix/app/components/dialogs/sign-field-number-dialog.tsx
|
||||
msgid "Please enter a valid number"
|
||||
msgstr "请输入有效的数字"
|
||||
@@ -9073,10 +9057,6 @@ msgstr "移除组织成员"
|
||||
msgid "Remove Organisation Member"
|
||||
msgstr "移除组织成员"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Remove rate limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/dialogs/ai-recipient-detection-dialog.tsx
|
||||
msgid "Remove recipient"
|
||||
msgstr "移除收件人"
|
||||
@@ -9267,10 +9247,6 @@ msgstr "解决"
|
||||
msgid "Resolve payment"
|
||||
msgstr "解决付款问题"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Resource blocked"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/webhook-logs-sheet.tsx
|
||||
msgid "Response"
|
||||
msgstr "响应"
|
||||
@@ -9847,10 +9823,6 @@ msgstr "正在发送..."
|
||||
msgid "Sent"
|
||||
msgstr "已发送"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Sent this period"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/settings+/security.sessions.tsx
|
||||
msgid "Session revoked"
|
||||
msgstr "会话已撤销"
|
||||
@@ -10833,10 +10805,10 @@ msgid "Team URL"
|
||||
msgstr "团队 URL"
|
||||
|
||||
#: apps/remix/app/components/general/org-menu-switcher.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-organisation-overview-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/components/tables/organisation-insights-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/dashboard.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings._layout.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.teams.tsx
|
||||
@@ -10847,10 +10819,6 @@ msgstr "团队"
|
||||
msgid "Teams help you organise your work and collaborate with others. Create your first team to get started."
|
||||
msgstr "团队帮助您组织工作并与他人协作。创建您的第一个团队以开始使用。"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Teams that belong to this organisation."
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/o.$orgUrl.settings.groups.$id.tsx
|
||||
msgid "Teams that this organisation group is currently assigned to"
|
||||
msgstr "当前已将此组织组分配给以下团队"
|
||||
@@ -12329,6 +12297,8 @@ msgstr "未知姓名"
|
||||
#: apps/remix/app/components/general/claim-limit-fields.tsx
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
#: apps/remix/app/components/tables/admin-claims-table.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
#: apps/remix/app/routes/_authenticated+/admin+/organisations.$id.tsx
|
||||
msgid "Unlimited"
|
||||
msgstr "不限"
|
||||
|
||||
@@ -12621,18 +12591,15 @@ msgstr "正在上传"
|
||||
msgid "URL"
|
||||
msgstr "URL"
|
||||
|
||||
#. placeholder {0}: selectedStat?.period || 'N/A'
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Usage for period: {0}"
|
||||
msgstr "周期用量:{0}"
|
||||
|
||||
#: apps/remix/app/routes/_authenticated+/t.$teamUrl+/templates.$id._index.tsx
|
||||
msgid "Use"
|
||||
msgstr "使用"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a duration with a unit, e.g. 5m, 1h, or 24h"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Use a unique window for each rate limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/2fa/disable-authenticator-app-dialog.tsx
|
||||
#: apps/remix/app/components/forms/signin.tsx
|
||||
msgid "Use Authenticator"
|
||||
@@ -13534,18 +13501,10 @@ msgstr "白标、自定义域、无限成员等更多功能"
|
||||
msgid "Width:"
|
||||
msgstr "宽度:"
|
||||
|
||||
#: apps/remix/app/components/general/rate-limit-array-input.tsx
|
||||
msgid "Window"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/routes/_unauthenticated+/articles.signature-disclosure.tsx
|
||||
msgid "Withdrawing Consent"
|
||||
msgstr "撤回同意"
|
||||
|
||||
#: apps/remix/app/components/general/organisation-usage-panel.tsx
|
||||
msgid "Within limit"
|
||||
msgstr ""
|
||||
|
||||
#: apps/remix/app/components/forms/public-profile-form.tsx
|
||||
msgid "Write a description to display on your public profile"
|
||||
msgstr "撰写将在您的公共主页上展示的简介"
|
||||
|
||||
@@ -124,7 +124,9 @@ export const createEnvelopeRouteCaller = async ({
|
||||
});
|
||||
|
||||
// Todo: Embeds - Might need to add this for client-side embeds in the future.
|
||||
const { cleanedPdf, placeholders } = await extractPdfPlaceholders(normalized);
|
||||
const { cleanedPdf, placeholders } = await extractPdfPlaceholders(normalized, {
|
||||
fileName: file.name,
|
||||
});
|
||||
|
||||
const { documentData } = await putPdfFileServerSide({
|
||||
name: file.name,
|
||||
|
||||
Reference in New Issue
Block a user