Compare commits

..

19 Commits

Author SHA1 Message Date
Catalin Pit 12d44e1c59 Merge branch 'main' into feature/pdf-placeholder-selection-fields 2026-07-08 10:34:25 +03:00
Catalin Pit 9dc66afc7b Merge branch 'main' into feature/pdf-placeholder-selection-fields 2026-07-06 09:44:38 +03:00
Catalin Pit 7a13be6bf2 Merge branch 'main' into feature/pdf-placeholder-selection-fields 2026-06-29 10:10:49 +03:00
Catalin Pit 1032028395 Merge branch 'main' into feature/pdf-placeholder-selection-fields 2026-06-25 09:02:29 +03:00
Catalin Pit 2396d0d5d0 refactor: improve logger for wrong pdf placeholders 2026-06-19 13:26:54 +03:00
Catalin Pit dac262edc9 chore: add comment 2026-06-19 10:36:48 +03:00
Catalin Pit 25eb4ffedf refactor: simplify placeholder key-value parsing logic in PDF helpers 2026-06-19 08:43:22 +03:00
Catalin Pit ee0ea82635 chore: add tests 2026-06-18 15:06:15 +03:00
Catalin Pit 5f7f6698fd refactor: improve error handling and validation for PDF field metadata parsing 2026-06-18 14:03:21 +03:00
Catalin Pit 402809c809 refactor: add detailed docs for placeholder string parsing functions 2026-06-18 11:52:27 +03:00
Catalin Pit 733e273c05 Merge branch 'main' into feature/pdf-placeholder-selection-fields 2026-06-18 09:32:18 +03:00
Catalin Pit 7c7933c2d4 Merge branch 'main' into feature/pdf-placeholder-selection-fields 2026-06-17 11:50:50 +03:00
Catalin Pit bb120d65dd Merge branch 'main' into feature/pdf-placeholder-selection-fields 2026-05-27 12:50:34 +03:00
Catalin Pit 9c14aa6297 Merge branch 'main' into feature/pdf-placeholder-selection-fields 2026-05-26 08:54:20 +03:00
Catalin Pit 6387e809a8 chore: merged main 2026-05-26 08:51:26 +03:00
Catalin Pit 5b2b1591a4 feat: enhance placeholder parsing and validation for selection fields in PDF helpers 2026-05-26 08:45:57 +03:00
Catalin Pit e5cb4c6bfd chore: refine dropdown placeholder support in PDF fields documentation and implementation 2026-05-22 11:27:18 +03:00
Catalin Pit 8185f916d3 chore: update plan and documentation 2026-05-22 09:00:46 +03:00
Catalin Pit c308dbf257 feat: support selection field options in PDF placeholders 2026-05-08 12:11:06 +03:00
20 changed files with 1348 additions and 940 deletions
@@ -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">
+1 -1
View File
@@ -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' }],
});
});
});
});
+311 -5
View File
@@ -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;
};
+43 -84
View File
@@ -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 Organisations­einladungen"
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"
+43 -84
View File
@@ -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"
+43 -84
View File
@@ -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"
+43 -84
View File
@@ -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é dAPI"
#: apps/remix/app/components/general/claim-limit-fields.tsx
msgid "API rate limits"
msgstr "Limites de fréquence de lAPI"
#: 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 lorsquun 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 dutiliser le jeton dinté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 dAPI 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 de-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 à lorganisation 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 lorganisation"
#: 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"
+43 -84
View File
@@ -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 allorganizzazione 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"
+43 -84
View File
@@ -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 "公開プロフィールに表示する説明文を入力してください"
+43 -84
View File
@@ -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 "공개 프로필에 표시될 설명을 작성하세요."
+43 -84
View File
@@ -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 "Emailverificatie is verwijderd"
msgid "Email verification has been resent"
msgstr "Emailverificatie 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 "Timeout 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 "TeamURL"
#: 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"
+43 -84
View File
@@ -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"
+40 -81
View File
@@ -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"
+43 -84
View File
@@ -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,